I'm having trouble routing this PCB in Eagle 7.1:

enter image description here

I have tried the following:

  • Autorouting - it could not complete
  • Moving components around
  • Manually routing - I always ended up getting stuck
  • Adding a ground plane - autorouter still failed.

The restrictions I have placed are 0.2mm wires with 0.45mm gap between pad-to-wire (I don't want wires running inside the SV1, but the other IC's are okay.), and 0.2mm wire-to-wire gap.

I understand the SMD led and resistor are on the bottom of the board, along with the rest of the wires.

What are some things I can do to route this board without having to route wires inside SV1?

Related question: If the autorouter can't get a 100% completion, is the chance of manual routing pretty much zero?

  • \$\begingroup\$ "If the autorouter can't get a 100% completion, is the chance of manual routing pretty much zero?" I have rarely had Eagle's free autorouter work on anything to completion. The worst case was a double sided board where it used about 300 vias. By hand, I had, 26 or 27. So I wouldn't give up just because the autorouter fails. \$\endgroup\$ – gbulmer Aug 16 '14 at 0:14
  • 1
    \$\begingroup\$ Why "I don't want wires running inside the SV1"? It just looks like a socket. Also why "The restrictions I have placed are 0.2mm wires with 0.45mm gap between pad-to-wire". Are you trying to DIY this? \$\endgroup\$ – gbulmer Aug 16 '14 at 0:18
  • 2
    \$\begingroup\$ @gbulmer Correct, trying to DIY this. The copper clad is one-sided, so all the traces are on the bottom (with the IC through-hole headers on the other side). The SMD leds and resistor aren't essential to it's operation, but I wanted to practice my soldering skills. \$\endgroup\$ – tgun926 Aug 16 '14 at 0:27
  • 1
    \$\begingroup\$ Could you use larger SMD resistor and LED? You might be able to put a track under them if you did. I assume your DIY board will not have solder resist? If that is the case, and you put a track under an SMD part, you might want to 'paint' the under-track to reduce the chance of a solder bridge. \$\endgroup\$ – gbulmer Aug 16 '14 at 0:48
  • 1
    \$\begingroup\$ If one of the IC's is a microcontroller, consider reconfiguring the pins you use in such a manner that routing gets easier. \$\endgroup\$ – jippie Aug 16 '14 at 7:37

Key in routing a PCB is part placement. It can be made almost impossible by poor part placement.

Looking at it a bit ...

IC1 looks like it needs rotating 180 degrees, and then move R1 and LED1 out of the way, to the right of IC1, and they can be routed under IC2.

Rotate SV1 180, and I think it will mostly go.

Edit: Use a few jumper-wires, to connect areas of copper which need to be connected, but can't be routed on a single sided board. I can't quite tell as some air-wires are a bit obscured, but I think you might need a couple.

A 'pretty solution' which disguises jumper wires are 0ohm resistors. Unfortunately you are using SMD resistors which don't have enough space between their pads to be used to cross over a wire :-(

When I am trying to understand part placement, I sometimes do a rough/quick routing for the many-pins parts first. Then see where the two pin parts go. That seems to help me see what is going on topologically.

I always set the grid to a useful value. That saves a lot of time and effort in Eagle.

For rough routing, I set the grid size to track+space, then it is very quick to lay tracks near each-other, without breaking a Design Rule. I often set the grid 'alt' to an even divisor of that, e.g. if track+grid is 16, then Alt might be 4. That is usually good enough; diagonal corners might be slightly further apart than 'perfect', but it is easy, quick and safe.

When I do a rough/quick routing, I assume I'll rip up all tracks. I don't necessarily complete tracks. I often only route enough to 'uncross' tracks so that it is easy to see which tracks are causing problems, and which groups might route simply and together. I am looking for opportunities to move parts to simplify routing. I expect to rip up the tracks, and hence don't waste much effort.

I believe professionals say 'shallow, 45 degree corners are good, 90 degree or sharper are bad'. So I very rarely use the 90-degree wire bends. Being able to route tracks in parallel is quick. So I rarely use arbitrary angle wire bends. It is harder to rip-up and move curved bends, so I rarely use them either. That means I only use the two 45 degree wire bends for the majority of routing.

Important: Eagle was designed many years ago, and has a user interface optimised for heavy use, when the command line was still popular. A one button mouse or track pad is awful. Use a two button mouse, preferably with a wheel. Many commands become much easier, and zooming with the wheel becomes convenient. The second button helps with moving parts, rotating, selecting wire bends, ...

Useful: Bind common actions, which require lots of clicking to function keys. I have mine set to show various combinations of layers. One key shows all the layers that I'll have manufactured. Another removes all text, but leaves 'stop' to make it easy to see what I am routing and what must not overlap. Another switches off top layer copper, etc. The way to figure out what to put onto a function key is to type the command into the command line, then paste it into the define key dialogue. Most of my layer views are on the same function key, modified by shift, control etc. to make it easy to find.

Useful: Eagles on-line help contains a lot of useful information. If you have a second screen, and can avid the screen real estate, keep it open, and use the search facility. I found a lot of little techniques that are buried in a 'ctrl-alt-click' that way, which has saved me much effort.

NB: I am doing sub 100MHz MCU's, which have the high-speed stuff on chip, so these strategies work okay. There are community members who can give much better guidance about the electronics of a PCB than me.

  • \$\begingroup\$ +1 For correct additional suggestions I hadn't considered. \$\endgroup\$ – Jared Aug 16 '14 at 0:48
  • \$\begingroup\$ A tip for autorouting jumper wires is to route the PCB double sided with one side heavily weighted in one direction and use plenty of restricts to prevent the jumper wire side from being overly routed \$\endgroup\$ – slebetman Aug 16 '14 at 5:16

To your related question: Autorouters will almost never complete 100%. This is totally normal. That said, in your case this may be an indication of not being possible. Placing a restriction of single sided makes things more difficult, especially since so many nets appear to need to cross over.

Things which might help:

  • Change the pinout of SV1. Of course this may not be possible if it connects to something you must match up with.
  • Make the board double sided. You already have components on the other side. Is there some reason you cant do this?
  • I havn't tried it exactly but it appears to be simple enough you should be able to come up with a solution by hand. Keep in mind you may need to take some rather indirect routes, in and around IC pins even.
  • (Additional) I would recommend making the IC pads Oval in shape, with the long dimension aligned with the width of the part. This will allow you to make them narrower and still get good solder coverage/pad size. In this way you will have more clearance between pins for routing the one or maybe two traces which will need to go between pins. (Really only one in the layout I drew).

A Routing Attempt (Corrected)

I cant tell from the picture what pin 7 of SV1 needs but give this a shot as a first attempt:

enter image description here

  • 2
    \$\begingroup\$ +1 for massive helpfulness. I think if you take my suggestions about moving the parts, it becomes much tidier. \$\endgroup\$ – gbulmer Aug 16 '14 at 0:37
  • \$\begingroup\$ @gbulmer I am inclined to agree. I am still unclear about what pin 7 is doing, but in either orientation it should be routable by increasing the distance between the parts and traces. Thanks for the helpfullness credit :-) \$\endgroup\$ – Jared Aug 16 '14 at 0:39
  • \$\begingroup\$ @Jared Thanks for your help. Pin 7 is not connected to anything. However, Pin 9 needs to go to the other pad of R1 (series resistor for the LED) \$\endgroup\$ – tgun926 Aug 16 '14 at 0:45
  • \$\begingroup\$ @tgun926 That should be an easy fix. Just move the two traces a little higher and run it over the top of the resistor. \$\endgroup\$ – Jared Aug 16 '14 at 0:49
  • 2
    \$\begingroup\$ @tgun926 - Changing a footprint within the PCB editor is not practical (with more than one part). I usually make a new empty library, and copy the existing library part into it (Eagle is a bit clunky any other way). Then go edit the part to change the pads. Then replace the part in the schematic with the new version. The PCB will get updated. Also, though it isn't a good idea in general, you could even use different pad sizes for different pins, and reduce the pads for unused pins to make it easier to route tracks between them. I feel a bit ill after writing that suggestion, but it works ;-) \$\endgroup\$ – gbulmer Aug 16 '14 at 2:04

Although it might be possible to route your PCB without using any jumpers, most one-sided PCB's of any complexity will require some jumpers.

Although some layout programs handle jumpers in a situation like this automatically, ones like Eagle do not (at least version 6, I have not upgraded yet to 7). There the simplest solution is to pretend the PCB is a two-layer board, and give the top layer (the one with through-hole components) a high "cost" so it won't try to put traces there unless absolutely necessary. The traces on the top will never actually exist (since you won't be etching that side), but instead these traces will represent the jumpers.

When the board is routed, you will want to make sure the traces representing the jumpers don't go under any components (if they were real traces, they could, so the router likely will try to to put some there). If there are, manually move them. When the board is stuffed, just put wires between the vias representing the ends of the traces.

  • 1
    \$\begingroup\$ +1. I've successfully used this technique with OrCAD when producing DIY boards. A bit of manual work can usually reduce the number of jumpers, but the autorouter usually comes up with a reasonable suggestion, at least. \$\endgroup\$ – Jules Aug 17 '14 at 20:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.