Open Source Software Electrical Engineers Should Know About

2 months ago by Sam Holland

‘Open-source software’ (OSS) refers to computer programs whose copyright holders have licensed their source codes to the public to study, modify, and distribute the software freely. Additionally, some of them have thriving online collaborative communities where users can share ideas, utilise and modify the source code for a host of applications.

There is a plethora of OSS available online that is focused on electronic engineering applications. These programs provide royalty-free access to powerful tools for electronics design, verification, testing, and simulation. Many open-source CAD tools are suited to the board-level design of integrated circuits (ICs), (including application-specific integrated circuits, aka ASICs), field-programmable gate arrays, aka FPGAs, and system-level modelling). Here’s a look at some open-source software that electronic engineers can utilise for their projects.

 

Electric

Electric is an electronic design automation (EDA) tool for schematics, the mapping of IC layouts, design simulation, logical effort analysis, design rules checking, and more. Engineers can use it to design a wide variety of ICs, including complementary metal-oxide semiconductors (CMOS), newer and older chip technologies, and abstract ones. Electric is based on the GNU Operating System and compatible with languages such as VHDL and Verilog.

 

naga EDA

naga EDA is an open-source tool for electronic design in C++ and Python.

 

GTKWave

GTKWave is an open-source waveform viewer/hardware description language (HDL) simulation tool that is compatible with 32-bit Linux and Windows. 

 

CircuitMaker

CircuitMaker is a free-to-use EDA software for electronics schematic modelling and PCB design. Engineers can use it to design and simulate electronic circuits using a wide selection of components available in its library. Also, through its thriving online community, it encourages open collaboration and innovation.

 

PCB zoomed in

A circuit board that shows conductive tracings. Image courtesy of Pixabay.

 

SimulIDE

SimulIDE is an operational support system (OSS) for real-time simulation of electronic circuits. It has such features as analogue and digital components, microcontrollers, a signal plotter, and oscilloscope; plus, a code editor and debugger PIC, AVR, GcBasic, and Arduino. Technical support is available on its general discussions board. SimulIDE uses the GPLv3 licence

 

VeroRoute

VeroRoute is an OSS for designing layouts for PCBs, Veroboards, and perfboards. It is built with the Qt software development toolkit.

 

Graywolf

Graywolf is a professional-grade placement tool for very large-scale integration design, which is typically used in combination with Q-flow. Engineers can use it to simplify design complexity and minimise errors in component placement and routing.

 

KiCad EDA

KiCad is a cross-platform OSS that allows electronics engineers to design and automate PCBs in real time. It features the following tools: 

Eeschema: provides schematic capture, electrical rules checking, netlists export, bill of materials (BOM) generation, and integrated libraries.

Pcbnew: contains tools for differential pair routing and length tuning, as well as a footprint editor.

3D Viewer: provides an environment for interactive 3D renderings of PCB layouts (up to 32 layers).

 

Gnucap

Gnucap is a general-purpose circuit simulation tool for true mixed-mode simulation. Engineers can use it to perform non-linear DC and transient analyses, Fourier analysis and more. Included in the latest release (Version 0.35) are functions for diodes, MOSFETs, and bipolar junction transistors, which are also compatible with SPICE models.

 

SymbiFlow

SymbiFlow is a multi-platform open-source software for optimising and automating FPGA workflows. It provides ‘architecture definitions’ within the larger framework, which targets specific FPGAs, e.g., ‘Project X-Ray’ for the Xilinx 7-series bit-stream format; ‘Project Trellis’ for Lattice ECP5 bit-stream; and ‘Project IceStorm’ for the iCE40 bit-stream format.

 

Computer source code

Computer source code. Image courtesy of Pexels.

 

Are There Disadvantages to Using Open Source Software?  

Although open-source software offers a host of advantages to individual and commercial users, it does have a few disadvantages. These relate to compatibility problems, security issues, and legal concerns.

 

Compatibility Problems

Open-source software is often incompatible with proprietary hardware from commercial users and may not include technical support. Therefore, they might require special drivers to run correctly. Compatibility issues create time and budget constraints to utilise them in their applications.   

 

Security Issues

Cybersecurity is a vital concern for internet use in the modern age. With malicious software and cyberattacks on the rise, hackers may try to exploit vulnerabilities in a software’s architecture. The source code of some free-to-use software can expose users to these risks.

For instance, the ‘GHOST bug’ in Linux systems (CVE-2015-0235) distributions (which is triggered by GetHOST) can allow a hacker to execute code on a Linux device. Moreover, the ‘Heartbleedbug, which affects the OpenSSL cryptographic library, allows for information theft, despite being secured with SSL/TLS.

 

Legal Concerns

Although the idea of ‘open-source’ is to encourage innovation by open collaboration, intellectual property issues can arise in some scenarios. When organisations fail to put in place third-party copyright statements with appropriate licensing information, users may modify the source code, leading to copyright infringement issues. In the case where a third party holds a patent on open-source software, a company can be sued for copyright infringement if it modifies, distributes, or uses a patented section without its approval.

 

Ultimately, open-source software offers a host of benefits to electronics and/or electrical engineers. They are free to use, foster collaboration, and are suitable for a wide range of applications. On the flip side, they can present the above compatibility, security, and legal issues for users; in fact, some people argue that they are better suited for individual use than for commercial purposes, but as with so many technologies, it all boils down to a matter of preference.

Comments

  • signality - 2019-09-05

    To clarify: CircuitMaker can be used for Open Source Hardware but AFAIK the software itself is not OSS, it is proprietary to Altium.

    If you are going to list free software as well as FOSS then you should most definitely include LTspice (from what is now part of Analog Devices).

    You should also include EasyEDA.com for schematic capture, simulation (using LTspice as the simulation engine), PCB design, as well as optional PCB fab and components supply).

    Note that the last stable release of Gnucap was back in 2006 and although it is still being developed it is not the easiest tool to use. gnucap.org is the place to go for it nowadays.

    Also such an article should also include:

    gEDA, Ngspice, QUCS and Xyce,

    😊

    Reply