Skip to content

BMS Cyphal Registers

The registers for hardware.version and software.version (see below) are used during startup to check if the executed software matches the system. If the compilation target hardware version (constant static value within the application) does not match the loaded version of the register (from flash storage), the application is not executed any further. If the compilation target software version (constant static value within the application) is a major version change to the flash stored software version, the application is not executed any further.

Register Creation

BMD default registers

name data_type default value flags comment
bms.board.software.version String[64] git hash - -
bms.board.hardware.version Natural8Array[2] e.g. [4,2] - p
bms.board.hardware.flash_date String[35] e.g. "2025-06-02 10:51:26+02:00" m p
bms.board.hardware.set_id Natural16[1] 0x0000 m p
bms.board.hardware.set_index Natural8[1] 0 m p
bms.board.hardware.pack_sn Natural32Array[1] 0x00000000 m p
bms.board.hardware.bms_id String[35] e.g. "2031354D543050040032003000000000" m p
bms.measurement.vpack.gain Real32Array[1] 1.0 m p
bms.measurement.vbat.gain Real32Array[1] 1.0 m p
bms.measurement.ibat.offset Real32Array[1] 0.0 m p
bms.measurement.vpack_ref_input Real32Array[1] 0.0 m - write to calibrate
bms.measurement.ibat_ref_input Real32Array[1] 0.0 m - write to calibrate
bms.cell_balance.threshold Real32Array[1] 300.0 m p
bms.maintenance.active BitArray[1] 0 = false m -
bms.maintenance.exit_state Unstructured[1] FSM_STATE::IDLE = 2, see FSM state encoding m -
bms.maintenance.latch BitArray[1] 0 = false m -
bms.maintenance.hotswap BitArray[1] 0 = false m -
mcuboot.verify_image Natural8[1] depending on MCUBoot image confirmation state m - write to confirm

BMS Publisher

name data_type default value flags comment
uavcan.pub.bms_data.id Natural16Array[1] 6064 m -
uavcan.pub.bms_data.type String[33] "starcopter.highdra.bms.BMSData.1.2" - -
uavcan.pub.bms_data.dt_ms Natural16Array[1] 100 m p
uavcan.pub.bms_data_ext.id Natural16Array[1] 6066 m -
uavcan.pub.bms_data_ext.type String[47] "starcopter.highdra.bms.BMSDataDetailExtend.0.1" - -
uavcan.pub.bms_data_ext.dt_ms Natural16Array[1] 500 m p

Outdated/Removed Registers

name data_type default value flags comment
uavcan.pub.energy_source.id Natural16Array[1] 6063 m - outdated
uavcan.pub.energy_source.type String[40] "reg.udral.physics.electricity.Power.0.1" - - outdated
uavcan.pub.energy_source.dt_ms Natural16Array[1] 100 m p outdated
uavcan.pub.power_data.id Natural16Array[1] 6060 m - outdated
uavcan.pub.power_data.type String[37] "starcopter.highdra.bms.PowerData.0.2" - - outdated
uavcan.pub.power_data.dt_ms Natural16Array[1] 2000 m p outdated
uavcan.pub.temp_data.id Natural16Array[1] 6061 m - outdated
uavcan.pub.temp_data.type String[36] "starcopter.highdra.bms.TempData.0.1" - - outdated
uavcan.pub.temp_data.dt_ms Natural16Array[1] 2000 m p outdated
uavcan.pub.state.id Natural16Array[1] 6062 m - outdated
uavcan.pub.state.type String[33] "starcopter.highdra.bms.State.0.2" - - outdated
uavcan.pub.state.dt_ms Natural16Array[1] 2500 m p outdated