The heart of the MicroAmp-Meter consists of a precision Current-Sense Amplifier INA190, three high precision shunts (30mΩ, 68mΩ, 30Ω), and 12bit ADC BU79100G for high-speed analog sensing. The shunt-switching topology is based on David Jones's design
EEVblog #929 - Designing A Better Multimeter.
The brain of the MicroAmp-Meter
is ESP32 running at 80Mhz. The used variant of ESP32 has two physical cores. Each core is pinned to a separate task in RTOS. The primary core of ESP32 is responsible for reading analog data from external ADC, calculating current, and switching shunts accordingly. Dedicating the physical core to shunt switching makes the process happen in about 200 microseconds. A secondary core is responsible for handling LCD, Voltage, Battery SOC, SD Card, and Wi-Fi functionalities.
MicroAmp-Meter is calibrated to the high precision voltage reference LDO output during flashing. The calibration values are stored in the EEPROM of the MicroAmp-Meter. These values are loaded from the EEPROM during the startup of the software and all readings are compensated accordingly.