Skip to the content
PCBKitNew board
2 layers38 × 32 mmAnalogInput, 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 × 32 mm
Copper layers
2
Thickness
1.6 mm
Parts
13
Nets
15
Pads
47
Tracks, vias
110, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
5 Aug 2026
Updated
4 Nov 2026

Overview

AnalogInput is an open-source printed circuit board by magicamun, from the magicamun/EnvNode repository on GitHub. It is a 2-layer board of 38 × 32 mm with 13 parts on 15 nets, routed with 110 tracks and 0 vias.

It is built around the ADS1115IDGS and BAT54S. Its parts include 3 connectors, 2 capacitors, 2 resistors, 1 IC and 1 diode.

Main components

2

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

13
QtyValueFootprintReferences
2Conn_02x04_Odd_EvenEnvNode-Footprints:PinSocket_2x04_P2.54mm_Vertical_BottomJ1, J2
10x48Jumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmJP1
10x49Jumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmJP2
10x4AJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmJP3
10x4BJumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mmJP4
1100nFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC2
1150Ohm, 0,1% <= 25ppm/K, >0,125WResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
11uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1
14,7kOhmResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR2
1ADS1115IDGSPackage_SO:TSSOP-10_3x3mm_P0.5mmU1
1BAT54SPackage_TO_SOT_SMD:SOT-23D1
1Conn_01x02_PinConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ3

Questions

How big is the AnalogInput PCB?

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

What parts does the AnalogInput use?

13 parts, built around the ADS1115IDGS and BAT54S. 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 AnalogInput KiCad files?

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

Can I use the AnalogInput 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

  • 4 layers89 × 58 mmHALMET, the printed circuit board in 3D

    HALMET

    hatlabs/HALMET-hardware

    Hat Labs Marine Engine & Tank interface hardware design files

    227 parts8CC-BY-4.0
  • 2 layers65 × 56 mmPiADC2, the printed circuit board in 3D

    PiADC2

    capconix/PiADC2

    PiADC open source project successor, the PiADC2 - A simple data acquisition board for use with the model B Raspberry Pis

    72 parts1
  • 2 layers100.6 × 131 mmHabitat V5, the printed circuit board in 3D

    Habitat V5

    machadoleonardo94/HabitatControl-hardware

    Hardware files for HabitatControl, designed on DipTrace

    161 parts1
  • 4 layers102.4 × 83.1 mmPLC4UNI, the printed circuit board in 3D

    PLC4UNI

    0sirys/Juan_Pimentel_Electiva_2026_C2

    209 partsMIT
  • 4 layers95 × 78 mmSmart db, the printed circuit board in 3D

    Smart db

    c-lydia/SmartDB

    A distribution board system designed for automatic electrical fault monitoring using Digital Signal Processing (FFT analysis), Isolation Forest, and YOLO thermal imaging detection with a Mobile App, alerting system, and…

    82 partsApache-2.0
  • 4 layers230 × 135 mmVancontroller, the printed circuit board in 3D

    Vancontroller

    Camperlux/vancontroller

    VanController: ESP32-S3 12 V campervan controller board (6 fused relays, 6 PWM dimmers, CAN, RS485, GPS) - KiCad 10 design, manufacturing files and enclosure. Free for non-commercial use.

    259 parts
  • 2 layers102.1 × 82.7 mmPLC Electiva, the printed circuit board in 3D

    PLC Electiva

    JosueHerrera05/Josue_Herrera_Electiva_2026_C2

    Repositorio Electíva Diseño Mecatrónico 2026-C2

    198 partsMIT
  • 4 layers102.4 × 83.1 mmPLC4UNI GC1, the printed circuit board in 3D

    PLC4UNI GC1

    paulmartinezcuenta/PLC4UNI

    Development of programmable logic controller, product for mechatronic design.

    179 partsMIT