Weather Station Prototype
Weather Station Prototype#
It’s been a while since I last looked at a fairly simple project I began last December as a way to experiment with an ESP32-C3 microcontroller.
The ESP32-C3 has some very useful capabilities for small connected devices:
- A single RISC-V based core running at 160 MHz
- 400 KB of SRAM
- 4 MB of flash (on most modules)
- Flexible GPIO that can be configured for I²C and SPI
- WiFi 2.4 GHz (b/g/n)
- Bluetooth 5 Low Energy
The project itself is quite straightforward: a small weather station prototype powered via USB (at least initially) that can report temperature and humidity to a remote console via either Bluetooth or WiFi.
Why a weather station?
Well, we’ve been getting some pretty rough weather here in Northern Ireland lately, and I thought it would be a nice little project to build so that I could monitor the temperature in my Mum’s garage or loft.
That’s really all the motivation it took to break out the tools and attempt to build a prototype.
(I’m also considering building a weather station for a Ham Radio project, but that might end up becoming version two.)
So What Are You Looking At?#
At the moment the plan is fairly simple.
The weather station will use a BME280 sensor, which can measure:
- temperature
- humidity
- atmospheric pressure
For the display I’m planning to use a small 0.96 inch OLED I²C module, which will show the current readings when a small microswitch button is pressed (when it is connected to one of the GPIO pins).
The main controller for the board will be an ESP32-C3 SuperMini module. One of the nice things about this module is that it uses castellated holes, which means it can be soldered directly onto another PCB using a board-to-board technique. This makes it very convenient for small prototype designs without needing to integrate the ESP32-C3 chip itself.
Designing the Prototype PCB#
Why did I choose to design a prototype PCB instead of using a prototyping board?
One of the main reasons is that I want to use SMT components for the build. Prototyping boards and jumper wires are not always the best fit for something that might end up becoming a long-lived prototype, or, in marketing terms, a boutique one-of-a-kind device!
Another reason is that having PCBs manufactured has become inexpensive in recent years. Services such as PCBWay or JLCPCB make it possible to order small batches of boards for only a few pounds.
The main trade-off is delivery time. If the project isn’t urgent — and in this case it isn’t — and you are willing to wait a couple of weeks for standard shipping, having a PCB manufactured is often a very practical option.
Of course, if you need the boards quickly, most manufacturers also offer expedited shipping via courier services such as DHL.
What Software Did You Use To Design Your PCB?#
This is a simple one: KiCad.
It suits my needs perfectly well for this kind of work. I’m certainly aware of tools such as Altium Designer and Autodesk Fusion, which offer significantly more features if you’re dealing with high-speed PCB designs or require the kinds of optimisations that truly focused PCB designers need.
However, if I’m being realistic here (something I always strive to be), for my needs at the moment Altium would be the proverbial sledgehammer to crack a nut in this particular case.
The Schematic#
The schematic for the weather station is fairly simple (after a revision or two!)… click on the image to expand it.

Weather Station Schematic
As you will see, it consists of the following sections:
The USB-C Power Connection Section - This is a simple USB-C connector that provides power to the board from an external USB-C power source. It won’t be used for programming the board, as that will be done via the ESP32-C3’s built-in USB-C port. You will notice a polyfuse (F1) on the input, which is a self-resetting fuse that will protect the board from overcurrent conditions. It’s rated at 500mA holding and 1A tripping, which should be more than sufficient for this project. You will also notice that R4 and R5 are 5.1kΩ pull-down resistors connected to the CC1 and CC2 pins of the USB-C connector. These signal to the USB-C power source (such as a laptop) that the device is a power sink, allowing the host to provide 5V on VBUS and power the board.
The Power Rail - This is a simple power rail with an LDO voltage regulator (AMS 1117-3.3) with the reference capacitors on the input (C1 - 10uF) and output (C2 - 22uF) which will provide a stable 3.3V supply to the ESP32-C3 SuperMini Module and the other components on the board. R3 (330 ohm) and D1 (an LED) are used to indicate the power status of the board. The Schottky diodes (D2, D3 and D5) allow the board to be powered either from the USB-C connector, the ESP32-C3 SuperMini’s own USB-C programming port, or from an external 5V supply via J5, while preventing current from flowing back into the USB port (J1) or other power sources. R1 and R2 (4.7k ohm respectively) are pull-up resistors for the SDA and SCL lines of the I2C bus.
The ESP32-C3 SuperMini Module - This is the main controller for the board. It is a small, low-cost development board featuring the ESP32-C3 microcontroller that can be programmed using the Arduino IDE or the ESP-IDF and soldered directly onto another PCB using castellated holes.
The BME280 Sensor - This is a small, low-cost sensor that can measure temperature, humidity, and atmospheric pressure. It is a popular choice for hobbyist projects due to its small size and low power consumption. There are many different breakout boards available for the BME280. These modules are widely available from suppliers such as Amazon or AliExpress.
The OLED Display - This is a small, low-cost display that can be used to display information from the weather station. It is a popular choice for hobbyist projects due to its small size and low power consumption. I’ve used these displays in a few projects now and they’re always a good choice for small projects, again, plenty of which are available on Amazon or AliExpress.
Next Steps#
As you can see from the pictures below, I previously ordered PCB boards from PCBWay although they were for a previous version of the schematic above that didn’t include the pull down resistors on CC1 and CC2 (which are required for the ESP32-C3 to draw 5V from a USB-C source) and additional protection diodes on the USB-C input. I then got a customer project so I put this project on the back burner for a while.

Front of the PCB

Back of the PCB
Some other changes I did to the schematic after ordering the previous version of the boards include:
I removed a clamping diode on the 5V rail as it wasn’t really necessary for this project and could cause more issues than it solves, it isn’t all that good at protecting a circuit at any rate.
I added a polyfuse on the USB-C input to protect the USB-C port from overcurrent conditions. I don’t want to zap the USB-C port on my laptop for the sake of a board that cost many times less than a replacement port!
I added a jumper to the BME280 sensor CSB pin to change the I2C address of the sensor (the default address is 0x76, but I may want to use 0x77 at a later date).
I’m also planning to increase the size of the ground plane cutout under the ESP32-C3 SuperMini module to improve the WiFi performance of the board and move some of the signal lines away from the antenna so I can increase the range of the device as much as possible. The ESP32-C3 SuperMini module includes a small PCB antenna. This requires a ground-plane clearance area underneath it to achieve good RF performance.
I’ve also got additional SMT components on order so I’m awaiting their arrival before I can assemble the next revision of the board.
I will keep you posted when I design the next PCB layout and get the next revision of the board back from PCBWay and assemble it.
If everything goes according to plan, the next steps will be designing the revised PCB layout, getting the revised PCB boards back from PCBWay, assembling the board and writing the firmware for the ESP32-C3.
If you are working on custom carrier boards, sensor integration, or ESP32 prototypes and need an experienced engineering partner, let’s discuss your project at Protoworks (NI).
- 2026-10-17 Refining the Protoworks service offerings Lab
- 2026-09-27 Belfast Tech Week Lab
- 2026-09-19 Refining the UCMOD Architecture R&D
- 2026-09-06 Giving AI Agents a Way to Talk to Protoworks Software
- 2026-09-03 A Morning at a Manufacturing Trade Show Lab
- 2026-09-01 Debugging 921600 Baud on the ATtiny1614 R&D