
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.
ESP Core w. EEPROM is an open-source printed circuit board by magicamun, from the magicamun/EnvNode repository on GitHub. It is a 2-layer board with 3 parts on 37 nets, routed with 12 tracks and 0 vias.
It is built around the ESP32-DEVKITC-VE and 24LC32A/P. Its parts include 2 ICs and 1 capacitor. It belongs with the ESP32 boards of this library.
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 |
|---|---|---|---|
| 1 | 100nF | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C1 |
| 1 | 24LC32 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2 |
| 1 | ESP32-DevKitC | PCM_Espressif:ESP32-DevKitC | U1 |
3 parts, built around the ESP32-DEVKITC-VE and 24LC32A/P. 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/DesignBlocks/ESP Core w. EEPROM/ESP Core w. EEPROM.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.

patrick-th/sump-pump-monitor
PCB to monitor battery SOC and flow rate of a sump pump

peterkrull/quad
Firmware, hardware and documentation for my autonomous quad copter project

mobilinkd/NucleoTNC
The Nucleo TNC is a breadboard implementation of the Mobilinkd TNC3 using a STM32L432KC Nucleo32 board. This TNC faithfully implements the audio section and EEPROM storage of the TNC3.

MetalMusings/MyOwnEtherCATDevice
Documentation accompanying the "Make My Own EtherCAT device" video serie on Youtube.

mecparts/PicoWiFiModem
A Pico W based RS232 <-> WiFi modem with Hayes AT style commands and LED indicators

dilshan/ir-clone
Open-source infrared remote control signal analysis and generating tool

fietser28/EL-Load
The DCL8010 electronic load module features a DC Electronic Load with several modes and protections. This project is the for the development boards for this project. There is a seperate git project for the firmware.
