← Back to team overview

kicad-developers team mailing list archive

Specctra Interface


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 imagined. 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!

Happy routing,


Follow ups