| Both sides previous revision Previous revision Next revision | Previous revision |
| electronics [2021/08/13 19:34] – fix link formatting. cederom | electronics [2023/03/31 00:13] (current) – redirecting to top level arduino wiki page in place of removed subpage. cederom |
|---|
| ====== Electronics on FreeBSD ====== | ====== Electronics on FreeBSD ====== |
| |
| Welcome to the Electronics on [[https://www.freebsd.org/|FreeBSD]] WIKI! You will find resources, informations, hints and references that should be useful to enthusiasts of electronics and DIY :-) | Welcome to the Electronics on [[https://www.freebsd.org/|FreeBSD]] WIKI! You will find resources, information, hints and references that should be useful to enthusiasts of electronics and DIY :-) |
| |
| ===== Our Projects ===== | ===== Our Projects ===== |
| Below you will find our %%FreeBSD%% projects and useful wiki pages dedicated to: | Below you will find our %%FreeBSD%% projects and useful wiki pages dedicated to: |
| |
| * [[electronics/arduino|Arduino]] | * [[Arduino|Arduino]] |
| * [[electronics/fpga|FPGA]] | * [[electronics/fpga|FPGA]] |
| * [[electronics/hamradio|HAM Radio]] | * [[electronics/hamradio|HAM Radio]] |
| | * [[electronics/nuttx|NuttX RTOS]] |
| | * [[electronics/zephyr|Zephyr RTOS]] |
| | * [[electronics/pyocd|pyOCD]] |
| | * [[electronics/plc|(Industrial) PLCs]] |
| |
| ===== Software Utilities ===== | ===== Software Utilities ===== |
| * [[https://www.freshports.org/cad/freecad/|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. | * [[https://www.freshports.org/cad/freecad/|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. |
| * [[https://www.freshports.org/cad/cura/|CURA]] and [[https://www.freshports.org/cad/cura-engine/|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. | * [[https://www.freshports.org/cad/cura/|CURA]] and [[https://www.freshports.org/cad/cura-engine/|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. |
| | * [[https://www.freshports.org/graphics/blender/|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 ==== | ==== Simulation ==== |
| * [[https://www.freshports.org/cad/ngspice_rework/|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. | * [[https://www.freshports.org/cad/ngspice_rework/|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. |
| * [[https://www.freshports.org/cad/kicad/|KiCAD]] not only allows you to create schematics and pcb but also perform simple simulations using ngspice backend. | * [[https://www.freshports.org/cad/kicad/|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: |
| | |
| | * [[https://www.freshports.org/science/pulseview/|PulseView]] is a GUI logic trace and decide utility for your analyzer. |
| | * [[https://www.freshports.org/search.php?query=sigrok&search=go&num=10&stype=name&method=match&deleted=excludedeleted&start=1&casesensitivity=caseinsensitive|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: |
| | |
| | * [[https://www.freshports.org/devel/godot/|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. |
| | * [[https://kivy.org/|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. |
| | * [[https://lvgl.io/|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 ===== | ===== 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: | There are several Open-Source Real Time Operating Systems that can be developed on %%FreeBSD%% in order to create %%IoT%% Connected Embedded Systems: |
| |
| | * [[https://micropython.org/|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. |
| | * [[https://nuttx.apache.org/|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 [[https://nuttx.apache.org/docs/latest/introduction/licensing.html|Apache 2.0 License]] (used BSD before). %%NuttX%% is backed by the [[https://www.apache.org/foundation/how-it-works.html|Apache Software Foundation]]. [[https://nuttx.apache.org/docs/latest/platforms/index.html|Supported Hardware]]. |
| * [[https://www.zephyrproject.org/|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 [[https://docs.zephyrproject.org/latest/LICENSING.html|Apache 2.0 License]]. Zephyr is backed by the [[https://www.linuxfoundation.org/|Linux Foundation]]. [[https://docs.zephyrproject.org/latest/boards/index.html|Supported Hardware]]. | * [[https://www.zephyrproject.org/|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 [[https://docs.zephyrproject.org/latest/LICENSING.html|Apache 2.0 License]]. Zephyr is backed by the [[https://www.linuxfoundation.org/|Linux Foundation]]. [[https://docs.zephyrproject.org/latest/boards/index.html|Supported Hardware]]. |
| * [[https://nuttx.apache.org/|NuttX]] is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. 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 [[https://nuttx.apache.org/docs/latest/introduction/licensing.html|Apache 2.0 License]] (used BSD before). %%NuttX%% is backed by the [[https://www.apache.org/foundation/how-it-works.html|Apache Software Foundation]]. [[https://nuttx.apache.org/docs/latest/platforms/index.html|Supported Hardware]]. | |
| * [[https://freertos.org/|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 [[https://freertos.org/a00114.html|MIT License]]. %%FreeRTOS%% is backed by the [[https://aws.amazon.com/|Amazon Web Services]]. [[https://freertos.org/RTOS_ports.html|Supported Hardware]]. | * [[https://freertos.org/|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 [[https://freertos.org/a00114.html|MIT License]]. %%FreeRTOS%% is backed by the [[https://aws.amazon.com/|Amazon Web Services]]. [[https://freertos.org/RTOS_ports.html|Supported Hardware]]. |
| * [[https://os.mbed.com/|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 [[https://github.com/ARMmbed/mbed-os/blob/master/LICENSE.md|Apache 2.0 License]]. MBED is backed by [[https://www.arm.com/|ARM]]. [[https://os.mbed.com/hardware/|Supported Hardware]]. | * [[https://os.mbed.com/|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 [[https://github.com/ARMmbed/mbed-os/blob/master/LICENSE.md|Apache 2.0 License]]. MBED is backed by [[https://www.arm.com/|ARM]]. [[https://os.mbed.com/hardware/|Supported Hardware]]. |
| |