
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…

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…
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.
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.
![]() | ![]() |
What it measures · Hardware · Web UI · Build one · Firmware · Development
| Measurement | Sensor | Range |
|---|---|---|
| Wind speed & direction | 4× 40 kHz ultrasonic transducers, time of flight (STM32G431 crown) | 0–60 m/s, 0.1° |
| Rain & hail | 4 piezo discs under the lid, acoustic impacts | 0–200 mm/h, hail size |
| UV index, UV-A / UV-B, sunlight, night sky | GUVB-C21SD + GUVA-C22SD photodiodes + TSL25911 under a PTFE dome | UVI 0–16+, 0.0002–88 000 lx |
| Temperature & humidity | Sensirion SHT40 in a 5-plate radiation shield | ±0.2 °C, ±1.8 % RH |
| Pressure & thunder | Bosch BMP585 | ±0.06 hPa |
| Particulates | Plantower PMSA003I | PM1 / PM2.5 / PM10 |
| VOC & NOx | Sensirion SGP41 + Gas Index Algorithm | index 1–500 |
| CO₂ | Sensirion SCD41 (heated below −8 °C) | 400–5000 ppm |
| Lightning | AS3935 + 500 kHz ferrite antenna | 1–40 km |
| Compass, tilt, vibration | MMC5603 + LSM6DS3 | heading, mast tilt, ground vibration |
Full sensor, enclosure and board reference: docs/hardware.md.
| Cutaway | Exploded | Six boards on one breakaway panel |
|---|---|---|
![]() | ![]() | ![]() |
| radiation shield, probe cartridge, base bay | 13 printed parts, bayonet and threaded joints | crown, main, probe, power, dome, reflector (4-layer, 140.6 × 63.2 mm) |
| Inside | Base | Pagoda | Wind tunnel |
|---|---|---|---|
![]() | ![]() | ![]() | ![]() |
| Crown base | Crown lid | Struts | Probe sleeve |
![]() | ![]() | ![]() | ![]() |
Board plots (top / bottom SVG): crown · main · probe · power · dome · reflector · panel
The station serves its dashboard over Wi-Fi (no cloud, no app). Every value is computed by the firmware; the page only displays it.
Also: MQTT with Home Assistant auto-discovery, and an RS-485 poll / response protocol (CRC-16 frames with every sensor) for wired loggers.
hardware/releases/v1/; which file goes where:
docs/building.md).enclosure/print/ (MJF / SLS
nylon or ASA), plus standard O-rings and a turned PTFE dome.Open design questions and acceptance checks: REVIEW_CHECKLIST.md.
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.
| File | Use |
|---|---|
usb-flash-firmware.bin | first flash of a new board over USB: esptool.py --chip esp32c6 write_flash 0x0 usb-flash-firmware.bin |
firmware.bin | later 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/.
| Folder | Contents |
|---|---|
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) |
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 renderArchitecture, conventions and every command: AGENTS.md.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 31 | 100n 50V | Capacitor_SMD:C_0603_1608Metric | C3, C21, C103, C104, C105, C106, C109, C110, C119, C123, C124, C129, C201, C301, C302, C303 +15 |
| 17 | 10k | Resistor_SMD:R_0603_1608Metric | R2, R7, R21, R24, R25, R118, R119, R125, R126, R128, R129, R304, R403, R404, R406, R510 +1 |
| 14 | 1u 50V | Capacitor_SMD:C_0603_1608Metric | C19, C20, C101, C108, C114, C115, C116, C117, C118, C125, C126, C306, C519, C603 |
| 9 | BAV99 | Package_TO_SOT_SMD:SOT-23 | D101, D102, D103, D104, D105, D106, D107, D108, D109 |
| 6 | 10u 10V | Capacitor_SMD:C_0603_1608Metric | C4, C13, C102, C107, C401, C520 |
| 5 | 10n 50V | Capacitor_SMD:C_0603_1608Metric | C130, C131, C132, C133, C304 |
| 5 | 2u2 100V | Capacitor_SMD:C_1206_3216Metric | C1, C501, C502, C510, C511 |
| 5 | 330R | Resistor_SMD:R_0603_1608Metric | R3, R101, R102, R103, R104 |
| 4 | 120R | Resistor_SMD:R_2512_6332Metric | R201, R202, R203, R204 |
| 4 | 1M | Resistor_SMD:R_0603_1608Metric | R109, R110, R111, R112 |
| 4 | 1k | Resistor_SMD:R_0603_1608Metric | R18, R19, R120, R122 |
| 4 | 47k | Resistor_SMD:R_0603_1608Metric | R105, R106, R107, R108 |
| 4 | 4k7 | Resistor_SMD:R_0603_1608Metric | R113, R114, R115, R116 |
| 4 | UCC27524ADR | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U102, U103, U104, U105 |
| 3 | 100k | Resistor_SMD:R_0603_1608Metric | R1, R4, R303 |
| 3 | 22u 25V | Capacitor_SMD:C_1206_3216Metric | C113, C514, C515 |
| 2 | 100n 100V | Capacitor_SMD:C_0603_1608Metric | C503, C512 |
| 2 | 10R | Resistor_SMD:R_0603_1608Metric | R117, R127 |
| 2 | 10k NTC | Resistor_SMD:R_0603_1608Metric | TH201, TH401 |
| 2 | 130k | Resistor_SMD:R_0603_1608Metric | R505, R511 |
| 2 | 22n 50V | Capacitor_SMD:C_0603_1608Metric | C121, C305 |
| 2 | 2k2 | Resistor_SMD:R_0603_1608Metric | R5, R6 |
| 2 | 33p C0G 50V | Capacitor_SMD:C_0603_1608Metric | C111, C112 |
| 2 | 390R | Resistor_SMD:R_0603_1608Metric | R9, R10 |
| 2 | 470p C0G 50V | Capacitor_SMD:C_0603_1608Metric | C127, C128 |
| 2 | 47u 10V | Capacitor_SMD:C_1206_3216Metric | C505, C506 |
| 2 | 4M7 | Resistor_SMD:R_0603_1608Metric | R123, R302 |
| 2 | 511k | Resistor_SMD:R_0603_1608Metric | R501, R507 |
| 2 | 680R | Resistor_SMD:R_1206_3216Metric | R401, R402 |
| 2 | 68p C0G 50V | Capacitor_SMD:C_0603_1608Metric | C509, C518 |
| 2 | 6k49 | Resistor_SMD:R_0603_1608Metric | R506, R512 |
| 2 | 82k5 | Resistor_SMD:R_0603_1608Metric | R502, R508 |
| 2 | AO3400A | gateway_fp:AOS_AO3400A_SOT-23 | Q1, Q401 |
| 2 | B360A | Diode_SMD:D_SMA | D501, D502 |
| 2 | CROWN_RISER | gateway_fp:HX_PZ2.54-1x4P-SMD | J301, J601 |
| 2 | Main board | Connector_JST:JST_SH_BM10B-SRSS-TB_1x10-1MP_P1.00mm_Vertical | J401, J501 |
| 2 | SS16 | Diode_SMD:D_SMA | D2, D3 |
| 2 | TPS54360DDAR | Package_SO:TI_SO-PowerPAD-8_ThermalVias | U501, U502 |
| 2 | TSL25911FN | gateway_fp:AMS_TSL25911FN | U302, U602 |
| 1 | 0R1 | Resistor_SMD:R_1206_3216Metric | R16 |
| 1 | 1.1A | Fuse:Fuse_2920_7451Metric | F1 |
| 1 | 100uH | gateway_fp:AS3935_Antenna_MA5532_SDTR1103 | L101 |
| 1 | 10M | Resistor_SMD:R_0603_1608Metric | R301 |
| 1 | 10k2 | Resistor_SMD:R_0603_1608Metric | R504 |
| 1 | 12-32V + RS485 | gateway_fp:TerminalBlock_Kefa_KF250-3.5-4P | J1 |
| 1 | 120R | Resistor_SMD:R_0603_1608Metric | R26 |
| 1 | 140k | Resistor_SMD:R_0603_1608Metric | R509 |
| 1 | 18n 50V | Capacitor_SMD:C_0603_1608Metric | C517 |
| 1 | 1R | Resistor_SMD:R_0603_1608Metric | R17 |
| 1 | 1n 50V | Capacitor_SMD:C_0603_1608Metric | C122 |
| 1 | 220p C0G 50V | Capacitor_SMD:C_0603_1608Metric | C120 |
| 1 | 22k | Resistor_SMD:R_0603_1608Metric | R124 |
| 1 | 22uH | Inductor_SMD:L_Sunlord_SWPA6045S | L502 |
| 1 | 30k | Resistor_SMD:R_0603_1608Metric | R20 |
| 1 | 33n 50V | Capacitor_SMD:C_0603_1608Metric | C508 |
| 1 | 470k | Resistor_SMD:R_0603_1608Metric | R407 |
| 1 | 51k | Resistor_SMD:R_0603_1608Metric | R405 |
| 1 | 53k6 | Resistor_SMD:R_0603_1608Metric | R503 |
| 1 | 6k8 | Resistor_SMD:R_0603_1608Metric | R121 |
| 1 | 74HC4052D | gateway_fp:TI_CD4052BM96_SOIC-16 | U107 |
| 1 | 8.2uH | Inductor_SMD:L_Sunlord_SWPA6045S | L501 |
| 1 | 8MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y101 |
| 1 | ADS1115IDGSR | gateway_fp:TI_ADS1115_VSSOP-10 | U4 |
| 1 | ADS1115IRUGR | gateway_fp:TI_ADS1115_X2QFN-10 | U303 |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U503 |
| 1 | AS3935-BQFT | gateway_fp:ScioSense_AS3935_QFN-16 | U109 |
| 1 | AUX 12V_HEAT | Connector_JST:JST_SH_BM02B-SRSS-TB_1x02-1MP_P1.00mm_Vertical | J111 |
| 1 | BMP585 | gateway_fp:Bosch_BMP585_LGA-9 | U405 |
| 1 | Crown board | Connector_JST:JST_SH_BM12B-SRSS-TB_1x12-1MP_P1.00mm_Vertical | J2 |
| 1 | DNP | MOUSE_BITES | |
| 1 | DOME_SOCKET | gateway_fp:HX_PZ2.54-1x4P-SMD | J110 |
| 1 | GUVA-C22SD | gateway_fp:Genicom_COB2418 | D302 |
| 1 | GUVB-C21SD | gateway_fp:Genicom_COB2418 | D301 |
| 1 | GUVB-C31SM | gateway_fp:GenUV_GUVB-C31SM | U603 |
| 1 | LM2903DR2G | gateway_fp:ON_LM393DR2G_SOIC-8 | U404 |
| 1 | LM66100 | Package_TO_SOT_SMD:SOT-363_SC-70-6 | U2 |
| 1 | LSM6DS3TR-C | gateway_fp:ST_LSM6DS3TR-C_LGA-14 | U5 |
| 1 | LTR-390UV-01 | gateway_fp:LiteOn_LTR-390UV-01 | U601 |
| 1 | MMC5603NJ | gateway_fp:MEMSIC_MMC5603NJ_WLCSP-4 | U106 |
| 1 | Main board | Connector_JST:JST_SH_BM12B-SRSS-TB_1x12-1MP_P1.00mm_Vertical | J101 |
The 209 most common of 235 parts.

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…

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…

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…

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…

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…

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…

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…

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


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

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.

tanaes/OvoEasy_incubator_controller
KiCad design for the OvoEasy incubator controller board

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…
solderable/storm-tracker-hardware
Open-source-ready Storm Tracker hardware design, documentation, BOM, and manufacturing package

Hazel-H-Chen/PocketSens
Microcontroller based sensor suite for portable environmental measurements.
It measures 120 × 76 mm and has 4 copper layers, 1.6 mm thick.
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.
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.
Its repository states no licence, so its author keeps all rights: ask vbartusevicius before reusing the design.