
EnvNode
magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.
SCT013Head is an open-source printed circuit board by magicamun, from the magicamun/EnvNode repository on GitHub. It is a 2-layer board of 20.8 × 14 mm with 8 parts on 9 nets, routed with 18 tracks and 0 vias.
Its parts include 4 resistors, 2 capacitors and 1 connector.
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.
WeatherStation is the first reference application built on the reusable EnvNode platform.
The classic ESP32 firmware keeps Arduino-ESP32 2.x and RainDetector, with UDP logging to rsyslog instead of SD storage. SD and SX1262 runtime support belong to the later S3 hardware/build profile. See the classic ESP32 scope and logging validation for current limits and measurements.
The project intentionally separates measurement from interpretation.
The firmware is responsible for acquiring reliable physical Measurements and publishing them to external systems.
Higher-level concepts such as weather interpretation, historical aggregation, evapotranspiration (ETo), irrigation logic and visualization intentionally remain outside the firmware.
EnvNode is developed as a complete source-available product including:
The goal is not to build another weather dashboard.
The goal is to build a reliable measurement platform.
EnvNode provides an open, transparent and extensible weather sensor platform for Home Assistant and other home automation systems.
The ESP32 acts as a dedicated measurement node.
It acquires physical sensor data, performs only the hardware-related processing required to obtain reliable Measurements and publishes them via MQTT.
The firmware intentionally remains deterministic, maintainable and independent from weather-specific interpretation.
This allows higher software layers to evolve independently while keeping the embedded firmware simple and robust.
The project originated from practical experience with an existing DIY weather station.
Although the hardware proved to be reliable, several software aspects became increasingly problematic:
Rather than replacing individual algorithms, the firmware was redesigned from first principles around a small number of architectural rules.
The EnvNode project follows one simple principle:
Measure first.
Interpret later.
The firmware exists to acquire reliable Measurements.
Interpretation belongs to external systems.
The project follows a small number of architectural principles.
The firmware measures physical reality.
Interpretation belongs outside the Device.
Each infrastructure service owns exactly one technical responsibility.
Examples include:
Sensors do not publish MQTT.
Sensors do not interpret weather.
Sensors produce Measurements.
Controllers implement cooperative local behavior and address configured Actuators by ActuatorId and capability. They do not manipulate GPIO or use MQTT as an internal control path.
Configuration exists exactly once inside the runtime.
Every subsystem uses the same Configuration.
Simulated and physical Sensors follow the same processing pipeline.
Replacing a simulated Sensor with a physical implementation must not require architectural changes.
Whenever practical, internal decisions should be visible through:
The firmware should never behave like a black box.
The firmware intentionally avoids executing complex weather models.
Embedded software should remain predictable and responsive.
Application logic depends on abstract Sensor behaviour rather than concrete hardware implementations.
Replacing a Sensor should require only a new driver.
Implemented
Current hardware-validation focus
Deliberately future
Project documentation is intentionally separated by responsibility.
| Document | Purpose |
|---|---|
| README.md | Project overview |
| DomainModel.md | Functional domain concepts |
| TechnicalArchitecture.md | Technical architecture |
| ActuatorModel.md | Actuator capabilities and Controller interaction |
| MQTT.md | Current MQTT protocol boundaries and topics |
| Configuration.md | Configuration backup, restore and NVS persistence |
| SeaLevelPressure.md | GeoPosition, local temperature input and derived sea-level pressure |
| Hardware.md | Hardware entry point, module templates, and implemented boards |
| PRODUCT_ASSET_CONTRACT.md | Reproducible PCB and webshop image requirements |
| ADRs | Architectural decisions |
EnvNode intentionally does not:
These responsibilities belong to higher software layers.
The Sensor, Actuator and Controller architecture is implemented and physically verified. Current open work concerns further capabilities, Controller implementations and external self-description rather than replacing these runtime boundaries.
EnvNode-owned materials are provided under the EnvNode Use and Redistribution License, version 1.0. Private and internal business use, modifications, free redistribution, and paid fabrication or maintenance for the user's own use are permitted. Commercial product sales, licensing, rental, and standalone paid software hosting require separate permission. Third-party materials retain their respective licenses. This is a custom source-available license, not an OSI-approved open-source license. The German license text is authoritative.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 10k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R1, R2, R3, R4 |
| 1 | 10nF | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C1 |
| 1 | 10uF | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C2 |
| 1 | Conn_01x04_Pin | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | ADC1 |
| 1 | Conn_01x05_Pin | EnvNode-Footprints:Jack_3.5mm_Lumberg_1503_09_Horizontal | J1 |
It measures 20.8 × 14 mm and has 2 copper layers, 1.6 mm thick.
8 parts. 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 magicamun/EnvNode repository on GitHub, at the commit this page was made from: the board is hardware/kicad/Sensors/SCT013Head/SCT013Head.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask magicamun before reusing the design.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.

magicamun/EnvNode
EnvNode is an source-available ESP32-based embedded platform for reliable environmental measurements and seamless integration into modern home automation systems.


joeycastillo/Sensor-Watch
A board replacement for the classic Casio F-91W wristwatch

rusefi/rusefi
rusefi - GPL internal combustion engine control unit

hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

shanteacontrols/OpenDeck
A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.

hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

dangiu/PicoMemcard
Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico

OLIMEX/DIY-LAPTOP
Do It Yourself Open Source Hardware and Software Modular Hacker's Friendly Laptop