# Adafruit SEN54 or SEN55 Adapter Breakout

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/129/963/medium800/adafruit_products_5964-06.jpg?1715602705)

Warning: This board does NOT come with a JST GH-compatible cable NOR a SEN5x sensor! You can [pick up the cable here](https://www.adafruit.com/product/5754) and [a SEN5x from DigiKey](https://www.digikey.com/en/products/detail/sensirion-ag/SEN54-SDN-T/15903868?s=N4IgTCBcDaIM4FMB2BWALCAugXyA).

Now you can quickly integrate the [Sensirion SEN54 / SEN55 environmental sensor node](https://blog.adafruit.com/2022/02/10/eye-on-npi-sen54-environmental-sensor-node-eyeonnpi-digikey-digikey-adafruit-sensirion/) into your microcontroller or microcomputer project, with no soldering or fiddly breadboarding - thanks to this here **Adafruit SEN54 or SEN55 Adapter Breakout**.

We covered the awesome&nbsp;[Sensirion SEN54 / SEN55 environmental sensor nodes on EYE ON NPI](https://blog.adafruit.com/2022/02/10/eye-on-npi-sen54-environmental-sensor-node-eyeonnpi-digikey-digikey-adafruit-sensirion/) a while ago. It's an awesome all-in-one air quality sensor, but has the annoyance that it requires 5V power and it has a special cable connection.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/964/medium800/adafruit_products_5964-05.jpg?1715602767)

This adapter breakout will make an instant friendship with all SEN5x boards, thanks to a JST GH-compatible connector in the middle so that you can plug a [6-pin GH cable](https://www.adafruit.com/product/5754) directly between your SEN and this adapter. In the middle is a small switch-cap boost converter that will generate 5V at 100mA to power the fan and electronics in the SEN5x even if you're using 3V power and logic. [Then you can use any ol' STEMMA QT cable](https://www.adafruit.com/product/4210) to plug into your Metro, Feather, QT Py, Raspberry Pi, etc. I2C port.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/965/medium800/adafruit_products_5964-02.jpg?1715602830)

Once you've got it plugged together, you can run Sensirion's [Arduino library](https://github.com/Sensirion/arduino-i2c-sen5x) or [Raspberry Pi Python library](https://github.com/Sensirion/python-i2c-sen5x) to read temperature, humidity, VOC, Particulate Matter PM1 / PM2.5 / PM4 and PM10. (NOx reading is also available on the SEN55)

![](https://cdn-learn.adafruit.com/assets/assets/000/129/966/medium800/adafruit_products_5964-03.jpg?1715602883)

 **Please note: this board does NOT come with a JST GH-compatible cable NOR a SEN5x sensor!** You [can pick up the cable here](https://www.adafruit.com/product/5754), and [a SEN5x from DigiKey](https://www.digikey.com/en/products/detail/sensirion-ag/SEN54-SDN-T/15903868?s=N4IgTCBcDaIM4FMB2BWALCAugXyA).

# Adafruit SEN54 or SEN55 Adapter Breakout

## Pinouts

![](https://cdn-learn.adafruit.com/assets/assets/000/129/970/medium800/adafruit_products_double.jpg?1715605304)

Warning: This board does NOT come with a JST GH-compatible cable NOR a SEN5x sensor! You can [pick up the cable here](https://www.adafruit.com/product/5754) and [a SEN5x from DigiKey](https://www.digikey.com/en/products/detail/sensirion-ag/SEN54-SDN-T/15903868?s=N4IgTCBcDaIM4FMB2BWALCAugXyA).

The default I2C address for the SEN5x sensors is **0x69**.

## Power Pins

- **Vin** &nbsp;- this is the power pin. To power the board, give it the same power as the logic level of your microcontroller - e.g. for a 5V micro like Arduino, use 5V.
- **GND** - common ground for power and logic.

## I2C Logic Pins

- **SCL** - I2C clock pin, connect to your microcontroller's I2C clock line. This pin can use 3-5V logic, and there's a **10K pullup** on this pin.
- **SDA** - I2C data pin, connect to your microcontroller's I2C data line. This pin can use 3-5V logic, and there's a **10K pullup** on this pin.
- **[STEMMA QT](https://learn.adafruit.com/introducing-adafruit-stemma-qt) -** These connectors allow you to connect to to dev boards with **STEMMA QT** (Qwiic) connectors or to other things with [various associated accessories](https://www.adafruit.com/?q=JST%20SH%204).

## JST GH Connector

At the top edge of the board is the JST GH connector. This connector lets you plug in a SEN54 or SEN55 sensor directly into the breakout with a&nbsp;[6-pin GH cable](https://www.adafruit.com/product/5754).

Featured
### JST GH 1.25mm Pitch 6 Pin Cable - 100mm long

[JST GH 1.25mm Pitch 6 Pin Cable - 100mm long](https://www.adafruit.com/product/5754)
This cable is a little over 100mm / 4" long&nbsp;and fitted with JST-GH compatible 6-pin connectors on either end.&nbsp;

We dig the solid and compact nature of these connectors&nbsp;and the latch that keeps the cable from coming apart easily, and the wires are even color coded! <a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/5754)
[Related Guides to the Product](https://learn.adafruit.com/products/5754/guides)
![Angled shot of 100mm long JST-GH 6-pin cable.](https://cdn-shop.adafruit.com/640x480/5754-01.jpg)

## Power LED and Jumper

- **Power LED -** In the upper left corner, above the STEMMA connector, on the front of the board, is the power LED, labeled **on**. It is a green LED.
- **LED jumper&nbsp;** - This jumper is located on the back of the board and is labeled **LED** on the board silk. Cut the trace on this jumper to cut power to the " **on**" LED.

# Adafruit SEN54 or SEN55 Adapter Breakout

## Python

Info: This example uses a desktop CPython driver, not a CircuitPython driver.

It's easy to use the **SEN5x Adapter Breakout** with Python and the [Sensirion Python driver for SEN5x sensors](https://github.com/Sensirion/python-i2c-sen5x). This driver allows you to easily write Python code to read environmental data from a SEN5x sensor.

You can use this driver with any computer that has GPIO and Python. Note that this is **NOT** a CircuitPython compatible driver, it is for CPython (desktop Python).

Warning: This board does NOT come with a JST GH-compatible cable NOR a SEN5x sensor! You can [pick up the cable here](https://www.adafruit.com/product/5754) and [a SEN5x from DigiKey](https://www.digikey.com/en/products/detail/sensirion-ag/SEN54-SDN-T/15903868?s=N4IgTCBcDaIM4FMB2BWALCAugXyA).

Featured
### JST GH 1.25mm Pitch 6 Pin Cable - 100mm long

[JST GH 1.25mm Pitch 6 Pin Cable - 100mm long](https://www.adafruit.com/product/5754)
This cable is a little over 100mm / 4" long&nbsp;and fitted with JST-GH compatible 6-pin connectors on either end.&nbsp;

We dig the solid and compact nature of these connectors&nbsp;and the latch that keeps the cable from coming apart easily, and the wires are even color coded! <a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/5754)
[Related Guides to the Product](https://learn.adafruit.com/products/5754/guides)
![Angled shot of 100mm long JST-GH 6-pin cable.](https://cdn-shop.adafruit.com/640x480/5754-01.jpg)

## Python Computer Wiring

Since there are _dozens_ of Linux computers/boards you can use, we will show wiring for Raspberry Pi.

Here's the Raspberry Pi wired with I2C using the STEMMA connector:

- **Pi 3V** to **breakout STEMMA** **VIN (red wire)**  
- **Pi GND** to **breakout**  **STEMMA** **GND (black wire)**  
- **Pi SCL** to **breakout**  **STEMMA** **SCL (yellow wire)**  
- **Pi SDA** to **breakout**  **STEMMA** **SDA (blue wire)**
- **SEN5x sensor** to **breakout JST GH port**

![adafruit_products_piStemma_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/994/medium640/adafruit_products_piStemma_bb.jpg?1715626425)

Here's the Raspberry Pi wired with I2C using a solderless breadboard:

- **Pi 3V** to **breakout** **VIN (red wire)**  
- **Pi GND** to **breakout** &nbsp;**GND (black wire)**  
- **Pi SCL** to **breakout** &nbsp;**SCL (yellow wire)**  
- **Pi SDA** to **breakout** &nbsp;**SDA (blue wire)**
- **SEN5x sensor** to **breakout JST GH port**

![adafruit_products_piBreadboard_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/995/medium640/adafruit_products_piBreadboard_bb.jpg?1715626442)

## Python Installation of Sensirion SEN5x Library

You'll need to ensure that I2C is enabled on your platform and verify you are running Python 3.&nbsp;

Once that's done, from your command line run the following command:

- `pip3 install sensirion-i2c-driver sensirion-i2c-sen5x`

This will install the Sensirion I2C driver and I2C SEN5x driver. If your default Python is version 3 you may need to run 'pip' instead.

## Python Usage

Once you have the library `pip3` installed on your computer, copy or download the following example to your computer, and run the following, replacing **code.py** with whatever you named the file:

`python3 code.py`

## Example Code

The console output will appear wherever you are running Python.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/SEN5x_Adapter_Demos/Python/code.py

Sensirion has a `LinuxI2cTransceiver` module in its [sensirion\_i2c\_driver](https://github.com/Sensirion/python-i2c-driver) library. This lets you interface with the I2C bus on the Raspberry Pi in a way that is compatible with the Sensirion SEN5x library.

After the sensor is instantiated over I2C, data is read from the sensor and printed to the serial console every five seconds in the loop.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/000/medium800/adafruit_products_Screenshot_from_2024-05-13_12-53-43.png?1715626506)

# Adafruit SEN54 or SEN55 Adapter Breakout

## Python Docs

# Adafruit SEN54 or SEN55 Adapter Breakout

## Arduino

Using the SEN5x adapter breakout with Arduino involves wiring up the adapter with a SEN5x sensor to your Arduino-compatible microcontroller, installing the [Sensirion I2C SEN5X](https://github.com/Sensirion/arduino-i2c-sen5x) library, and running the provided example code.

Warning: This board does NOT come with a JST GH-compatible cable NOR a SEN5x sensor! You can [pick up the cable here](https://www.adafruit.com/product/5754) and [a SEN5x from DigiKey](https://www.digikey.com/en/products/detail/sensirion-ag/SEN54-SDN-T/15903868?s=N4IgTCBcDaIM4FMB2BWALCAugXyA).

Featured
### JST GH 1.25mm Pitch 6 Pin Cable - 100mm long

[JST GH 1.25mm Pitch 6 Pin Cable - 100mm long](https://www.adafruit.com/product/5754)
This cable is a little over 100mm / 4" long&nbsp;and fitted with JST-GH compatible 6-pin connectors on either end.&nbsp;

We dig the solid and compact nature of these connectors&nbsp;and the latch that keeps the cable from coming apart easily, and the wires are even color coded! <a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/5754)
[Related Guides to the Product](https://learn.adafruit.com/products/5754/guides)
![Angled shot of 100mm long JST-GH 6-pin cable.](https://cdn-shop.adafruit.com/640x480/5754-01.jpg)

## Wiring

Wire as shown for a **5V** board like an Uno. If you are using a **3V** board, like an Adafruit Feather, wire the board's 3V pin to the breakout VIN.

Here is an Adafruit Metro wired up to the breakout using the STEMMA QT connector:

- **Board 5V** to **breakout** **VIN (red wire)**  
- **Board GND** to **breakout** &nbsp;**GND (black wire)**  
- **Board SCL** to **breakout** &nbsp;**SCL (yellow wire)**  
- **Board SDA** to **breakout** &nbsp;**SDA (blue wire)**
- **SEN5x sensor** to **breakout JST GH port**

![adafruit_products_metro_stemma_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/982/medium640/adafruit_products_metro_stemma_bb.jpg?1715612612)

Here is an Adafruit Metro wired up using a solderless breadboard:

- **Board 5V** to **breakout** **VIN (red wire)**  
- **Board GND** to **breakout** &nbsp;**GND (black wire)**  
- **Board SCL** to **breakout** &nbsp;**SCL (yellow wire)**  
- **Board SDA** to **breakout** &nbsp;**SDA (blue wire)**
- **SEN5x sensor** to **breakout JST GH port**

![adafruit_products_metro_bb_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/983/medium640/adafruit_products_metro_bb_bb.jpg?1715612625)

## Library Installation

You can install the **Sensirion I2C SEN5X** &nbsp;library for Arduino using the Library Manager in the Arduino IDE.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/977/medium800/adafruit_products_Arduino_Open_Library_Manager.png?1715611755)

Click the **Manage Libraries ...** menu item, search for **Sensirion SEN5x** , and select the **Sensirion I2C SEN5X** &nbsp;library:

![](https://cdn-learn.adafruit.com/assets/assets/000/129/978/medium800/adafruit_products_lib.png?1715611788)

If asked about dependencies, click "Install all".

![](https://cdn-learn.adafruit.com/assets/assets/000/129/979/medium800/adafruit_products_depends.png?1715611834)

If the "Dependencies" window does not come up, then you already have the dependencies installed.

Warning: If the dependencies are already installed, you must make sure you update them through the Arduino Library Manager before loading the example!

## Example Code
```cpp
/*
 * I2C-Generator: 0.3.0
 * Yaml Version: 2.1.3
 * Template Version: 0.7.0-112-g190ecaa
 */
/*
 * Copyright (c) 2021, Sensirion AG
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * * Redistributions of source code must retain the above copyright notice, this
 *   list of conditions and the following disclaimer.
 *
 * * Redistributions in binary form must reproduce the above copyright notice,
 *   this list of conditions and the following disclaimer in the documentation
 *   and/or other materials provided with the distribution.
 *
 * * Neither the name of Sensirion AG nor the names of its
 *   contributors may be used to endorse or promote products derived from
 *   this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#include <Arduino.h>
#include <SensirionI2CSen5x.h>
#include <Wire.h>

// The used commands use up to 48 bytes. On some Arduino's the default buffer
// space is not large enough
#define MAXBUF_REQUIREMENT 48

#if (defined(I2C_BUFFER_LENGTH) &&                 \
     (I2C_BUFFER_LENGTH >= MAXBUF_REQUIREMENT)) || \
    (defined(BUFFER_LENGTH) && BUFFER_LENGTH >= MAXBUF_REQUIREMENT)
#define USE_PRODUCT_INFO
#endif

SensirionI2CSen5x sen5x;

void printModuleVersions() {
    uint16_t error;
    char errorMessage[256];

    unsigned char productName[32];
    uint8_t productNameSize = 32;

    error = sen5x.getProductName(productName, productNameSize);

    if (error) {
        Serial.print("Error trying to execute getProductName(): ");
        errorToString(error, errorMessage, 256);
        Serial.println(errorMessage);
    } else {
        Serial.print("ProductName:");
        Serial.println((char*)productName);
    }

    uint8_t firmwareMajor;
    uint8_t firmwareMinor;
    bool firmwareDebug;
    uint8_t hardwareMajor;
    uint8_t hardwareMinor;
    uint8_t protocolMajor;
    uint8_t protocolMinor;

    error = sen5x.getVersion(firmwareMajor, firmwareMinor, firmwareDebug,
                             hardwareMajor, hardwareMinor, protocolMajor,
                             protocolMinor);
    if (error) {
        Serial.print("Error trying to execute getVersion(): ");
        errorToString(error, errorMessage, 256);
        Serial.println(errorMessage);
    } else {
        Serial.print("Firmware: ");
        Serial.print(firmwareMajor);
        Serial.print(".");
        Serial.print(firmwareMinor);
        Serial.print(", ");

        Serial.print("Hardware: ");
        Serial.print(hardwareMajor);
        Serial.print(".");
        Serial.println(hardwareMinor);
    }
}

void printSerialNumber() {
    uint16_t error;
    char errorMessage[256];
    unsigned char serialNumber[32];
    uint8_t serialNumberSize = 32;

    error = sen5x.getSerialNumber(serialNumber, serialNumberSize);
    if (error) {
        Serial.print("Error trying to execute getSerialNumber(): ");
        errorToString(error, errorMessage, 256);
        Serial.println(errorMessage);
    } else {
        Serial.print("SerialNumber:");
        Serial.println((char*)serialNumber);
    }
}

void setup() {

    Serial.begin(115200);
    while (!Serial) {
        delay(100);
    }

    Wire.begin();

    sen5x.begin(Wire);

    uint16_t error;
    char errorMessage[256];
    error = sen5x.deviceReset();
    if (error) {
        Serial.print("Error trying to execute deviceReset(): ");
        errorToString(error, errorMessage, 256);
        Serial.println(errorMessage);
    }

// Print SEN55 module information if i2c buffers are large enough
#ifdef USE_PRODUCT_INFO
    printSerialNumber();
    printModuleVersions();
#endif

    // set a temperature offset in degrees celsius
    // Note: supported by SEN54 and SEN55 sensors
    // By default, the temperature and humidity outputs from the sensor
    // are compensated for the modules self-heating. If the module is
    // designed into a device, the temperature compensation might need
    // to be adapted to incorporate the change in thermal coupling and
    // self-heating of other device components.
    //
    // A guide to achieve optimal performance, including references
    // to mechanical design-in examples can be found in the app note
    // “SEN5x – Temperature Compensation Instruction” at www.sensirion.com.
    // Please refer to those application notes for further information
    // on the advanced compensation settings used
    // in `setTemperatureOffsetParameters`, `setWarmStartParameter` and
    // `setRhtAccelerationMode`.
    //
    // Adjust tempOffset to account for additional temperature offsets
    // exceeding the SEN module's self heating.
    float tempOffset = 0.0;
    error = sen5x.setTemperatureOffsetSimple(tempOffset);
    if (error) {
        Serial.print("Error trying to execute setTemperatureOffsetSimple(): ");
        errorToString(error, errorMessage, 256);
        Serial.println(errorMessage);
    } else {
        Serial.print("Temperature Offset set to ");
        Serial.print(tempOffset);
        Serial.println(" deg. Celsius (SEN54/SEN55 only");
    }

    // Start Measurement
    error = sen5x.startMeasurement();
    if (error) {
        Serial.print("Error trying to execute startMeasurement(): ");
        errorToString(error, errorMessage, 256);
        Serial.println(errorMessage);
    }
}

void loop() {
    uint16_t error;
    char errorMessage[256];

    delay(1000);

    // Read Measurement
    float massConcentrationPm1p0;
    float massConcentrationPm2p5;
    float massConcentrationPm4p0;
    float massConcentrationPm10p0;
    float ambientHumidity;
    float ambientTemperature;
    float vocIndex;
    float noxIndex;

    error = sen5x.readMeasuredValues(
        massConcentrationPm1p0, massConcentrationPm2p5, massConcentrationPm4p0,
        massConcentrationPm10p0, ambientHumidity, ambientTemperature, vocIndex,
        noxIndex);

    if (error) {
        Serial.print("Error trying to execute readMeasuredValues(): ");
        errorToString(error, errorMessage, 256);
        Serial.println(errorMessage);
    } else {
        Serial.print("MassConcentrationPm1p0:");
        Serial.print(massConcentrationPm1p0);
        Serial.print("\t");
        Serial.print("MassConcentrationPm2p5:");
        Serial.print(massConcentrationPm2p5);
        Serial.print("\t");
        Serial.print("MassConcentrationPm4p0:");
        Serial.print(massConcentrationPm4p0);
        Serial.print("\t");
        Serial.print("MassConcentrationPm10p0:");
        Serial.print(massConcentrationPm10p0);
        Serial.print("\t");
        Serial.print("AmbientHumidity:");
        if (isnan(ambientHumidity)) {
            Serial.print("n/a");
        } else {
            Serial.print(ambientHumidity);
        }
        Serial.print("\t");
        Serial.print("AmbientTemperature:");
        if (isnan(ambientTemperature)) {
            Serial.print("n/a");
        } else {
            Serial.print(ambientTemperature);
        }
        Serial.print("\t");
        Serial.print("VocIndex:");
        if (isnan(vocIndex)) {
            Serial.print("n/a");
        } else {
            Serial.print(vocIndex);
        }
        Serial.print("\t");
        Serial.print("NoxIndex:");
        if (isnan(noxIndex)) {
            Serial.println("n/a");
        } else {
            Serial.println(noxIndex);
        }
    }
}
```

The [Sensirion I2C SEN5X library has an example](https://github.com/Sensirion/arduino-i2c-sen5x/blob/master/examples/exampleUsage/exampleUsage.ino) to read all of the available data from the SEN5x sensor over I2C. Upload the sketch to your board and open up the Serial Monitor ( **Tools -\> Serial Monitor** ) at 115200 baud. You'll see the PM1.0, PM2.5, PM4.0, PM10.0, humidity, temperature, VOC index and NOx index readings print to the Serial Monitor every second. Note that NOx readings are only available on the SEN55 sensor.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/980/medium800/adafruit_products_arduinoSerial.png?1715612123)

# Adafruit SEN54 or SEN55 Adapter Breakout

## Arduino Docs

# Adafruit SEN54 or SEN55 Adapter Breakout

## WipperSnapper

![](https://cdn-learn.adafruit.com/assets/assets/000/130/674/medium800/sensors_adafruit_products_Screenshot_2023-08-15_163525.png?1718187453)

## What is WipperSnapper

WipperSnapper is a firmware designed to turn any WiFi-capable board into an Internet-of-Things device without programming a single line of code. WipperSnapper connects to [Adafruit IO](https://io.adafruit.com/), a web&nbsp;platform designed ([by Adafruit!](https://www.adafruit.com/about)) to&nbsp;_display_,&nbsp;_respond_, and&nbsp;_interact_&nbsp;with your project's data.

Simply load the WipperSnapper firmware onto your board, add credentials, and plug it into power. Your board will automatically register itself with your Adafruit IO account.

From there, you can add&nbsp;_components_&nbsp;to your board such as buttons, switches, potentiometers, sensors, and more! Components are&nbsp;_dynamically&nbsp;_added to hardware, so you can&nbsp;immediately start interacting, logging, and streaming the data your projects produce without writing code.

If you've never used WipperSnapper, click below to read through the quick start guide before continuing.

[Quickstart: Adafruit IO WipperSnapper](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper)
## Wiring
First, wire up a SEN5x Adapter Breakout to your board exactly as follows. Here is an example of the SEN5x Adapter wired to an&nbsp;[Adafruit ESP32 Feather V2](https://www.adafruit.com/product/5400)&nbsp;using I2C&nbsp;[with a STEMMA QT cable (no soldering required)](https://www.adafruit.com/product/4210).

It is expected you would have a Sensirion SEN5x sensor (SEN50/SEN54/SEN55) attached to the adapter breakout (not shown here in wiring diagrams).

- **Board 3V** &nbsp;to&nbsp;**sensor VIN (red wire on STEMMA QT)**  
- **Board GND** &nbsp;to&nbsp;**sensor GND (black wire on STEMMA QT)**  
- **Board SCL** &nbsp;to&nbsp;**sensor SCK (yellow wire on STEMMA QT)**  
- **Board SDA** &nbsp;to&nbsp;**sensor SDI (blue wire on STEMMA QT)**

![sensors_featherV2_SEN5x_STEMMAQT_bb.png](https://cdn-learn.adafruit.com/assets/assets/000/130/519/medium640/sensors_featherV2_SEN5x_STEMMAQT_bb.png?1717794169)

![sensors_featherV2_SEN5x_Breadboard_bb.png](https://cdn-learn.adafruit.com/assets/assets/000/130/520/medium640/sensors_featherV2_SEN5x_Breadboard_bb.png?1717794194)

## Usage

Connect your board to Adafruit IO Wippersnapper and **[navigate to the WipperSnapper board list](https://io.adafruit.com/wippersnapper).**

On this page, **select the WipperSnapper board you're using** to be brought to the board's interface page.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/521/medium800/sensors_adafruit_products_02_DeviceSelection_croppped.png?1717794524)

If you do not see your board listed here - you need [to connect your board to Adafruit IO](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper) first.

On the device page, quickly&nbsp; **check that you're running the latest version of the WipperSnapper firmware**.

The device tile on the left indicates the version number of the firmware running on the connected board.

- **If the firmware version is green with a checkmark -** &nbsp;continue with this guide.
- **If the firmware version is red with an exclamation mark "!" -** &nbsp;[update to the latest WipperSnapper firmware](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper)&nbsp;on your board before continuing.

![sensors_04_LatestVersion.png](https://cdn-learn.adafruit.com/assets/assets/000/130/522/medium640/sensors_04_LatestVersion.png?1717794602)

![sensors_04_UpdateRequired.png](https://cdn-learn.adafruit.com/assets/assets/000/130/523/medium640/sensors_04_UpdateRequired.png?1717794623)

Next, make sure the sensor is plugged into your board and click the **&nbsp;I2C Scan&nbsp;** button.

![](https://cdn-learn.adafruit.com/assets/assets/000/113/177/medium800/sensor_page_crop_scan.png?1657724520)

You should see the SEN5x's default I2C address of&nbsp;`0x69`&nbsp;pop-up in the I2C scan list.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/485/medium800/sensors_Screenshot_2024-06-07_151813.png?1717770207)

###  I don't see the sensor's I2C address listed! 


First, double-check the connection and/or wiring between the sensor and the board.

Then, reset the board and let it re-connect to Adafruit IO WipperSnapper.

With the sensor detected in an I2C scan, you're ready to add the sensor to your board.

**Click the New Component button or the + button** to bring up the component picker.

![](https://cdn-learn.adafruit.com/assets/assets/000/127/931/medium800/sensor_page_temperature___humidity_06_AddComponent.png?1708631009)

The **Adafruit SEN54 or SEN55 Adapter Breakout** actually supports all three models of Sensirion's SEN5x series of air-quality sensors (SEN50/SEN54/SEN55), along with the 6x series (SEN60, SEN63C, SEN65, SEN66, SEN68).

The SEN50 only supports Particulate Matter options (no Temp/Humidity/VOC/NOx), while the SEN54 has PM/Temp/Humidity/VOC, and the SEN55 additionally has the NOx index.

Normally there is an identification label showing the model number with a QR code. If your sensor doens't have any label then pick the SEN55 component.

Depending on the sensor model there may be some data types that return no data, matching the unsupported features in your sensor model.

Deselect those options to avoid consuming feeds unnecessarily.

![sensors_cropped_deskewed_3-4_rotated_20240612_114338.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/678/medium640/sensors_cropped_deskewed_3-4_rotated_20240612_114338.jpg?1718189451)

Adafruit IO supports a large amount of components, compatible with any boards running on WipperSnapper firmware. To quickly find your sensor, type `SEN5` into the search bar, then select the component matching your sensor.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/679/medium800/sensors_SEN5_arrows.png?1718189661)

On the component configuration page, the SEN5x's sensor address should be listed along with the sensor's settings.

The&nbsp; **Send Every** &nbsp;option is specific to each sensor's measurements. This option will tell the Feather how often it should read from the SEN5x sensor and send the data to Adafruit IO. Measurements can range from every 30 seconds to every 24 hours.

For this example, set the&nbsp; **Send Every&nbsp;** interval to every 30 seconds.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/524/medium800/sensors_Screenshot_2024-06-07_223944.png?1717799015)

Your device interface should now show the sensor components you created. After the interval you configured elapses, WipperSnapper will automatically read values from the sensor(s) and send them to Adafruit IO.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/526/medium800/sensors_Screenshot_2024-06-07_233232.png?1717870348)

To view the data that has been logged from the sensor, click on the graph next to the sensor name.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/528/medium800/sensors_nLuJ6Q1Nw1.png?1717870531)

Here you can see the feed history and edit things about the feed such as the name, privacy, webhooks associated with the feed and more. If you want to learn more about how feeds work, [check out this page](https://learn.adafruit.com/all-the-internet-of-things-episode-four-adafruit-io/advanced-feeds).

![](https://cdn-learn.adafruit.com/assets/assets/000/130/529/medium800/sensors_vFQPnw2Td1.png?1717870593)

# Adafruit SEN54 or SEN55 Adapter Breakout

## Downloads

## Files

- [SEN5x Datasheet](https://cdn-learn.adafruit.com/assets/assets/000/129/967/original/Sensirion_Datasheet_Environmental_Node_SEN5x.pdf?1715603159)
- [EagleCAD PCB Files on GitHub](https://github.com/adafruit/Adafruit-SEN5x-Adapter-Breakout-PCB)
- [3D models on GitHub](https://github.com/adafruit/Adafruit_CAD_Parts/tree/main/5964%20SEN5X%20Adapter%20Breakout)
- [Fritzing object in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20SEN54%20or%20SEN55%20Adapter%20Breakout.fzpz)

## Schematic and Fab Print
![](https://cdn-learn.adafruit.com/assets/assets/000/129/968/medium800/adafruit_products_schem.png?1715603768)

![](https://cdn-learn.adafruit.com/assets/assets/000/129/969/medium800/adafruit_products_fab.png?1715603775 dimensions are in inches)

![](https://cdn-learn.adafruit.com/assets/assets/000/136/282/medium800/sensors_5964_SEN5X_Adapter_Breakout.jpg?1744665343 )


## Primary Products

### Adafruit SEN54 or SEN55 Adapter Breakout - STEMMA QT / Qwiic

[Adafruit SEN54 or SEN55 Adapter Breakout - STEMMA QT / Qwiic](https://www.adafruit.com/product/5964)
Now you can quickly integrate the&nbsp;[Sensirion SEN54 / SEN55 environmental sensor node](https://blog.adafruit.com/2022/02/10/eye-on-npi-sen54-environmental-sensor-node-eyeonnpi-digikey-digikey-adafruit-sensirion/)&nbsp;into your microcontroller or microcomputer project, with no...

In Stock
[Buy Now](https://www.adafruit.com/product/5964)
[Related Guides to the Product](https://learn.adafruit.com/products/5964/guides)

## Guide Products

### JST GH 1.25mm Pitch 6 Pin Cable - 100mm long

[JST GH 1.25mm Pitch 6 Pin Cable - 100mm long](https://www.adafruit.com/product/5754)
This cable is a little over 100mm / 4" long&nbsp;and fitted with JST-GH compatible 6-pin connectors on either end.&nbsp;

We dig the solid and compact nature of these connectors&nbsp;and the latch that keeps the cable from coming apart easily, and the wires are even color coded! <a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/5754)
[Related Guides to the Product](https://learn.adafruit.com/products/5754/guides)

## Related Guides

- [No-Code Indoor Air Quality Monitor with Separate Display](https://learn.adafruit.com/no-code-indoor-air-quality-monitor-with-separate-display.md)
- [Adafruit SEN6x Breakout](https://learn.adafruit.com/adafruit-sen6x-breakout.md)
- [Adafruit PiTFT 3.5" Touch Screen for Raspberry Pi](https://learn.adafruit.com/adafruit-pitft-3-dot-5-touch-screen-for-raspberry-pi.md)
- [Adding a Single Board Computer to Blinka](https://learn.adafruit.com/adding-a-single-board-computer-to-blinka.md)
- [Adafruit VCNL4200 Long Distance IR Proximity and Light Sensor](https://learn.adafruit.com/adafruit-vcnl4200-long-distance-ir-proximity-and-light-sensor.md)
- [Adafruit AirLift Shield - ESP32 WiFi Co-Processor](https://learn.adafruit.com/adafruit-airlift-shield-esp32-wifi-co-processor.md)
- [The MonkMakes Plant Monitor and CircuitPython](https://learn.adafruit.com/monkmakes-plant-monitor-and-circuitpython.md)
- [Adafruit Monochrome 1.12" 128x128 OLED Graphic Display](https://learn.adafruit.com/adafruit-monochrome-1-12-in-128x128-oled.md)
- [Halloween Scream Box](https://learn.adafruit.com/halloween-scream-box.md)
- [Getting Started with Binho Nova](https://learn.adafruit.com/getting-started-with-binho-nova.md)
- [Adafruit STHS34PF80 IR Presence / Motion Sensor](https://learn.adafruit.com/adafruit-sths34pf80-ir-presence-motion-sensor.md)
- [Introducing Adafruit CLUE](https://learn.adafruit.com/adafruit-clue.md)
- [Adafruit AS7343 14-Channel Light / Color Sensor Breakout](https://learn.adafruit.com/adafruit-as7343-14-channel-light-color-sensor-breakout.md)
- [PowerWash Simulator Nozzle Controller](https://learn.adafruit.com/powerwash-simulator-nozzle-controller.md)
- [Adafruit TSC2046 SPI Resistive Touch Screen Controller](https://learn.adafruit.com/adafruit-tsc2046-spi-resistive-touch-screen-controller.md)
