What is wrong with eagle autorouter?

So after way too long (9 months of scratching and clawing) I feel I have a pretty good grasp of eagle and am finally prepping boardhouse runs. I have gotten pretty good at self optimizing my trace patterns and overlays and am comfortable with my boards. So once I completed them, just out of curiosity I did full trace ripups and let the autorouter have a crack using the component layouts I used.

Over all the traces look "ok", my own seemed a bit more intuitive, and with the exception that the autorouter chose smaller traces as an average, and I made extra heavy power traces in mine. There didn;t seem to be any huge disparities in the auto traces over mine.

So my question is this, am I missing something, all over the net I always see don't use the eagle autorouter for production boards, its not good enough, or the eagle autorouter isn't "very smart".

So what gives, has it "gotten smarter", have personal tastes changed or am I missing some great glaring mistake the autorouter spits out?

Just looking for some answers and opinions of why it gets such a bad rap and if it is deserved or just perceived.

I am not an eagle power user... but the Auto router has no idea if you are using Analog or Digital signals. So it is quite normal for the autorouter to put them together.

The Eagle autorouter is a tool, a good tool, but with any tool it is up to the user of the tool to use it intelligently.

I disagree with those who say you shouldn't use the Eagle autorouter. You should use it but intelligently. First, route any traces that are critical: high-speed clock lines and the like. Then, use "net classes" to specify that certain nets should have thicker traces. This tool (net classes) is pretty rough and could be better but is better than nothing. Then, let Eagle have at it on the rest of the board.

You can always "do better" than Eagle on small-to-medium boards and come up with prettier or more sensible layouts, but you usually don't gain anything, just a prettier layout. You do, however, lose time. If your time is worth nothing, go ahead and route every board by hand.

And don't ignore the value of part placement. There is nothing the manual router or autorouter can do to overcome poor placement of parts. Put that crystal oscillator right up against the microcontroller. Same with the decoupling caps.

--
The Ruggeduino: compatible with Arduino UNO, 24V operation, all I/O's fused and protected

Yes, there probably is alot to say for the placement of parts resulting in a decent autotrace in this case, so that now makes more sense, because if I hadnt worked through much of the traces by hand the parts would have been in a completely non efficient original placement, so that starts to make sense, the autorouter did similar routing to mine because my placement was already optimized.

On the subject of the crystal, I always place it right up near the pins, I noticed that the dumilanove places it approximately 8 mm from the pins, so the question I now have would the crystal still function if it was placed at the end of the chip closest to the 9 and 10 pins, IE parallel to the 14 and 15 pins, this results in a 14 -15 mm trace as opposed to the 8 mm trace of the dumilanove, would it still function?

On the subject of the crystal, I always place it right up near the pins, I noticed that the dumilanove places it approximately 8 mm from the pins, so the question I now have would the crystal still function if it was placed at the end of the chip closest to the 9 and 10 pins, IE parallel to the 14 and 15 pins, this results in a 14 -15 mm trace as opposed to the 8 mm trace of the dumilanove, would it still function?

Probably...but the extra trace length adds overall capacitance (thus possibly shifting the frequency a bit) and is a better radiator (and receiver) of electromagnetic interference.

--
The Rugged Circuits Yellowjacket: 802.11 WiFi module with ATmega328P microcontroller, only 1.6" x 1.2", bootloader

This is my workflow:

  1. Put crystals and decoupling caps near their pins.

  2. Next, before doing any hand routing I let Eagle auto route a bunch of times from scratch and I move the parts around until Eagle starts doing a pretty good job.
    Move the chips around to both minimize overall trace length
    Look for places in the board that have dense routes and sparse routes and try to move the chips around to even it out (without increasing overall trace length).

  3. Use net classes for power and ground

  4. Route the "trunk" of power and ground yourself, and if you are using SMT you will have to hand route any fat net classes to the tiny SMT pins.

  5. Now start doing Eagle routing.
    Use the eyeball tool to look for traces that go the long way around, called "spaghetti traces". Often you'll find that it can't go the short way because 2 chips are a little too close together. Widen these a bit and reroute
    Shift stuff around until you get 99 to 100% routed.

  6. Now optimize. Eagle is terrible at final optimization.
    In fact, you'll find places where a trace goes thru a via and then right back up through another via! Clearly there used to be another trace that got optimized away.
    I tend to hand optimize to try to minimize vias since that is often where PCBs have issues. But generally very few boards fail so it is mostly a look thing.
    Try to reroute any spaghetti traces more directly. You'll find as you do this that it actually creates more space making subsequent rerouting easier. Ultimately you can remove LOTS of vias, but the more you do the more time you are wasting :-), esp if you then realize that you want to change the board!
    Make sure that you do the DRC so ensure that your hand routes are within tolerances.

  7. If you have any open spaces under chips, put a big metal region there extending beyond the edges of the chip for better heat dissipation.

Cheers!
Andrew
www.toastedcircuits.com -- Lightuino LED driver board (Arduino clone, 16 500mA sources, 70 constant current sinks).