
Envsensor
bruvv/ENV-sensor-esp32
Custom ESP32-S3 environmental sensor PCB designed for use with ESPHome and Home Assistant.

Custom ESP32-S3 environmental sensor PCB designed for use with ESPHome and Home Assistant.
Envsensor is an open-source printed circuit board by bruvv, from the bruvv/ENV-sensor-esp32 repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 52 × 70 mm with 5 parts on 13 nets.
It is built around the MS5611-01BA03 and SCD30.
Custom ESP32-S3 environmental sensor PCB designed for use with ESPHome and Home Assistant.
The board combines several environmental sensors, a 128×128 OLED display and an HLK-LD2450 mmWave presence sensor on a compact custom PCB.
| Component | Function | Supply | Interface |
|---|---|---|---|
| ESP32-S3 DevKitC N16R8 | Main controller, Wi-Fi and Bluetooth | 5 V | - |
| Sensirion SCD30 | CO₂, temperature and humidity | 5 V | I²C |
| Sensirion SEN55 | PM1.0, PM2.5, PM4, PM10, VOC, NOx, temperature and humidity | 5 V | I²C |
| MS5611 | Barometric pressure | 3.3 V | I²C |
| BH1750 | Ambient light | 3.3 V | I²C |
| ZJY-M150 / SSD1327 | 128×128 OLED display | 3.3 V | SPI |
| HLK-LD2450 | mmWave presence and multi-target tracking | 5 V | UART |
| Signal | ESP32-S3 |
|---|---|
| SDA | GPIO8 |
| SCL | GPIO9 |
The environmental sensors share the I²C bus.
| Sensor | I²C address |
|---|---|
| SCD30 | 0x61 |
| SEN55 | 0x69 |
| BH1750 | 0x23 |
| MS5611 | 0x77 |
The PCB contains 4.7 kΩ pull-up resistors for SDA and SCL.
The ZJY-M150 OLED is operated in 4-wire SPI mode.
| OLED signal | ESP32-S3 |
|---|---|
| CS | GPIO10 |
| MOSI / SDA | GPIO11 |
| CLK / SCL | GPIO12 |
| DC | GPIO13 |
| RESET | GPIO14 |
The LD2450 uses a dedicated hardware UART.
| Signal | ESP32-S3 |
|---|---|
| LD2450 RX | GPIO17 / ESP32 TX |
| LD2450 TX | GPIO18 / ESP32 RX |
UART configuration:
25600081The current PCB revision is designed in KiCad 10.
| Property | Value |
|---|---|
| Dimensions | 55 × 70 mm |
| Copper layers | 4 |
| Top copper | F.Cu |
| Inner layer 1 | In1.Cu |
| Inner layer 2 | In2.Cu |
| Bottom copper | B.Cu |
The repository contains the KiCad project files as well as production Gerber and drill files.
The HLK-LD2450 is connected through an 8-pin dual-row SMD female socket.
Required connector specification:
| Property | Requirement |
|---|---|
| Type | Female PCB socket |
| Contacts | 8 |
| Rows | 2 × 4 |
| Pitch | 2.00 mm |
| Mounting | SMD / SMT |
| Orientation | Straight |
A suitable branded connector is:
Würth Elektronik 62100821821
For generic alternatives, search for:
2.0mm 2x4 8 pin female SMD header
The SEN55 is mounted away from the main PCB to keep its airflow unobstructed.
The connection provides:
| Signal |
|---|
| 5 V |
| GND |
| SDA |
| SCL |
| GND / SEL |
| Qty | Component | Notes |
|---|---|---|
| 1 | ESP32-S3 DevKitC N16R8 | ESP32-S3-WROOM based |
| 1 | Sensirion SCD30 | CO₂ sensor |
| 1 | Sensirion SEN55 | Environmental and particulate sensor |
| 1 | MS5611 module | Pressure sensor |
| 1 | BH1750 module | Ambient light sensor |
| 1 | ZJY-M150 128×128 OLED | SSD1327 controller, 7-pin |
| 1 | HLK-LD2450 | mmWave presence sensor |
| 1 | 2×4 2.00 mm female SMD socket | LD2450 connector |
| 2 | 4.7 kΩ resistor | I²C pull-ups |
The SCD30 should be kept away from heat sources and strong direct airflow that could influence its temperature and CO₂ measurements.
Datasheet:
https://sensirion.com/media/documents/4EAF6AF8/61652C3C/Sensirion_CO2_Sensors_SCD30_Datasheet.pdf
The SEN55 requires unobstructed airflow through its inlet and outlet.
For best performance:
Keep the pressure sensor away from the ESP32 voltage regulator and other heat-producing components.
The BH1750 needs a clear optical path to the room.
Avoid placing it behind opaque enclosure material or in the shadow of other components.
Datasheet:
https://components101.com/sites/default/files/component_datasheet/BH1750.pdf
The display is a ZJY-M150 1.5-inch 128×128 OLED using an SSD1327 controller.
The PCB uses SPI for the display.
SSD1327 datasheet:
https://www.waveshare.com/w/upload/a/ac/SSD1327-datasheet.pdf
The LD2450 provides mmWave presence detection and multi-target position tracking.
Placement and enclosure design can significantly affect radar performance.
Recommendations:
envsensor/
KiCad schematic, PCB project and project-specific libraries.
gerber/
Production Gerber and drill files.
datasheet/
Component documentation.
docs/
Hardware design and implementation documentation.
README.md
Project documentation.
The gerber/ directory contains the generated PCB production files, including:
F.CuIn1.CuIn2.CuB.CuF.MaskB.MaskF.PasteB.PasteF.SilkscreenB.SilkscreenEdge.CutsThe repository also contains gerber/gerber.zip, which can be uploaded to most PCB manufacturers.
Always verify the Gerbers in the PCB manufacturer's Gerber viewer before placing an order.
The board is intended for use with ESPHome and Home Assistant.
Useful ESPHome documentation:
See LICENSE.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | BH1750 | Library:Untitled_1 | U5 |
| 1 | MS5611-01BA | Library:MS5611 | U4 |
| 1 | SCD30 | kicad-libraries:SCD30 | U3 |
| 1 | ~ | ld2450:ld2450 | U1 |
| 1 | ~ | Library:esp32-s3-wroom-1-devkit | U2 |
It measures 52 × 70 mm and has 2 copper layers, 1.6 mm thick.
5 parts, built around the MS5611-01BA03 and SCD30. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the bruvv/ENV-sensor-esp32 repository on GitHub, at the commit this page was made from: the board is envsensor/oud/_restore_backup_2026-05-30T16-42-54-646/envsensor.kicad_pcb and its schematic envsensor/envsensor.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

bruvv/ENV-sensor-esp32
Custom ESP32-S3 environmental sensor PCB designed for use with ESPHome and Home Assistant.

bruvv/ENV-sensor-esp32
Custom ESP32-S3 environmental sensor PCB designed for use with ESPHome and Home Assistant.

willem-pennings/Air-Quality-Sensor
Design files for a Home Assistant-compatible air quality sensor/monitor

Alacrity-Education/AirBoxV2
The AirBox V2 Station is an open source air quality monitoring station based on the Sensirion SEN66 sensor. It measures particulate matter, CO2, VOC and NOx, runs on a solar charged lithium cell, and reports over Wi-Fi.

Duckle29/InKli
An ESP32-WROOM32 backpack for an SCD30. Uses a high effeciency Buck converter to try and avoid self heating.


artemist/minico2
A simple CO2 monitor based on the Sensirion SCD-30 and an ESP32. This is intended to have Wi-Fi and Ethernet thought that is not yet implemented

bboe/fug
Carrier PCB joining a WEMOS D1 Mini (ESP8266) to a Sensirion SCD30 CO2/RH/T sensor. Script-generated KiCad.

benmcnelly/walter-hardware
This repository contains all hardware information about Walter and shields
