dumb-ina219

Crates.iodumb-ina219
lib.rsdumb-ina219
version0.1.4
created_at2025-10-18 18:24:27.270114+00
updated_at2025-11-30 05:32:17.530964+00
descriptioni2cdev driver for INA219 on the Raspberry Pi 5.
homepage
repositoryhttps://github.com/andergisomon/dumb-ina219
max_upload_size
id1889505
size50,373
andergisomon (andergisomon)

documentation

README

dumb-ina219

A dumb INA219 driver for the Raspberry Pi, hastily made for a course project. Seems to work, YMMV. Tested on a Raspberry Pi 5.

What works

Everything seems to work from limited testing.

Example

use dumb_ina219::{units::{CurrentUnit, Gettable, ResistanceUnit}, *};
use i2cdev::linux::LinuxI2CError;

const TARGET_ADDR: u8 = 0x44;

fn main() -> Result<(), LinuxI2CError> {
    let mut dev = Ina219::new(
        ResistanceUnit::milliohms(100.0),
        CurrentUnit::milliamps(1000.0),
        TARGET_ADDR)?;
    dev.init()?;
    let current_reading = dev.load_current()?;
    let shunt_voltage_reading = dev.shunt_voltage()?;
    let bus_voltage_reading = dev.bus_voltage()?;
    let power_reading = dev.power()?;


    println!("Load current: {:?} mA", current_reading.get_val()*1000.0);
    println!("Shunt voltage: {:?} mV", shunt_voltage_reading.get_val()*1000.0);
    println!("Bus voltage: {:?} V", bus_voltage_reading.get_val());
    println!("Power: {:?} mW", power_reading.get_val()*1000.0);
    Ok(())
}

Notes to dev

Specify cross comp target to check:

cross check --target aarch64-unknown-linux-gnu

Send to Pi:

scp -i ~/gipop_plc /Users/ander/Documents/proj/dumb-ina219/target/aarch64-unknown-linux-gnu/release/examples/ina219_xmpl pi@172.30.40.32:/home/pi/palanuk/anc/
Commit count: 0

cargo fmt