LUCIDAC Firmware Release v1.0.0
This is the first public release of the LUCIDAC Firmware. In a rough overview, the firmware contains the following features:
- Feature-complete C++ API within the firmware to work with LUCIDAC's hardware
- Hardware abstraction in a hierarchical and dynamical way
- Run and state managament, DMA/FlexIO data aquisition, and many more
- JSONL protocol for exposure of core functionality over ethernet and USB
- Basic support for Over-the-Air updates, runtime/compile time plugins
- Basic authentification
- Support for Teensy and entity EEPROMs for permanent configuration
- More then 400 PlatformIO unit tests
- Doxygen documentation
This release makes the following decisions on not-yet mature features:
- integrated webserver and websocket support (built-in but disabled by default to decrease attack surface. Can be enabled as configuration option by user)
- the default run manager is not using FlexIO/DMA (can be changed per run by user)
- the calibration scheme is mostly deactivated by default (can be changed per run by user)
- in particular, we currently use manually calibrated multipliers (will be upgraded to a suitable self-calibration in next release)
Attached to this release are the following build artefacts:
firmware.elf
(statically linked ELF binary): Most generic build product from which all other files can be derivedfirmware.hex
(Intel HEX): Suitable for most uploaders such asteensy_cli_uploader
firmware.bin
(Binary code): Relevant part of the ELF binary for OTA uploadfirmware.elf.a
(linkable ELF binary with symbol table): Suitable for plugin development, next to the header files of this commit