pcb-rnd knowledge pool


Freerouting.net demo (with new io_dsn)

freerouting2 by Tibor 'Igor2' Palinkas on 2021-07-19

Tags: insight, specctra, dsn, freerouting

node source



Abstract: In 2021 pcb-rnd got a major revamp on its specctra DSN support, thanks to nlnet (and the NGI0 PET fund). The new code (as of r35225, or release 3.0.0), io_dsn, offers full support for loading and saving DSN files. It supports all possible details, including non-uniform padstacks, slots, arcs in copper, etc. It replaces the old, hackish code that offered only partial export. It implemends brand new DSN read code that can load the export of a full board. It also features the previous session (.ses file) reader so the round trip through specctra compatible external autorouters are preserved. This node presents a screenshot example of all DSN data paths.


Step 1: the original board

This is the 7805 tutorial board from stock pcb-rnd documentation, with all copper traces and polygons removed ( lihata board file ).

7805 example board, unrouted, in pcb-rnd

First step is to export it to DSN: invoke the export dialog, e.g. using hotkey {f e} or the file menu, select dsn on the left (format selection). Leave all configuration as is and click export.

Side note: dsn loading

pcb-rnd can now also load dsn files. For example the DSN file saved above will look like this when loaded:

7805 example board, unrouted, in pcb-rnd, loaded from DSN

Note: silk, paste and mask are missing because the DSN file format does not support these layer types (autorouters don't need them).

Step 2: load in Freerouting.net

Start freerouting.net without arguments and use the GUI to load the file, or start it with "-de fr.dsn". Once it loaded the file, it displays the same board:

7805 example board, unrouted, in freerouting.net, loaded from DSN

Note: there may some details missing - it is because freerouting often does approximations and reduce detail complexity of the data. Some of this may be freerouting.net bug, for example it does not load quadratic arc traces.

Step 3: click 'Autoroute' in Freerouting.net

Click the Autoroute button and watch how it is routing your nets. The result should be something like this:

7805 example board after autorouting in freerouting.net

Use the file menu to export a session file .

Step 4: import the session file

In pcb-rnd, while the unmodified lihata board file is open, use menu (file/import) to import the session file, then press {c r} to verify all rats are routed. It should look like this:

7805 example board, routing result imported back in pcb-rnd