ESP32 3-Channel Power Logger

Power logger based on the INA3221 chip with TFT Display, SD card and battery (charging and monitoring) support

Public Chat
Similar projects worth following
Were you ever working on a battery or solar powered project and wanted to know exactly how much current your prototype was using?

The easiest way to measure is to use one of the INA219 or INA3221 modules which can be found for cheap. Unfortunately the modules are flawed and often require modifications in order to work as intended.

This is why i have decided to design and create my own power logger which has way more features than any commercial product. On top of that it is fun and easy to build.

Here are some of the hardware features:

- 3 channel monitoring, with one of the channels having a "USB C to USB A" power monitor (for monitoring a usb device charging for example)

- ESP32 C3 Mini powered, makes it easy to program and interface with

- USB C interface for programming and power

- Micro SD card support for saving logging data (useful for solar power monitoring projects for example)

- Battey support. Contains all necessary components for safe operation on 3.7V battery (overcurrent, over/under charge, LDO for 3.3V). 

- TFT Display and buttons for programable interface. This allows the device to be used without needing a serial connection to a laptop in order to read values.

I am writing the software myself in ArduinoIDE and although the final version is not ready yet. here are some of the software features i'd like it to have:

- Easy to use menu to enable/disable channels, set sampling rates, etc.

- The possibility to use 2 channels together to monitor efficiency of devices (for example monitor the input and output of a 5v boost converter)

- Record accurate date/time and values to a microSD card for later review

- Monitor battery level of the power logger itself and alert when low (maybe send an email or MQTT notification)

- Monitor voltage and current levels on any of the 3 channels and send notifications

- Display a bar graph instead of instant values for the past 1/5/15 min


Arduino IDE code V2.1 Known bugs: - If you hook the wires in reverse, negative values will be displayed of the screen (which are not aligned properly) - If you monitor a battery and charge it 100mAh and then discharge 100mAh, the calculated energy transfer will be 0

RAR Archive - 15.07 kB - 10/02/2022 at 13:56


BOM_PCB_Power Logger SMD.csv

Power Logger EasyEDA BOM V1

Comma-Separated Values - 7.14 kB - 09/28/2022 at 18:58


PCB_Power Logger SMD.json

Power Logger EasyEDA PCB File V1

JavaScript Object Notation (JSON) - 1.04 MB - 09/28/2022 at 18:18


SCH_Power Logger SMD.json

Power Logger EasyEDA Schematic File V1

JavaScript Object Notation (JSON) - 191.07 kB - 09/28/2022 at 18:16


Schematic Power Logger SMD.png

Power Logger Schematic PNG V1

Portable Network Graphics (PNG) - 298.96 kB - 09/28/2022 at 18:14


  • 31 × SMD Resistors Various values
  • 10 × SMD Capacitors Various values
  • 6 × SMD LEDs Various colors
  • 2 × USB-C Female Connector
  • 1 × USB-A Female Connector

View all 15 components

View all 4 project logs

  • 1
    Download and install EasyEDA software

    Use the provided schematic and PCB files and import them in EasyEDA

  • 2
    Make any changes if needed

    If you'd like to add your own features you could rewire the pins of the ESP32

  • 3
    Order PCB and components

    Now is the time to decide if you want to order the PCB with the components already soldered to it.

View all 10 instructions

Enjoy this project?



Ovidiu wrote 09/28/2022 at 18:22 point


Please feel free to download, modify and reproduce this project. 

If you don't mind please send some love when you are using my files

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates