If you lay out PC boards using software, it is a good bet you have an opinion about autorouters. Some people won’t use a package that can’t automatically route traces. Others won’t accept a machine layout when they can do their own by hand. You can, of course, combine the two, and many designers do.
The open source gEDA PCB package (and pcb-md) have an autorouter, but it is pretty simplistic. [VK5HSE] shows how you can use a few tools to interface with the Java Freerouting application, to get a better result. For example, the original router made square corners, while the Freerouting application will create angles and arcs, if configured properly.
The tools use an industry-standard input and output format to exchange data in files. However, there were some subtle differences in the format and the measurement units used, so [VK5HSE] had to create some changes to the filter code for pcb-md. However, the next release will incorporate the code natively.
[Brian] has been trying to create PCBs in everything. Although [VK5HSE’s] post is about pcb-md, what he learned might be useful with other layout programs, too. Of course, some people are never going to accept autorouting.
18 thoughts on “Free Routing For GEDA”
I am on the manual routing club. It serves as an opportunity to check the circuit over in detail and look for potential problems.
I remember the first auto-router I saw. It was with Protel AutoTrax or EasyTrax.
It looked really computer sci / fi like as it progressively tried different routing paths. I never actually used it but it did look good lol.
I might actually give this one a go.
gEDA/pcb also comes with Toporouter. Rarely known, because accessible through the internal command line, only. Toporouter routes by topology, so it ignores grids an makes nice curves around obstacles.
Here one can see it in action:
I know it doesn’t really matter, but I just can’t get past how ugly it looks
Ugly is ugly, but those traces near X1 button look awfully inefficient, if you moved just two traces to other side, you could make 3 other traces much shorter and not winding between elements.
Part of this is the fact that via versus trace length is a cost issue (as in, the router usually weights a via and adds it as an excess cost to the length). I usually end up modifying via costs to 0 if I use an autorouter, but I use them really infrequently anyway.
Yes, it takes some time to get used to this. But from the technology point of view, curved traces are more reliable to manufacture (no sharp corners) and shorter tacks (no detours to align with the grid) come with less ohmic resistance. So it makes quite sense to use such a technology.
Then GEDA is not for you!
I’ve used gead and it’s autorouter, I like them both. I’m from a “mixed mode” camp though. First route most important things and then try to autoroute the rest.
Regarding the corners, tracks laid down by the autorouter (or otherwise) can be optimized in a separate step to turn 90-degree corners into the 45-degree variety (Connects→Optimize routed tracks→Miter) among other possibilities, which may explain why this functionality isn’t in the autorouter itself. Of course, I’m among those who don’t autoroute anyway. But if the tools have improved enough to bother giving it another shot, maybe I will.
And concerning the comment about ugly: Yeah, perhaps it’s a bit of an eyesore, but I got good with it long before KiCad came to town. The arguably oblique interface is even a selling point for the sort of person that, like myself, enjoys using a complicated text editor. Plus, the file formats are extremely simple plain-text formats for those who like to make fine adjustments using a text editor or Perl script. For those who think the font is ugly, yes, it is. The default font can thankfully be replaced; my preference is a font known as Hershey Sans 1-stroke, a common CAD font with a more human, deliberate look. (Google «geda pcb hershey sans» for more information.)
My personal approach:
Lay out all the components according to their best fit for that particular design
Use the autorouter once to see if it’s a feasible design
If the autorouter can easily route the traces, then rip up the traces it created
Manually route PWR / GND
Manually route high speed / critical signals
Pour Ground / PWR planes if applicable
Then use the autorouter for the remainder of the less important / low speed signals
The autorouter is a tool, and like any tool, there’s no such thing as “hating” or “loving” it, just knowing how to use it properly
Does the gEDA suite have a lot of users these days? I started trying to learn it a while back but dropped it when I discovered that Kicad had come so far since the last time I had seen it. I kind of hope that Kicad is the next Eagle with all the open source designs and free parts libraries from hobby friendly businesses like Sparkfun and Adafruit eventually switching over to it. Should I not have given up on gEDA so quickly?
How does it matter how many other users use the same tool as you? Popularity is only vaguely related to quality and fit for the task.
gEDA is much more lightweight, still comes with all the features required to make nice boards. Feature completeness is pretty close to an Eagle installation without add-ons. Libraries are spread between many private repositories, but, taken together, pretty rich. As mentioned above, gEDA is outright excellent if you want to create or tweak the design programatically due to its simple, text based file format. gEDA/pcb also comes with a nice G-code exporter, which allows to make prototype boards within minutes.
Biggest burden of gEDA is its developer community. A bunch of old guys hog the project, contribute close to nothing, refuse to talk, still blast fresh developers and new ideas away. That’s why there’s e.g. no packaged development snapshot for Debian/Ubuntu or Windows. That’s also why a few developers escaped into a fork, like the pcb-md mentioned here.
Given that gEDA pcb-rnd can load and export in Kicad format, given that Kicad can import gEDA PCB/pcb-rnd footprint formats, and given that converters such as translate2geda exist that allow IBIS, BXL, symdef, kicad Modules, kicad symbols, Eagle symbols, Eagle device packages and so forth to be converted into gEDA format, I like to think that the most important, shared information commons is actually the collection of open source footprint, symbols, layouts and gerber files which can be manipulated in your FOSS layout tool of choice, whether it be KiCad or gEDA.
We don’t agonise over which text viewer you use for project Gutenberg, do we?
So, it doesn’t need to be an either decision any more.
Furthermore the gEDA pcb-rnd fork emphasizes portability and will run on that old IRIX box sitting in the corner…. not sure if you’d manage that with current KiCad!!
Ah, yes, pcb-rnd. Not to be confused with pcb-md, right?
Man after all the “design a PCB in” posts, and all those comments, I thought I was the only one who uses gEDA-pcb anymore. Wasn’t surprised, then, that the debian installation has a bug with the DRC-checker visualization (easily-fixed with a recompile), but no mention of it ’round the interwebs.
Glad to know there’s still following, and even new developments. I’ve a few ideas I’ve been meaning to [try to] implement. (comments in netlists!).
Many of these comments taking the words outta my mouth, and some great new ideas/tips for me to try in here, too.
Autorouters… Never have been able to get them to work with my projects. I sometimes give it a go at the beginning, but find it doing really nasty stuff that couldn’t possibly be worked-around, then find it (and me) stuck and unable to fix it… start-over, do by hand. I don’t think I’ve ever kept an autorouted trace, but I’ve definitely got ideas from it. I’ll have to check this one out.
the gEDA pcb-rnd fork code base is quite modular by design; if you’ve got any ideas for implementation, you might find that the barriers to implementation are surprisingly low. Feel free to browse the svn http://repo.hu/projects/pcb-rnd/
Right now there is work going on with additional netlist import formats. Expect an announcement soon.
It’s good to hear that there’s still active development of gEDA and other people using it. I’ve got too many scripts that work with gEDA files to relish the thought of learning KiCAD.
Auto routing has it’s place for low speed data lines and if set up right and you lay out your parts right than it can be very powerful
But that being said the only auto routing I would ever use is a BGA fanout, I just can’t justify the trade off between taking time and the risk of failure or intermittent faults I would be chasing for days
Please be kind and respectful to help make the comments section excellent. (Comment Policy)