kicad-developers team mailing list archive
Mailing list archive
Dick Hollenbeck <dick@...>
Thu, 06 Mar 2008 13:41:17 -0600
Thunderbird 220.127.116.11 (X11/20080227)
Igor and others:
Ok, the specctra interface is now solid enough for some early adopters
to play with. Why would you want to do that? Well because of the
outstanding http://freerouting.net router.
This is not only an autorouter, but also an *outstanding*, world class,
push and shove manual router.
I am using it to route a 400 part board now and the push and shove
capability leads to at least a 5 fold increase in productivity. It
will take you at least a full day to learn the manual aspect of the
router. If your board it hobbyist in nature, skip that, just use the
autorouter, it can be as little as 5 seconds to learn the autorouter,
simply load the board and click *autoroute*. Otherwise learning the
push and shove manual router is well worth your time.
To be honest, my board is complicated enough that I am doing mostly push
and shove manual routing. However when I see a clear path for a route,
I can do incremental autorouting in the freerouter, simply by selecting
a pad or two ahead of time. You can also do incremental "fanout"
before you do autorouting. It is a cost based router so you can give
strong hints on which layers to use for which nets.
I am saying all this here on this list before I say anything on the
users list so that if there are issues that popup there is a smaller
audience at first.
Let me say in no uncertain terms that if your board is complicated, it
will be well worth a day for you to spend on learning the freerouter.
Even the manual aspect of it is wonderful. Let me also say that it will
take a full day, nothing short of that to get used to it.
I hope to get a better write up than this sometime, but that will happen
later. Here is a start for now:
1) Establish your default via and track sizes and save your board
normally in pcbnew. These defaults will be what is used in the
freerouter, as defaults only.
2) Load the kicad *.brd file into a text editor and edit the lines which
start with "Layer[n]". These are the layer names and types. You can
use only two "layer types" with freerouter: signal or power. If you
have a power plane on most of a layer, identify that layer as a power
layer. Change the layer names if you want, but use no spaces in layer
names, underscore is ok. The layer name must be <= 20 characters. Save
the board file to disk in your text editor.
3) load the board back into pcbnew, verify that the layer names "took".
4) Make sure all your zones have zone boarders. Only zone boarders are
used, not zone fills in freerouter.
5) Export the file to Specctra DSN. <boardname>.dsn
6) Launch the freerouter from http://freerouting.net, it is java based
and the UI can be sluggish but trust me, this loss in time will be
overcome many many times over.
7) Load your own design. Pick the <boardname>.dsn file. If you have
less than a simple polygon for your board edges, go back into pcbnew and
clean the board perimeter up, make it simple, contiguous, and
re-export. If the board does not load, it means there is a parsing
error in freerouter, go to the freerouter support forum and report it.
I will watch that forum for problems which could be related to *.DSN
file format problems.
In theory at this point, you can do the entire layout in freerouter,
saving your work using the "File | Save As" option to back up your work
as you quit for the day. You can always go back and load this
<boardname>.DSN file from freerouter. You can add via_rules and track
widths according to net classes so that as you route a new net, the via
dimensions, track widths, and clearances, are picked for you
automatically and on a per net basis. "Net class" basis, actually.
Note that if you have power zones, freerouter will route only into the
zone, and will not connect power pins to each other if a zone is
nearby. So later you will have unconnected tracks in Kicad, but that
is a problem in Kicad, not freerouter and may someday go away. :-D
The copper is where it needs to be if there is a zone connecting the
power. I would ignore the problem for now unless you manually want to
route a few power tracks just to quiet down pcbnew.
7) When your board is done in freerouter, simply chose "File | Export
Specctra Session File", and choose a filename like <boardname>.ses.
The *.ses extension is what you should use for session files, they are
different than *.dsn files, and they may not be reloaded into
freerouter. They are the pathway back into Kicad, and only if you also
have the original *.brd file loaded before importing the *.ses file.
8) From pcbnew with your board loaded, import the *.ses file. The
components are moved, and all the tracks and vias are deleted before
creating all new tracks and vias from the session file. Never save
this imported board unless you are happy with the results, and
especially not if the import fails. This is because the original
tracks and vias are all deleted before the import. So if the import
fails and you save, you will not have any original tracks and vias that
you might have routed in pcbnew before doing the export.
Let's go back to the export to *.DSN:
When tracks and vias are exported they are put into a "protected" status
as they enter freerouter. You must first "un fix" them to modify
them. Do this by selecting the objects you want to unfix, then press
the 'u' key. So can immediately select any number of objects by drawing
a box around them so this is very easy. You can also delete tracks from
an area and autoroute them back.
You can intermix incremental autorouting with manual routing. You can
do incremental (not a complete board), part specific "fan outs", rather
than fanning out all parts on a board.
I think you will find that spending a day in freerouter will be worth
it. The push and shove routing in freerouter's manual mode is a gem,
truly a gem. And by having this capability in Kicad, you now have the
capability to turbocharge your productivity in a way never before
And lastly, the manual routing within freerouter may give us ideas for
features that we can eventually start to build into Kicad. I'm telling
you now, if you it give it a day, you will get hooked on the manual
routing within freerouter. I was ready to give up until I really
started to understand it. One final tip, leave open the subwindow
called "Rules | Net" while you are routing. It will let you highlight
any net by name, subset the ratsnest, etc.
Hopefully you will get as much benefit out of this as I have put effort
into making the bridge possible!