Mini OLED Panel Meter

OLED Panel Meter That Can Be Programmed By Any FTDI Programmer

Similar projects worth following
This is an arduino programmable OLED panel meter that uses the INA226 power monitor chip to sense the voltage, and current which is then shown on the SSD1306 OLED display. Usually other small panel meters which are the ones on amazon/ebay that are dirt cheap are very inaccurate, and some of them come with this potentiometer that can vary the voltage and current, but this is only accurate within a small range of values, and usually messes up the volt/current reading. To avoid this frustration I built my own panel meter that can display both voltage, and current accurately, be very tiny, be easy to use, measure watts, and change units of any measurement.

Board Specifications

This Panel meter uses the SSD1306 OLED display and INA226 power monitor IC. The INA226 can measure voltages up to 36v and currents up to 5A with the 5mΩ high-side current sense resistor. The INA226 has an offset voltage max of 10 micro Volts and gain error of 0.1% to ensure high accuracy readings. There is an on board 3.3v LDO regulator with an input range of 5v-40v which powers everything on the board including display. This board contains an Atmega328p which is already programmed with the code in order to display Voltage from 0v-36v and currents from 0A-5A. In order to program the board differently and display power or change anything in the code, the user can use an FTDI programmer and simply plug it into the board's input pins.


  • 0-36V measuring range
  • 0-5A (10A MAX) current measuring range
  • Measure voltages as low as 5mV and currents as low as 5mA accurately
  • Programmable Board
  • 27mm x 28mm (1.06in x 1.1in) board size
  • On board 3.3V regulator and ability to bypass regulator
  • OLED Display

ino - 1.60 kB - 05/23/2023 at 19:51


x-zip-compressed - 61.60 kB - 05/23/2023 at 19:49


ms-excel - 2.75 kB - 05/23/2023 at 19:49


  • 1 × ATMEGA328p Microprocessors, Microcontrollers, DSPs / ARM, RISC-Based Microcontrollers
  • 1 × LM317 Power Management ICs / Linear Voltage Regulators and LDOs
  • 1 × INA226 Power Management ICs / Power Supply Support
  • 3 × 10kΩ 0402 Resistor
  • 1 × 330Ω 0402 Resistor

View all 15 components

  • 1
    How it Works

    Background On Current and voltage measurement

    Measuring Voltage is quite easy where all you have to do is connect the voltage you want to measure to an ADC (analog to digital converter) for a microcontroller to then read, and display the values for you. An ADC pretty much samples the analog voltage at certain points in time, and stores those values as bits. The higher the bit resolution, which is the amount of samples the ADC takes of the analog voltage, the better the accuracy. Measuring current can be done in many different ways, but I'll only focus on the one this project uses which is using a current shunt. A current shunt is just a resistor connected in series with the load you are measuring, and according to Ohms Law, the current running through this resistor will create a voltage drop across the resistor equal to I times R. The current through the shunt will be the same as the the current running through the load as it is connected in series with the load. If the value of the shunt is known then the current through the load will be equal to voltage drop across the shunt/resistance of shunt. Shunts can be connected in the high or low side where high side is when the current shunt is connected to the positive side of the load, while low side is connected to the ground side of the load. I chose high side sensing for this project.

    Bit Resolution Comparison

    About The Components

    This project uses the INA226 power monitoring IC to measure the voltage, and current. It achieves this by measuring the voltage across the shunt resistor, and calculates the current running through the load as the voltage is simply measured by the ADC of the INA226. The heart of this project is the ATMEGA328p, since it reads the values from the INA226 through I2C, and displays these values to the OLED display through again, I2C. The current shunt is a 5mΩ resistor with 1% tolerance rated to be 2W which creates a voltage drop that the INA226 measures. The SSD1306 is a typical display that is available everywhere that is commonly used in arduino project where you simply power it up, and feed it information through the I2C line.

    INA226 Wiring Diagram
  • 2

    The ATMEGA328p is pretty much the same as an Arduino mini, and to program an Arduino mini you would need a FTDI programmer in order to convert the USB to serial communication. In order to program the ATMEGA328p, the FTDI programmer needs to connect to the ATMEGA by using pins DTR, RX, TX, CTS, POWER, and GROUND. Not only do you have to program the ATMEGA, but since the chip is blank it needs to be bootloaded, and to bootload the chip you need to connect an Arduino uno to the chip with pins 15, 16, 17, and 29. Programming, and bootloading the chip will be explained in the steps below. The two 10k resistors are on pins 28, and 27 of the ATMEGA as those are the I2C pins (SDA and SCL). These two pins need a pull-up resistor to function correctly where the display, and INA226 use I2C communication which is why they have pins labelled SDA, and SCL (serial data and serial clock). VBUS of the INA226 is the point (with respect to ground) that you measure the voltage with, IN+ goes to the positive side of the shunt, and IN- goes to the load side of the shunt, the alert pin is used to alert the user of fault conditions.

  • 3
    The PCB

    This board measures 27mm x 28mm, and it takes a 5v-40v input which passes through the LM317 regulator which powers the entire board with 3.3v. The shunt resistor is on the bottom of the board, and can be connected to the load through the exposed contacts on the board. The board contains no holes as I wanted to save space, and reduce contact resistance, which was done to make sure the INA226 was giving accurate readings. To program the board, there is a female header for the FTDI programmer, and to bootload the board there are exposed contacts on the back of the board. The OLED display goes on the back of the board where the board must be bootloaded first before placing the display on it, since they are both located on the back.

View all 6 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

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