Skip to the content
PCBKitNew board
2 layers38 × 64 mmEmpty SMD, the printed circuit board in 3D

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

Size
38 × 64 mm
Copper layers
2
Thickness
1.6 mm
Parts
5
Nets
14
Pads
26
Tracks, vias
31, 3
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
5 Aug 2026
Updated
4 Nov 2026

Overview

Empty SMD is an open-source printed circuit board by magicamun, from the magicamun/EnvNode repository on GitHub. It is a 2-layer board of 38 × 64 mm with 5 parts on 14 nets, routed with 31 tracks and 3 vias.

It is built around the 24LC32A/P. Its parts include 1 capacitor, 1 IC and 1 connector.

Main components

1

README

README.md

EnvNode

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:

  • firmware
  • hardware (KiCad)
  • documentation
  • development tooling

The goal is not to build another weather dashboard.

The goal is to build a reliable measurement platform.


Vision

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.


Why another weather station?

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:

  • closed-source firmware
  • undocumented algorithms
  • incorrect sunshine duration calculation
  • embedded rain aggregation
  • limited extensibility
  • unclear separation between measurement and interpretation

Rather than replacing individual algorithms, the firmware was redesigned from first principles around a small number of architectural rules.


Core Philosophy

The EnvNode project follows one simple principle:

Measure first.

Interpret later.

The firmware exists to acquire reliable Measurements.

Interpretation belongs to external systems.


Project Goals

  • source-available firmware with a commercial exploitation reservation
  • available hardware design sources (KiCad)
  • MQTT-based integration
  • browser-based configuration
  • OTA firmware updates
  • modular architecture
  • high-quality Measurements
  • deterministic firmware behaviour
  • long-term maintainability
  • simulation support
  • comprehensive documentation
  • hardware independence

Design Principles

The project follows a small number of architectural principles.

Measure, don't interpret

The firmware measures physical reality.

Interpretation belongs outside the Device.


One technical responsibility per service

Each infrastructure service owns exactly one technical responsibility.

Examples include:

  • Configuration
  • WiFi
  • Time
  • MQTT

Sensors produce Measurements

Sensors do not publish MQTT.

Sensors do not interpret weather.

Sensors produce Measurements.

Controllers coordinate Actuators through capabilities

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 has one authoritative owner

Configuration exists exactly once inside the runtime.

Every subsystem uses the same Configuration.


Simulation is part of the architecture

Simulated and physical Sensors follow the same processing pipeline.

Replacing a simulated Sensor with a physical implementation must not require architectural changes.


Observable behaviour

Whenever practical, internal decisions should be visible through:

  • diagnostics
  • logging
  • MQTT status

The firmware should never behave like a black box.


Deterministic firmware

The firmware intentionally avoids executing complex weather models.

Embedded software should remain predictable and responsive.


Hardware independence

Application logic depends on abstract Sensor behaviour rather than concrete hardware implementations.

Replacing a Sensor should require only a new driver.


Current Status

Implemented

  • ESP32 PlatformIO project
  • persistent configuration
  • browser-based provisioning
  • WiFi connectivity
  • automatic WiFi reconnect
  • setup access point
  • configurable hostname
  • SNTP time synchronization
  • configurable timezone
  • MQTT connectivity
  • authenticated MQTT client
  • factory reset and OTA firmware update
  • typed Measurement pipeline and MQTT publication
  • fixed Sensor slots, physical/simulated implementations and live runtime composition
  • Sensor Home Assistant discovery
  • optional GeoPosition and actual sensor altitude, persisted with backup/restore
  • separate sea-level pressure with local temperature selection, freshness checking, explicit quality and fallback diagnostics (firmware 0.6.0)
  • EEPROM-backed Board Identity, boot-time profile resolution and development fallback
  • Board Identity diagnostics and confirmed Web provisioning with readback verification
  • independent Module Identity discovery for both slots, immutable module profiles and board/slot compatibility diagnostics without automatic driver activation
  • fixed Actuator slots and unified hardware validation
  • OnOff capability and GPIO On/Off Actuator
  • Level capability and GPIO PWM Actuator
  • live Actuator runtime rebuild
  • Web and MQTT Actuator configuration/control
  • fixed Controller slots and BlinkController
  • ThresholdController with typed Measurement input, hysteresis and monotonic freshness
  • cooperative Controller runtime and live rebuild
  • Web and MQTT Controller configuration, status and Start/Stop
  • persistent MQTT Blink/Threshold parameter commands and retained parameter state
  • retained external Actuator and Controller descriptions
  • exclusive enabled-Controller ownership of Actuator targets
  • physically verified Sensor -> Measurement -> Controller -> Actuator operation

Current hardware-validation focus

  • provision and boot from the Board Identity EEPROM on a physical Mainboard revision 0.3
  • complete the Revision 0.3 article list and assembly data
  • assemble and bring up the AnalogHydroPressure module, including its local 5 V to 24 V supply
  • integrate and calibrate the ADS1115-based 4–20 mA pressure input on real hardware
  • operate at least the Rain Detector heater path before releasing Revision 0.3 for production

Deliberately future

  • additional Actuator capabilities beyond OnOff and Level, and additional typed Controller implementations
  • multi-input, Boolean/contact and event-driven Controllers
  • richer manual-versus-Controller arbitration
  • Controller and generic Actuator Home Assistant discovery
  • a dedicated provisioning station for preparing Mainboards, Modules, and other supported boards

Documentation

Project documentation is intentionally separated by responsibility.

DocumentPurpose
README.mdProject overview
DomainModel.mdFunctional domain concepts
TechnicalArchitecture.mdTechnical architecture
ActuatorModel.mdActuator capabilities and Controller interaction
MQTT.mdCurrent MQTT protocol boundaries and topics
Configuration.mdConfiguration backup, restore and NVS persistence
SeaLevelPressure.mdGeoPosition, local temperature input and derived sea-level pressure
Hardware.mdHardware entry point, module templates, and implemented boards
PRODUCT_ASSET_CONTRACT.mdReproducible PCB and webshop image requirements
ADRsArchitectural decisions

Non Goals

EnvNode intentionally does not:

  • perform weather forecasting
  • calculate evapotranspiration (ETo)
  • calculate sunshine duration
  • aggregate historical weather data
  • store long-term measurements
  • replace Home Assistant

These responsibilities belong to higher software layers.


Project Status

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.

License and permitted use

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.

Parts

5
QtyValueFootprintReferences
2MountingHoleMountingHole:MountingHole_2.7mm_M2.5_DIN965H1, H2
1100nFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1
124LC32Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU2
1Conn_02x07_Odd_EvenEnvNode-Footprints:J_Wurth_WR-PHD_61031421121J1

Questions

How big is the Empty SMD PCB?

It measures 38 × 64 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Empty SMD use?

5 parts, built around the 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.

Where can I download the Empty SMD KiCad files?

From the magicamun/EnvNode repository on GitHub, at the commit this page was made from: the board is hardware/kicad/Modules/FullSize/Empty-SMD/Empty-SMD.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Empty SMD design in my own project?

Its repository states no licence, so its author keeps all rights: ask magicamun before reusing the design.

More from magicamun/EnvNode

12
  • 2 layers111 × 95 mmEnvNode, the printed circuit board in 3D

    EnvNode

    magicamun/EnvNode

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

    39 parts
  • 2 layers130 × 68 mmEnvNode Mini, the printed circuit board in 3D

    EnvNode Mini

    magicamun/EnvNode

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

    34 parts
  • 2 layers38 × 64 mmAnalogHydroPressure, the printed circuit board in 3D

    AnalogHydroPressure

    magicamun/EnvNode

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

    30 parts
  • 2 layers62.1 × 54.5 mmRainDetectorHead, the printed circuit board in 3D

    RainDetectorHead

    magicamun/EnvNode

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

    27 parts
  • 2 layers90 × 90 mmTest Controller, the printed circuit board in 3D

    Test Controller

    magicamun/EnvNode

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

    23 parts
  • 2 layers38 × 64 mmDuoRelay, the printed circuit board in 3D

    DuoRelay

    magicamun/EnvNode

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

    21 parts
  • 2 layers132 × 70 mmEnvNodeMini, the printed circuit board in 3D

    EnvNodeMini

    magicamun/EnvNode

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

    20 parts
  • 2 layers38 × 64 mmSX1262-Remote, the printed circuit board in 3D

    SX1262-Remote

    magicamun/EnvNode

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

    15 parts
  • 2 layers62.1 × 54.5 mmRainDetectorController, the printed circuit board in 3D

    RainDetectorController

    magicamun/EnvNode

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

    15 parts
  • 2 layers38 × 64 mmDuoRelay, the printed circuit board in 3D

    DuoRelay

    magicamun/EnvNode

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

    14 parts
  • 2 layers43 × 27 mmSolarRadiation, the printed circuit board in 3D

    SolarRadiation

    magicamun/EnvNode

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

    14 parts
  • 2 layers39 × 15 mmORing Power, the printed circuit board in 3D

    ORing Power

    magicamun/EnvNode

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

    13 parts

Similar boards

  • 2 layers63.5 × 63.5 mmMain pcb, the printed circuit board in 3D

    Main pcb

    peterkrull/quad

    Firmware, hardware and documentation for my autonomous quad copter project

    45 parts210GPL-3.0
  • 2 layers66 × 99 mmNucleo32TNC, the printed circuit board in 3D

    Nucleo32TNC

    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.

    54 parts110GPL-3.0
  • 2 layers94.5 × 74.4 mmAx58100-stm32-ethercat, the printed circuit board in 3D

    Ax58100-stm32-ethercat

    MetalMusings/MyOwnEtherCATDevice

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

    184 parts93
  • 2 layers100 × 66.1 mmPicoWiFiModem, the printed circuit board in 3D

    PicoWiFiModem

    mecparts/PicoWiFiModem

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

    39 parts64GPL-3.0
  • 2 layers32.1 × 41.2 mmIr signalgen lite, the printed circuit board in 3D

    Ir signalgen lite

    dilshan/ir-clone

    Open-source infrared remote control signal analysis and generating tool

    40 parts58MIT
  • 4 layers185 × 95 mmEL Load Analog, the printed circuit board in 3D

    EL Load Analog

    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.

    344 parts15
  • 2 layers129.5 × 72.6 mmOpenPLC, the printed circuit board in 3D

    OpenPLC

    radioelf/OpenPlc

    Hardware for OpenPLC with raspberry PI Z and Mod. software OpenPlc

    165 parts7
  • 4 layers33 × 50.8 mmFv1 board, the printed circuit board in 3D

    Fv1 board

    JordanAceto/fv1_breakout_board

    Small breakout pcb for the Spin Semi FV-1 DSP chip

    50 parts5