The Infineon DPS310 is a precise digital sensor that measures air pressure and temperature, known for its accuracy, low power consumption, and suitability for applications such as indoor navigation and drone navigation. It is popular in hobbyist electronics projects using platforms such as Arduino and Raspberry Pi.
| Type of measurement | Model | Power voltage | Measurement, range, accuracy | Communication | Note |
|---|---|---|---|---|---|
![]() ![]() Barometric Pressure Sensor | Infineon DPS310 ![]() | 3.3V | Supply voltage: VDDIO: 1.2 .. 3.6 V Operation range: Pressure: 300 .. 1200 hPa. Temperature: -40 – 85 °C Pressure sensor precision: ± 0.002 hPa (or ±0.02 m) (high precision mode) Relative accuracy: ± 0.06 hPa (or ±0.5 m) Absolute accuracy: ± 1 hPa (or ±8 m) Temperature accuracy: ± 0.5°C Pressure temperature sensitivity: 0.5Pa/K | I²C or SPI I2C default address: 0x76 (SDO←GND) or 0x77 (SDO←VDDIO) | Measurement time: Typical: 27.6 ms |
If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.
Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.
The DPS310 is a high-precision barometric pressure and temperature sensor. To use it with Arduino, the Adafruit DPS310 library is the most common choice, as it provides a simplified “Unified Sensor” interface.
Wiring (I²C Mode)
Connecting via I²C is the easiest method.
Arduino Example Code
You must install the Adafruit DPS310, Adafruit BusIO, and Adafruit Unified Sensor libraries via the Arduino Library Manager.
#include <Adafruit_DPS310.h> Adafruit_DPS310 dps; void setup() { Serial.begin(115200); while (!Serial) delay(10); Serial.println("DPS310 Test"); if (!dps.begin_I2C()) { // Default address is 0x77 Serial.println("Failed to find DPS310 sensor!"); while (1) yield(); } Serial.println("DPS310 Found!"); // Configure sensor for high precision dps.configurePressure(DPS310_64HZ, DPS310_64SAMPLES); dps.configureTemperature(DPS310_64HZ, DPS310_64SAMPLES); } void loop() { sensors_event_t temp_event, pressure_event; // Wait until data is ready if (dps.temperatureAvailable() && dps.pressureAvailable()) { dps.getEvents(&temp_event, &pressure_event); Serial.print("Temperature: "); Serial.print(temp_event.temperature); Serial.println(" °C"); Serial.print("Pressure: "); Serial.print(pressure_event.pressure); Serial.println(" hPa"); Serial.println(); } delay(1000); }
Alternative Libraries
If you are using the Infineon Shield2Go or Seeed Studio Grove versions, you might prefer their specific libraries:
This page has been accessed for: Today: 3, Until now: 77