Grove - Barometer Sensor (SPA06-003)

Description
Grove - Temperature and Barometer Sensor(SPA06-003) is a high-precision and a low-current environmental sensor measures the temperature and barometer. It supports both I2C and SPI communication and we provide the SPA06-003 Arduino library.
As the sensor is quite sensitive to the environmental conditions, please DO NOT touch it with your fingers.
Feature
- Wide measurement range: Pressure measurements range from 300hPa~1100hPa and temperature measurements range from -40℃~+85℃.
- High accuracy: The absolute accuracy of ±0.3 hPa for pressure measurement and ±1 ℃ accuracy for temperature measurement.
- Long standby time: Using the FIFO allows the host processor to stay in sleep mode for longer periods between readouts, reducing overall system power consumption and achieving a standby current as low as 0.5 μA.
- Grove Interface: Features a Grove 4-pin connector, ensuring a "Plug and Play" experience to connect with mainstream hardware platforms like Arduino, Raspberry Pi, Micro:bit and many more.
More details about Grove modules please refer to Grove System.
Specification
Parameter | Description |
---|---|
Supply Voltage | 3.3V |
Interface | I2C and SPI |
I2C address | 0x77 (default) 0x76 |
Barometric Pressure Measure | |
Range | 300~1100 hPa |
Absolute Accuracy | ±0.3 hPa |
Temperature Measurement | |
Range | -40℃ to +85℃ |
Accuracy | ±1℃ |
Dimensions | 40mm x 20mm x 6.5mm |
BMP280 vs. BME280 vs. DPS310 vs. SPA06-003
ITEM | Grove-BMP280 | Grove-BME280 | Grove-DPS310 | Grove-SPA06-003 |
---|---|---|---|---|
Pressure Range | 300 ~ 1100 hPa | 300 ~ 1100 hPa | 300 ~ 1200 hPa | 300 ~ 1100 hPa |
Temperature Range | -40 ~ 85 ℃ | -40 ~ 85 ℃ | -40 ~ 85 °C | -40 ~ 85 °C |
Pressure Precision | - | - | ± 0.002 hPa (or ±0.02 m) | - |
Pressure Accuracy (Absolute) | ± 1 hPa (or ±8 m) | ± 1 hPa (or ±8 m) | ± 1 hPa (or ±8 m) | ± 0.3 hPa |
Pressure Accuracy (Relative) | ± 0.12 hPa | ± 0.12 hPa | ± 0.06 hPa (or ±0.5 m) | ± 0.03 hPa (or ±0.25 m) |
Pressure Resolution | 0.18 Pa | 0.18 Pa | 0.06 Pa | 0.06 Pa |
Humidity | - | 0 ~ 100% | - | - |
Communication | I2C/SPI | I2C/SPI | I2C/SPI | I2C/SPI |
Price | $9.8 | $18.7 | $7.5 | $4.5 |
Part List
Item | Quantity |
---|---|
Grove Temperature and Barometer Sensor (SPA06-003) | ×1 |
Grove - 20cm Cable | ×1 |
Application
- Weather Station and Weather Sensing
- Measure Temperature, Pressure, and Altitude
Getting Started
Indication diagram

- SPI soldering pads.
- Interface bus selection pads , to select I2C bus, connect the two pads by soldering (this is connected by default); to select SPI bus, cut the two pads with a sharp knife or a soldering iron.
- Slave board address selection pads, to select slave board address to avoid address collision.
- If you have selected I2C bus, the default address for slave board is 0x77(right-two pads are connected). If you want to use the address 0x76, connect only left two (disconnect right two) by soldering.
- You can disconnect pads with just a sharp knife.
- If you have selected SPI bus, the default address for slave board is 0x77(right-two pads are connected). If you want to use the address 0x76, disconnect all three pads.
Hardware
Prepare the below stuffs:
- Play with Arduino
Seeeduino V4.2 | Base Shield | Grove-Barometer Sensor SPA06-003 |
---|---|---|
Get One Now | Get One Now | Get One Now |
- Connect Grove with Arduino

- Play with XIAO ESP32 Series
Seeed Studio Grove Base for XIAO | XIAO ESP32-S3 | Grove-Barometer Sensor SPA06-003 |
---|---|---|
![]() | ![]() | ![]() |
Get One Now | Get One Now | Get One Now |
- Connect Grove with ESP32 Series

Two different combinations, but using the same code.
Do not touch or shake or let this product in vibration when it works. This will cause interference and will affect the accuracy of data collected.
This connection table applies to all boards with I2C support.
Boards | Grove-Barometer_Sensor-SPA06-003 |
---|---|
3.3V | VCC |
GND | GND |
SDA | SDA |
SCL | SCL |
Software
Step 1. Download the library from Github.
Step 2. Refer How to install library to install library for Arduino.
Step 3. Create a new Arduino sketch and paste the codes below to it or open the code directly by the path:File -> Example ->Seeed Arduino SPA06>Example1_BasicRead
Step 4. Upload the code. If you do not know how to upload the code, please check how to upload code.
Step 5. Open the serial monitor to receive the sensor's data including temperature, barometric pressure value, and altitude.
The outcome will display on the Serial Port as following if everything goes well.

Fuction
Here is the code:
/*
* Author: Kennan / Kenneract
* GitHub: https://github.com/Kenneract/SPL07-003-Arduino-Library
* Created: Mar.15.2025
* Updated: Apr.14.2025, V1.0.0
* Purpose: Example usage for the SPL07-003 sensor library. Connects
* to the sensor, configures the measurement and oversampling
* rate, sets the SPL07-003 to continuous sampling mode, then
* prints pressure/temperature measurements to the serial monitor.
*/
#include <Wire.h>
#include "SPL07-003.h"
// Define SPL07-006 I2C address
#define SPL07_ADDR SPL07_ADDR_DEF // Default I2C address (SDO=high)
// #define SPL07_ADDR SPL07_ADDR_ALT // Alternate I2C address (SDO=low)
// Create SPL07-003 sensor instance
SPL07_003 spl;
//HardwareSerial SerialOut(PA10, PA9); //for STM32F103C8Tx
// Runs at startup
void setup() {
// Begin Serial
Serial.begin(115200);
// Configure & start I2C
//Wire.setSDA(PB7); //for STM32F103C8Tx
//Wire.setSCL(PB6); //for STM32F103C8Tx
Wire.begin();
// Connect to SPL07-003
if (spl.begin(SPL07_ADDR) == false) {
Serial.println("Error initializing SPL07-003 :(");
while (1) {}
}//if
Serial.println("Connected to SPL07-003! :)");
// Set pressure & temperature sampling settings
spl.setPressureConfig(SPL07_4HZ, SPL07_32SAMPLES);
spl.setTemperatureConfig(SPL07_4HZ, SPL07_1SAMPLE);
// Set SPL07-003 to continuous measurements
spl.setMode(SPL07_CONT_PRES_TEMP);
}//setup()
// Runs continuously
void loop() {
// Wait for available reading
if (spl.pressureAvailable() || spl.temperatureAvailable()) {
// Read latest values
double pres = spl.readPressure();
double temp = spl.readTemperature();
double altitude = spl.calcAltitude();
// Print to serial
Serial.print("Pres: ");
Serial.print(pres, 3);
Serial.print(" Pa, Temp: ");
Serial.print(temp, 3);
Serial.print(" C, Altitude: ");
Serial.print(altitude, 3);
Serial.println(" m");
}//if
}//loop()
The following functions are used in the example code above. Here's a breakdown of what each function does:
Serial.begin(115200)
Initializes serial communication between the ESP32 and your computer, with a baud rate of 115200. This allows debug messages to be printed to the Serial Monitor.
Wire.begin()
Initializes the I²C bus using default pins (on most platforms: SDA and SCL). This is required before communicating with the SPL07-003 sensor.
spl.begin(SPL07_ADDR)
Initializes the SPL07-003 sensor using the specified I²C address. It returns false if the sensor is not found on the bus.
Parameter: SPL07_ADDR – the I²C address (0x76 or 0x77)
Return: true on success, false if the sensor is not detected
spl.setPressureConfig(SPL07_4HZ, SPL07_32SAMPLES)
Configures the pressure sensor with:
- 4 Hz output data rate
- 32 samples averaging for noise reduction
Higher sample count improves accuracy but increases response time.
spl.setTemperatureConfig(SPL07_4HZ, SPL07_1SAMPLE)
Configures the temperature sensor with:
- 4 Hz update rate
- 1 sample averaging (faster response, less smoothing)
spl.setMode(SPL07_CONT_PRES_TEMP)
Sets the SPL07-003 to continuous pressure and temperature measurement mode, so it updates data automatically without manual triggering.
spl.pressureAvailable(), spl.temperatureAvailable()
Checks if a new pressure or temperature measurement is available from the sensor. These return true when fresh data is ready to read.
spl.readPressure()
Reads the latest pressure value from the sensor in Pascals (Pa).
spl.readTemperature()
Reads the current temperature in degrees Celsius (°C).
spl.calcAltitude()
Estimates altitude (in meters) based on the current pressure reading using the standard atmosphere model. Useful in applications like barometric altitude estimation for drones or weather stations.
Resources
- [KiCAD] Grove-Barometer Sensor SPA06-003 SCH&PCB
- [Datasheet] SPA06-003 Datasheet
- [References] I2C how-to for Arduino
Tech Support & Product Discussion
Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.