Gravity: GP8503 2-Channel 12bit I2C to 0-2.5V/VCC DAC Module


DAC series modules are a range of products that can be controlled through I2C or PWM signals to generate voltage or current output signals. They possess the capability to produce a variety of analog voltage or current signals, including 0-5V, 0-10V, 0-2.5V, 0-VCC, and 0-25mA.

An analog quantity refers to the continuous variation of voltage magnitude (or current magnitude) within a specific range. Due to its stability, long transmission distance, and ease of use, it has found widespread application in the field of industrial automation control, including:

This series of DAC products not only offers a variety of output signal ranges, but also provides three selectable resolutions: 8-bit, 12-bit, and 15-bit. It allows for the choice of either single-channel or dual-channel configurations, and multiple modules can be cascaded to form a multi-channel output. When coupled with Arduino controllers, Raspberry Pi, STM32, and similar controllers, it finds application in various automation control scenarios, including:

The following table presents the functional parameters of each DAC product for reference in the selection process.

DFR1034-GP8503 (2-Channel 12bit I2C to 0-2.5V/VCC DAC Module)


This is a 2-channel analog voltage output DAC module with I2C communication, 12-bit resolution, and 0.1% output voltage linearity error. It is well-suited for control projects operating within the 3.3V range, such as ESP32, Raspberry Pi, STM32, and other microcontrollers that require analog signal output.




Name Description Remarks
12C Interface + Positive terminal of the power supply (3.3V-5V)
- Negative terminal of the power supply
0-2.5V/0-VCC SwitchingSwitch 0-VCC Switch output voltage to 0V-VCC(Supply voltage)
0-2.5V Switch output voltage to 0V-2.5V
Voltage Signal Output Port VOUT0 Positive terminal of output voltage signal 0
VOUT1 Positive terminal of output voltage signal 1
GND Negative terminal of the output voltage signal



In this example, we will demonstrate the output of different voltage values in two states.

Input signal value range:0-4095

In the state of 0-2.5V:

In the state of 0-VCC:




#include <DFRobot_GP8XXX.h>

DFRobot_GP8503 GP8503;

void setup() {


    Serial.println("Communication with the device has encountered a failure. Please verify the integrity of the connection or ensure that the device address is properly configured.");

   * @brief. Configuring different channel outputs for DAC values
   * @param data. Data values corresponding to voltage values
   * @n (0 - 4095).This module is a 12-bit precision DAC module, hence the values ranging from 0 to 4095 correspond to voltages of 0-2.5V or 0-VCC respectively. The specific voltage range depends on the selection of the module's voltage fluctuation switch.
   * @param channel Output Channel
   * @n  0:Channel 0
   * @n  1:Channel 1
   * @n  2:AII channels
  GP8503.setDACOutVoltage(2654,0);//At 0-2.5V voltage range, Channel 0 outputs 1.62V, whereas at 0-VCC voltage range, Channel 0 outputs 3.23V.
  GP8503.setDACOutVoltage(1095,1);//At 0-2.5V voltage range, Channel 1 outputs 0.668V, whereas at 0-VCC voltage range, Channel 1 outputs 1.334V.


  //The set voltage is saved internally in the chip for power-off retention.

void loop() {



After downloading the program, the measured output voltage of channel 0 under the 0-2.5V state is 1.62V, and the output voltage of channel 1 is 0.668V. Under the 0-VCC state, the actual output voltage of channel 0 is 3.23V, and the output voltage of channel 1 is 1.334V.

More Documents

DFR1034 Documents:




DFR1034_2D_CAD File.rar

DFR1034_GP8503 Datasheet.pdf


For any questions, advice or cool ideas to share, please visit the DFRobot Forum.