Battery - EFeru/hoverboard-firmware-hack-FOC GitHub Wiki

Most of the Hoverboard mainboards use a 10S2P LIPO Battery (36v Nominal - 42v Charged ). If you want to use a battery with less or more cells in series, change BAT_CELLS parameter in config.h (10 by default).

Maximum voltage

The Maximum voltage that can safely be used is 50.4V (12S battery), but do it at your own risk. For higher voltage, you need to replace the 63v capacitors highlighted in red in the following picture and the mosfets by ones rated for 80v/100v depending on your needs.

Below 30v, it could be that the power ON button doesn't work anymore, but the threshold can differ depending on how your board is built. Below 18v the mosfets might not get the needed 15v for driving the motors.

:electric_plug: Charging

You can charge the battery through the mainboard pcb or connect the battery directly to the charger through a custom xt60 adapter. If the led on the charger stays green when plugging it in, the battery is probably defective.

:bell: Battery level low alerts:

Default battery level are for safe use of LIPO batteries. You can adjust the battery levels to your needs in config.h if you want to use a battery with a different chemistry.

Level Single Cell Voltage Sideboard Led Alert EnableParameter AjustParameter
LVL5 3.9v Green blink BAT_LVL5
LVL4 3.8v Yellow BAT_LVL4
LVL3 3.7v Yellow blink BAT_LVL3
LVL2 3.6v Red Slow beeps BAT_LVL2_ENABLE BAT_LVL2
LVL1 3.5v Red Blink Fast beeps BAT_LVL1_ENABLE BAT_LVL1
DEAD 3.37v Power Off BAT_DEAD_ENABLE

BAT_LVL1_ENABLE and BAT_DEAD_ENABLE are enabled by default, you can disable it by making it 0 in the config.h file.

Voltmeter

You can connect a voltmeter between the middle pin of the TIP127 and ground, it will display battery level when the board is ON. On some of the boards the wires for the bluetooth/speaker board can be used. (see discussion)

Board Power consumption

The mainboard consumes 80-90mA with motors disabled, and 160-170mA with motors enabled.

:zzz: Inactivity timeout - Power Saving

The board will automatically power off after approximately 8 minutes of inactivity by default. The counter is reset if commands or cruise target are below -30 or above 30. Parameter INACTIVITY_TIMEOUT can be used to set up the number of minutes of inactivity before power off. It is not very precise.

:chart_with_downwards_trend: Calibration:

Battery voltage has to be calibrated to have a more accurate reading, for this you need Debug Serial to be active

  • Measure battery voltage with a multimeter and write the value * 100 to parameter BAT_CALIB_REAL_VOLTAGE in config.h
  • Turn the board on and wait a minute for the Battery ADC to stabilize
  • Read value BatAdc(5) from Debug Serial Output and write it to parameter BAT_CALIB_ADC in config.h
  • Save, compile and flash the board
  • Value BatV(6) in Debug Serial should match with the measured battery voltage now

:toolbox: Troubleshooting:

If the board is beeping because of low battery level or turning off with the melody

  • Make sure you have updated the number of cells in config.h if you use a battery with less cells in series
  • Calibrate the battery voltage
  • With a battery of low quality/bad health, pulling a lot of current will result in a big battery voltage drop and trigger battery low alerts. You can use a better battery or several similar batteries in parallel
  • Check the voltage of your battery when fully charged, if much lower than 42V it could mean some cells are defective (0V)
  • Reducing the battery low levels can help but going too low can be risky for your battery
  • You can limit the current being drawn to reduce the voltage drop but you will also reduce the power
  • Debug Serial can be used to monitor battery voltage

You can turn off the battery dead power off with BAT_DEAD_ENABLE parameter for debugging.

If the board turns off without the melody, the BMS is shutting the power off

  • You are drawing too much current which triggers the over-discharge protection of your BMS. You can limit the current but you will reduce the power
  • It can happen if your battery is fully charged and too much current is flowing back (regenerative braking), it can trigger overcharge protection of your BMS
  • When using phase advance/field weakening and braking, a voltage higher than the battery voltage can flow back to the battery and trigger the over-voltage protection of your BMS You will have to unplug the battery and plug it again

The board is not turning off when you push the ON/OFF button:

  • This might happen is you are using a battery that has too low voltage