why is the future not here yet? pcb autoroute + autoplace

Started by darron, June 27, 2014, 03:32:15 AM

Previous topic - Next topic

darron

Hi all.



I draw up all of my PCB layout s in vector software using my own component footprints etc. Like most I'm only doing through-hole pedal designs and they aren't rocket science. This is great because it doesn't restrict me to a 'grid' and I can do abstract stuff easily.

Whenever I draw up a moderately complex layout it normally takes me a night on the couch mucking around. Or more.




I know there's loads of software that will do auto-place, and auto-routing. Mostly it is only really easy if you are doing double sided PCB and especially if you are getting them fabricated out-of-house. problem is: a good routing required good prior placement, and a good auto-placement doesn't consider future routing.


When I look at the perfection of Tonepad.com's layouts I think they are seemingly done by the computer Deep Thought. They are amazing and all lining up in a grid.




I'm really surprised that there isn't a solution yet to take a schematic to an ideal pcb layout. I know this would put a lot of people out of work, but imagine the pleasure of drawing a 70's complex schematic in, and then having it ready to print to a board!

Ideally I'd like to provide this info to the software:

- schematic
- component foot prints
- are upright resistors okay? y/n
- are axial vs radial capacitors interchangeable? y/n
- would you rather more jumpers or a less dense board - scale 1-10
- preferred pad locations for in/out/pots etc.




how far off are we on this digital intuition? or does it exist? with this, we could save on 15 layer motherboards etc.





back to the drawing board. literally.


edit: oh, and this of course doesn't factor good practices like proximities and thermal dissipation etc. just simple pedal stuff where it hopefully isn't too critical.
Blood, Sweat & Flux. Pedals made with lasers and real wires!

guitarpedalparts

As you've mentioned, there is software that will auto place and auto route.  But the question is how good and how expensive.  I'm sure Altium designer does a far better job of it than any low-end software, but the cost is far out of reach for any hobbyist.  There is also software that has some of the features you mention.  For example Altium, or even Diptrace has features such as a setting for "via cost".

There's also often times the engineer knows things the computer doesn't, such as required positions of mechanical components, placement of components that will optimize assembly time and therefore cost, and other factors.  You may be surprised to know that for these reasons (and the fact that auto routers can still be quite stupid), even some complex designs are primarily routed by hand (computer assisted) by skilled engineers.  It depends on the goals and the application.  For pedals, most of the time you can get away with clicking the auto button, and the circuits are fairly forgiving.  :icon_biggrin:

darron

yeah. that's what i meant it wouldn't factor in stuff like that. but a lot of the stuff around here is just resistors, caps, transistors, ICs... so no biggie.
Blood, Sweat & Flux. Pedals made with lasers and real wires!

wildebelor

This would make it almost TOO accessible to build a pedal!
Really no understanding of the circuit would be required - I mean sure, you don't need an EE to put together a guitar pedal, but this is pretty much giving the floor to the consumer!
Pretty similar to how home recording is of such high quality and accessible.
With great power comes great responsibility.

:icon_twisted:
I can't think of anything funny just yet.

Ice-9

With most auto place and auto routers you can place the components like footswitch, pots, jacks etc where you want them yourself, lock them in place then run the auto placer and auto router for the remainder of the circuit.

Mind you I still find it easier and better to do it all manually, I have a PCB template with just the jacks footswitch and whatever else in place and just add the components I would need manually, the auto stuff in cheaper programs is still a bit useless to use. Pedals are really quite simple but if I was to design some digital interfaces or PCI computer cards then I would imagine the need for a complex auto router and auto placer.
www.stanleyfx.co.uk

Sanity: doing the same thing over and over again and expecting the same result. Mick Taylor

Please at least have 1 forum post before sending me a PM demanding something.

darron

Quote from: wildebelor on June 27, 2014, 05:51:09 AM
This would make it almost TOO accessible to build a pedal!
Really no understanding of the circuit would be required - I mean sure, you don't need an EE to put together a guitar pedal, but this is pretty much giving the floor to the consumer!
Pretty similar to how home recording is of such high quality and accessible.
With great power comes great responsibility.

:icon_twisted:

well... yeah. isn't that already happening? the boutique world can be a 6 month time span between "i built a pedal all by myself. mostly."     to      "i'm selling the world's highest quality advanced engineered technology"

if you've overcome the learning curve of etching your own pcbs rather than buying them for $6 (very reasonable) or doing a perf/vero (i've never tried either yet) then that's a small chunk of many to building a well made pedal.

we see often that many releases are a copy of something well made, with a change or two which they think might be better, not understanding the entirety of the circuit.

Quote from: Ice-9 on June 27, 2014, 06:01:38 AM
With most auto place and auto routers you can place the components like footswitch, pots, jacks etc where you want them yourself, lock them in place then run the auto placer and auto router for the remainder of the circuit.

Mind you I still find it easier and better to do it all manually, I have a PCB template with just the jacks footswitch and whatever else in place and just add the components I would need manually, the auto stuff in cheaper programs is still a bit useless to use. Pedals are really quite simple but if I was to design some digital interfaces or PCI computer cards then I would imagine the need for a complex auto router and auto placer.

i know you can assign fixed positions for the pads etc, but assignation after that the placement doesn't seem to necessitate thoughtful trace routing.

yeah can be rubbish i've discovered... but if you only need tiny, tiny etched traces it doesn't really need to be all that clever to squeeze it in. and it's just not friendly to out DIY needs of single layer boards that we are going to make ourselves.

i think it will happen down the track, and i'll look forward to playing with it for things that i just want to 'whip up' and not dedicate a chunk of my life to.




i know my brain can do it... semi-resonably well... i might try a few of hundred rotations and ideas. a processor could try a few million in lesser time. just need some clever people to adapt the human algorithms :)
Blood, Sweat & Flux. Pedals made with lasers and real wires!

Seljer

Auto-routing is basically an complicated variation of the travelling salesman problem. Computationally, it's hard to make a good algorithm for it and to have it work fast as well. Computers are dumb, people are smart.

So unless you've payed mucho $$$ for professional PCB software and have a specific need for computer generated routes (eg: many 100MHz digital signals, where having one trace longer than the other effectively creates a delay) you generally get better results doing it by hand.

J0K3RX

I think it has to be given some sort of design rules, guide lines as to what kind of circuit, template, board size etc, otherwise you are just giving it a bunch of parts and expecting it to read your mind and build something for you. Needs some kind of logic as to what design is trying to be produced.... until then good luck
Doesn't matter what you did to get it... If it sounds good, then it is good!

darron

Quote from: J0K3RX on June 27, 2014, 08:06:29 AM
I think it has to be given some sort of design rules, guide lines as to what kind of circuit, template, board size etc, otherwise you are just giving it a bunch of parts and expecting it to read your mind and build something for you. Needs some kind of logic as to what design is trying to be produced.... until then good luck

of course. those are always the variable you put in. eagle has a jillion to set board size, number of layers, ground planes, etc. and i assume you'd work on a template as said above for your regular ideal hookup positions so that it's not a random mess.
Blood, Sweat & Flux. Pedals made with lasers and real wires!

R.G.

The reasons go right to the heart of the differences in human and machine "intelligence".

Humans are pattern recognizers. We take in random, unsorted and incomplete data, and recognize patterns, filling in details by simply making them up to complete the pattern. We do "hard" logic like processing lists, arithmetic, and storing/retrieving specific data poorly, and generally only by formatting the problem as a set of related patterns. Remember learning to do arithmetic? Ever make a to-do list? That was your brain building pattern matching structures to help with problems that are foreign to its structure.

Machines are "hard logic". Boolean logic, lists, store and retrieve literally, are the basic structures and what they do best. They do pattern-oriented tasks only by exhaustive enumeration or with the help of boiled-down hints and guidance from humans. At one time the field of Artificial Intelligence seemed poised to take over the world. We're still waiting. It has proven remarkably hard to do, even to us native pattern matchers.

The best, (and most expensive) machines can now beat the best humans at chess. Chess is a ...highly... limited endeavor compared to pcb layout in general. Layout has far fewer rules and far more generality.

I've messed with and posted comments on auto-place and auto-route. They work from OK to pretty good for logic circuits. Logic circuits need to get binary, on-off signals from one pin to another. This is a far more limited situation because of the nature of the signal than analog layout. Auto-place and auto-route work from mediocre down to absymal for general analog routing. It gets better with time as us pattern matchers improve the machines, but still -

Yes, high-end PCB stuff does work better than what is available to DIYers. I've used both Altium (in several incarnations) and an internal tool set back at Three Initial Corporation that was .very. good at completing logic boards. Everything I've tried is far slower and frankly just worse than me looking at it. I can generally complete a layout manually in the time it takes to set up the data and such for the machine to chomp on it.

There is also a question of scale. Machines will not for the forseeable future be able to do the anything-in-one-cycle stuff a human can. They will beat humans handlily at tasks that require instantaneous recall of vast quantities of "hard logic" data. Pedals hardly rise to the level where a machine can exercise its benefits.
On a multilayer computer motherboard, though, it's hard to imagine doing it without a machine. Even better, some skilled humans and some machines interacting. That's potent.

I'm still waiting for the George Jetson Jet Pack I was promised on TV back in the 60s.  :icon_lol:
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

Seljer

I believe that relatively proficient chess players using chess software for a bit of an advantage can with a good deal of consistency beat both grandmasters as well as supercomputers (for the time being  :icon_biggrin: )