Electronics on FreeBSD
Welcome to the Electronics on FreeBSD WIKI! You will find resources, information, hints and references that should be useful to enthusiasts of electronics and DIY
Our Projects
Below you will find our FreeBSD projects and useful wiki pages dedicated to:
Software Utilities
Below you will find tools already ported to FreeBSD. Please note that new Open-Source tool are more than welcome! You can port them and let us know so we can update the list
EDA (Electronics Design Automation)
This list contains popular EDA utilities that can be used to design schematics and PCB of your projects:
KiCAD is an open source (GPL) software for the creation of electronic schematic diagrams and printed circuit board artwork.
CAD (Computer Aided Design)
This list contains popular CAD utilities that can be used to design mechanical components of your projects:
FreeCAD is a general purpose parametric 3D modeler. FreeCAD is aimed directly at mechanical engineering and product design but also fits in a wider range of uses around engineering, such as architecture or other engineering specialties.
CURA and CURA Engine is a world class slicer that converts STL designs into GCODE used by the 3D printers. CURA is a GUI for Engine that can be also used in standalone shell batch mode.
Blender is a popular 3D editing tool, recently shifted towards artistic use, but it also can be scripted with Python. You may create photo-realistic renders of models exported from other tools, or quickly create sketches of your prototypes.
Simulation
This list contains popular utilities that can be used to perform simulation of your projects:
NGSpice is a mixed-level/mixed-signal circuit simulator. Its code is based on three open source software packages: Spice3f5, Cider1b1 and Xspice. It is the open source successor of these venerable packages.
KiCAD not only allows you to create schematics and pcb but also perform simple simulations using ngspice backend.
Logic Analyzers
This list contains popular utilities for use with logic analyzers:
PulseView is a GUI logic trace and decide utility for your analyzer.
SigRok is a set of libraries and utilities to capture traces from your logic probe (i.e. sigrok-cli), decode the capture (i.e. libsigrokdecode), or even work with the probe firmware (i.e. sigrok-firmware).
MultiMedia
Following ports and utilities allows creating interactive applications to work with your devices:
Godot is a fully featured 2D/3D game engine with tools, editor, examples included. You can cross compile the application to Web, Android, iOS, etc. Godot uses Python-like GDScript language but due to performance reasons this is not fully featured Python.
Kivy is extremely portable Python module that allows quickly creating touch oriented GUI applications in Python (and all available modules) then cross compile them as standalone PC/Android/iOS application. Its quite low-level (compared to Qt/GTK) interface to SDL on OpenGL, but KivyMD project provides lots of ready-to-use components conforming to Google UI standards.
LVGL is Light and Versatile Graphics Library for creating GUI applications even on a tiny MCU based embedded systems with graphics display. It may be also possible to create portable desktop and mobile applications one day (Kivy works better in this area at this point in time).
Embedded RTOS
There are several Open-Source Real Time Operating Systems that can be developed on FreeBSD in order to create IoT Connected Embedded Systems:
MicroPython is a tiny Python REPL for embedded systems (i.e. ESP32 family). Amazingly useful at Proof-of-Concept stage if you do not have enough time to dive deep into RTOS details.
NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. You can consider it "a tiny Unix on MCU". Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments. Uses Apache 2.0 License (used BSD before). NuttX is backed by the Apache Software Foundation. Supported Hardware.
ZEPHYR RTOS is a neutral project where silicon vendors, OEMs, ODMs, ISVs, and OSVs can contribute technology to reduce costs and accelerate time to market for billions of connected embedded devices. The software is a perfect choice for simple connected sensors, LED wearables, modems, and small wireless gateways. Because Zephyr is modular and supports multiple architectures, developers can create a solution that meets their needs. Zephyr can even run on FPGA based RISC-V or real world RISC-V chips such as ESP32-C3! Uses Apache 2.0 License. Zephyr is backed by the Linux Foundation. Supported Hardware.
FreeRTOS is developed in partnership with the world’s leading chip companies over a 15-year period, and now downloaded every 170 seconds, FreeRTOS is a market-leading real-time operating system (RTOS) for microcontrollers and small microprocessors. Distributed freely under the MIT open source license, FreeRTOS includes a kernel and a growing set of IoT libraries suitable for use across all industry sectors. FreeRTOS is built with an emphasis on reliability and ease of use. Uses MIT License. FreeRTOS is backed by the Amazon Web Services. Supported Hardware.
ARM MBED gives you a free open source IoT operating system for ARM (only) cores with networking and security built-in. Build your next product with free development tools, thousands of code examples and support for over 150 MCU development boards. Uses Apache 2.0 License. MBED is backed by ARM. Supported Hardware.