#dac #i2c #async #no-alloc #mcp4725

no-std mcp4725-async

An async driver for the MCP4725 DAC

1 unstable release

0.1.0 Mar 25, 2024

#1688 in Embedded development


401 lines


GitHub Actions Workflow Status Codecov (with branch)

An async driver for the MCP4725 DAC using embedded_hal_async. It supports sending commands over I2C.

Warning: This is currently untested on real hardware.

The driver can be initialized by calling new with an I2C interface and the chip address:

// Address corresponds to A2,A1=0, and A0 tied to Vss
let mut mcp = MCP4725::new(i2c, 0b1100000);

To quickly set the DAC output:

// Set DAC to 0xFFF = Full scale, don't write to eeprom
mcp.set_voltage(0xFFF, false);
// Set DAC to 0x800 = Half scale, don't write to eeprom
mcp.set_voltage(0x800, false);
// Set DAC to 0x000 = Zero volts, write to eeprom
mcp.set_voltage(0x000, true);


Licensed under either of

at your option.