Ask HN: Best open source and/or free EDA tooling
I last needed EDA type tools in 2012. Since then, wherever I was employed, I only wrote software and the actual PCB production was handled by a different team.
I'm getting back into doing it all myself, and the tools I used to use (gEDA) are no longer in the repositories of my distros (debian-based).
What is being used these days to do circuit diagrams, PCB layout, etc? First prize would be something already in many repositories (I see a `lepton` tool which I will try out), but I will accept a second prize of FLOSS or consolation prizes of `free to download, but closed-source`).
TIA, I will read and consider all replies seriously.
69 comments
[ 3.5 ms ] story [ 106 ms ] threadOr maybe KiCad.
LibrePCB is also worthy of note and seems aimed at Eagle users. Also fundamentally more modern and solid than kicad.
What I am missing from HorizonEDA is the ability to set constraints to signals/pads such as maximum and minimum current, voltage, frequency or setting impedance targets.
There is also no easy way to do a simple static current FEM simulation on custom polygon shapes. You can already do this using a chain of four open source tools but it is a lot of manual steps.
You can set a net or net class to have a set of geometric constraints suitable for a particular impedance or current or voltage. This matches or surpasses the capability of every other EDA software that I've used.
I also think it's unreasonable to ask EDA software for a full on FEM simulation. You wouldn't want to do that with the full board geometry anyhow.
During that time I created roughly 10 finished (and working) projects using the software.
The only downside compared to KiCAD is that the official parts library is smaller. But what is in there goes through a review process and is often verified by other builders. There are also fancy things like 3D views, length tuning, alternate footprints, board layouts consisting of multiple boards, ...
If you are one of the people who has no problem creating their own footprints and always wanted to like KiCAD, but is driven insane by the UX, this one might be it.
I run it both on Windows and Linux and it works fine. The only thing it does not run on (as of now) is OSX, because of some GTK-issue, but once that is resolved there is no reason why it couldn't.
I use Altium professionally ($$$) and I feel like Kicad could cover most of the boards I work on. FYI I've seen a few advanced PCB's done in Kicad successfully - just not sure how much manual calculations/work they had to do.
Kicad + the cheap online PCB vendors are a killer combination.
Tons of stuff on par with a Raspberry Pi or BeagleBone Black, with DRAM, eMMC, and PCIe routing, plus all the fine pitch placements for supporting circuitry. PMICs get dense in these applications.
https://source.mnt.re/reform/reform
https://source.mnt.re/reform/pocket-reform
> KiCAD EDA > OpenSCAD > LUFA > Autodesk Fusion (Case parts)
This is really awesome. Kudos for KiCAD and OpenSCAD.
Not the best laid out PCB or the best project structure. But it works, and it's fairly complex.
https://github.com/greatscottgadgets/hackrf
Demo: https://www.youtube.com/watch?v=xr0pdGuJbXQ
But these days, give Kicad a try. Since CERN poured resources into it, it became a very capable EDA tool.
https://www.autodesk.com/products/fusion-360/blog/future-of-...
I personally prefer KiCAD, but use easyeda.com when I don't have KiCAD around. The new nudge router in KiCAD is pretty nice.
[1] https://github.com/uPesy/easyeda2kicad.py
The problem is that it's exceedingly tedious to do in kicad some of the more advanced things that altium and others can do.
Think C vs C++. Nothing C++ does is inherently impossible in C (in terms of observable side effects). For example, RAII is a one liner in C++. In C, it's two lines and some extra thought about control flow. Not impossible, just a bit more mental overhead.
In this context EDA is Electronic Design Automation, not Exploratory Data Analysis
Horizon is beautiful. The creator has also recently started working on a 3D modelling program (Dune3D) in the same style which I am very excited about.
I kind of wish he talked to us about doing a version of Solvespace using OCCT instead, but he's got a lot of good ideas and it will be nice to see where he goes with Dune3D. I can see its Solvespace roots!
Solvespace NURBS shells are completely separate from the sketch entities and constraints, so there's a fairly small API surface to make the change. That separation is also one of the issues preventing a fillet tool though.
i guess webcad (jsketcher ) or dune are options, but i have nothing to say about them.
I've seen basic 2d topology optimisation in FreeCAD, but nothing approaching what some of the paid tooling can do.
A few tips:
Use ultra librarian for parts when possible. They're usually better.
Making your own footprints is a pain but necessary sometimes. FreeCAD is another OSS tool that also has its rough edges but is good enough. Use the sketcher tool and the datasheet to build up all the lines you'd need (including for cutouts, pads, silkscreen, etc), export as DXF, then import into KiCad's footprint editor. You can then switch layers for each line or use them to position pads such that they're fully accurate and you don't have to think too hard about offsets and whatever.
Find (or make!) a good part manager if you're populating your own boards. I wrote some simple REPL around sqlite in Node.js for working with parts, and have a cheapo barcode scanner from Amazon to work with mouser IDs and the like to "check out" parts as I populate. In hindsight, I wish I had written it in Python. I also use this tool to convert the BOM kicad exports into a more reasonable format for buying. I also subtract away the parts in the DB I already have so I don't keep buying extras of stuff. Just an idea.
https://ondsel.com/blog/ondsel-365/
Just to put a very simple use case that is common that I ran into that made me switch to fusion 360. I was designing an enclosure and needed to add a few things that make the part pop out of the mold easier. One example is if you have a box you might build the floor of the box meeting the wall with a 90 degree angle. But a mold actually wants that at a 91 ish degree angle else it “hugs” the inside of the mold as the plastic contracts. Changing this is a trivial 2 button operation in fusion 360. Doing it in freecad is, uh, basically the opposite of that
... A two-man band YouTuber and his mate bootstrapping their first product?
It's a cool product, admirable work, and great that they're supporting FreeCAD (even just in awareness by using it), but can you seriously call it hefty backing from the likes of?
A lot of FOSS tools are often “XYZ is possible but requires 10-30% extra work to achieve”. FreeCAD is not like that in a lot of cases, it’s more like, “XYZ is not possible without rebuilding your model from the ground up, every time”. Which is obviously not something you can do on a product you need to be constantly iterating on. If you’re at home doing a one off to print a piece of your chair that broke that’s totally fine though.
I also love OpenSCAD and its design philosophy and to be frank as a software guy would love if all 3D modelers worked like OpenSCAD. But it also is just far too limiting to do anything professionally like the kind of stuff I mentioned in my parent comment.
I’m always preferring FOSS if I can. FWIW I used KiCAD for the chip design of the product I was working on and it worked beautifully. KiCAD has absolutely come into its own in the last decade or so and is basically a full enough featured alternative that you can select it over its closed source competitors with few qualms. Not so much the case with FreeCAD. Also FWIW KiCAD also uses OCCT under the hood - but an EDA has such fewer requirements of a BRep than a 3D modeler does there is not an issue.
Can you please explain why / in a what way they are better ?
UL also has better 3D models, and more often.
Also, UL often has human-verified or -engineered footprints for more exotic pieces, and splits out things like VDD/VSS into multi-unit symbols unlike CSE. Helps with organizing complex schematics.
The advice I often see is "make all your own footprints" which I agree is a good skill to have but when you're trying to quickly prototype a board and get something done it's not really feasible or ergonomic in Kicad. The amount of different windows you have to go through to populate e.g. mouser/digikey/arrow part numbers to get a usable BOM export is tedious work.
I actually wrote a chrome plugin that scrapes UL and mouser for all of the information then loads it into an existing Kicad symbol library with the models. Took some effort but for some reason this isn't a standardized thing which is a nightmare.
I admit that KiCAD libs sometimes has broken 3D models, for many components 3D models are missing.
For 2D dimensioned drawings Solvespace is much smaller and simpler. You can also use it to create 3D part models exported as Step, but it could use a bit more work for that use case.
Also I desined a fully OSHW FPGA board in KiCAD (RPi style): https://github.com/Fabmicro-LLC/Karnix_ASB-254