Badland 12S DroneCAN

Details on the parameters and DroneCAN messages used in the 12S Badland battery.

Parameters

packetdigital.storage_mode_start_time_s
Software Min: none
Minimum value: 0 (disable storage mode)
Maximum value: 2,592,000 (30 days)
Default value: 604,800 (7 days)
packetdigital.top_balancing_enabled
If true, internal top balancing will be enabled
Can only be true or false
uavcan.node_id
Software Min: none
Minimum value: 0 (use dynamic id allocation)
Maximum value: 127
Default value: 0
uavcan.pubp-com.packetdigital.LifetimeData
Software Min: 0 or 5,000,000 microseconds (5 seconds)
Minimum value: 0
Maximum value: 3,600,000,000 (1 hour)
Default value: 0
uavcan.pubp-uavcan.equipment.power.BatteryInfo
Software Min: 0 or 1,000,000 microseconds (1 second)
Minimum value: 0
Maximum value: 3,600,000,000 (1 hour)
Default value: 500,000 (half a second)
ardupilot.equipment.power.BatteryInfoAux_enabled
If true, the BatteryInfoAux message will be broadcasted. It will be broadcasted right after the BatteryInfo message. If the BatteryInfo message is disabled, the BatteryInfoAux message will also be disabled regardless.
Can only be true or false
uavcan.pubp-ardupilot.equipment.power.BatteryContinuous
Software Min: 0 or 500,000 microseconds (half a second)
Minimum value: 0
Maximum value: 3,600,000,000 (1 hour)
Default value: 500,000 (half a second)
uavcan.pubp-ardupilot.equipment.power.BatteryPeriodic
Software Min: 0 or 1,000,000 microseconds (1 second)
Minimum value: 0
Maximum value: 3,600,000,000 (1 hour)
Default value: 5,000,000 (5 seconds)
uavcan.pubp-ardupilot.equipment.power.BatteryCells
Software Min: 0 or 1,000,000 microseconds (1 second)
Minimum value: 0
Maximum value: 3,600,000,000 (1 hour)
Default value: 0

Min/Max Details

Min/Max
A regular min/max presented in the DroneCAN guide. Values entered cannot be outside this.
Software Min:

A software enforced minimum that does not apply to 0. This is different from the min presented in the DroneCAN guide.

Any nonzero value entered which is lower than Software Min will be treated as Software Min.

The DroneCAN gui will still show the original entered value but internally Software Min is used.

You can still disable a message by setting it to 0 if the other min allows.

Broadcast Messages

ardupilot.equipment.power.BatteryContinuous - 20010
Battery data to be sent continously

float16 temperature_cells # [Celsius]
float16 temperature_pcb # [Celsius]
float16 temperature_other # [Celsius]
float32 current # [Amp]
float32 voltage # [Volt]
float16 state_of_charge # [%]
float32 capacity_consumed # [Amp hour]

uint8 slot_id #
uint32 status_flags #

uint32 STATUS_FLAG_READY_TO_USE = 1
uint32 STATUS_FLAG_CHARGING = 2
uint32 STATUS_FLAG_CELL_BALANCING = 4
uint32 STATUS_FLAG_FAULT_CELL_IMBALANCE = 8
uint32 STATUS_FLAG_AUTO_DISCHARGING = 16
uint32 STATUS_FLAG_REQUIRES_SERVICE = 32
uint32 STATUS_FLAG_BAD_BATTERY = 64
uint32 STATUS_FLAG_PROTECTIONS_ENABLED = 128
uint32 STATUS_FLAG_FAULT_PROTECTION_SYSTEM = 256
uint32 STATUS_FLAG_FAULT_OVER_VOLT = 512
uint32 STATUS_FLAG_FAULT_UNDER_VOLT = 1024
uint32 STATUS_FLAG_FAULT_OVER_TEMP = 2048
uint32 STATUS_FLAG_FAULT_UNDER_TEMP = 4096
uint32 STATUS_FLAG_FAULT_OVER_CURRENT = 8192
uint32 STATUS_FLAG_FAULT_SHORT_CIRCUIT = 16384
uint32 STATUS_FLAG_FAULT_INCOMPATIBLE_VOLTAGE = 32768
uint32 STATUS_FLAG_FAULT_INCOMPATIBLE_FIRMWARE = 65536
uint32 STATUS_FLAG_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION = 131072
uint32 STATUS_FLAG_CAPACITY_RELATIVE_TO_FULL = 262144
ardupilot.equipment.power.BatteryPeriodic - 20011
Battery data to be sent statically upon request or periodically at a low rate

uint8[<=50] name #
uint8[<=32] serial_number #
uint8[<=9] manufacture_date #

uint8 cells_in_series #
uint16 cycle_count #
uint8 state_of_health # [%]

float16 nominal_voltage # [Volt]
float16 discharge_minimum_voltage # [Volt]
float16 charging_minimum_voltage # [Volt]
float16 charging_maximum_voltage # [Volt]
float32 charging_maximum_current # [Amp]
float32 discharge_maximum_current # [Amp]
float32 discharge_maximum_burst_current # [Amp]
float32 full_charge_capacity # [Amp hour]
ardupilot.equipment.power.BatteryCells - 20012
Battery cell voltages. Rate set by parameter on smart battery (default off)

float16[<=24] voltages # [Volt]

uint16 index # Index of the first cell in the array, index 0 is cells at array indices 0-23, index 24 is cells at array indices 24-47, etc.
uavcan.protocol.NodeStatus - 341 (Link)
com.packetdigital.LifetimeData - 20901
https://packetdigital.egnyte.com/app/index.do#storage/file/13a8d477-af88-4176-9639-2fb641332dca
frequency: set by parameter
uavcan.equipment.power.BatteryInfo - 1092 (Link)
frequency: set by parameter
ardupilot.equipment.power.BatteryInfoAux - 20004(Link)
frequency: same frequency as BatteryInfo, but can be separately disabled with a parameter
if BatteryInfo is disabled, this message will be disabled regardless
uavcan.protocol.dynamic_node_id.Allocation
This is a message used for the dynamic node allocation, but I assume the user doesn’t need to be told about that.