Melting KiCad
mitxela.com
mitxela.com
TopoR, an EDA program developed and maintained by the Russian company Eremex:
> https://en.wikipedia.org/wiki/TopoR
"The most recognizable feature of TopoR is the absence of preferred routing directions, which results in unusual looking PCBs."
I really love things like this that break the non-technical cargo-cultish norms in a technical field. There's no electrical reason to wiggle wires around at 45 degrees, but you're looked down upon and made to feel bad if you don't. Technically, it just add parasitics.
One could claim "it's pride/art", well why constrain yourself to 45 degree lines if you're making art!?
I have zero experience with boards like what this TopoR router can create, but the sample images are chaos to my eyes and difficult to follow. That could just be what I'm used to seeing, however... but it looks like paint flung onto a canvas vs. highway lanes to me.
That got to be the style and (almost) nobody changed since then.
No, but there can be various kinds of over-etch issues in corners that sharp corners make worse.
> Technically, it just add parasitics.
Depends. 2 45 degree bends is a better approximation of a smooth arc than a 90 degree sharp corner.
Yes, arcs are even better electrically and better for physical manufacturing. But they are annoying to nudge around. Note that the author of this article suggests saving the "melting" for the very end of the process, because making things all smooth and melty makes it harder to edit the board. It's a bit niche. And as a result, the software at both board fabs and for engineers deals a bit worse from CAD standpoint. And in turn, even worse from a designer point of view.
I spend a bit of time trying to minimize angles (e.g. if I can make a 30 degree turn further away going to a pad instead of a 45 degree one, that's nice-- straighter routing), spreading traces more, and teardropping.
Also, the GDSII format for IC does not handle curves well. Unlike DXF, it can’t handle a circle, so has to decimate it into a polygon.
When doing signal integrity analysis on PCB, the tools can break those long runs of straight, parallel lines into closed form models (i.e. coupled transmission lines) which greatly speeds up the analysis. With a bunch of curves, you can’t do that, and it has to break those out for EM analysis.
If one could easily make square via holes in PCB, those would be preferable for situations like grounding vias as they better terminate the EM wave.
Similarly I don't see why thermal calculations would require a particular geometry. That would be a very strange way to do things.
I imagine a curve could have more error, or require more time, with an FTDT simulation, compared to something grid like.
I would prefer some sort of "Smart EDA" that automatically understands that I want to place a switch mode power supply with X constraints here, then automatically rates resistors, capacitors, inductors, mosfets, etc and automatically picks manufactured components from mouser. I could get behind that. If the software does that part I will gladly do component placement and routing myself!
Almost everybody here has worked in hardware before. Bunch of people from Apple, Siemens, NASA, and other places
> https://web.archive.org/web/20170718184145/https://pdfs.sema...
With an SMT solver you could specify similar constraints.
It reminds me of Boldport, who made project kits that were also works of art [0]. The funky PCB traces and shapes were all hand-drawn, I believe, rather than drawn up in a regular EDA program.
It was an interesting learning experience that brought me much closer to being able to create functional PCBs. The 45° angled traces however are just such a part of the classic aesthetic it's hard to go for something else. I'll definitely try some more exotic ones in the future.
Libre is already good enough in all ways except the fact you have to make a lot of parts yourself(Which is pretty fast, but still), for anything simple.
Anything it can't do, is probably a high budget kind of thing and you can afford the really good tools(But Libre might get there too, if it keeps going for another 5 years)
I tried KiCad, and it seems like just getting to the starting point of beginning to route a PCB requires an enormous amount of sheer physical labor that left me with an eyestrain headache.
I'm glad we've got engineers to do this work, but I also kind of pity them, and have gained a better understanding of why projects take so long. I get it that at the end of the day, they need to be able to push a button and have a finished PCB stuffed with parts drop out of an automated machine in China. But I don't, and I think that for folks like hobbyists and hackers, going directly from a hand drawn schematic to manual layout in a simple PCB editor may still be the winning ticket.
I forced myself though to use/learn KiCad for a keyboard project. Worked. I've done another 3 or 4 new PCBs since and each one gets easier (no surprise).
The old one made it quite difficult to use anyone but their mfg service (obviously their business model).
And it's like the difference between programming and software development -- the latter involves a lot more moving parts and needs more sophisticated tools to manage all of them.
At home, I like to order simple boards from lower cost suppliers, so I've been using FreePCB, and that's what I'm mainly interested in upgrading.
I had to make a part using KiCad as well, and even that process was straightforward. I'm excited to work on my next layout project now after having used it. Bonus points for the 3D rendering mode which worked spectacularly on Ubuntu out of the box. It was very handy to visualize the finished board before assembly.
Fellow Orcad user for almost a decade; was absolutely thrilled to move to kicad.
LibrePCB sadly doesn't have hierarhical schematics, and they've saved me a lot of time and effort. I hear Horizon EDA now has them, though, I'll have to try it.
I do find some of the routing actions in PCBnew to be a bit buggy in v6. Weird selections, and a lot of adding short trace segments where none seem to be necessary.
I also don't like having to give up the PCB and SCH diff tools that emerged around the v5 file format ecosystem. Those make working collaboratively in Kicad a breeze.
If I could wave a wand and change one thing about kicad, it would be support for parts databases. Having database managed component libraries with sourcing information stored in the db makes a ton of stuff about designing electronics easier.
I wish it had ready to use footprints (other than basic resistors, caps, etc), especially from LCSC catalogue.
I haven't tried LibrePCB though.
As soon as 6.0 was released we switched all future work to KiCad from Altium Designer. This after held licenses for AD going back to P-CAD days (2006, if I remember correctly) and previously using OrCAD and other professional tools. In short, I got sick and tired of sending thousands of dollars per year to Altium for them to burn the cash adding cloud-based functionality nobody I know wants at all. As a result, AD is just piled-on with bugs, issues, inconsistencies and you can pretty much expect every single update to deliver new bugs.
Anyhow, we've done several boards with KiCAD. We are not sorry at all that we made the change. Sure, it could be improved. The good news is, it will. Also, we are happy to financially contribute towards KiCad development because we know it will not go towards bullshit designed to try to sell the company to a larger company (Altium tried to attract Autodesk, and failed --ADSK probably saw the mess AD had become and backed away).
Anyhow, I think KiCad is good for probably 95%, if not 99%, of any board anyone might want to design. I go back to the early 80's for PCB design, which means that I have done some pretty advanced boards with tools that were far more primitive than KiCad.
As a side note, being able to use Python to drive aspects of KiCad is awesome. We've already created a number of useful utilities relevant to our work.
Kicad 6 feels a bit like a modernized version of Protel 99, with far less bugs too. So it is like Altium going back in time and choosing the correct development path instead of all the nonsense and disrespect for its users of the last two decades.
[EDIT: To clarify, what I am saying here is that, given all needs and desired features and functionality of EDA tools, I doubt anyone has been clamoring for a shift to the cloud because locally hosted software did not allow them to do the required work effectively.
For example: Had Altium devoted tens of millions of dollars towards the development of truly useful auto-routing, design tools and advanced library editing/maintenance tools this would have been a million times more valuable to every single one of their customers.]
I am sure there are use cases for this. However, the negatives, in my experience, by far outweigh the positives. We cannot have designs in the cloud. Period. We cannot subvert our PDM/PLM (Project Data Management/Project Lifecycle Management) to the whims of each software vendor.
Simple example: Today all of our PDM is handled through local directory structures where you can find and access design files for electrical, mechanical, optical, software and other engineering disciplines involved in product development. This also includes testing (for each of the above) and manufacturing (for each of the above). Now, multiply that by the equivalent to commits, release candidates, releases to manufacturing and product releases for, again, each of the above disciplines. Etc.
In short, physical hardware/software products are not distilled down to a single set of files. The idea of placing your EDA work on the cloud while everything else is stored and maintained in a local managed repository is nothing less than ludicrous. This is also the reason for which we use Solidworks instead of Fusion 360 (of which we own licenses but only use it in a very limited context).
The thought that a company like Altium would actually believe that non trivial companies would say "Oh, OK, we'll move all of our EDA work to the cloud now" is nothing less than ignorant. The circuit board is just one element of a product, and, sometimes a very minor part.
> the nonsense and disrespect for its users of the last two decades.
Exactly. For the reasons I listed above and more.
Once you get to the point where the thousands of dollars you send a software vendor every year are being used for crap that is utterly useless and irrelevant to you (and, I argue, the majority of users) it's time to move on. They don't get it. And I hope they pay for it with a massive loss of revenue. KiCad is actually at the point where most open minded professionals would have no problems at all. Sure, the GUI is kind of "retro" and it might not be as visually refined as other tools. Who the "*ck" cares? Seriously. It gets the job done. That's all that matters.
Watch this and see what portions of it align with the kind of work you do:
https://www.youtube.com/watch?v=C7-8nUU6e3E
Also, like I said in my prior comment, Python scripting turns KiCad into a very powerful tool. A loot of these videos are outdated (prior versions). The point is to illustrate the range of ideas that can be covered using Python.
In terms of the pictured old pcbs with rounded traces, I wonder if when applying tape "on film" or "on mylar" it was rather easy, when applying narrow fixed-width tape for a track, to bend and follow curves while doing so. Thus, I presume, one could both avoid cutting the tape at bends, and follow smooth curves already drafted by hand.
Here's what came up for me with a search for datak tape:
Markers, on the other hand... markers were perfect for that.
Horizon EDA is decent and I've heard good things about LibrePCB but not tried it.
DesignSpark PCB is also a fairly reasonable option. Certainly better than Eagle and a better UX than KiCAD. Not open source, but not limited in any way like most commercial options are.
Design Rule Checking (DRC) is a process used to identify errors and mismatches such as spacing & trace widths in a PCB design/layout.
Things like minimum/maximum trace widths, minimum/maximum via size, via types (buried, blind, tented, etc), pad size, solder mask tolerances, component separation distances, etc.
This often means you need to choose a fab before you design your board... and changing to a different fab later on might mean you have to redesign part/all of your board (particularly if you are pushing tolerances). Each fab has different abilities and requirements.
This will save you from redesign work, though realistically it's saving you from vendor lock-in and price gouging. Sierra can manufacture pretty much anything... but who can afford them?
Are most manufacturers equipped to print boards with these curves - would it impact the cost of printing?
I've been working on a web-based drc & renderer and the math to support these looks like a fun challenge.
I do wish there was some kind of central directory of plugins though.
Did yours require labelling traces as low, med, and high frequency?
Automatic placement/routing would become a crutch that would prevent folks from learning what actually is necessary to design a half-decent PCB.
Folks that need auto-routing won't be aware/skilled enough to notice and fix problems before sending the design off to be fab'ed, and then will spend unnecessary amounts of time debugging a broken board only to learn what they should have before sending it off... or will grow frustrated and think the software sucks or something.
There's a lot more to PCB design than just connecting nets together, and skipping the step where you learn how to do it properly would be like refusing to learn to code and instead only want to use no-code UI widgets. It will bite you hard one day and you will lack the skillset to know why.
Besides that... auto-placement is really an impossible task, even for the "big guys" like Altium. The editor cannot possibly know what's inside the component's data sheet, or infer best practices etc. Things like this one particular switching boost converter chip requires a capacitor on the output no further than 0.2" away... etc. So any auto-placement or auto-route feature will be half-baked at it's best, even if done well.
Anyway, just thinking out loud. There's endless potentional issues with this sort of stuff, and lots of heuristics needed.
It definitely wouldn't be a shortcut tool, since all this stuff would need to be set up. It would help a lot with making rapid changes to designs, and it'd tie in very well with circuit design as code.
Auto-placement is really a problem though. Good PCB design is nearly 100% about placement before you even start routing, and requires a higher level understanding of the design to get right. The last thing you want on an even semi-non-trivial design is to have something start moving your components and traces around in a non-controlled way.
Part of the problem is your "Pros" don't need/want or use either feature, and your amateurs don't understand how to solve un-obvious (and obvious!) issues that the auto-placer/router might introduce until it's too late and the board has been fab'ed and money wasted.
Which means the folks making the design software don't really have a huge interest in making these features at all, or even improving them if they exist.
Honestly, one of the biggest reasons autorouters aren't used is they take as long to set up as just routing it yourself, and the result is usually inferior. So setup time is crucial.
This approach also wouldn't help one bit with making changes if input data can get stale. And it can and will if system-level measurements are involved. Honestly, making changes to a known-good layout is actually really easy. It's greenfield layouts that are hard, or underdocumented ones, or designs previously done by psychotic morons (like past me!).
"Circuit design as code" is an idea that just doesn't work at the system level. We can't even write documentation for many systems. Expressing things precisely enough for a machine to repeat it is folly.