Love/hate relationship with PCB design

Don’t get me wrong, I LOVE designing PCBs. However I find it so hard to route them manually.

I take a lot of time to come up with a schematic that will limit the routing effort, but it never fails: the routing takes me so much time whatever I do!

There is always that signal that can never be routed because I’ve used up all 2 layers and there is simply no path possible between 2 pins. Most of the time I end up removing a component I had for fun, one that is not necessary. I always redo my boards many many time before I send them to the fab. It usually takes me 3 weeks to route one!

Truly routing is a pain for me, I don’t know how people can route stuff on 2 layers on 1 square inch boards. Take a look at this for example:

http://paparazzi.enac.fr/wiki/Image:Two … side_1.jpg

The UAV board from paparazzi. There is a lot happening on this board but everything is lined up, all signals sound straight, and the board is tiny!

How do you do that?

Practice?

Just like a painter, who often makes tens or hundreds of sketches before finally producing a masterpiece, so too does the board designer tinker around and try several designs with their big components in different spots before deciding one general layout seems to work well and finishing off the rest of the board routing. (Though they may have to backtrack!).

patience, young jedi.

Apart from placing the larger components first, a useful technique is to start by routing the shortest nets, leaving the longest ones until last. Pin and gate swapping is useful, if your software supports it. The Pulsonix software I use can push components and tracks aside, with “spring-back”. That helps a lot.

Leon

leon_heller:
Apart from placing the larger components first, a useful technique is to start by routing the shortest nets, leaving the longest ones until last. Pin and gate swapping is useful, if your software supports it. The Pulsonix software I use can push components and tracks aside, with “spring-back”. That helps a lot.

Leon

Hi Leon,

Thanks for the reply. How do you use pin swapping? So far whenever I noticed pin should be better assigned, I’ve always gone back to my schematic, edited and continue the routing process…

It depends on the software you are using. With Pulsonix, pins are identified with a ‘1’ in the pin-swap column in the Part Editor. They may then be swapped in the PCB editor and back-annotated to the schematic.

Leon

Pinswap: The part needs to be set up for pinswap. In eagle, you can set a pin swap level (lib editor) per pin. Any pins with the same pinswap level can be swapped. I usually do it in the schematic editor.

I find that part placement is key in making a board easily routable. A crude way to measure a given placement is to place the parts and then use the autorouter. The layout that allows the AR to get farthest is the best.

However, I usually just play with position and rotation to see the least messy air wires.

Using larger SM packages for discretes (1206, for example) can allow a trace between the pads and thus avoiding extra vias.

You might want to use one layer mainly for vertical and the other mainly for horizontal. This doesn’t always work but it helps.

And, yeah, practice helps a lot…

jeanseb:
I always redo my boards many many time before I send them to the fab. It usually takes me 3 weeks to route one!

Every board I've done has been 'redone' many times

before release to BatchPCB or another PC shop.

Sometimes the project “gets cold” and the only cure

is to walk away for a day and do something else. Or,

simply turn the board through 90 degrees to see it

(literally) from a new angle!

jeanseb:
Truly routing is a pain for me, I don’t know how people can route stuff on 2 layers on 1 square inch boards. Take a look at this for example:

The UAV board from paparazzi. There is a lot happening on this board but everything is lined up, all signals sound straight, and the board is tiny!

How do you do that?

You don’t know what their limits were to start. For

example, if those IO pins were fixed by mchanical

co-ordinates the routing would be much harder than,

say, the flexibility to shift the same IO pins as the

PCB design evolves.

On two layer boards it is advantageous to ‘flip’ some

parts to the far side, freeing up routing space.

As already noted, some signals and pins can be

swapped to reduce trace crowding.

Another time saver is to do a very rough layout

(sometimes called a “floor plan”) using parts placement

and airwires (no routing) and “eyeball” for even

distribution. Sometimes a simple exchange or

rotation of two or more parts will solve a problem,

and neither requires touching the schematic again.

Try to keep one side of a two layer board for

East-West only and the other for North-South only.

This will use a ton of vias, but once all the airwires

are routed it will be easy to eliminate excessive

vias where E-W or N-S traces make small runs

against the majority. In other words, break a few

rules to get a superior final design. Would you like

to an example of E-W and N-S routing?

What toolchain are you using?

All good suggestions.

Almost all of my boards are single sided, so double sided it seems like I can do just about anything on it, and I like grouping everything as tightly as possible with as little board space as possible.

Usually I stick to SMD components as much as possible, but sometimes a radial resistor or capacitor can help with a routing problem.

bigglez:

jeanseb:
I always redo my boards many many time before I send them to the fab. It usually takes me 3 weeks to route one!

Every board I've done has been 'redone' many times

before release to BatchPCB or another PC shop.

Sometimes the project “gets cold” and the only cure

is to walk away for a day and do something else. Or,

simply turn the board through 90 degrees to see it

(literally) from a new angle!

jeanseb:
Truly routing is a pain for me, I don’t know how people can route stuff on 2 layers on 1 square inch boards. Take a look at this for example:

The UAV board from paparazzi. There is a lot happening on this board but everything is lined up, all signals sound straight, and the board is tiny!

How do you do that?

You don’t know what their limits were to start. For

example, if those IO pins were fixed by mchanical

co-ordinates the routing would be much harder than,

say, the flexibility to shift the same IO pins as the

PCB design evolves.

On two layer boards it is advantageous to ‘flip’ some

parts to the far side, freeing up routing space.

As already noted, some signals and pins can be

swapped to reduce trace crowding.

Another time saver is to do a very rough layout

(sometimes called a “floor plan”) using parts placement

and airwires (no routing) and “eyeball” for even

distribution. Sometimes a simple exchange or

rotation of two or more parts will solve a problem,

and neither requires touching the schematic again.

Try to keep one side of a two layer board for

East-West only and the other for North-South only.

This will use a ton of vias, but once all the airwires

are routed it will be easy to eliminate excessive

vias where E-W or N-S traces make small runs

against the majority. In other words, break a few

rules to get a superior final design. Would you like

to an example of E-W and N-S routing?

What toolchain are you using?

Thanks for all the good suggestions guys. I finally got my latest board routed, with 300+ airwires routed on 5 square inches. I sticked to the north-south and east-west rule on each side and it seems to work ok.

Thanks again!

There isn’t much advice I can give that others haven’t, but here is a few things to greatly reduce the size of a ratsnest, even before routing.

The very first thing you should do when attempting to layout/route a board is setup the GND/VCC planes, this will reduce your ratsnest mess by quite a bit.

The next thing I usually do is go around, and connect all the power airwires. For me GND is on the bottom, and SMD parts are on the top (usually), so I go around and connect all the ground airwires using a short trace and a via. You can’t really use too many vias here, as long as you don’t go overboard.

The thing I kept reading when I was first learning to use EAGLE was via’ are bad, and you should try and have as few as possible. While this is true to an extent, vias aren’t really “bad” and you shouldn’t be scared to have lots of vias, especially on a dense board.[/list]

The main thing to realise is that placement is EVERYTHING.

Time spent optimising placement is more than paid pack in routing time.

A close second is not assigning any MCU pins, logic gates, connector pins etc. that don’t need to be in specific places until late on in routing.

I usually do a rough sketch on a piece of paper and roughly look at direction of tracks might go from point 1 to another point. From here I can detect possible pesky tracks and hence I reassigned them (even better if chips that you are using have pins re-mappable features). I always finish of the power tracks first before doing the rest as I have OCD on super thick power tracks. :slight_smile: