RecEste articuculo de REDIT en inglés recopila una amplia seleccion de aplicaciones informáticas libres y de código abierto para Ingeniería Electrica y Electrónica.

Curated list of awesome Free and Open Source Software (FOSS) for electrical engineering

 

Following my former lists of awesome CAD and CAM/CNC FOSS for mechanical engineering, I decided to also create a similar list for electrical engineering. However, it turned out to be way more complicated than what I expected, taking two weeks of my free time to research.

I'm not gonna lecture you guys/gals about the importance of FOSS. I think most professionals are well aware of the advantages. From software licensing costs, privacy, cross-platform experience, customizability and most importantly vendor lock-down. Just imaging Autodesk decides to triple its fees all of a sudden or deprecate a software altogether. Your designs/documents are basically ransom to other vendors when using proprietary software! Also if you are a scientist and want to implement your own auto-routing method or improved compiling algorithm, or you are a student who wants to do something on your mac or Linux computer without losing your sanity over virtualization...

The way I categorize these software will be based on the conventional workflow I use for my own work (Robotics). Usually, I will start with conceptual design including a circuit schematics and a breadboard implementation. Following by programing the Microcontroller (a development board like Arduino) and then merging the circuit and MCU in a prototype or simulation. Next step the PCB should be designed in a CAD suite and the Gerber sent for manufacturing.

I hope this list will stimulate FOSS adoption and help the community to better knowledge of their alternatives.

1. Electronic design automation (EDA) suites:

These are the family of the software which tries to integrate most of the PCB Design process in one place. They usually include the schematic capture and CAD parts, and sometimes even the simulation and auto routing.

  • KiCAD: Is probably the most famous and stable of all FOSS EDA suites. It does not require introduction; if you haven't heard of it you have probably lived under a stone :) what makes it unique is the fact it is used and supported by the folks at CERN. In the latest version, it has some simulation (using Ngspice?) and some auto-routing plugins.

  • Fritzing:, In my opinion, is the most hobbyist friendly of all. I have read a lot of criticism on the forums about it though. What makes it unique is the virtual breadboard environment where you can place parts and connections similar to the way you could do it in the real world. It is great for beginners like me as well as documentation and publication.

  • gEDA Is a combination of several other packages including gschem, PCB, and Gerbv. It is the classic gold standard of EDA suites world. Its community is comparable to KiCAD and Fritzing, if not bigger.

  • LibrePCB: Is an ambitious attempt to develop an EDA suite from scratch which outperforms KiCAD in terms of usability and extendability. Extensive libraries and version control are some of the key features. Reading from the forums this project has a bright future.

  • Horizon: similar to the LibrePCB, is another attempt to make a better FOSS EDA and very appreciated by the community.

TinyCAD, FreePCB, BSch3V MINIMAL PCB EDITOR, MeowCAD, PCB EleganceCanedadiy-layout-creatorBlackBoard Circuit DesignereSim formerly Oscad FreeEDA, myNetPCBFidoCadJ) are also some of the available options for those who enjoy investigating. Also if you care about programatic (aka code based indirect CAD), there are attempts like aeCAD and SKiDL to look into. Immediate advantages of indirect CAD are version control and object oriented programing, but it requires its own essay.

1.1. placement and routing (PnR)

If you have a design with lots of components and layers, manual placement and routing (PnR) can be cumbersome. There are some automatic PnR tools available which are either a standalone GUI/CLI and/or as plugins to above EDA suites:

1.2. Circuit diagram:

These are the software for schematics capture. Some might use these as a conceptual design platform, But I personally prefer to use pen and paper first. Then using these software is necessary for documentation of the final design. Some of them can also export different flavors of netlist (SPICE, Spectre, CDL...) to be imported to EDA suits, auto-routing or simulation software:

There also more general purpose software like Dia diagram editor, InkScape, LibreOffice (LibreSymbols) for design and documentation of boards. If you prefer none-WYSWYG way of design then TikZ CircuiTikz, METAPOST MakeCirc, PSTricks pst-circCircuit_macros , Cirkuit , lcapy, might be your cup of tee.

2. Simulation:

Now some people might argue that thanks to the cheap development boards like Arduino and Raspberry pi, simulation is unnecessary, which I strongly disagree. For me personally, simulation is important to reduce risks of damage on the hardware or even novice students, documentation, long-distance collaboration...

The most well-known software commercial software in this category is the infamous Proteus VSM which not only is very expensive for hobbyists and students but is also only on Windows! Unfortunately, there is not much in the FOSS world coming close to Proteus VSM in terms of stability and features. Most of the FOSS are either for analog or logic circuits simulation or for MCU emulation, not much available for integrated virtual prototyping. However, it does not mean FOSS community has done nothing. There are amazing attempts:

2.1. Integrated MCU-analogue:
  • KTechLab: is probably the most amazing and in some ways peculiar of all in this section. It is primarily a KDE tool for RCL, logic, and PIC MCU (using gpsim) simulation. However, it has a unique visual programming environment where one can develop the MCU workflow by flowcharts. Then it is translated into Microbe or MicroBASIC, another peculiar high-level language of KTechLab. It also an IDE for C, assembly and MicroBASIC development and compiling (using SDCC?). It is unfortunate that KTechLab is still very unstable full of bugs. Another long-requested feature is AVR integration. There have been requests since 2006 to use SimulAVR, yet this feature to be seen :(

  • SimulIDE: is all KTechLab wished to be. It has both PIC and AVR integration. However it is also not yet stable, more to be considered as a prototype. If you find the project useful please consider supporting the developer on Patreon or donate via paypal.

  • Emulare: for ATMega line of MCUs

  • simuino an Arduino UNO/MEGA Pin Simulator

  • gpsim used in both KTechLab and SimulIDE

  • PICsim PICsimLab

  • SimulAVR which also includes simulavr-disp a TCL-TK GUI. It used in SimulIDE and is the gold standard FOSS AVR simulation.

  • simavr is the newer AVR simulation which according to the forums is a very promising alternative to SimulAVR.

  • PIC-Simulator

  • GNUSim8085

  • µCsim or uCsim

  • MCUSim

  • Ardulator

  • Arduino Simulator

  • emulino

  • HAPSIM

  • Kjwaves

  • gwave

  • GTKWave VCD

2.2. General-purpose:

There are software which are not specifically for EE simulation:

  • Modelica Language and its FOSS implementations such as OpenModelica and jModelica are a great option for simulation of multi-physics systems. The OM software has libraries for analog, digital and logic electronic components. You have the option to use the GUI to connect the components or code your system in Modelica Language using continuous and discrete algebraic differential equations. The language has also been adopted by Wolfram Mathematica's produces, Maple and many more. It is just a shame that it is not already an industry standard!

  • Scilab's Xcos or ScicosLab's SciCos are somehow attempts to replicate MATLAB's SIMULINK. They are indeed not as powerful but still great for students, teachers and even easy industrial simulation. Especially if you want to prototype a system and do not want to spend much time to code it, the visual programming environment can be a great help.

  • MyOpenLab is also a great platform for visual physical system simulation. It can be considered an alternative to NI's LabVIEW.

2.3. Analog:

These are the software which can only simulate the RCL and logical circuits. They import netlist files mostly:

  • SPICE (Simulation Program with Integrated Circuit Emphasis) which has been around since the beginning of time, is just for analog simulation.

  • Quite Universal Circuit Simulator (QUCS), and its SPICE compatible version Qucs-S have one of the largest user bases. Qucsstudio is also another derivative.

  • Ngspice which is a combination of three FOSS projects Spice3f5, Cider1b1 and Xspice, is "a mixed-level/mixed-signal circuit simulator". It is the simulation backend of most EDAs above KiCAD, Fritzing and gEDA.

  • Xyce is also a SPICE compatible simulator for "extremely large circuit problems by supporting large-scale parallel computing platforms"

  • Circuit Simulator](https://github.com/pfalstad/circuitjs1) Java and web-based

  • BrainBox web-based

  • PySpice

  • SpiceOpus

  • QSapecNG

  • oregano

  • gSpiceUI

  • GNU Circuit Analysis Package (Gnucap)

  • linNet symbolically

  • LCSIM - Laboratory Circuit Simulator)

3. IC design and simulation programming:

Software for logic, FPGA, IC ...

3.1. design rule checking (DRC):
4. Microcontroller and embedded systems:
4.1. Operating Systems:

List of real-time operating systems or firmware here

4.2. Compilers:
4.3. High level languages:

more at fedoraproject and piclist

4.4. Editors and IDE:
  • CodeBlocks Arduino IDE

  • Arduino

  • Pinguino

  • Piklab

  • Wiring http://wiring.org.co/

  • Embitz

  • Code::Blocks

  • Eclipse CDT and PicCBuilder

  • Code Composer Essentials (CCEssentials) TI

  • ChipVault

  • Ardiuno debugger

  • MCU 8051 IDE

  • emIDE

4.5. Downloader:

burner, programmer, , inhibitor...:

4.6. USB stack:

list

5. other lists:

 

 

Más artículos en la categoría Informática Técnica.