Opens in a new tab

SEN6x in practice – what sensors are inside the SEN66 module, code for ESP32, advantages over other sensors, and mistakes to avoid

SEN66 module connected to an ESP32, displaying measured air-quality readings

I tried the SEN6x. And that’s not all – in this article, I’ll show you what’s inside the SEN66 module, which can measure a wide range of air-quality parameters. I connected the SEN66 to an ESP32 and displayed all its measurements on a screen.

With any module like this, you need to follow the guidelines for placing the sensor correctly. What are they?

The SEN6x – specifically, the SEN66 – packs a whole lot of sensors into a small module. For a modest price, you get a versatile little unit that measures all the air-quality parameters you’re most likely to need: temperature, humidity, particulate matter, NOx (nitrogen oxides from combustion), and the VOC (volatile organic compounds) air-quality index, as well as CO2 concentration (SEN66) or formaldehyde concentration (SEN68).

I wrote about the SEN6x in more detail in this article:
SEN6x – An even more versatile indoor sensor. The top-of-the-line version measures particulate matter, temperature, humidity, VOC and NOx indices, and CO2 or formaldehyde concentration

Why use the SEN6x (SEN66)?

+ smaller than the SEN5x

+ 3.3 V supply for the whole module

+ multiple sensors in one module: temperature, humidity, NOx and VOC indices, particulate matter, and CO2 concentration (SEN66) or formaldehyde (SEN68)

+ same connector as the SEN5x

+ libraries for Arduino, Raspberry Pi, and more

+ very quiet operation

+ several versions of the same module will be available

+ lower power consumption than other types

What’s inside

The SEN6x module consists of two parts. The top half clips onto the bottom half and is secured by tabs. You can separate the cover from the base with a knife or a thin screwdriver.

Inside, you’ll find a fan and a control board with an SCD41 CO2 sensor and an SGP43 sensor for the NOx and VOC indices.

The SCD41 is no surprise – it’s a readily available sensor for measuring CO2 concentration. Read my SCD41 article.

Did the SGP43 name catch your eye? Bingo! The commonly available version is the SGP41 – see the product page. So what’s different? Measurement accuracy, perhaps, or the calibration method? That’s common with temperature sensors, for example: the SHT40 is “less accurate” than the SHT45.

Or perhaps it’s a different I2C address.

On the underside, remove one retaining screw to reveal the remaining sensors and the control microcontroller.

Temperature and humidity are measured by the SHT41 – see the product page. Its temperature accuracy is ±0.2°C, and its humidity accuracy is ±1.8 %RH.

Particulate matter is measured by the SP56 sensor, the core of this module. You can find the specifications in the datasheet.

The control microcontroller, which handles communication with the sensors and the host controller, is an STM32C011 – see the datasheet.

Disassembled SEN66 module showing the circuit board and internal sensors

SEN66 internal board with the STM32C011 microcontroller and sensors

Close-up of the green SEN66 board with its connector, particulate sensor, and other components

SEN66 and ESP32 with data on a Memory LCD – IT’S ALIVE!

I made an adapter for the SEN66, going from its connector to the I2C uŠup connector (also known as SparkFun Qwiic and Adafruit STEMMA), which is fitted to all boards from Czech retailer LaskaKit.

For the controller, I used an ESP32 DevKit and connected a Memory LCD to it via the SPI uŠup connector.
Note: LaskaKit will soon have its own adapters between the SEN6x connector and uŠup in stock – no soldering needed.

From the libraries provided by Sensirion, I chose the one for Arduino. There are also libraries for Python, Raspberry Pi, and embedded systems.

You can download my code below (no, it won’t be on GitHub 😛 )

Here’s the result:

SEN66 module connected to an ESP32, displaying measured air-quality readings

Things to watch out for

The module’s supply voltage is 3.3 V – not 5 V like the SEN5x. Connect the SEN6x module to a 5 V supply and you’ll almost certainly destroy it.

The I2C lines are 5 V tolerant, though.

The most important thing to get right is where you place the module.

Avoid the following:

> direct sunlight

> placing it too close to heat sources – radiators, stoves, or the sun

> pressure differences between the inside and outside of the enclosure

> incorrect orientation

> exposure to drafts

Guide showing unsuitable and suitable placement of the SEN66 sensor in relation to direct sunlight

Diagram showing correct and incorrect sensor placement near heat sources

Diagram showing correct and incorrect vertical placement of the SEN66 module to avoid dust buildup

Read this design-in guide:
Sensirion_PS_AN_SEN6x_Mechanical_Design_and_Assembly_Guidelines.pdf

The product page also has a STEP model of the module, other sensor application notes, and more:
SEN66 product page at Sensirion

The SEN66 module (currently the only version available) is available from Mouser for about $75.

Or from Czech retailer LaskaKit for about $80. A cable to connect the I2C uŠup connector to the SEN6x connector will be available from LaskaKit’s SEN6x cable product page.

The SEN63C (CO2, particulate matter, humidity, and temperature) is in stock for about $25.

From X (formerly Twitter):

Share the article:
Show your
Maker soul!
Buy a T-Shirt
Coffee for Chiptron
Give a boost to the next article

Related Articles

If you’ve ever wondered what plane is flying over your house, you’ve probably used an app like FlightRadar24. The ESP32 Plane Radar project offers a more interesting solution though – your own desktop radar built on ESP32 that displays planes…

MeteoPlaneRadar 0.7.0: aircraft radar, weather radar, forecast, spot electricity price and the grid mix on a round 2.1″ display. Flashed from a browser.

The YoRadio project is an open-source internet radio built on the ESP32 Wi-Fi and Bluetooth chip with the ESP32-audioI2S library. It features complete documentation, a wide range of supported displays, and can be controlled via MQTT (suitable for Home Assistant).

I wanted to know what was flying over my head. Not on a phone, not in a browser tab – on a small round thing sitting on a shelf that I could glance at.

CH32V microcontrollers – you’ve probably heard of them. They are sold at a ridiculously low price but come with a very decent set of features, plus they are available in a solder-friendly package. Among the peripherals, you’ll find not only…

Linux 6.11 runs directly on the Xtensa core of the ESP32-S3 without emulation. After login, the shell mirrors to the 9.7″ ED097TC2 e-paper display.

Trends