Tell us about the tools in your toolchain

It would be really interesting to know what tools your hardware project uses. Are there proprietary tools you can’t avoid? Do the tools you use work well together?

For example. The OpenFlexure Microscope hardware toolchain is:

  • OpenSCAD - For CAD, this generates STLs and renders
  • SCA2D - Our own program for analysing OpenSCAD code
  • ADMesh - To check the STLs
  • Inkscape - Annotates the renders
  • GitBuilding - Creates documentation
  • Python, Bash, Docker, and GitLab CI - Automated build scripts that create up to date documentation and STLs after each change using the programs above.
  • Git - Version control
  • GitLab - Collaboration and project managment
  • Prusa Slicer - To create G-code

Probably the biggest wish we would have is better ways to interact between our core codebase in OpenSCAD with other graphical CAD so others can easily make accessories. Also more complete assembly handling in OpenSCAD so that it is easier to export colour 3D models that can be animated for assembly steps.

Tell us about your toolchain!


(I think you meant to link the OpenFlexure Microscope.)

My toolchain is mainly KiCad. I only really do electronics when it comes to hardware :person_shrugging: . I do put projects up on Github/Gitlab and of course. One cool KiCad plugin that’s also built into Kitspace is Interactive HTML BOM that gives us the handy interactive assembly guides. Another piece that we make major use of is Tracespace for Gerber renders and I’m also very excited about the upcoming KiCanvas.

I think the KiCad story for Git has gotten better and better over the years. The ability to do things in CI (Gitlab CI or Github Actions for instance) is going to improve with the next release (v7) as there will be more CLI capabilities (this has been a major pain for a while).


Thanks Kaspar, I have fixed my link.

It is exciting to get more CLI options for KiCAD. Primarily the data is in text files for a KiCAD project. When you make small changes does the Git diff make any sense or does it tend to be tonnes of changes all over the file anyway?

It’s gotten a bit better because use of timestamps is being phased out. You can still get random re-ordering of things and it’s still not really useful to look at the diffs themselves. There’s platforms like that apparently give you better diffs and reviewing features, and there’s also more scripty solutions to that sort of thing, but I’ve never been part of any project where I’ve seen them used (I did try and use Cadlab with Valarian on Openflexure but I don’t think he ever even looked at it).


I am a core contributor to CadQuery and a fan of CodeCAD (programmatic CAD), so my CAD tool chain leans more toward that side of things, although I have created workbenches for FreeCAD.

  • CadQuery - Python API for 2D and 3D CAD
  • Semblage - My own CAD project (currently in alpha) that has a mouse-driven interface similar to FreeCAD or Fusion360, but which converts that to CadQuery code on the back end. The idea is to merge the ease-of-use of traditional CAD with the power of CodeCAD.
  • KiCAD - Circuit design. I’m a total novice with KiCAD, but I have created a board that I was able to prototype myself on a CNC and then order from OSHPark.
  • GitBuilding - Open hardware project documentation. I really like the foundations of GitBuilding and would like to see this project get support to move it forward. I appreciate the work that @julianstirling and others have put into it so far.
  • Git - Version control
  • GitHub - Most of the code and projects I collaborate on are available here.
  • GitLab - Use this mainly for collaborating with the KiCAD 3D modelling team, which uses CadQuery.
  • Codeberg - Have been trying this out for hosting hardware projects. It is meant to be a more community-based GitHub.
  • Python/GDScript/Processing (Arduino)/C/Other - Languages that I use a lot in my open source and open hardware work.
  • Arduino - I use the Arduino IDE and different forms of Arduino hardware a lot for prototyping, simple instrumentation, control, etc.
  • Raspberry Pi - Used for everything from 3D printer control (OctoPi), to servers, to remote IO. RPi 3 is my most commonly used version.
  • Prusa i3 Mk2 - My main 3D printer that produces a lot of my prototypes and finished products.
  • Prusa Sclicer - The slicer software available from Prusa Research. I use this constantly, and the new 2.6 alpha has the ability to measure features on your STL/AMF/3MF model, which could really help with things like the upcoming Hackathon.
  • Candle CNC - This is getting to the point where it should probably be considered abandonware, but it has some really nice features that make it easier to prototype circuit boards on CNC machines.
  • Linux/Ubuntu - I run Linux almost all the time for almost everything I do, and Ubuntu 20.04 is my current daily driver.

I’m sure I can think of others, but I’ll stop there.

1 Like

As an industrial designer, I have been ‘raised’ by proprietary software and looking to replace my workflow with open-source alternatives. I must say, so far it is frustrating with the interfaces being ridiculously different (yes FreeCAD I’m looking at you!!) but here is the plan moving forth with my desired tool-chain:

  • Sketching (Pixel): Adobe Photoshop → GIMP
  • Refinement (Vector): Adobe Illustrator → Inkscape
  • Sharing (Layouti): Adobe Indesign → ??
  • Mechanical Engineering (CAD): PTC Creo/OnShape, Autodesk Fusion → FreeCAD
  • Surface Modelling (CAD): Rhino3D/Grasshopper → Blender
  • Render: KeyShot → Blender
  • 3D Slicing (FDM): Cura
  • 3D Slicing (Resin): Chitubox → ??

I’m pretty certain I can get some tips on improving my workflow and what tools to use. Also maybe just general tips on to transition using free software.


As developer of FreeCAD I am using it of course the most.

As medical engineer, there is a lot of math to do and I still rely on an old license of MuPAD: MuPAD - Wikipedia
There are OpenSource alternatives like SciLab: Scilab - Wikipedia or Octave: GNU Octave - Wikipedia
However, they all lack a user-firendly way to click result diagrams and plot together. Instead one has to “program” the diagrams which costs too much time and one needs to learn commands. Personally, I cannot memorize commands, forget them all the time and therefore rely on a GUI. For manufacturing of parts we have special tools and software. For the 3D-printing I use besides FreeCAD only ChiTuBox as slicer software because it is supported by our printers.

For data analysis I like MagicPlot (non-free) because of its intuitive UI, but I also use LabPlot:

The micro controllers are usually Arduino. Personally, I often rely on TinyCircuits: because they offer OpenSource firmware.

For our products we found a nice solution: we sell the hardware but the software is for free and also OpenSource. This opens doors because our customers can program connections to our hardware starting with the software we provide for free.
The OpenSource software is written with Lazarus:
because its license allows the usage also for commercial products and it is the only GUI toolset I found which is free software and available also on Mac and Linux.

As a typical engineer, I live in the Microsoft world, so we use Office 365, Edge browser, Teams etc. Only for vector drawings we use Inkscape.
For CAD we nowadays use Creo PTC and FreeCAD will be migrated out (FreeCAD designs have to be redrawn in Creo).
For math, Matlab is the main choice and scripts from other math software will be migrated to it.

Allow me a general issue with open tools:
The problem with OpenSource software is that as a company the time your engineers (with a high salary) need to fulfill a task counts the most. For proprietary software you often have ergonomic GUI and professional support. So your people are more productive saving you salary and you can pay someone to fix a bug. With OpenSource you can only try to hire a student who might be able to locate the bug, send in a patch and get the issue you suffer fixed in a few weeks. And in the meantime your engineers have to fiddle around with workarounds or are simply slower. Therefore I see in my work fields that companies don’t like to use OpenSource. Not that they don’t like free software but because of the money. OpenSource might be free to use but can be expensive too.
Therefore I think in the long run, only projects will be used by companies that can somehow offer paid support. LibreOffice is a good example. You can buy for it support from companies like Collabora. Their fixes are backported to the main branch and this way the whole project and the user community benefits.

1 Like

Dear all,

My apologies, because it was such an extensive post, I decided to create a new topic for the tools I used in the Fab Academy program that I followed. You can find the post here.



1 Like