

The DPS310 is a digital barometric pressure sensor that provides high-precision measurements of atmospheric pressure and temperature. It is designed to deliver accurate readings in a compact form factor, making it ideal for a wide range of applications. The sensor uses capacitive pressure sensing technology and includes an integrated temperature sensor for compensation, ensuring reliable performance across various environmental conditions.








The DPS310 is a versatile sensor with the following key technical details:
| Parameter | Value |
|---|---|
| Operating Voltage | 1.7V to 3.6V |
| Pressure Measurement Range | 300 hPa to 1200 hPa |
| Pressure Resolution | 0.002 hPa |
| Temperature Measurement Range | -40°C to +85°C |
| Temperature Resolution | 0.01°C |
| Interface | I²C (up to 3.4 MHz) and SPI (up to 10 MHz) |
| Current Consumption | 1.7 µA (standby), 3.6 µA (low-power mode) |
| Package Size | 2.0 mm × 2.5 mm × 1.0 mm |
The DPS310 has 8 pins, as described in the table below:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | GND | Ground |
| 2 | VDD | Supply voltage (1.7V to 3.6V) |
| 3 | SCL/SPC | I²C clock line / SPI clock input |
| 4 | SDA/SDI | I²C data line / SPI data input |
| 5 | CSB | Chip select for SPI (active low) |
| 6 | SDO | SPI data output |
| 7 | INT1 | Interrupt output 1 |
| 8 | INT2 | Interrupt output 2 |
Below is an example of how to connect the DPS310 to an Arduino UNO using the I²C interface:
| DPS310 Pin | Arduino UNO Pin |
|---|---|
| VDD | 3.3V |
| GND | GND |
| SCL | A5 (SCL) |
| SDA | A4 (SDA) |
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_DPS310.h>
// Create an instance of the DPS310 sensor
Adafruit_DPS310 dps310;
void setup() {
Serial.begin(9600);
while (!Serial); // Wait for Serial Monitor to open
// Initialize I²C communication
if (!dps310.begin_I2C()) {
Serial.println("Failed to find DPS310 sensor!");
while (1); // Halt execution if sensor is not found
}
Serial.println("DPS310 sensor initialized successfully.");
}
void loop() {
// Read pressure and temperature
float pressure = dps310.readPressure(); // Pressure in hPa
float temperature = dps310.readTemperature(); // Temperature in °C
// Print the readings to the Serial Monitor
Serial.print("Pressure: ");
Serial.print(pressure);
Serial.println(" hPa");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
delay(1000); // Wait 1 second before the next reading
}
Sensor Not Detected
Inaccurate Readings
No Data Output
Can the DPS310 operate at 5V?
What is the maximum altitude the DPS310 can measure?
How do I switch between I²C and SPI modes?
By following this documentation, you can effectively integrate the DPS310 into your projects and achieve accurate pressure and temperature measurements.