1
\$\begingroup\$

I made a lot of home made PCBs, but I have a great problem concerned about the design, I am just an electronic hobbyist at school so I don't have that mind of electrical engineer to place components in the right spot, I always place the components near to each other (in my point of view which can be sometimes wrong) use the auto router and set back waiting the computer to get the best PCB copper trace design.

well this thing works in a - 5 component - 555 blink circuit, when I started making a little bit complicated circuits (60+ components) having the auto router used, it never complete the traces. I know probably if I placed the components in the ideal spot the percentage might reach 100% but I can't do so.

All what I want is a working circuit I don't mind the shape so is there any software like EasyEDA or Eagle softcad or any extension that places such components in the nearest spot to making routing easier and much faster.

As a side note using my tools, the absolute maximum specs to any PCB board I make is single sided PCB and 0.5mm trace width 0.5mm clearance, I know if i lower these numbers i will get better routing results and I get, but I fail in making the PCB itself i.e:toner transferring, etching ...... and I know I could just use jumpers but I want a software solution.

In short I want an extension or software related to PCB design that can place the components automatically in the right spot to make routing more efficient.(i.e something that always happen to me that a copper trace just is drawn all around the whole PCB to just connect to a near node !!)

\$\endgroup\$
  • 2
    \$\begingroup\$ I think you're overestimating our component placement. \$\endgroup\$ – DKNguyen Dec 20 '19 at 20:51
  • 6
    \$\begingroup\$ Just place and route by hand. Auto routing just isn't worth it. Auto placing is worse. \$\endgroup\$ – JRE Dec 20 '19 at 20:55
  • 2
    \$\begingroup\$ The are quite a few design choices which probably will not (by default) be known by whatever program you use. E.g. to get the best PCB design, I sometimes swap the order of connector pins during the design. Another example: When I make a PCB that will het stacked on top of a SMPS PCB, you want to carrfully place your sensitive circuitery: not straight above inductors or switching nodes. \$\endgroup\$ – Huisman Dec 20 '19 at 21:19
  • 2
    \$\begingroup\$ I have never seen auto-placement function that is worth a tinker’s cuss. Autorouting is more than bad enough. Use the latter sparingly and the former not at all. \$\endgroup\$ – Spehro Pefhany Dec 21 '19 at 1:43
  • \$\begingroup\$ 1) Keeping electrically related components grouped close together is a good thing in board layout, so don't be afraid of that! 2) Autorouting is hard, so it's generally better to embrace the challenge that is routing boards yourself. (It can be quite fun, too :) \$\endgroup\$ – ThreePhaseEel Dec 21 '19 at 3:36
4
\$\begingroup\$

Many people have failed writing such software, because it is a complex topic.

For example, with (T)QFP and DIP parts, often the best routing option is to draw out some traces below the IC, which exponentially increases the search space for a placement algorithm, because it allows pulling out some pins in reverse order as a separate bus.

There are too many degrees of freedom here to search for an optimal solution in a sensible time frame, which is also the problem the autorouter has, which is why it just gives up on complex boards.

\$\endgroup\$
3
\$\begingroup\$

The short answer: AFAIK there is no good automatic placement software... yet. Simply because it is enormously complex problem.

The somewhat longer answer: Your expectations are not aligned with the ultimate goal of such software, so even if one such existed you wouldn't be happy with it. The key here is that "All what I want is a working circuit I don't mind the shape ... making routing easier and much faster" only works for prototyping or small hobby projects. Solving complex problem just to accommodate these limited requirements is economically non-feasible. In this old paper found on the web the most interesting part is a huge list of referenced materials, illustrating how many people working on it and for how long.

Finally, the very long answer is that "place the components automatically in the right spot to make routing more efficient" is not the purpose of automatic placement software. At least, not the only one. There are many criteria to be taken into account, for example:

  • board size limited by target design (e.g. smart watches);
  • board shape and some component locations dictated by form factors (e.g. motherboards);
  • interference considerations (e.g. placing decoupling capacitors or separating analog and digital parts)
  • thermal distribution considerations;
  • high frequency specific requirements (trace matching requires extra space);
  • 3-D restrictions between components within the PCB and between PCB and surrounding parts;
  • manufacturing considerations (e.g. component "shadowing" during wave soldering);

The above is just a tiny slice of what the software has to know to do its job. The design constraints lists in the existing CAD software already surpassed what average hobbyist is willing to tune-up and yet they do not come even close to what is necessary for fully automatic design.

Now, consider that given small enough grid and sufficient board size the number of component placement permutations even for small projects (like SMPS) quickly grows beyond "brute force" capabilities of modern computers. The same goes for the number of the ways the traces can be routed for each of the placements above. Multiply the two and throw multi-layer options and VIAs into mix and you will get almost infinite choices.

There was a hope that some mathematical method can produce an optimal solution. For example somewhat naive approach of minimizing combined ratsnest distance and number of wire intersections. This quickly turned out to be insufficient. Take a look at the bus routing on any motherboard - if you rip-up those neat parallel traces you would see a crazy mess of air wires, as far as the algorithm is concerned. And yet the "wrong" placement works in the end.

Here is where heuristic methods, like genetic algorithm, come into picture. While not promising optimal placement they can narrow down the choices to something good enough for the final solution. In fact, the chip manufacturers already using these for placement and routing of the integrated circuits. If you think about it, it is not much different from placing and routing of the PCB. Unfortunately, those behemoths poured so much money into development of that software that you are unlikely to see it readily available for the hobbyists any time soon.

\$\endgroup\$

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.