2-8s Battery Monitor

ArduPilot's AP_Periph Based CAN Bus Battery Monitor with Individual Cell Voltage Reporting and Hall Effect Current Sensing up to 400Amps.

Features

  • ArduPilot Based AP_Periph firmware (DroneCAN)

  • STM32F303CBT6

  • Auto ranging 2-8s input

  • Up to 4.35v (Li-Hv) per cell

  • Percentage of Charge remaining

  • Daisy chainable

  • User programmable Battery Serial Number (1-255) via UART

  • User programmable Battery Capacity (for accurate percentage readings) via UART

  • Hall effect current sensor

  • Current sense options up to 400 Amps (with adequate cooling)

  • User Bridgeable 120 ohm termination resistor (Not Connected by default)

  • Onboard Thermistor for temperature reporting

Important Notes

There is no onboard 5v regulator. Power is provided to the battery monitor by the Flight Controller.

The battery monitor is designed to be mounted to the airframe rather than battery. Do not leave the monitor connected to the battery when not in use.

The monitor comes without power leads soldered for the most user flexibility. Please ensure you are using adequate gauge wire and that it is soldered to the leads of the current sensor rather than the PCB pads.

Please ensure prompt connection of the balance lead after powerup (within 10 seconds) otherwise individual cell voltages wont be reported correctly.

Dimensions

All units in mm.

Setup

Wiring

The balance connector on the PCB is designed for 8s batteries. The monitor does work with batteries between 2 & 8s however a small modification to the plug is necessary. It is highly recommended to use a balance extension lead so the modification is limited to that connector and not to the batteries.

Please cut off the tab shown in orange below, which allows the connector to mate properly and still retain keying to prevent incorrect insertion.

To daisy chain simple connect the CAN Out on the first Monitor to CAN In on the next.

ArduPilot Flight Controller Settings

Please follow the guide and set"CAN_Dx_PROTOCOL = 1" for DroneCAN.

Set the parameter "BATT_MONITOR = 8" for DroneCAN. For each additional monitor being used set the appropriate "BATT_MONITORx = 8" where x is the monitor number.

Px4 Flight Controller Settings

Coming Soon! Not yet officially supported.

Termination Resistor

The CAN Bus node at the end of the chain must have a 120 ohm resistor across the data lines. This is included on the board and comes unconnected by default. To connect, a solder jumper on the PCB must be bridged as seen in the image below.

Thermistor

There is an on board NTC Thermistor that reports temperature. By default it is installed on the PCB and therefore will only give meaningful battery temperatures if the monitor is in very close proximity to the battery.

If you require more accurate readings it is possible to remove the installed thermistor (shown Red Below) and replace it with one that uses wires.

Please ensure the replacement meets the following specifications:

  • 10K Nominal Resistance

  • 3500K Beta Constant

User Programmable Options

The board has pads broken out that are used for setting and reading these parameters. Upon power on it will read out the currently set parameters.

Please connect to these at 115200 baud rate and follow the table below using spaces between columns.

FunctionRead/WriteLocationValue (Units)Example Command (10,000mAh Battery, Serial Number 1)

Read Current programmed Capacity

0

100

NA

0 100

Read Current programmed Serial Number

0

200

NA

0 200

Write the new value for Capacity

1

100

mAh

1 100 10000

Write the new value for Serial Number

1

200

1-255

1 200 1

Battery Capacity

By default it is set to 10,000mAh. For accurate percentage left readings in the ground station this must be set to your specific batteries capacity.

Board Serial Number

By default it is set to 1. Changeable if you are using multiple monitors in a daisy chain configuration and you want to guarantee that "Battery 1" is always "Battery 1" etc.

Secondarily useful if you use a dedicated monitor per battery and want to distinguish between them in logs.

Last updated