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 |