Stevenson Shield for ESP32 LoRaWAN Weather Station — Parametric 3D Printed Design
This is the enclosure side of my ESP32-based LoRaWAN weather station project. The electronics, firmware (MicroPython and C++), schematics and build instructions live in the lorawan repository on Codeberg. This post focuses on the mechanical design: a fully parametric Stevenson shield designed in Fusion360, intended for FDM printing in white PETG.
What is a Stevenson Shield?
A Stevenson screen (or shield) is a standard meteorological housing that protects sensors from precipitation and solar radiation while allowing free airflow. The louvred shell keeps the sensor in ambient-temperature shadow, which is critical for accurate temperature and humidity readings. This design brings that principle to a wall-mounted, 3D-printable format with integrated electronics housing and solar charging.
Electronics
The core electronics are described in detail in the LoRaWAN repository. In brief:
- MCU: ESP32-WROOM32 SMD in ultra-low-power (ULP) mode
- Radio: RFM95W 868 MHz LoRa module
- Sensor: BME280 — temperature, humidity, pressure
- Power: CN3791 MPPT solar charge controller + NCR18650 cell + 6V 133×73 mm monocrystalline solar panel
- Regulator: HT7833 3.3V LDO
KiCad schematic — ESP32 ULP + RFM95W + BME280, Rev 3, 2026-04-28
First prototype PCB — fits inside the base of the shield
Mechanical Design
Full assembly — four leaves, dome cap, wall bracket and solar panel at default 40° tilt
Parametric Fusion360 model
The entire design is built parametrically. Every dimension — tube diameter, friction clearance, leaf spacing, wall thickness — lives in a parameters table. Geometry is linked through projections and construction constraints (midpoints, parallel lines, coincident points), so changing one value propagates correctly through the entire model. There are no hardcoded “magic numbers” anywhere in the sketch history.
This means: if you download the F3D file and adjust the tube diameter, the bayonet lock, friction fit and all mating surfaces update automatically.
Parts
The assembly consists of five printed parts:
Leaves (×4 or more)
Single leaf from below — bayonet lock tabs and ventilation holes visible
Each leaf is 80 mm tall and 172 mm (2×86 mm) wide. Leaves telescope: the upper end is slightly narrower so it slides 50 mm into the leaf below, giving a 230 mm total height for a four-leaf stack. Leaves are symmetric, so you print as many as you want and stack them to the desired height. The bayonet lock tabs are visible on the inner tube; a quarter-turn locks each leaf to the next.
Ventilation holes on the underside allow airflow while blocking rain ingress
Base (electronics housing)
Top view with cap removed — ESP32 PCB holder seated inside the base
Base without leaves — PCB tray, bayonet ring and wall bracket visible
The base houses the ESP32 PCB, the 18650 cell (placed at the bottom for correct centre of gravity relative to the wall bracket), the CN3791 MPPT module and the HT7833 regulator. A dedicated PCB tray keeps the electronics in place. The BME280 sensor faces upward through an opening so it sits in the shaded airspace inside the leaf stack.
The wall bracket is 4 mm thick and carries the full weight of the assembly. Screw holes are visible in the render. Wiring from the solar panel enters through a water-loop routing — the cable runs down and back up before entering the enclosure, preventing capillary water ingress.
Cap (dome)
The dome cap sits on top of the uppermost leaf and seals the assembly. It locks with the same bayonet mechanism. Volume: 54 546 mm³.
Solar panel pivot ring and arm
Top view — solar panel folded flat beside the assembly
The solar panel (6V monocrystalline, 133×73 mm) is mounted on a pivot arm that allows:
- Vertical tilt: adjustable at the hinge joint; default angle is 40°
- Horizontal rotation: nearly 360° around the base ring
Set once at installation to face south at the optimal elevation for your latitude (approximately 45–55° for Finland). No motors, no electronics — purely mechanical adjustment.
Printing
| Parameter | Value |
|---|---|
| Material | White PETG |
| Reason | Reflects solar radiation, handles outdoor temperature cycling |
| Layer height | 0.2 mm recommended |
| Wall count | Per Fusion360 parameters (not hardcoded) |
| Infill | 20 % gyroid for leaves; 30 % for base and bracket |
| Supports | Not required for leaves or cap; may be needed under bracket overhang |
| Friction clearance | 0.2 mm (parametric — adjust in F3D if your printer runs tight) |
Print one leaf first and verify the bayonet fit before printing all four.
Download
The Fusion360 design file (F3D) is available for download and viewing at:
Autodesk360 — Stevenson Shield ESP32
From there you can export STLs for any or all parts and slice with your preferred slicer. All parts are oriented for printing without rotation.
Licence
All design files are released under CC BY-NC 4.0 — free to use, remix and share for non-commercial purposes, with attribution.