Skip to content

Releases: anabrid/lucidac-firmware

LUCIDAC Firmware Release v1.1.0

07 Oct 16:09
Compare
Choose a tag to compare

This is the second official release which mainly contains bugfixes and a few new features, which are:

Upcoming features which did not yet make it into this release:

  • Improved multiplier calibration (still using the hotfix using manual calibration data on EEPROM)
  • Bundling of the LUCIDAC-GUI

Full Changelog: v1.0.0...v1.1.0

Development Build

07 Oct 16:09
Compare
Choose a tag to compare
Development Build Pre-release
Pre-release

Bug Fixes

  • tests: test_flexio_mode.cpp used un-commited time_ns_t datatype (Michael Steck)
  • chips: AD8402 needs other SPI MODE, but still does not work (Michael Steck)
  • carrier: Carrier::calibrate_routes should save and restore old ADC bus selection, not reset it (Raveen Marudachalam)
  • tests: removed too much code :) (Raveen Marudachalam)
  • daq: fix at least the index overflow and improve code structure. Also adds waveform tests (Lynda Wanza Mwema)

Commits

  • b4c59d2: Final cleanups for version 1.0 (SvenK)
  • 8eb2f86: Merge branch 'main' of lab.analogparadigm.com:lucidac/firmware/hybrid-controller (SvenK)
  • c398c6b: Changed mul calibration to abort on errors (Tobias Pflüger)
  • cf3bbb2: Removed unused default value for c block factor (Tobias Pflüger)
  • 2efe2c7: Improved parabola test to not use functions which aren't meant to be accessed normally (Tobias Pflüger)
  • 28a4328: Adapted DAQs to use better running average class (Tobias Pflüger)
  • 61db8c1: Converted all reset functions to use ResetActions (Tobias Pflüger)
  • ce31fe5: Exposing overload localization over JSON #204 (SvenK)
  • First step towards better docs #210 (SvenK)
  • Moving Doxygen and Sphinx together (SvenK)
  • Moving pages from doxygen to sphinx (SvenK)
  • b43a62a: CI, second try (SvenK)
  • 3ad6676: CI, Third Try (SvenK)
  • 95638b4: CI, Fourth Try (SvenK)
  • d583e18: CI, Fifth try (SvenK)
  • apparently the makefile was missing all the time (SvenK)
  • Adding all missing makefiles (SvenK)
  • 96c9538: Merge branch '210-adopt-sphinx-breathe-for-better-documentation' into 'main' (Sven Köppel)
  • Fixing the absolute URLs (SvenK)
  • d2cd9a9: fix(tests) (Karl-Heinz Dahlmann)
  • 4670a23: Fix of a direct Serial.print call. (SvenK)
  • make measure_sh_gain set and restore ADC bus selection (Raveen Marudachalam)
  • forgot to commit this (Raveen Marudachalam)
  • Adding U-block connectivity testcase (Raveen Marudachalam)
  • 5b549dc: Merge branch 'main' of lab.analogparadigm.com:lucidac/firmware/hybrid-controller (SvenK)
  • f6087b2: Merge branch 'debug-daq' into 'main' (Michael Steck)
  • 5a9e20b: Usage stats (basic performance counters). (SvenK)
  • 57bedb3: Merge branch 'main' of lab.analogparadigm.com:lucidac/firmware/hybrid-controller (SvenK)
  • 5bcf913: Removing remaining direct serial Prints (SvenK)
  • d6e7322: Little fixes (SvenK)

LUCIDAC Firmware Release v1.0.0

18 Sep 13:28
Compare
Choose a tag to compare

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