In this article I describe some of the tools I use on a regular basis in the design, development and testing of electronic devices. Of course, every project is different, and things are always evolving, but, in this article, I will focus on those tools I keep coming back to.
Some of the tools I use are open source, while others are fully commercial. You can find free alternatives for most of the latter, so don’t feel you need to spend big. This is not meant to be a review or recommendation of any specific tool – just a description of what I find helpful. You will no doubt have your own opinion!
For me, the first stage for any project (assuming the broad requirements are established) is circuit design and component selection. For this I use my all-time favorite tool, and the one I have used consistently for my entire career as an electrical engineer – pencil and paper. I have found no real substitute so far, although for the last few years I have supplemented my physical notebook with a digital note-taking tool such as One-Note or Notability on a tablet. These latter have the advantage of being electronically fileable and searchable and also allows for capture of data sheet images or web-page grabs.
At this stage of the design, we have to select the key components. If possible, I will use components that I have on hand and have used successfully before. This saves money obviously, but it also saves time and reduces risk since I will have already created and validated the component footprint and 3D model for these parts. I use a simple home-made component database built using the Ninox application, that keeps track of the locations, stock levels, and purchasing information for the components I have used previously.
If I need to simulate an analog design, I use LTspice. This is a great (free) tool from Analog Devices (formerly Linear technology). It comes complete with models for most of the LT/AD devices but its relatively easy to add models from other vendors. I do sometimes also use MATLAB/Simulink if I have to simulate control circuits. It’s an expensive option, but there are open-source alternatives such as Octave or Scilab.
If a microcontroller is involved, I will also use Microsoft Excel to create a pin-out table. This is important make sure the GPIO pins are mapped to the right peripheral, pin direction, voltage tolerance level and any pull-ups or pull-downs. This spreadsheet is then used to configure the IO when writing the firmware.
Once the circuit design process is complete, I move on to mechanical design in order to determine PCB outline and placement of critical components like connectors. I use Fusion360 for this since I like to do this in 3D. Fusion360 does include schematic capture and PCB layout (since they acquired Eagle) and so could be used as a complete EDA tool however I export the mechanical drawings and use Altium’s Circuit Studio for schematic capture and PCB layout.
When it comes to hardware construction and board bring-up I use all the usual test equipment. I will call out the Saleae range of logic analyzers as one of the most-used tools in my lab. While my mixed signal ‘scope has all the necessary logic decoding features, the form factor and UI of the Saleae analyzers is just so convenient I find myself reaching for it again and again.
Embedded systems require firmware, and firmware requires code. Sometimes its easiest to use the IDE that the microcontroller vendor provides, since the toolchain is pre-configured and there will likely be a range of integrated tools and code generators that can really help. Nevertheless, I find myself using Microsoft’s Visual Studio Code (VS Code) in more and more projects lately. It is a very nice code editor and the myriad plugins available make it very customizable and flexible.
Code also means version control. Like the rest of the world, I use Git for code versioning (it integrates nicely with VS Code). I also use it for versioning my PCB/Schematic files although these are binary files so there are some limitations. Documenting a completed project depends on the client, but usually comes down to a Word document and maybe some diagrams, along with the design files and code repository.
All of these tools help me with the design and implementation of electronics projects although they each have their quirks and limitations. You will no doubt have your own favorites and frustrations.
“Fusion 360 | Get Prices & Buy Fusion 360 | Autodesk Australia.” Accessed November 21, 2022. https://www.autodesk.com.au/products/fusion-360/overview.
“Git.” Accessed November 21, 2022. https://git-scm.com/.
“Logic Analyzers from Saleae – #1 with Professional Engineers.” Accessed November 21, 2022. https://www.saleae.com/.
“LTspice Simulator | Analog Devices.” Accessed November 21, 2022. https://www.analog.com/en/design-center/design-tools-and-calculators/ltspice-simulator.html.
“MATLAB – MathWorks.” Accessed November 21, 2022. https://au.mathworks.com/products/matlab.html.
“Microsoft OneNote Digital Note Taking App | Microsoft 365.” Accessed November 21, 2022. https://www.microsoft.com/en-us/microsoft-365/onenote/digital-note-taking-app.
“Ninox Database.” Accessed November 21, 2022. https://ninox.com/en.
“Notability.” Accessed November 21, 2022. https://notability.com/.
“Professional PCB Design Tool | CircuitStudio.” Accessed November 21, 2022. https://www.altium.com/circuitstudio/.
Visual Studio. “Visual Studio: IDE and Code Editor for Software Developers and Teams.” Accessed November 21, 2022. https://visualstudio.microsoft.com.Sponsor this Article
Andrew Levido (firstname.lastname@example.org) earned a bachelor’s degree in Electrical Engineering in Sydney, Australia, in 1986. He worked for several years in R&D for power electronics and telecommunication companies before moving into management roles. Andrew has maintained a hands-on interest in electronics, particularly embedded systems, power electronics, and control theory in his free time. Over the years he has written a number of articles for various electronics publications and occasionally provides consulting services as time allows.