Skip to content

IBEM Current Calibration

Dave Williams | DitroniX | G8PUO edited this page Apr 8, 2024 · 7 revisions

The IBEM board has dual parallel current sensors which are fed into separate ADS1115 channels, to provide an amalgamated current.

Two DC Current Offsets are provided in the firmware, to easily 'zero' the current, whilst maintaining linear current readings.

  • AUTO: Primary offset is using the Auto Offset Calibration (added in firmware 240408).
    • Power up the board from USB only, ensuring NO current is flowing
    • Firmware will auto calibrate zero current and write to EEPROM calibration data.
    • Once powered from Battery, calibration will automatically ready from EERPOM upon boot.
  • MANUAL: A manual adjustment of the current is provided in the Global.h file.

For simplicity, the AUTO calibration is the most straight forward.


The AUTO process is a simple matter of powering up the board from USB and ensuring that no current is flowing to, or from, the battery (So if battery/batteries are connected to your inverter/charger, just ensure the isolation switch is open).

Looking at the serial monitor, you will see something like the below. You can run this multiple times if needed.

Once the calibration is written to EEPROM, powering up from battery should then read the auto calibrated offset by default.

IBEM Auto Current Zero Calibration via EEPROM


The MANUAL process is as per below and can also be used to tweak the auto calibration if absolutely needed.

The simple process to calibrate the current on your board is:

  1. Connect the board to the battery system.
    • Importantly disconnect/switch out, any chargers/inverters etc. so no load or charge.
  2. Take a current reading using the software serial monitor, OLED display or the web interface.
  3. Enter the 'current' value into the DCCurrentOffset.
    • This can be found in the adc.h include file.
  4. Reflash and calibration is complete.

Read the Zero Current value (in our prototype example it shows -1.70A) OLED Example

Web Page Example

Update the the DCCurrentOffset value (Example from 0.00A to -1.70A) Default Value

Updated Value

After Flashing - Validate the the DCCurrentOffset value is correct Validate Reading at Zero Current Flow