Skip to content

Software Organization

The selftest uses Zephyr.

See zephyr documentation for general OS Feature Documentation.

The main thread executes the tests of the selftest application.

In addition it offers the following components (partly used in the tests)

  • Analog thread for sensor sampling, with the sources linked from the BMS firmware folder.
  • Cyphal instance with a register interface
  • Shell for UART command execution with custom extension for the registry and selftest's calibration

Operation Modes

In Copter or Charger

No selftest is executed when the BMS boots in Copter or Charger. The HotSwap is engaged to allow CAN communication. The Cyphal instance becomes available as external interface.

Open (not connected) or Test Fixture

The selftest gets executed according to the manual of the Selftest. After it finishes, a timeout starts (60s) and the BMS turns off. If a button is pressed, the selftest starts again. If the button is engaged (pressed more than 1s), the precise calibration is executed.