Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Best open source and/or free EDA tooling
123 points by lelanthran 8 months ago | hide | past | favorite | 68 comments
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.




Kicad. Went from zero to fully working, quite complex digital board with it.

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.


>> 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.

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.


It’s great that FreeCAD is FOSS and it is good for simple enough use cases but I had to ditch it for fusion 360 for my use case, it just can’t do things I needed for injection molding well like negatives and chamfers and other subtle angular operations of parts. So take into consideration what you’re doing. IMO for something precise like this use case it may not be good enough


There is some good work going into FreeCAD right now. They're putting more structure into the project and working on some much needed fixes that will be big QOL improvements. A fix to the topological naming problem is due in the next release, for example.

https://ondsel.com/blog/ondsel-365/


This is awesome but the fundamental problem with FreeCAD is that it uses OCCT under the hood which has some pretty fundamental flaws. Unfortunately one does not simply write or replace a geometry kernel so there’s not really a solution on the horizon for a lot of stuff that OCCT doesn’t do well. There have been some efforts at a newer better open source geometry kernel but writing a geometry kernel that supports everything a 3D modeler needs is a massive undertaking

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


FreeCAD has some pretty hefty backing from the likes of Opulo, and a history (like KiCAD) of working with CERN and other groups like them. Fusion def has a larger laundry list of features, but if the question is "What open source cad tools exist" (and given the question is explicitly asking about open source electronics design, so I'd assume they want to stick with open source for model design too), then the answer is gonna likely be either FreeCAD or OpenSCAD. And given that most popular cad and edm software has repeated pushed back on the open source community (and given they are profit driven companies, they eventually have to), I don't blame a person for seeking exclusively open source tools. It's the same reason I decided FreeCAD's flaws are worth working through. I already had both Eagle and Fusion force me to scramble to recreate projects before, I wouldn't wish that upon anyone else who is doing this under- or at-cost.


> pretty hefty backing from the likes of Opulo

... 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?


Totally agree. Just trying to help other people prevent the same thing that happened to me, which was spend time investing in a tool significantly in the design phase (FreeCAD) and then find out the tool just straight up couldn’t meet the requirements I needed it to. So in my case the question is “what open source tools exist that can do XYZ” and the answer is, unfortunately, none of them. So check and make sure XYZ is possible with FreeCAD when you evaluate it and don’t assume like I did that because it’s mentioned in the same breath as something like Fusion360 that they are equivalent enough.

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.


In this case, footprint landing pads are extremely simple. I do agree about the solver though, I've run into so many issues with it that should be simple but end up either stalling or conflicting in ways it shouldn't.


the crustier EEs among us have been burned by downloaded symbols. It’s often better to make your own symbols and footprints unless you have a high quality source from the manufacturer. Even then, some symbols are not organized in a logical way. I personally make all symbols/footprints not in the kicad standard library.


> Use ultra librarian for parts when possible. They're usually better.

Can you please explain why / in a what way they are better ?


They have better footprints and usually more fleshed out symbols that are more visually descriptive. Component Search Engine has more but I've had a few erroneous footprints fall through and they're usually larger or missing things like courtyards etc.

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.


Thank you! I use standard KiCAD library for 95-98% of components, the rest few I design by myself. I've never had any issues with automated assembly. Anyways, I will check into UL.

I admit that KiCAD libs sometimes has broken 3D models, for many components 3D models are missing.


Kicad is the best free EDA I've used and I know many others that use it. The active development and large community make it a no-brainer.

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.


Do you have any example(s) of an advanced KiCAD board?



This is the most awesome thing I've come across on HN in recent months if not years!


> Made With

> KiCAD EDA > OpenSCAD > LUFA > Autodesk Fusion (Case parts)

This is really awesome. Kudos for KiCAD and OpenSCAD.


That is impressive!


Another example: the HackRF SDR board was done in KiCAD

https://github.com/greatscottgadgets/hackrf


Kicad has a bunch of examples of boards made with Kicad on their homepage.

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://github.com/oro-os/link/tree/master/pcb/link-x86-obt

Not the best laid out PCB or the best project structure. But it works, and it's fairly complex.


KiCad is by far the best. It is not as powerful as commercial tools: a lot of its high frequency design tools are simple calculators, and so a lot of manual work is required where you would simply set constraints in other packages. It has a neat design rule scripting language which you can use to ensure your requirements are met though. I’ve done a couple boards with frequencies up to the UHF band and don’t think I’d want to go any higher in KiCad. That being said, for simple boards it’s plenty powerful.


  up to the UHF band and don’t think I’d want to go any higher in KiCad
Didn’t Michael Ossmann create the HackRF on Kicad?


You can do anything in kicad; altium isn't doing anything special to make something possible that's not possible in kicad.

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.


Yeah it’s certainly possible, it’s just personally I found it tedious.


ah ok, I read it in the "I recommend" sense.



+1

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.


>> 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.


Used horizon for many projects so far. Works perfectly fine and the UI is much better than KiCADs


If you're sending things to JLCPCB for manufacturing, easyeda.com is useful. I find the editor somewhat annoying, but the component library is huge, and you can easily order PCBs from JLCPCB and components from LCSC. (They're all the same organization.)

I personally prefer KiCAD, but use easyeda.com when I don't have KiCAD around. The new nudge router in KiCAD is pretty nice.


There is a python script[1] that pulls down LCSC parts as kicad symbols and footprints.

[1] https://github.com/uPesy/easyeda2kicad.py


easyida and the jlcpcb offerings are good and unbeatable prices but i recommend them only for designs you are ok with considering public


For quick small boards, I don't think you can beat easyeda. They've got a built in community parts library which makes it super easy to whip something together. I made a little adapter to run RCA over ethernet and it took about 15min.


KiCad. It's very stable and offers features that some of the professional programs lack. Extensive part library built-in, and easy to extend. Under active development.


I haven't found a reason to try it yet, but: https://horizon-eda.org/

Or maybe KiCad.


Horizon EDA is a much better tool than Kicad. It is extremely well written on a modern foundation and as a result it doesn’t need the giant list of bug fixes that kicad constantly receives. Library management is the most fundamental improvement over kicad.

LibrePCB is also worthy of note and seems aimed at Eagle users. Also fundamentally more modern and solid than kicad.


I am a long time user/contributer to horizon-eda. In fact I made their original landing page at https://horizon-eda.org and designed the logo.

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 know this is a bit of a useless comment, but doesn't only offering a Windows package prevent most people who want to use this from trying it? Horizon might be amazing, but if I can't run it on Linux, I've closed the tab.


I've been very happily using Horizon on Ubuntu and Linux Mint for years.

And to be clear I'm not an advanced Linux user, I just followed the instructions here and I can install and update it in the Software GUI like any other package: https://horizon-eda.readthedocs.io/en/latest/installation.ht...


There's a Linux package?! Then it's a massive blunder that the "Download" button on the home page goes to the GitHub releases, where there's only a Windows installer.


I think there's a misunderstanding there, Horizon EDA is available as a standard distro package; there's no "Linux package download" because there's no need for one (and creating packages as a 3rd party is a minefield.)


That makes sense, though the home page should definitely link to something that says that, instead of a single downloadable Windows installer.


Huh? There is a Debian package: https://horizon-eda.readthedocs.io/en/latest/installation.ht...

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 haven't used Kicad in years. I thought they improved significantly in that time span, while HorizonEDA was stagnating at it's admittedly very good level of quality.

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.


I am repelled by the notion that software requires a constant stream of tweaks to be healthy. If you look at the issues on GitHub, there are basically no open bugs there; it's all feature requests.

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.


Following. Inventor of OrCAD CIS (Component Information System) here. Still using an old version of Eagle (7.3.0) before it got neutered by Autodesk. I mostly just use schematic capture for documentation, rarely layout an actual pcb, and just use a solderable breadboard for hobby projects. Kicad has been on my list to check out, comments here most appreciated. Didn't know about Horizon, which also sounds worthy.


Ran across Orcad CIS for the first time last week while downloading symbol files from Intel/Altera. Trying to convert to Altium. Is there any documentation that exists for sucking out symbol info or do I need a full install of Orcad?


Altium claims to have a translator that covers symbols: https://www.altium.com/documentation/altium-designer/orcad-i...


KiCAD. Routing 10 layer PCB with 2000 pin BGA and LPDDR4 was easy.

Also I desined a fully OSHW FPGA board in KiCAD (RPi style): https://github.com/Fabmicro-LLC/Karnix_ASB-254


I recently did my first pcb in kicad and it was breeze. Not a single crash. It even has 3d view. Is in ubuntu repo. Manufactured PCB at jlcpcb and received 5 boards in 16 days for $4.10


For any of you data folks out there:

In this context EDA is Electronic Design Automation, not Exploratory Data Analysis


Kicad is by far the best and most feature complete. I've used it to make dozens of boards.


Autodesk EAGLE (formerly CadSoft) has a free tier (EAGLE Free) and it's a pretty decent layout program! I made numerous layouts with the standard license when it was still owend by Cadsoft and I found it comparably easy to use. I found a lot of the EDA software had either a very steep learning curve at the start or catered to "professional" workflows such as having different persons that do the schematic and layout that don't matter to me at home. For example, Eagle offered forward-and-backward connection between schematic and layout for a long time, whereas Kicad didn't. Meaning if I made a change in the schematic, I had to jump through hoops to get a netlist change into my schematic. EAGLE was much more focused on the workflow of one person doing the schematic and layout, I felt. Much closer to "getting the PCB layout done", with an easy parts editor to create custom parts etc. The flipside is that it breaks down quickly when you have more than 2 layers, I think. I don't remember any easy tools to e.g. route waveguides or equalize pairs of differential tracks.

But these days, give Kicad a try. Since CERN poured resources into it, it became a very capable EDA tool.


I would stay away from Eagle. It's definitely a great tool, and it's used by a lot of small business hacker types like Sparkfun, but the licensing is a disaster since it was bought by Autodesk.


Another reason to stay away from Eagle; Autodesk announced they are killing off the product.

https://www.autodesk.com/products/fusion-360/blog/future-of-...


Anyone got any recommendations for FOSS Generative Design instead of F360.


Freecad for the graphical interface openscad, CadQuery or similar for a scripted generative design language.

i guess webcad (jsketcher ) or dune are options, but i have nothing to say about them.


Often when people talk about generative design what they mean is topology optimisation. CadQuery isn't the tool for that.

I've seen basic 2d topology optimisation in FreeCAD, but nothing approaching what some of the paid tooling can do.


Aside from KiCad you can also look at EasyEda (think it’s from jlc), I’m still using diptrace (haven’t migrated to kiCad yet :$)


There is also LibrePCB: https://librepcb.org/



Kicad, by a mile. I use Allegro professionally and would drop it for Kicad in a heartbeat if I could convince my employer to make the switch.


Its kicad


I've been curious to check out https://www.flux.ai/, but haven't played with it much yet.


damn acronyms. I was genuinely excited to learn about more Exploratory Data Analysis tools.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: