Specifications
| Chip | Texas Instruments INA219AIDCNR in a SOT-23-8 package — the A grade, so ±0.5% on the current reading at room temperature and ±1% over −25 to 85 °C |
|---|---|
| Shunt | 100 mΩ, 1%, rated 2 W. Yageo PT2512FK-7W0R1L, in the positive wire between the POWER terminal and the LOAD terminal |
| Current range | ±0.4, ±0.8, ±1.6 or ±3.2 A, chosen in software by the chip's gain setting. Above the setting you picked the reading sits at full scale and stops moving |
| Resolution | One count is 0.1 mA — 10 µV of shunt voltage across 100 mΩ. The fixed zero-point error is larger than that: up to ±1 mA on the narrowest setting and ±2 mA on the widest |
| Bus voltage | 0 to 26 V, measured from the LOAD + screw down to the board's ground. 26 V is an absolute maximum on the chip, not a recommendation |
| Supply | 3 to 5.5 V on the hole marked 3V3 — the chip's own supply, separate from the rail being measured. Feed it the same rail your microcontroller's logic runs at |
| Header | 4 pins on 2.54 mm pitch, right-angle, printed GND, 3V3, SCL, SDA. Note that SCL comes before SDA on this board |
| Terminals | 2 KF301-5.0 screw terminals on 5 mm pitch: a red one marked POWER and a black one marked LOAD, each with a + and a − screw |
| Isolation | None. Both − screws, the GND pin and the chip's ground are one net, so the supply you are measuring has to share a ground with the board reading it |
| I²C address | 0x40 out of the box. Two solder pads on the back, A1 and A0, give 0x40, 0x41, 0x44 and 0x45 — A1 is worth four and A0 is worth one |
| Pull-ups | 10 kΩ on SDA and on SCL, to the 3V3 rail. Fitted, and not removable — so this board sets the bus levels for anything sharing them |
| Power LED | Red, from the 3V3 rail through 5.1 kΩ — about a quarter of a milliamp at 3.3 V. On whenever the board has power, and on no GPIO |
| Size | 22.4 × 30.4 mm TinkerBlock board, two LEGO-compatible holes 16 mm apart |
| In the box | 1 × TK119 INA219 block, screw terminals and header fitted |
What it does
A resistor and a chip that reads it. The resistor, 100 milliohms, sits in the positive wire between your supply and your load, so everything the load draws goes through it: at 500 mA that makes 50 millivolts across it, and the INA219 beside it measures exactly that. It also measures the voltage the load is getting, and works out current in milliamps and power in milliwatts.
Two things to know before wiring
- SCL comes before SDA. The header reads GND, 3V3, SCL, SDA, the reverse of most I²C boards. Swapped, the block is simply not found.
- The block goes in the positive wire: supply into POWER, load out of LOAD. Both minus screws are the header's GND, so it can go nowhere else.
Wiring, in six lines
- GND to GND.
- 3V3 to your board's logic supply: 3V3 on an ESP32 or a Pico, 5V on an Uno.
- SCL to SCL, SDA to SDA (GPIO 9 and 8 on the book's ESP32-S3).
- Load + to LOAD +, load − to LOAD −.
- Supply + to POWER +, supply − to POWER −, last.
- The rail stays within 0 to 26 V, and the current within 3.2 A.
Where to start
The handbook below is eleven short articles. Read Current through a resistor for what the block measures, POWER in, LOAD out and SCL comes first before wiring, and Four ranges, one step before choosing a calibration. The first reading is the ESP32-S3 sketch that prints all four numbers. For three rails at once, the INA3221 has a book of its own, which compares the two boards.
When it doesn’t work
- My current reading is negative.
- The supply and the load are in the wrong terminals. Current is meant to flow POWER → LOAD, which is the direction the two arrows printed between them point. Swap the two pairs of wires and the sign comes right. Nothing is damaged either way round, but with them swapped the voltage the board reports is the supply's rather than the load's.
- A scan finds nothing at 0x40.
- Almost always SCL and SDA. This board prints GND, 3V3, SCL, SDA — the clock before the data, which is the opposite of the other I²C blocks and of the INA3221 sold beside it. Check the silkscreen rather than the wire colours, then check that the red power LED is lit.
- The voltage looks right but the current is out by a factor of two.
- The chip does not measure current. It measures millivolts and divides by a resistance your sketch told it about, so a wrong shunt value or a wrong calibration number scales the current by exactly that ratio while leaving the voltage perfect. Set 0.1 Ω and the maximum current you expect, and nothing else.
- Can it measure my board's sleep current?
- No. One count is 0.1 mA and the zero-point error is worth about ±1 mA, while a sleeping ESP32 draws tens of microamps. This board shows you a rail at work — a Wi-Fi transmit burst, a motor starting, an LED strip at full brightness. Sleep current needs a meter with a microamp range.
- Can I put two of these on one bus?
- Up to four. The two pads on the back are A1 and A0, and bridging one joins that pin to the supply against a 10 kΩ pull-down. A1 is worth four and A0 is worth one, so the four addresses are 0x40, 0x41, 0x44 and 0x45 rather than four in a row. Write the address on the board with a marker once you have soldered it.
- How much current can it actually take?
- The chip stops reporting above 3.2 A, which is the limit that matters. The resistor is rated 2 W and dissipates about 1 W at 3.2 A, so it will be hot to the touch at the top of the range and is past its rating a little over 4 A. A 5 mm screw terminal of this size is normally rated for several times that, so neither the terminals nor the resistor is the limit you meet first.