Storm Tracker is a pocket-sized, battery-powered lightning detector. It uses a 500 kHz magnetic-loop antenna and a ScioSense AS3935 to detect lightning-like radio bursts, estimates the distance to the storm front, and presents status on a sunlight-readable e-paper display.
A working Storm Tracker prototype in the field. Photo from the project story.
Caution
Storm Tracker is experimental hobby hardware, not certified weather or life-safety equipment. It can miss lightning and can report false positives. Never use it instead of official forecasts, alerts, or safe lightning practices.
Rev A complete / fabrication-ready. Rev A boards have been fabricated, assembled, brought up, carried in the field, and have detected a real storm. The released KiCad design passes both ERC and DRC with zero violations. This repository contains the complete editable PCB design, ordering package, BOM, assembly guidance, and no-CAD-needed reference exports for the hardware revision shown in the photographs.
| Area | Status | Where to start |
|---|---|---|
| Editable PCB design | Complete; KiCad 10 | hardware/ |
| Schematic and board PDFs | Complete | docs/reference/ |
| Complete electronics BOM | Complete | bom/storm-tracker-full.csv |
| JLCPCB-ready Rev A outputs | Complete; standard 4-layer stack | manufacturing/rev-a/ |
| Design explanation | Complete | Why the design looks this way |
| Assembly and bring-up | Complete | Build one |
| Electrical checks | ERC 0 / DRC 0 | KiCad 10 |
| Item | Rev A |
|---|---|
| PCB outline | 36.5 × 69.0 mm, plus internal display slot |
| PCB construction | 4 layers, nominal 1.0 mm FR-4 |
| Lightning sensor | ScioSense AS3935-BQFT |
| Antenna | Coilcraft MA5532-AED, tuned near 500 kHz |
| MCU | ESP32-C6-MINI-1U-H4 |
| Display | Good Display GDEY0154D67, 1.54 in, 200 × 200 e-paper |
| Power | Single-cell LiPo, USB-C charging, BQ25186 Ship Mode |
| User input | Three front buttons and one side power button |
| Alerts | E-paper status and magnetic buzzer |
| Idle design budget | About 98 µA |
|
|
|
| Assembled Rev A PCB in the field | Populated component side |
These are photographs of the fabricated Rev A hardware documented in this repository. More build and field-test photos are in the project story.
storm-tracker-hardware/
├── hardware/ KiCad 10 source and required local libraries
├── bom/ Complete-build CSV BOM
├── manufacturing/rev-a/ Gerber ZIP, position data, and order settings
├── mechanical/ PCB assembly STEP model
└── docs/
├── images/ Three prototype photographs
└── reference/ Schematic and board-layer PDFs
- Install KiCad 10. The source was last saved by KiCad 10.0.0.
- Clone this repository recursively (no submodules are currently required).
- Open
hardware/storm_tracker.kicad_pro. - Read Why the design looks this way before changing the antenna, display power, layer stack, or display connector. Those areas have non-obvious RF, noise, and mechanical constraints.
If you do not use KiCad, start with the schematic PDF, the board layer PDF, and the complete BOM.
Use the order-ready files and settings in the Rev A manufacturing package. For JLCPCB, select the standard four-layer, nominal 1.0 mm FR-4 construction with 1 oz outer copper, 0.5 oz inner copper, and No requirement for the stackup. This is JLCPCB's standard 7628 / 0.5 mm core construction and matches the stack encoded in the KiCad board.
Most electrical components are on the bottom side so a factory can populate one face. SW1 (reset) and JP1 (boot) are DNP in Rev A. Suggested sequence:
- Inspect bare PCBs, especially the antenna peninsula, display slot, USB-C pads, and fine-pitch QFN/WSON pads.
- Assemble the bottom side, then hand-solder the front buttons SW2, SW3, and SW4.
- Check resistance from the battery and 3.3 V rails to ground before applying power.
- Power from a current-limited USB source first, without a LiPo or display, and verify the charger and 3.3 V rails.
- Flash hardware-test firmware and exercise each peripheral individually: BQ25186 over I2C, SHT40, AS3935 over SPI, buzzer, and buttons.
- Remove all power, insert and latch the e-paper FPC, then reapply power and confirm a refresh succeeds with the AS3935 asleep.
- Verify polarity at the actual JST pins before connecting a protected 1S LiPo.
The display cable folds through the board into a reverse-pin-numbered local footprint. Never insert, remove, or reseat it with USB or battery power present. Round the PCB slot edge and provide strain relief so the flex is not cut by the board.
The AS3935 listens around 500 kHz, so switching noise can look like a storm. Rev A therefore uses an LDO for the always-on 3.3 V rail, keeps the magnetic loop on a copper-free peninsula, and only runs the e-paper boost converter during screen refreshes. Firmware must put the lightning sensor to sleep while the display boost is active.
The project story covers the build narrative and the reasoning behind these choices in more detail.
Beyond the lightning caveat above:
- Use only a protected single-cell LiPo compatible with the charger's voltage and configured charge current. JST-PH polarity is not universal; verify it on the actual battery and PCB.
- Never use a punctured, swollen, hot, wet, or damaged cell. Do not charge unattended or inside a sealed enclosure during bring-up, and work in a fire-resistant area.
- Disconnect USB and battery before changing wiring or touching the e-paper FPC.
- Fine-pitch QFN/WSON assembly, reflow equipment, solder fumes, flux, and hot tools require appropriate training, ventilation, and eye protection.
- The board has no ingress, impact, flammability, EMC, RF, or environmental certification, and the e-paper refresh range is narrower than the sensor's operating range. A clean ERC/DRC result is not a safety certification.
Hardware design: Isaak Devos / Solderable. Prototype firmware and bring-up: Embedder collaboration.