Autoroute? Is it coming? (Mod edit, short answer is not in the foreseeable future so nothing to see here. ;) )

CircuitMaker is free.

1 Like

i tried it right this evening after your hint and the one of @straubm . It works indeed. it imports also the schematics but I’m interested in the router.
What I saw, is that’ quite slower than the FreeRouting, however it’s good to have an alternative.

Thank you to both for your suggestion

AH important, I saw it’s open source … so: why don’t get the important part integrating it with kiCAD? Well … it’s just a loud thought … :slight_smile:

Define “free” in this context. To be able to use that software, an account with them is mandatory, it sends who knows what info over the internet (updates are mandatory), quite some functionality only works via the “cloud” / mist stuff, and it does not work on my linux box either.

I don’t trust that company for even a little bit. They are a commercial company, but that also means they have to make money so their employees can buy sandwiches and stuff. (nothing wrong with that in itself). One of the consequences of that is they can not give their “free” version too much funcionality, because a lot of their paying customers would then stop paying for their software, and they have quite a lot of customers who do not like an annual fee of EUR5000 but who have to use that software for some kind of reason.

I’m quite convinced they only “give away” a “free” version because open source software such as KiCad exist at all. I don’t know the details of their motivation, but I’m pretty sure it’s neither idealism nor kindness.

But I’m a quite religions proponent of open source software myself. I rather donate to open source projects than even touch something else wherever it’s a viable option to do so.

3 Likes

With a five private projects limitation

1 Like

Having been a long term subscriber to altium i can understand their willingness for a free version the same reason apple give good student discounts you are more likly to get a comercial contract when your hobby turns into a paid job.
Also free for circuitmaker goes all the way. You can only produce open source, public domain boards thats the deal.
Altium are also stuck using an old windows toolset. Originally delphi, but they’ve never managed to approve later tools (last I heard it was 2019)

Well, Delphi object pascal was on it’s time a way ahead of other component based developer tools, java with ui design tools getting mostly close. Even today, I hardly see anything better “object component” development tools available, but Borland kind of disappeared 20 years ago, so it may be hard for them to get support. They must have at least tried to port it to Lazarus, what it free alternative with some kind of backport support for Delphi and is also available for Linux.

I never liked Delphi, but I really did like the Borland C++ builder and the way a GUI could be clicked and dragged together back then.

Those 20 odd (or was it 30?) years ago, Borland became Embarcadero, and Delphi either still exists, or it has been resurrected later:

Delphi never went away, it just died as Pascal died and other rapid development tools (drag and drop buttons on forms) became available for more mainstream languages.
Nowadays Pascal is alive only in legacy codebases. It’s just not a good language by modern standards.

Propably because I learned pascal before C and C++, I could still after not using it for 15 years consider of writing code with it. Not with the standard pascal but with the Objject Pascal.

I like C, but newer really liked from the C++ syntax. I feel like the languages like Java and Object Pascal have much clearer syntax compared to C++ which is kind of a mix of confusion where some of the code is written in header files and syntax for many things is just ugly.

Not that it matters if this topic strays I guess. :wink: But…

If I recall correctly, Pascal was not originally intended for production. It was kind of a mash up to teach programming concepts. Not sure but I’m guessing people got out into the real world and Pascal was the programming language they had been taught and knew.

Off topic I know, but I’d like to have smoothing function, to remove all kink and extra corners of my routes. And if PaulDvh wants to see some of those, I can put some screen captures in some other post. Delete corner command would be nice too. And a command to select route corners.
Also I would like have to short cut for a direct route from point 1 to point 2.

It is dogma on this forum that autorouters are not useful and produce low quality results. I would like to differ.

My previous experience was using the autorouter built into PADS. There was a GUI and a control file language you could use to create net classes to constrain things like lengths, trace widths, routing layers, etc. Then the auto router would respect all those constraints. If the constraints were written correctly the layout would be guaranteed to work. The autorouter ran fast, just a few minutes, so you could iterate between routing and constraint refinement until you got what you wanted. The autorouter included an optional cleanup stage that really made everything look much better than most hand routed boards. The PADS autorouter was by no means state-of-the-art but it gave very good quality of results.

I also knew a professional board designer that purchased a separate Spectra autorouter license. He could manage all routing rules using a very powerful scripting language. These designs could include a cascade of linked length constraints. There was no question in his mind that a powerful auto-router earned its keep.

On the other hand, thank you for KiCad. It is free and open-source. I can work with it anytime I want on any machine I want without connection to a license server. There is good industry support for KiCad. Keep up the great work.

1 Like

No, not really. That is an over simplification.
The biggest hurdle is that an Autorouter has to be quite sophisticated before it is good enough to be useful. It would take years of development to get to that point and KiCad is still a relatively small project and manpower in developer hours is a scarce resource.

The other problem is that a lot of beginners with PCB design think an autorouter is a magic button. You press it and your PCB is finished. That use of an autorouter does not work and will lead to low quality results.

Good autorouters can give a productivity boost to experienced PCB designers, but both the “good” and “experienced” are important keywords here.

On top of that, it also depends a lot on the sort of designs you make. An autorouter will not be of much use when you are for example making an audio power amplifier. And this leads me to the conclusion you should learn PCB design by hand-routing before you start considering an autorouter.

4 Likes

Most programming languages of the time had horrible syntax that was difficult to parse and error-prone to write.

For example, consider this FORTRAN statement starting a DO loop:

DO 10 X = 1, 10

In FORTRAN, spaces are never significant outside of a quoted string. Until the parser sees the comma, this is a perfectly valid assignment of 1 to a variable called “DO10X”. Once the parser encounters the comma, it needs to reparse the statement to see if it’s an error or just some other sort of statement. Woe to the European programmer who intended it to be an assignment of the value “1,10” (1.10 for Americans) and got a loop instead.

Pascal was intended only to demonstrate that a language could be designed with a sensible syntax. Of course, this resulted in people writing compilers for it, and then educators teaching it. However, the language lacked essential features, like separate compilation. These were added by compiler writers, often in a haphazard fashion.

Back when Digital Equipment Corporation was the #2 computer manufacturer, their documentation highlighted vendor extensions to languages by using colored text for the non-standard features. The FORTRAN manual had a sparse sprinkling of colored text, while about half of the Pascal manual was printed in red.

Beginners expecting the autorouter to magically design their PCB are not expecting to perform this stage.
It can take a lot of effort and again experience.

If Kicad had an efficient autorouter, I’m trying to imagine the number of questions arising starting with “Why doesn’t the autorouter?” … probably need a whole new forum.

2 Likes

It also was probably operating on a 10+ layer board. Probably with blind or buried vias.

Autorouters get significantly more useful the more routing space you give them. VLSI is a good example–autorouters SUCKED until they got enough layers of metal. Once they got 3 or 4 unobstructed layers, suddenly autorouters got really useful.

The problem is that the vast majority of PCBs are 2 or 4 layer designs (6 max) with large through vias that obstruct all layers. This is a highly obstructed system where you might not even be able to flip the order of two wires because you can’t fit the vias. Autorouters are notoriously lousy in this kind of super-constrained system.

For example, I have personally changed chips in order to flip the ordering of the SCL/SDA pins on a 2-layer board, for example. An autorouter simply can’t do that.

Yeah, it’s awfully nice to have an autorouter hook up your SDRAM bus. However, if you do that often enough, you’re also missing a whole slate of other features that KiCad doesn’t implement. You’ll cough up $250K for one of the big boys.

Although, to be fair, if you agreed to pour a megabuck annually on the KiCad developers, they’d probably be willing to allocate a person to work on an autorouter.

1 Like

If this is an issue, it’s better to avoid to make any software … right? At the end, when you do something expect questions. Or just avoid to do that something … So, even kICAD shouldn’t be there, then …

No. You read more into the post than is there. There simply has to be limits to any software given the available resources.

2 Likes

Question: What do we think the next incremental step in layout automation should be for Kicad? (This may already on a roadmap or GitLab already somewhere.) What gives the most bang for the developer buck (read: time)?

I would be curious to know whether semi-automated bus routing would be a huge effort based on the current Interactive Routing code. Similar to differential pair routing, but routing 4 or 8 traces at once in walk-around mode.