

WeatherStationPCB
Raspberry Pi Pico W Weather Station
- Size
- 104.1 × 92.5 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 38
- Nets
- 56
- Pads
- 266
- Tracks, vias
- 398, 3
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 12 Jul 2024
- Updated
- 9 Jul 2025
Overview
WeatherStationPCB is an open-source printed circuit board by jondurrant, from the jondurrant/RPIPicoWeatherStation repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 104.1 × 92.5 mm with 38 parts on 56 nets, routed with 398 tracks and 3 vias.
Its parts include 11 connectors, 9 resistors, 3 capacitors, 3 transistors and 2 ICs. It belongs with the home automation and IoT boards and the RP2040 boards of this library.
README
README.mdRPIPicoWeatherStation
Raspberry Pi Pico W Weather Station
This project is a Weather Station powered by a Raspberry Pi Pico W. It is based on a Wind and Rain Sensors kit from SparkFun. Then adding additional sensors.
Status
Project is still evolving and I am documenting the progress on my YouTube channel drjonea.
Current status:
- PCB First version is complete. This isn't perfect as some of the extension are not working as intended byt basic functions work
- Code - Basic code to read and publish data to a webservice exist but is evolving
- Server side code will be in a seperate repo and is work in progress right now
PCB
The PCB folder contains a KiCAD model of schematic and board
Major components:
- Raspberry Pi Pico W
- Wind and Rain Sensor Kit SparkFun
- ChronoDot v2 DS3231 RTC
- AHT10 Temperature and Humidity Sensor
- SEN0500 DFRobot Composite sensor
Tests
I use CPPUTest to build test framework. Currently these test are mainly about isolated testing of the component, to make sure each of the components on the board is working.
Tests can be found in the folder test. The test_main.cpp controls which tests are run.
Exp
This contains some early experiments with the hardware and concepts. Will probably be deleted at some point.
Code
This is a Pico SDK and FreeRTOS Kernel application. It uses some of my own libraries for Web Service publication.
Build
Firmware can be build using the normal build process:
mkdir build
cd build
cmake ..
makeParts
38| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | Conn_01x03_Pin | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J5, UART0A1, UART0B1, UART1 |
| 4 | Conn_01x04_Socket | Connector_JST:JST_XH_B4B-XH-AM_1x04_P2.50mm_Vertical | AHT10_S1, I2C0A1, I2C0B1, SEN0500_S1 |
| 3 | 100K | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R1, R6, R7 |
| 3 | 100R | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R2, R3, R4 |
| 3 | 2N7000 | Package_TO_SOT_THT:TO-92_Inline | Q1, Q2, Q3 |
| 2 | 0.1uF | Capacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mm | C1, C2 |
| 2 | 23GR | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R8, R9 |
| 2 | Conn_01x06_Male | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J1, J2 |
| 2 | Conn_01x06_Pin | Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical | J7, J8 |
| 2 | Conn_01x20_Pin | Connector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_Vertical | J3, J4 |
| 2 | RJ11-6 | SparkFunConnectors:RJ11-6 | RAIN1, WIND1 |
| 2 | SW_SPST | Button_Switch_THT:SW_PUSH_6mm | SW1, SW2 |
| 1 | 4.65K | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R5 |
| 1 | C_Polarized | Capacitor_THT:CP_Radial_D10.0mm_P5.00mm | C3 |
| 1 | ChronoDot2.0 | JonLib:ChronoDotV2 | U2 |
| 1 | Conn_01x05_Socket | Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_Horizontal | J6 |
| 1 | Conn_01x06_Socket | Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Horizontal | uSD1 |
| 1 | LED_RKGB | LED_THT:LED_D5.0mm-4_RGB | D1 |
| 1 | Pico | MCU_RaspberryPi_and_Boards:RPi_Pico_SMD_TH | U1 |
Similar boards
- 4 layers53 × 39.5 mm

- 4 layers68.8 × 53.6 mm

Easyduino Atmega
Hanqaqa/Easyduino
Easily dive into different PCB KiCad designs of the most popular microcontroller devboards
38 parts755CERN-OHL-P-2.0 - 4 layers76.7 × 65.7 mm

FloatV2
murexrobotics/electrical
Highly integrated electronics design and printed circuit boards (PCBs) for the MATE ROV Competition. Attempt the impossible.
38 parts192MIT - 4 layers38 × 38 mm

- 4 layers53.2 × 53.2 mm

Smart lcc
magnusnordlander/smart-lcc
A smarter LCC for the Lelit Bianca V2, with Wi-Fi and stuff.
38 parts54 - 4 layers152.4 × 152.4 mm

FlexPCB
Roboy/HTC_Vive_Sensors
Schematics and PCB designs for our custom Vive sensors based on a quad op-amp chip rather than discrete transistors.
38 parts23 - 4 layers53 × 23 mm

SparkFun RTK Facet - External Connector
sparkfun/SparkFun_RTK_Facet
The hardware and enclosure for the popular centimeter level RTK Facet GNSS receiver with built in display.
38 parts23 - 4 layers15 × 16.3 mm

Questions
How big is the WeatherStationPCB PCB?
It measures 104.1 × 92.5 mm and has 4 copper layers, 1.6 mm thick.
What parts does the WeatherStationPCB use?
38 parts. 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 WeatherStationPCB KiCad files?
From the jondurrant/RPIPicoWeatherStation repository on GitHub, at the commit this page was made from: the board is PCB/WeatherStationPCB/WeatherStationPCB.kicad_pcb and its schematic PCB/WeatherStationPCB/WeatherStationPCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the WeatherStationPCB design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).