Skip to the content
PCBKitNew board
2 layers35 × 73.7 mmInput Adapter, the printed circuit board in 3D

Input Adapter

magicamun/EnvNode

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

Size
35 × 73.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
9
Nets
58
Pads
128
Tracks, vias
210, 23
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
5 Aug 2026
Updated
4 Nov 2026

Overview

Input Adapter is an open-source printed circuit board by magicamun, from the magicamun/EnvNode repository on GitHub. It is a 2-layer board of 35 × 73.7 mm with 9 parts on 58 nets, routed with 210 tracks and 23 vias.

It is built around the CD74HC4067M. Its parts include 3 capacitors, 3 ICs and 2 connectors. It belongs with the interfaces and adapters boards and the ESP32 boards of this library.

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

9
QtyValueFootprintReferences
3100nFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1, C2, C3
3CD74HC4067MPackage_SO:SOIC-24W_7.5x15.4mm_P1.27mmU4, U5, U6
1Conn_01x02_SocketConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTP1
1Conn_02x05_Odd_EvenConnector_IDC:IDC-Header_2x05_P2.54mm_VerticalJ1
1ESP32_DevKitC_TestPlugEnvNode-Footprints:ESP32_DevKitC_TestPlug_2x19_P2.54mm_Row25.40mmJ4

Questions

How big is the Input Adapter PCB?

It measures 35 × 73.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Input Adapter use?

9 parts, built around the CD74HC4067M. 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 Input Adapter KiCad files?

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

Can I use the Input Adapter 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 layers312 × 140 mmTsynth2 Rev1.3, the printed circuit board in 3D

    Tsynth2 Rev1.3

    Electrotechnique/TSynth-Teensy4.1

    TSynth for Teensy 4.1

    108 parts182
  • 2 layers422.4 × 118.2 mmMidiMood (tht), the printed circuit board in 3D

    MidiMood (tht)

    silveirago/MidiMood

    This repository contains the code for a custom MIDI controller project called MidiMood, built using an ATmega32U4 microcontroller (or similar).

    53 parts82
  • 2 layers248.9 × 120.7 mm16nx, the printed circuit board in 3D

    16nx

    16n-faderbank/16nx

    16nx is a controller for musical instruments. Sixteen faders,MIDI over USB and jack, CV out, and I2C out. Based around RP2040.

    171 parts76
  • 4 layers100 × 100 mmOPDM, the printed circuit board in 3D

    OPDM

    brenonsantos/OpenPDM

    OpenPDM is an open-source programable Power Distribution Module for your car

    156 parts75MIT
  • 2 layers215.9 × 101.6 mmIps20, the printed circuit board in 3D

    Ips20

    gzweigle/open-hybrid-piano

    Building a hybrid MIDI digital piano

    135 parts61GPL-3.0
  • 2 layers152.4 × 95.3 mmControl board, the printed circuit board in 3D

    Control board

    carsonrobles/fpga-guitar-pedal

    FPGA based guitar effect station.

    51 parts36
  • 2 layers100 × 100 mmEavesdrum module, the printed circuit board in 3D

    Eavesdrum module

    tobigun/EavesDrum

    EavesDrum is an e-drum trigger module project, designed for musicians and makers. It allows you to connect drum pads or piezo triggers and converts their signals into MIDI events.

    103 parts25GPL-3.0
  • 4 layers33 × 65.5 mmOM FlexGrid Rigid PCB, the printed circuit board in 3D

    OM FlexGrid Rigid PCB

    Open-Muscle/OpenMuscle-FlexGrid

    60-sensor wearable with flexible PCB and pressure matrix

    65 parts19CERN-OHL-S-2.0