Skip to content
Buy 10+ on select items — save 10% auto-applied
Free US shipping on orders $35+
Order by 3pm ET — ships same-day from the US
Skip to main content

Arduino Nano + INA219 OLED: Power Bank Live Stats | ShillehTek

May 19, 2026 35 views

Arduino Nano + INA219 OLED: Power Bank Live Stats | ShillehTek
Project

Build an Arduino Nano power bank with INA219 monitoring and an SSD1306 OLED to display live voltage, current, and power using parts from ShillehTek.

2 hr Intermediate6 parts

Project Overview

Arduino Nano + INA219 + SSD1306 OLED power bank: In this build, you combine a TP4056 charger, an MT3608 boost converter, an INA219 current/power monitor, and an OLED display to create a DIY power bank that shows live voltage, current, and power while it runs.

Most basic power banks do not tell you how full they are, how much current they are delivering, or what the load is really doing. This project adds a simple wattmeter-style readout so you can see what is happening in real time.

  • Time: ~2 hours
  • Skill level: Intermediate
  • What you will build: An 18650-powered power bank with a live wattmeter readout on an OLED.
DIY 18650 power bank build with TP4056 charger, INA219 power monitor, and SSD1306 OLED showing live voltage and current
TP4056 + INA219 + OLED + 18650 = power bank that shows its work.

Parts List

From ShillehTek

External

  • 18650 LiPo cell + holder
  • USB-A female socket (for output)
  • Small project enclosure

Note: TP4056 charges the 18650 at 4.2V. MT3608 boosts the cell output to 5V for the USB load. INA219 sits inline to measure delivered current.

Step-by-Step Guide

Step 1 - Gather the components

Goal: Get all modules ready so you can wire power first, then I b2C.

What to do: Lay out the TP4056, 18650 holder, MT3608, INA219, Arduino Nano, and the SSD1306 OLED. Plan where they will sit in your enclosure before you start cutting wires.

TP4056 charger, MT3608 boost, INA219 monitor, Arduino Nano, and SSD1306 OLED components laid out for a DIY power bank
Charger + boost + monitor + display = stats-rich power bank.

Expected result: All parts are identified and positioned for a clean build.

Step 2 - Wire the power path

Goal: Create the charge and 5V output chain, with the INA219 measuring the USB output current.

What to do: Wire the modules in the order shown below, then adjust the MT3608 output to 5.0V before connecting a phone or other load.

Wiring diagram showing USB input to TP4056, TP4056 to 18650 holder, 18650 to MT3608 boost, MT3608 through INA219 to USB-A output
USB input  TP4056  18650  MT3608  INA219  USB-A output.
  • USB micro charging input  TP4056 IN+/IN-
  • TP4056 B+/B-  18650 cell holder
  • 18650  MT3608 IN+/IN-, adjust MT3608 to output 5.0V
  • MT3608 OUT+  INA219 Vin+
  • INA219 Vin-  USB-A 5V pin
  • USB-A GND  INA219 GND  MT3608 OUT-

Expected result: You have a stable 5.0V output, and the INA219 is inline on the 5V path feeding the USB-A port.

Step 3 - Wire I b2C for the display and monitor

Goal: Put the INA219 and OLED on the Arduino Nano I b2C bus so the Nano can read measurements and display them.

What to do: Connect both devices to the same SDA/SCL lines and provide 5V and GND from the boosted (5V) side.

  • INA219 SDA  A4, SCL  A5, VCC  5V (post-boost), GND  GND
  • OLED SDA  A4, SCL  A5 (shared bus), VCC  5V, GND  GND

Expected result: Both the INA219 and OLED are connected to the Nano on I b2C and powered from 5V.

Step 4 - Upload the Arduino sketch

Goal: Read bus voltage, current, and power from the INA219 and print the live values to the OLED.

What to do: Compile and upload the following code to your Arduino Nano. It updates the display every 500 ms.

Code:

#include <Wire.h>
#include <Adafruit_INA219.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_INA219 ina;
Adafruit_SSD1306 oled(128, 64, &Wire, -1);
void setup() {
  ina.begin();
  oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  oled.setTextColor(SSD1306_WHITE); oled.setTextSize(1);
}
void loop() {
  float v = ina.getBusVoltage_V(), mA = ina.getCurrent_mA(), mW = ina.getPower_mW();
  oled.clearDisplay(); oled.setCursor(0, 0);
  oled.printf("V: %.2f V\nI: %.0f mA\nP: %.0f mW\n", v, mA, mW);
  oled.display();
  delay(500);
}

Expected result: The OLED shows live voltage (V), current (mA), and power (mW) from the INA219.

Step 5 - Assemble and use the power bank

Goal: Fit the modules into an enclosure and verify that the OLED updates while charging or powering a load.

What to do: Mount the modules securely, route the USB ports to the case openings, and double-check polarity on the battery and 5V rails. Plug in a USB load and confirm the display responds to changes in current draw.

DIY power bank assembled inside a small enclosure with TP4056, MT3608, INA219, Arduino Nano, and OLED mounted
Everything in a small project box - looks like a normal power bank, shows what it's really doing.
DIY power bank charging a phone while an SSD1306 OLED displays live voltage, current, and power readings
Plug in a phone - watch live current, voltage, and power draw on the OLED.

Expected result: When you plug in a device, the OLED shows changing current and power values as the load changes.

Step 6 - Where to take it next

Goal: Identify safe, logical upgrade paths if you want more features.

What to do: Consider these optional enhancements:

  • Add coulomb counting - integrate mA  time for a state-of-charge estimate
  • Switch to multiple 18650 cells in parallel for 10,000+ mAh
  • Add a TP4056 with USB-C input for modern charging
  • Replace Arduino with ESP32 and push stats to a phone dashboard

Expected result: You have a clear list of next steps for expanding the project.

Conclusion

You built an Arduino Nano-based DIY power bank using a TP4056 charger, MT3608 boost converter, and INA219 monitor to show live voltage, current, and power on an SSD1306 OLED. It is a practical way to learn what your USB loads actually draw instead of guessing.

Want the exact parts used in this build? Grab them from ShillehTek.com. If you want help customizing this project or building something for your product, check out our IoT consulting services.

Credit: This power bank meter concept was inspired by a reference guide on Instructables.