Release v0.12¶
Release process: x/11/2025 - x/x/2025
BMS Analog¶
- [internal] Latch and HotSwap separate logic
- [TODO] Latch / Hotswap overwrite in FSM maintenance state
- [TODO] Cyphal register to set maintenance mode
- HotSwap activation is now synchronized by Motherboard (and vbus sync if first activation fails)
- Cyphal Data struct update (
starcopter.highdra.bms.BMSData.1.1)
Motherboard Prototype¶
- [TODO] prototype release
- Analog measurements
- Receive of Cyphal BMSData (
starcopter.highdra.bms.BMSData.1.1) - MMBs get enabled after complete BMS engage (6x)
- Mavlink integration of BatteryStatus (including Soc, temperature, voltage, error flags for overtemp/overvolt/undervolt)
- Cyphal publish of Navlight Sync Pulse
- Cyphal publish of BMS HotSwap Sync
- Cyphal publish of PWM parsed Gear Setpoints
Cyphal Library¶
- Cyphal custom image verification command (900)
Mavlink Library¶
- Receiver and publisher structure for UART Mavlink
- Heartbeat publisher
- BatteryStatus publisher
- StatusText publisher
CLI Integration Aspects¶
- Statistic upload should be executed after upgrade
BMS v0.11 -> v0.12 Register Changes¶
| Name | Type | Value | Flags | Required Change? |
|---|---|---|---|---|
| bms.board.hardware.bms_id | string | '2032315255325016005D004300000000' | M P | - |
| bms.board.hardware.flash_date | string | '2025-08-18 15:12:55+02:00' | M P | - |
| bms.board.hardware.pack_sn | natural32[1] | 0 | M P | - |
| bms.board.hardware.set_id | natural16[1] | 555 | M P | - |
| bms.board.hardware.set_index | natural8[1] | 5 | M P | - |
| bms.board.hardware.version | natural8[2] | [4, 1] | P | - |
| bms.board.software.version | natural8[2] | [0, 11] | P | - |
| bms.cell_balance.threshold | real32[1] | 0.01 | M P | - |
| bms.measurement.ibat.offset | real32[1] | 0.0 | M P | - |
| bms.measurement.vbat.gain | real32[1] | 1.0 | M P | - |
| bms.measurement.vpack.gain | real32[1] | 1.0 | M P | - |
| log.can.active | natural8[1] | 1 | M P | - |
| log.can.severity | natural8[1] | 2 | M P | - |
| uavcan.node.description | string | 'Starcopter Highdra BMS' | M P | - |
| uavcan.node.id | natural16[1] | 72 | M | - |
| uavcan.pub.bms_data.dt_ms | natural16[1] | 100 | M P | - |
| uavcan.pub.bms_data.id | natural16[1] | 6064 | M P | - |
| uavcan.pub.bms_data.type | string | 'starcopter.highdra.bms.BMSData.0.1' | P | - |
| uavcan.pub.energy_source.dt_ms | natural16[1] | 100 | M P | - |
| uavcan.pub.energy_source.id | natural16[1] | 6063 | M P | - |
| uavcan.pub.energy_source.type | string | 'reg.udral.physics.electricity.Power.0.1' | P | - |
| uavcan.pub.power_data.dt_ms | natural16[1] | 2000 | M P | - |
| uavcan.pub.power_data.id | natural16[1] | 6060 | M P | - |
| uavcan.pub.power_data.type | string | 'starcopter.highdra.bms.PowerData.0.2' | P | - |
| uavcan.pub.state.dt_ms | natural16[1] | 2500 | M P | - |
| uavcan.pub.state.id | natural16[1] | 6062 | M P | - |
| uavcan.pub.state.type | string | 'starcopter.highdra.bms.State.0.2' | P | - |
| uavcan.pub.temp_data.dt_ms | natural16[1] | 2000 | M P | - |
| uavcan.pub.temp_data.id | natural16[1] | 6061 | M P | - |
| uavcan.pub.temp_data.type | string | 'starcopter.highdra.bms.TempData.1.1' | P | - New Type |