Skip to the content
2 layers30 × 45 mmAutomato V2.0, the printed circuit board in 3D

Firmware and documentation for the Automato Brain Board V2.0, an ESP32-C6 based agricultural IoT node with onboard temperature, humidity, and light sensing, ESP-NOW mesh networking, relay control, and a self-hosted web…

Size
30 × 45 mm
Copper layers
2
Thickness
1.6 mm
Parts
32
Nets
47
Pads
201
Tracks, vias
360, 133
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
12 Mar 2026
Updated
5 Apr 2026

Overview

Automato V2.0 is an open-source printed circuit board by Automato-ag, from the Automato-ag/Brain-Board repository on GitHub, published under the MIT licence. It is a 2-layer board of 30 × 45 mm with 32 parts on 47 nets, routed with 360 tracks and 133 vias.

It is built around the ESP32-C6-MINI-1-N4, SHTC3 and TSL25911FN, with the AP2112K-3.3 and BAT20J among its other parts. Its parts include 9 resistors, 5 capacitors, 5 connectors, 4 ICs and 4 diodes. It belongs with the ESP32 and RISC-V boards of this library.

Main components

5

README

README.md

Brain Board — Automato Ag

Firmware and documentation for the Automato Brain Board V2.0, an ESP32-C6 based agricultural IoT node with onboard temperature, humidity, and light sensing, ESP-NOW mesh networking, relay control, and a self-hosted web dashboard served directly from the board.


Hardware

ComponentDetails
MCUESP32-C6-MINI-1-N4, 160 MHz, 4 MB Flash
Temp/HumiditySHTC3 — I2C 0x70 (fixed)
LightTSL2591 — I2C 0x29 (fixed)
I2C BusSDA = IO6, SCL = IO7
Blue LEDIO23
Red LEDIO22
Boot ButtonIO9 — see Boot Button section below
Qwiic/STEMMA QTJ2, J3 — GND / 3V3 / SDA / SCL
Logic Level3.3V only — GPIO pins not 5V tolerant

See hardware/Brain_Board_Reference.md for full pinout and hardware notes.


Firmware

Current Version

SketchVersion
BrainBoard_v110v1.1.0

All boards run the same unified firmware. There is no separate Host or Remote build — role (gateway, relay, isolated) is determined automatically at runtime based on WiFi connectivity.

Required Libraries

Install all of the following via Arduino Library Manager:

  • Adafruit SHTC3 Library
  • Adafruit TSL2591
  • Adafruit BusIO (installed automatically as dependency)
  • Adafruit Unified Sensor (installed automatically as dependency)
  • SparkFun TCA9534 (for Qwiic GPIO relay control)

Arduino IDE Settings

SettingValue
BoardESP32C6 Dev Module
USB CDC On BootEnabled — required; board crashes on Serial without this
Partition SchemeCustom — required; uses partitions.csv in sketch folder
Upload Speed921600

Note: USB CDC on Boot must be re-enabled each Arduino IDE session — it does not always persist.

First Flash

  1. Open BrainBoard_v110/BrainBoard_v110.ino in Arduino IDE
  2. Set board settings as above
  3. Sketch → Upload — flash firmware
  4. Tools → ESP32 Sketch Data Upload — upload data/ folder to LittleFS
  5. Open Serial Monitor at 115200 baud, press RESET
  6. Connect phone or laptop to the Automato-XXXX WiFi network
  7. Open http://192.168.4.1/setup — enter your Network Name, password, and WiFi credentials
  8. Board joins your network and is accessible at http://networkname.local

OTA Updates (after first flash)

  • Navigate to http://boardname.local/update or http://192.168.4.1/update
  • Upload new firmware .bin or new LittleFS filesystem image
  • Firmware and webapp update independently — UI changes do not require reflashing firmware

Boot Button (IO9)

ActionBehavior
Hold 5s at startupClears all stored credentials and settings, then reboots
Short press during runtimeOpens a 10-minute SoftAP access window — board stays accessible at 192.168.4.1 even when on WiFi (useful for field configuration)

Dashboard

The Brain Board serves a complete webapp directly from its own flash memory — no internet, cloud, or external server required. Works in a field with no cell service.

Tabs

TabDescriptionStatus
DashboardLive sensor readings, relay control, Agri Data sidebarLive
DevicesLocal + peer I2C scan, user-defined device labels, address referenceLive
RulesAutomation rule engine — local and cross-board conditionsv1.2
SettingsDisplay & Behavior (units, refresh rate, auto-sync), Agri Data Sources, Board SettingsLive
NetworkMesh topology — board roles, peers, gateway addressLive

HTTP Endpoints

EndpointMethodDescription
/GETDashboard webapp (served from LittleFS)
/dataGETSensor JSON + relay state + network info
/peersGETPeer list JSON
/versionGETFirmware + webapp version, mDNS name, network name
/relayGETRelay control (?state=0|1, ?override=auto)
/relay/statusGETRelay state JSON
/i2c-scanGETLocal I2C bus scan
/remote-scanPOST/GETPeer I2C scan via ESP-NOW
/timePOSTSet board time from browser
/settingsPOSTSave board name / Network Name / password
/proxyGETHTTPS relay — board fetches external API on browser's behalf (?url=); allowlisted domains only
/prefsGETRead dashboard preferences from LittleFS (/prefs.json)
/prefsPOSTWrite dashboard preferences JSON to LittleFS
/setupGET/POSTWiFi provisioning form
/wifi/resetPOSTClear WiFi credentials + reboot
/updateGETOTA update UI
/update/firmwarePOSTFlash new firmware .bin
/update/filesystemPOSTFlash new LittleFS image

Agri Data Sidebar

External API calls are routed through the board's /proxy endpoint so they work when connected to the board's SoftAP (phone in the field with no direct internet). All sources are free and require no API keys.

Data sources can be enabled or disabled individually from Settings → Agri Data Sources.

Parameter GroupSource
Weather, Wind, Cloud Cover, Outdoor HumidityOpen-Meteo
Solar, UV Index, Shortwave RadiationOpen-Meteo
First Light, Sunrise, Solar Noon, Sunset, Day LengthSunrise-Sunset.org
Soil Temperature and Moisture, ET₀, VPDOpen-Meteo
Frost Risk (derived)Open-Meteo (radiative cooling model)
Growing Degree Days — season to date (derived)Open-Meteo + ERA5 archive
Chill Hours — season to date (derived)Open-Meteo + ERA5 archive
Photoperiod — day length classification (derived)Sunrise-Sunset.org
Moon Phase, Moonrise, MoonsetUSNO + Sunrise-Sunset.org
NWS Frost AlertsNOAA National Weather Service
PM2.5, PollenOpen-Meteo Air Quality
DLI Accumulator (onboard sensor)TSL2591 lux — accumulated in firmware

ESP-NOW Mesh

All Brain Boards on the same Network Name automatically form a mesh using ESP-NOW. No configuration required beyond giving boards the same Network Name in /setup.

RoleConditionBehavior
GatewayBoard has active WiFiServes dashboard at networkname.local; syncs NTP time; relays peer sensor data
RelayNo WiFi, peer discoveredSeeks mesh channel, locks on discovery, forwards sensor data to gateway via ESP-NOW
IsolatedNo WiFi, no peers foundSeeks continuously; accessible at 192.168.4.1 via its own SoftAP

Channel seek: Non-WiFi boards cycle through channels 1–11 (US), restarting their SoftAP on each channel to keep the radio active for ESP-NOW reception. Lock occurs on first matching MSG_HELLO beacon.

Plugin hooks: Add a custom.ino file to the sketch folder to extend functionality without modifying core firmware. Available hooks: customSetup(), customLoop(), customDataJSON().


Relay Control

  • GPIO expander: SparkFun Qwiic GPIO (TCA9534) at I2C address 0x27, connected via Qwiic cable
  • Relay defaults OFF at all times — boot, sensor failure, I2C error, connectivity loss
  • Manual ON/OFF toggle in dashboard always overrides automation
  • Rule engine arriving in v1.2

Relay Safety Contract

Relays default OFF under all failure conditions: boot, sensor failure, WiFi loss, cloud loss, browser closed, no rules configured, conflicting rules, hardware expander not found.

There is no condition under which a relay defaults ON.


Roadmap

VersionFeatureStatus
v0.8.1Tab navigation shell, I2C Scanner tab, /i2c-scan endpointComplete
v0.9Devices tab, remote I2C scan via ESP-NOW, Network Name in /setupComplete
v1.0Settings tab, Network tab stub, POST /settings endpointComplete
v1.1ESP-NOW mesh — unified firmware, MSG_HELLO beacon, dynamic gateway, networkname.local, 1-hop relay, live Network tab, plugin hooksComplete
v1.2Rules tab — firmware rule engine, LittleFS persistence, local + peer conditions, recipe databaseNext
v1.3Multi-hop relay, routing tables, cross-board rulesPlanned

Repository Structure

text
Brain-Board/
├── README.md
├── CHANGELOG.md
├── LICENSE
├── .gitignore
├── firmware/
│   ├── BrainBoard/
│   │   └── BrainBoard_v110/            <- current (v1.1)
│   │       ├── BrainBoard_v110.ino
│   │       ├── partitions.csv
│   │       └── data/
│   │           ├── index.html
│   │           └── version.txt
│   ├── BrainBoard_Host/                <- legacy (pre-v1.1)
│   └── BrainBoard_Remote/              <- legacy (pre-v1.1, retired)
├── docs/
│   ├── Roadmap.md
│   ├── QuickStart.md
│   ├── RelayControl.md
│   ├── AgriDataSidebar.md
│   ├── ESP32C6_Capabilities.md
│   ├── I2C_Address_Map.md
│   └── ProductFamily.md
├── hardware/

License

MIT License — see LICENSE for details.


Automato Ag — automato.ag

Parts

32
QtyValueFootprintReferences
52.2kSparkFun-Resistor:R_0402_1005MetricR3, R4, R5, R6, R8
30.1uFSparkFun-Capacitor:C_0402_1005MetricC3, C4, C5
2100KSparkFun-Resistor:R_0402_1005MetricR7, R9
22.2uFSparkFun-Capacitor:C_0603_1608MetricC1, C2
25.1kSparkFun-Resistor:R_0402_1005MetricR1, R2
2Conn_01x10Openponics_Connectors:1x10_CastellatedJ4, J5
2Qwiic_RASparkFun-Connector:JST_SMD_1.0mm-4_BlackJ2, J3
2SMD_4.2x3.2mm_h2.5mmSparkFun-Switch:Push_SMD_4.2x3.2mmSW1, SW2
1AP2112K-3.3SparkFun-Semiconductor-Standard:SOT23-5U1
1BAT20JSparkFun-Semiconductor-Standard:SOD-323D1
1BlueSparkFun-LED:LED_0402_1005MetricD4
1ESP32-C6-MINI-1-N4RF_Module:ESP32-C6-MINI-1U2
1GreenSparkFun-LED:LED_0402_1005MetricD2
1RedSparkFun-LED:LED_0402_1005MetricD3
1SHTC3Sensor_Humidity:Sensirion_DFN-4-1EP_2x2mm_P1mm_EP0.7x1.6mmU3
1TSL25911FNOptoDevice:AMS_TSL25911FNU6
1USB_C_ReceptacleSparkFun-Connector:USB-C_16J1
1~SparkFun-Jumper:Jumper_3_NC-2_TraceJP1

The 30 most common of 32 parts.

Similar boards

  • 2 layers51.7 × 80.7 mmESPHome MultiPresence, the printed circuit board in 3D

    ESPHome MultiPresence

    PennyLekas/ESPHome_MultiPresence

    A ESPHome presence sensor with mmWave radar, PIR motion, light, temperature, humidity, and pressure

    48 parts2GPL-3.0
  • 2 layers70 × 54.5 mmReckoner, the printed circuit board in 3D

    Reckoner

    blind-reckoning/Reckoner

    Turns press-and-hold motorised blinds into Home Assistant covers. One Reckoner per blind, hidden in the wall box behind the buttons you already have.

    92 partsCERN-OHL-S-2.0
  • 2 layers85.6 × 54 mmAio card, the printed circuit board in 3D

    Aio card

    Shmcandi/esp32-c6-pcb-business-card

    Ultra-slim credit card sized smart PCB business card powered by ESP32-C6-MINI-1 with 0.91-inch OLED display, USB-C, and LiPo charger

    22 parts
  • 2 layers40 × 22.1 mmKaze, the printed circuit board in 3D

    Kaze

    Las-Vejas/Kaze

    A very powerful surrounding sensor

    44 parts3MIT
  • 4 layers113.1 × 105.6 mmCansat v1, the printed circuit board in 3D

    Cansat v1

    NBER08/CanSat

    89 parts
  • 2 layers52.8 × 71.8 mmESPBoosted, the printed circuit board in 3D

    ESPBoosted

    schoolllex/ESPBoosted

    A custom, feature-rich ESP32-WROOM-32 development board featuring built-in environmental sensors, power management, and expansion interfaces.

    51 parts
  • 4 layers120 × 76 mmPanel, the printed circuit board in 3D

    Panel

    vbartusevicius/weather-station

    Open-source rooftop weather and air-quality station with no moving parts (Ø 96 × 235 mm, UV-stabilised ASA): ultrasonic wind, acoustic rain and hail, UV / sunlight / night-sky brightness, temperature, humidity…

    235 parts
  • 2 layers192.4 × 50 mmOmote, the printed circuit board in 3D

    Omote

    OMOTE-Community/OMOTE-Hardware

    Open Source Remote - Hardware

    187 parts157GPL-3.0

Questions

How big is the Automato V2.0 PCB?

It measures 30 × 45 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Automato V2.0 use?

32 parts, built around the ESP32-C6-MINI-1-N4, SHTC3, TSL25911FN and AP2112K-3.3. 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 Automato V2.0 KiCad files?

From the Automato-ag/Brain-Board repository on GitHub, at the commit this page was made from: the board is hardware/kicad/Brain_Board_V2.0/Automato_V2.0.kicad_pcb and its schematic hardware/kicad/Brain_Board_V2.0/Automato_V2.0.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Automato V2.0 design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).