Skip to the content
4 layers120 × 76 mmPanel, the printed circuit board in 3D

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…

Size
120 × 76 mm
Copper layers
4
Thickness
1.6 mm
Parts
235
Nets
143
Pads
935
Tracks, vias
2,769, 301
Pours
21
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
17 Oct 2026
Updated
30 Oct 2026

Overview

Panel is an open-source printed circuit board by vbartusevicius, from the vbartusevicius/weather-station repository on GitHub. It is a 4-layer board of 120 × 76 mm with 235 parts on 143 nets, routed with 2,769 tracks and 301 vias.

It is built around the UCC27524ADR(UMW), TSL25911FN and ADS1115IDGSR, with the ADS1115IRUGR, AS3935-BQFT and BMP585 among its other parts. Its parts include 80 capacitors, 75 resistors, 20 ICs, 15 diodes and 9 connectors.

Main components

12

README

README.md

AeroMet V1 — Solid-State Roof Weather & Air-Quality Station

CI

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, pressure, lightning, PM1 / PM2.5 / PM10, VOC / NOx and true CO₂. It runs from 12–32 V DC, talks Wi-Fi and RS-485, serves its own web dashboard and appears in Home Assistant by itself.

AeroMet station, 3D renderWeb UI: Now tab

What it measures · Hardware · Web UI · Build one · Firmware · Development

What it measures

MeasurementSensorRange
Wind speed & direction4× 40 kHz ultrasonic transducers, time of flight (STM32G431 crown)0–60 m/s, 0.1°
Rain & hail4 piezo discs under the lid, acoustic impacts0–200 mm/h, hail size
UV index, UV-A / UV-B, sunlight, night skyGUVB-C21SD + GUVA-C22SD photodiodes + TSL25911 under a PTFE domeUVI 0–16+, 0.0002–88 000 lx
Temperature & humiditySensirion SHT40 in a 5-plate radiation shield±0.2 °C, ±1.8 % RH
Pressure & thunderBosch BMP585±0.06 hPa
ParticulatesPlantower PMSA003IPM1 / PM2.5 / PM10
VOC & NOxSensirion SGP41 + Gas Index Algorithmindex 1–500
CO₂Sensirion SCD41 (heated below −8 °C)400–5000 ppm
LightningAS3935 + 500 kHz ferrite antenna1–40 km
Compass, tilt, vibrationMMC5603 + LSM6DS3heading, mast tilt, ground vibration

Full sensor, enclosure and board reference: docs/hardware.md.

Hardware

CutawayExplodedSix boards on one breakaway panel
CutawayExploded viewPCB panel, KiCad 3D render
radiation shield, probe cartridge, base bay13 printed parts, bayonet and threaded jointscrown, main, probe, power, dome, reflector (4-layer, 140.6 × 63.2 mm)
More renders: inside view, every printed part, board plots
InsideBasePagodaWind tunnel
Insidebasepagodawind_tunnel
Crown baseCrown lidStrutsProbe sleeve
crown_basecrownstrutsprobe_sleeve_front

Board plots (top / bottom SVG): crown · main · probe · power · dome · reflector · panel

Web UI

The station serves its dashboard over Wi-Fi (no cloud, no app). Every value is computed by the firmware; the page only displays it.

NowTrends
Now tabTrends tab
live readings, forecast, sun & moon, air quality, lightningany metrics from 1 hour to 6 months, wind rose, records, CSV export
CalibrationSetup
Calibration tabSetup tab
station health, home calibration with household itemsWi-Fi, MQTT / Home Assistant, RS-485 monitor, firmware update

Also: MQTT with Home Assistant auto-discovery, and an RS-485 poll / response protocol (CRC-16 frames with every sensor) for wired loggers.

Build one

  1. Order the boards with assembly: ODB++ for AISLER, Gerbers + MPN BOM + CPL for PCBWay / Eurocircuits, or the JLCPCB files for the breakaway panel (hardware/releases/v1/; which file goes where: docs/building.md).
  2. Print the enclosure: 8 print plates in enclosure/print/ (MJF / SLS nylon or ASA), plus standard O-rings and a turned PTFE dome.
  3. Assemble and seal: harnesses, conformal coating and sealing in docs/building.md.
  4. Flash the station once over USB, then bring it up and calibrate it at home: CALIBRATION.md.

Open design questions and acceptance checks: REVIEW_CHECKLIST.md.

Firmware

Download from Releases: each release carries the firmware and the complete hardware package (aeromet-hardware-v1.zip: Gerbers, BOM, CPL, STL / STEP print plates, drawings, build and calibration guides). Every commit to main that passes CI is released, named after its UTC commit time (2026.10.24.0040); the firmware reports the same version.

FileUse
usb-flash-firmware.binfirst flash of a new board over USB: esptool.py --chip esp32c6 write_flash 0x0 usb-flash-firmware.bin
firmware.binlater updates from the Web UI (Setup → Firmware update); carries the crown firmware too

The version is the UTC commit time, yyyy.mm.dd.hhmm. Local build: python3 station/scripts/release_firmware.py → station/build/firmware/.

Development

FolderContents
hardware/spec (product/spec.yaml), SKiDL circuits, KiCad layouts, simulations, release package
mechanical/CadQuery enclosure generator and renderer
station/ESP32-C6 firmware (ESP-IDF), Web UI (station/data/), simulator, unit and Web UI tests
crown/STM32G431 crown firmware (ultrasonic wind, rain, lightning)
bash
python3 hardware/scripts/build.py                     # everything: hardware, CAD, release, firmware, tests
docker compose --profile lint run --rm -T cpp-lint "pio test -d station -e native"   # firmware unit tests
python3 station/scripts/mock_webui_server.py          # Web UI on the simulator: http://127.0.0.1:8765
docker compose --profile lint run --rm lint check .   # lint
python3 docs/render_readme_images.py                  # refresh the README screenshots and PCB render

Architecture, conventions and every command: AGENTS.md.

Parts

235
QtyValueFootprintReferences
31100n 50VCapacitor_SMD:C_0603_1608MetricC3, C21, C103, C104, C105, C106, C109, C110, C119, C123, C124, C129, C201, C301, C302, C303 +15
1710kResistor_SMD:R_0603_1608MetricR2, R7, R21, R24, R25, R118, R119, R125, R126, R128, R129, R304, R403, R404, R406, R510 +1
141u 50VCapacitor_SMD:C_0603_1608MetricC19, C20, C101, C108, C114, C115, C116, C117, C118, C125, C126, C306, C519, C603
9BAV99Package_TO_SOT_SMD:SOT-23D101, D102, D103, D104, D105, D106, D107, D108, D109
610u 10VCapacitor_SMD:C_0603_1608MetricC4, C13, C102, C107, C401, C520
510n 50VCapacitor_SMD:C_0603_1608MetricC130, C131, C132, C133, C304
52u2 100VCapacitor_SMD:C_1206_3216MetricC1, C501, C502, C510, C511
5330RResistor_SMD:R_0603_1608MetricR3, R101, R102, R103, R104
4120RResistor_SMD:R_2512_6332MetricR201, R202, R203, R204
41MResistor_SMD:R_0603_1608MetricR109, R110, R111, R112
41kResistor_SMD:R_0603_1608MetricR18, R19, R120, R122
447kResistor_SMD:R_0603_1608MetricR105, R106, R107, R108
44k7Resistor_SMD:R_0603_1608MetricR113, R114, R115, R116
4UCC27524ADRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU102, U103, U104, U105
3100kResistor_SMD:R_0603_1608MetricR1, R4, R303
322u 25VCapacitor_SMD:C_1206_3216MetricC113, C514, C515
2100n 100VCapacitor_SMD:C_0603_1608MetricC503, C512
210RResistor_SMD:R_0603_1608MetricR117, R127
210k NTCResistor_SMD:R_0603_1608MetricTH201, TH401
2130kResistor_SMD:R_0603_1608MetricR505, R511
222n 50VCapacitor_SMD:C_0603_1608MetricC121, C305
22k2Resistor_SMD:R_0603_1608MetricR5, R6
233p C0G 50VCapacitor_SMD:C_0603_1608MetricC111, C112
2390RResistor_SMD:R_0603_1608MetricR9, R10
2470p C0G 50VCapacitor_SMD:C_0603_1608MetricC127, C128
247u 10VCapacitor_SMD:C_1206_3216MetricC505, C506
24M7Resistor_SMD:R_0603_1608MetricR123, R302
2511kResistor_SMD:R_0603_1608MetricR501, R507
2680RResistor_SMD:R_1206_3216MetricR401, R402
268p C0G 50VCapacitor_SMD:C_0603_1608MetricC509, C518
26k49Resistor_SMD:R_0603_1608MetricR506, R512
282k5Resistor_SMD:R_0603_1608MetricR502, R508
2AO3400Agateway_fp:AOS_AO3400A_SOT-23Q1, Q401
2B360ADiode_SMD:D_SMAD501, D502
2CROWN_RISERgateway_fp:HX_PZ2.54-1x4P-SMDJ301, J601
2Main boardConnector_JST:JST_SH_BM10B-SRSS-TB_1x10-1MP_P1.00mm_VerticalJ401, J501
2SS16Diode_SMD:D_SMAD2, D3
2TPS54360DDARPackage_SO:TI_SO-PowerPAD-8_ThermalViasU501, U502
2TSL25911FNgateway_fp:AMS_TSL25911FNU302, U602
10R1Resistor_SMD:R_1206_3216MetricR16
11.1AFuse:Fuse_2920_7451MetricF1
1100uHgateway_fp:AS3935_Antenna_MA5532_SDTR1103L101
110MResistor_SMD:R_0603_1608MetricR301
110k2Resistor_SMD:R_0603_1608MetricR504
112-32V + RS485gateway_fp:TerminalBlock_Kefa_KF250-3.5-4PJ1
1120RResistor_SMD:R_0603_1608MetricR26
1140kResistor_SMD:R_0603_1608MetricR509
118n 50VCapacitor_SMD:C_0603_1608MetricC517
11RResistor_SMD:R_0603_1608MetricR17
11n 50VCapacitor_SMD:C_0603_1608MetricC122
1220p C0G 50VCapacitor_SMD:C_0603_1608MetricC120
122kResistor_SMD:R_0603_1608MetricR124
122uHInductor_SMD:L_Sunlord_SWPA6045SL502
130kResistor_SMD:R_0603_1608MetricR20
133n 50VCapacitor_SMD:C_0603_1608MetricC508
1470kResistor_SMD:R_0603_1608MetricR407
151kResistor_SMD:R_0603_1608MetricR405
153k6Resistor_SMD:R_0603_1608MetricR503
16k8Resistor_SMD:R_0603_1608MetricR121
174HC4052Dgateway_fp:TI_CD4052BM96_SOIC-16U107
18.2uHInductor_SMD:L_Sunlord_SWPA6045SL501
18MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY101
1ADS1115IDGSRgateway_fp:TI_ADS1115_VSSOP-10U4
1ADS1115IRUGRgateway_fp:TI_ADS1115_X2QFN-10U303
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U503
1AS3935-BQFTgateway_fp:ScioSense_AS3935_QFN-16U109
1AUX 12V_HEATConnector_JST:JST_SH_BM02B-SRSS-TB_1x02-1MP_P1.00mm_VerticalJ111
1BMP585gateway_fp:Bosch_BMP585_LGA-9U405
1Crown boardConnector_JST:JST_SH_BM12B-SRSS-TB_1x12-1MP_P1.00mm_VerticalJ2
1DNPMOUSE_BITES
1DOME_SOCKETgateway_fp:HX_PZ2.54-1x4P-SMDJ110
1GUVA-C22SDgateway_fp:Genicom_COB2418D302
1GUVB-C21SDgateway_fp:Genicom_COB2418D301
1GUVB-C31SMgateway_fp:GenUV_GUVB-C31SMU603
1LM2903DR2Ggateway_fp:ON_LM393DR2G_SOIC-8U404
1LM66100Package_TO_SOT_SMD:SOT-363_SC-70-6U2
1LSM6DS3TR-Cgateway_fp:ST_LSM6DS3TR-C_LGA-14U5
1LTR-390UV-01gateway_fp:LiteOn_LTR-390UV-01U601
1MMC5603NJgateway_fp:MEMSIC_MMC5603NJ_WLCSP-4U106
1Main boardConnector_JST:JST_SH_BM12B-SRSS-TB_1x12-1MP_P1.00mm_VerticalJ101

The 209 most common of 235 parts.

More from vbartusevicius/weather-station

7
  • 4 layers60 × 60 mmCrown, the printed circuit board in 3D

    Crown

    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…

    95 parts
  • 4 layers32 × 52 mmWeather station, the printed circuit board in 3D

    Weather station

    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…

    47 parts
  • 4 layers28.5 × 21.5 mmPower, the printed circuit board in 3D

    Power

    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…

    40 parts
  • 4 layers14 × 56 mmProbe, the printed circuit board in 3D

    Probe

    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…

    22 parts
  • 4 layers15.6 × 15.2 mmDome, the printed circuit board in 3D

    Dome

    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…

    16 parts
  • 4 layers13.6 × 13.6 mmDome legacy, the printed circuit board in 3D

    Dome legacy

    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…

    7 parts
  • 4 layers24 × 24 mmReflector, the printed circuit board in 3D

    Reflector

    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…

    7 parts

Similar boards

  • 2 layers25 × 20 mmLight ltr-390-uv, the printed circuit board in 3D

    Light ltr-390-uv

    romkey/sensr

    Sensor project hardware - ESP32-S3 base board, light and air sensors

    18 partsMIT
  • 2 layers76 × 99.9 mmMain pcb, the printed circuit board in 3D

    Main pcb

    kyletyni/mercury

    ESP32 based Micromouse source code and PCB files

    122 parts10
  • 4 layers100 × 100 mmCheap version, the printed circuit board in 3D

    Cheap version

    nikolajevs/ai

    Открыть PCBV1.kicadpro в KiCad 10. После обновления репозитория перечитать открытый проект с диска перед сохранением.

    170 parts
  • 6 layers164.4 × 88 mmTVCS Dev, the printed circuit board in 3D

    TVCS Dev

    Mig-M27/Avionics-PCBs

    Este repositório é usado para gerir as versões dos projetos KiCAD do sistema de Avionics da Porto Space Team. Está dividido em 2 secções: 1.

    311 parts
  • 4 layers126 × 90 mmIncubator controller, the printed circuit board in 3D

    Incubator controller

    tanaes/OvoEasy_incubator_controller

    KiCad design for the OvoEasy incubator controller board

    169 parts
  • 2 layers28.4 × 37.7 mmMoisture1, the printed circuit board in 3D

    Moisture1

    SK21/YieldFlo

    YieldFlo is a combine yield and moisture monitoring system that works alongside AgOpenGPS. A Windows desktop app records yield rate, moisture, and GPS position continuously while harvesting, and produces spatial yield…

    19 parts5GPL-3.0
  • 4 layers36.5 × 69 mmStorm tracker, the printed circuit board in 3D

    Storm tracker

    solderable/storm-tracker-hardware

    Open-source-ready Storm Tracker hardware design, documentation, BOM, and manufacturing package

    102 parts58
  • 4 layers50 × 80 mmSensBoard, the printed circuit board in 3D

    SensBoard

    Hazel-H-Chen/PocketSens

    Microcontroller based sensor suite for portable environmental measurements.

    62 parts1MIT

Questions

How big is the Panel PCB?

It measures 120 × 76 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Panel use?

235 parts, built around the UCC27524ADR(UMW), TSL25911FN, ADS1115IDGSR and ADS1115IRUGR. 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 Panel KiCad files?

From the vbartusevicius/weather-station repository on GitHub, at the commit this page was made from: the board is hardware/releases/v1/panel/panel.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Panel design in my own project?

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