Creative Commons images are CC BY-NC-SA 3.0

Description: You’ve always wanted to output analog voltages from a microcontroller, the MCP4725 is the DAC that will let you do it! The MCP4725 is an I2C controlled Digital-to-Analog converter (DAC). A DAC allows you to send analog signal, such as a sine wave, from a digital source, such as the I2C interface on the Arduino microcontroller. Digital to analog converters are great for sound generation, musical instruments, and many other creative projects!

This version of the MCP4725 Breakout fixes a few issues with the board including the IC footprint, the I2C pinout, changes the overall board dimensions to better fit your projects, and a few more minor tweaks. This board breaks out each pin you will need to access and use the MCP4725 including GND and Signal OUT pins for connecting to an oscilloscope or any other device you need to hook up to the board. Also on board are SCL, SDA, VCC, and another GND for your basic I2C pinout. Additionally, if you are looking to have more than one MCP4725 on a bus, the pull-up resistors on this board can be disabled just check the Hookup Guide in the Documents section below for instructions and tips on doing this.


  • 12-bit resolution
  • I2C Interface (Standard, Fast, and High-Speed supported)
  • Small package
  • 2.7V to 5.5V supply
  • Internal EEPROM to store settings


Recommended Products

Customer Comments

  • You can get 4 of these on one i2c bus if you use two from SparkFun and two from Adafruit. Sparkfun’s addresses are 0x60 and 0x61. Adafruit’s are 0x62 and 0x63. This makes me very happy.

  • Ooo, this may be exactly what I’ve been looking for for controlling my galvanometer laser scanner with my Arduino. I may have to pick up a pair at some point.

  • Is it possible to use this device in reverse, to convert an analog input to an I2C signal?

  • OK. Total newb question. Can someone help me figure out how to address more than one of these things from arduino? I get that I need to cut the pullup traces on all but one of the boards, but wouldn’t they then still all have the same address?

    • As the hookup guide states, to change the address of the MCP4725, you’ll need to de-solder the jumper and re-solder it in the correct configuration. By default this pin is connected to GND. So, to add a second MCP to your I2C bus, you’d need to cut the pullups and change the address jumper to be connected to Vcc on only one of your boards. The way the addressing on this IC works only allows for two devices on the same bus using the A0 pin. If you need to have more than two on the same bus, then you’ll need to order the ICs directly from the manufacturer with separate addresses. See section 7.2 of the datasheet for more info on addressing.

  • I like the MAX522 DAC. It contains two 8-bit converters, and is SPI compatible up to 5MHz. I’m not sure if they have an SMD package, though.

  • Eagle Files is a 404

  • Can I use this to power a PC fan? For instance I want to be able to use an Arduino to power a standard non-PWM fan using voltage - would this be suitable for a single fan (5-10w max) at 12V?

    • This outputs a varying waveform, not a constant voltage. If you need to control a 12V fan with an Arduino, I would recommend a MOSFET or a relay.

      • Hi JoelEB, I believe your response is misleading. This board “should” output a single voltage proportional to the value of the code that you send to it. While you “can” make it output a varying voltage, you do that by repeatedly sending it different values that will cause the voltage to vary.

        Example: From the datasheet: VOUT = (VREF * Dn)/ 4096

        This means that if you send it a single binary value of 4096 that it will output a steady state voltage equal to VREF.

        If you send it a binary 0, then it will output a voltage of 0 volts.

        The only time it will output a varying voltage is when you program a loop to “continuously” send it varying values to cause the output to vary with the desired amplitude and time scale (up to the limits of the device of course).

        In a nutshell, it DOES output a constant voltage. That is what it is designed to do. That voltage is programmable and if re-programmed fast enough it can output a rather low frequency sine wave.

        Hope that helps

      • A relay isn’t what I want but the MOSFET may work. I essentially want to take the PWM signal from the Arduino and turn it into a variable voltage output to directly power the fan.

Customer Reviews

No reviews yet.