GitPedia

INA

Combined Arduino library for reading multiple INA2xx power monitor devices

From Zanduino·Updated May 6, 2026·View on GitHub·

_Arduino_ library to access multiple INA2xx High-Side/Low-Side Bi-Directional I2C Current and Power Monitors at the same time. Details of the library methods and example programs are to be found [at the INA wiki pages] The project is written primarily in C++, distributed under the GNU General Public License v3.0 license, first published in 2018. Key topics include: arduino, arduino-library, esp32-arduino, esp8266-arduino, ina.

Latest release: v1.1.0Enhancement release
December 12, 2020View Changelog →
<img src="../images/horizontal_narrow.png" alt="INA" align="right" height="40px">

License: GPL v3 Build Format Wiki Doxygen arduino-library-badge

INA2xx Devices<br>

Arduino library to access multiple INA2xx High-Side/Low-Side Bi-Directional I2C Current and Power Monitors at the same time. Details of the library methods and example programs are to be found [at the INA wiki pages]

Texas Instruments produces this family of power monitors and the library supports the following devices:

DeviceMax VPackageShunt mVDescriptionTested
INA219 (datasheet)26VSOT-23 8p±40,±80,±160,±320mVYes
INA220 (datasheet)26VVSSOP 10p±40,±80,±160,±320mVidentical to INA219-
INA220-Q1 (datasheet)26VVSSOP 10p±40,±80,±160,±320mVIdentical to INA219-
INA226 (datasheet)36VVSSOP 10p±81.92mVYes
INA230 (datasheet)28VQFN 16p±81.92mVIdentical to INA226-
INA231 (datasheet)28VDSBGA-12±81.92mVIdentical to INA226-
INA260 (datasheet)36VTSSOP 16pn.a.2 mΩ shunt, ±15AYes
INA3221 (datasheet)26VVQFN(16)±163.8mV3 concurrent circuitsYes

Texas Instruments has a document which describes and details the differences between the various INA-devices, this PDF document can be read at Digital Interfaces for Current Sensing Devices

Hardware layout

<img src="https://github.com/Zanduino/INA/blob/master/images/INA226.jpg" width="175" align="left"/>The packages are small and a lot of work to solder, but fortunately there are now several sources for breakout boards for the various devices which are worth it in time savings. My first test with a INA226 involved a blank breakout board, some solder paste, a frying pan, desoldering braid, a magnifying glass and quite a bit of time to set up the first breadboard.

Library description

The library locates all INA2xx devices on the I2C chain. Each unit can be individually configured with 2 setup parameters describing the expected maximum voltage, shunt/resistor values which then set the internal configuration registers is ready to begin accurate measurements. The details of how to setup the library along with all of the publicly available methods can be found on the INA wiki pages.

Great lengths have been taken to avoid the use of floating point in the library. This keeps the library size down because floating point support doesn't have to be compiled into the code. The results are returned as 32-bit integers to keep the original level of precision without loss but to allow the full range of voltages and amperes to be returned the amperage .

Since the functionality differs between the supported devices there are some functions which will only work for certain devices.

Documentation

The documentation has been done using Doxygen and can be found at doxygen documentation

Zanshin Logo <img src="https://zanduino.github.io/Images/zanshintext.gif" width="75"/>
<img src="https://github.com/Zanduino/INA/blob/master/images/horizontal_narrow.png" alt="INA" align="left" height="50px">

Contributors

Showing top 5 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from Zanduino/INA via the GitHub API.Last fetched: 6/28/2026