Skip to content

LUCIDAC Firmware Release v1.0.0

Compare
Choose a tag to compare
@svenk svenk released this 18 Sep 13:28
· 35 commits to main since this release

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 derived
  • firmware.hex (Intel HEX): Suitable for most uploaders such as teensy_cli_uploader
  • firmware.bin (Binary code): Relevant part of the ELF binary for OTA upload
  • firmware.elf.a (linkable ELF binary with symbol table): Suitable for plugin development, next to the header files of this commit