Logo bigcrimping

Bhangmeter V3

Jun 9, 2026 - 3 minute read
feature image

GitHub link: https://github.com/bigcrimping/bhangmeterV3

An open-source optical bhangmeter — a fast photodetector that recognises the unique two-peaked light curve of a nuclear detonation and estimates its yield from the timing of that signature. This repository holds the complete build: firmware, host software, PCB, and enclosure.

A bhangmeter estimates yield from the optical waveform alone. No other natural or artificial event reproduces the double-pulse signature, which makes the waveform both the detection trigger and the measurement.

The double-pulse signature

A high-yield fireball radiates ~35–45% of its energy as light, but not smoothly. Three phases produce two distinct optical peaks:

  1. First pulse — radiative fireball. Short (~1 ms) and nearly independent of yield.
  2. The minimum. A hydrodynamic shock detaches and ionises the air into an opaque shell, dropping visible emission about one order of magnitude.
  3. Second pulse — shock breakaway. Lower peak, but lasting hundreds of ms to seconds, carrying ~99% of the integrated thermal yield.

The gap between the two peaks scales with yield — and that gap is what the instrument measures, using standard low-altitude Glasstone & Dolan scaling. The device reports a yield only when the timing lands in the valid window (t_inter 90–1050 ms, t_min 5–130 ms), i.e. the 10 kt – 1 Mt design envelope.

Yield T_min (peak→min) T_inter (peak→peak)
10 kt 7 ms 115 ms
50 kt 18 ms 233 ms
100 kt 26 ms 316 ms
250 kt 45 ms 473 ms
500 kt 67 ms 642 ms
1 Mt 100 ms 871 ms

How the instrument works

The comparator captures the sub-µs leading edge and triggers the ADC capture. Both t_min and t_inter are then measured from the ADC waveform. A detection requires all of: a fast leading edge, then a peak → shallow-minimum → second-peak shape, with t_inter falling in the valid band. That combination rejects the plausible impostors — lightning (single peak), camera flashes (no second peak), and meteors (one broad envelope).

Hardware at a glance

Block Part Why
Photodiode VEMD2704 (Si PIN, ~400–1100 nm) Captures the broadband thermal flash, left unfiltered to gather as much light as possible.
Logarithmic amp AD8304 Log-compresses the photodiode current so one fixed-gain front-end spans several decades — no gain switching mid-event.
Edge timing LT1711 comparator Sub-µs timestamp of the leading edge regardless of amplitude.
Waveform capture AD7091R ADC (SPI) Records the analogue shape so peak/minimum/second-peak can be analysed.
Compute / comms RP2350 (Pico 2 W) Detection + control on core 0, WiFi/NTP/HTTPS upload on core 1.

Repository layout

  • code/ — firmware (RP2350 / Pico 2 W) and the companion app (a PySide6 desktop operator console)
  • PCB/ — the carrier board and the BHG-3000 sensor head: schematics, assembly drawings, BOMs and Gerbers
  • mech/ — 3D-printable enclosure and optical mount

Getting started

  1. Build the hardware from PCB/ and mech/.
  2. Flash the firmware — a prebuilt .uf2 is included, or build from source.
  3. Configure on first boot over USB serial (WiFi + a GitHub repo to publish to). No credentials live in the firmware.
  4. Drive and view the device with the companion app, or read the published JSON from your GitHub repo.

Status & scope

Work in progress. Yield estimation from timing is intrinsically coarse, so the sharp t_inter feature is the primary estimate and t_min only a coarse cross-check. The firmware’s TLS upload path does not yet verify the server certificate; use a dedicated, fine-grained GitHub token.