
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.
EnvNode Halfsize Module Interface MB Hierarchical is an open-source printed circuit board by magicamun, from the magicamun/EnvNode repository on GitHub. It is a 2-layer board with 2 parts on 8 nets, routed with 29 tracks and 0 vias.
It belongs with the interfaces and adapters 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 |
|---|---|---|---|
| 2 | Conn_02x04_Odd_Even | Connector_PinSocket_2.54mm:PinSocket_2x04_P2.54mm_Vertical | J1, J2 |
2 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/Libraries/EnvNodeDesignBlocks.kicad_blocks/EnvNode_Halfsize_Module_Interface_MB_Hierarchical.kicad_block/EnvNode_Halfsize_Module_Interface_MB_Hierarchical.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.

hzeller/rpi-rgb-led-matrix
Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO


adamws/kicad-kbplacer
KiCad plugin for automatic keyboard's key placement and routing

Luos-io/luos_engine
Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

NVNTLabs/switch2-SDEX2M2
Micro SD Express to M.2 NVME Adapter for Nintendo Switch 2

BlueSCSI/BlueSCSI-v2
BlueSCSI v2/Ultra - an open source, open hardware, SCSI emulator using the Pi Pico PR2040 and Pico 2 RP2350

ohmtech-rdi/eurorack-blocks
Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust
