Flight
science
A pico balloon is a radio beacon, a weather probe and a free-drifting wind tracer at the same time. These panels turn each SQ9GOL flight — and, as guests, the balloons of Mike SA6BSS — into small experiments: how the Sun switches HF on and off, what 12 km of height does for a few milliwatts, how fast the balloon loses helium and how the tracker's crystal reacts to −50 °C.
← Balloons · Propagation lab · Jet stream globe · Open data (CSV)
Solar flares and the radio blackout
A solar flare's X-rays ionise the lowest layer of the ionosphere on the sunlit side of the Earth, which then absorbs short waves for tens of minutes. If the balloon is in daylight, fewer stations should decode it during a strong flare. Top: stations per frame (navy: balloon in daylight). Middle: GOES X-ray flux with flare classes. Bottom: geomagnetic Kp index.
Every WSPR station on Earth, every M and X flare
One balloon is too few. So here the same question is asked of the whole WSPR network: for each flare of class M or X, the number of spots every 10 minutes from 3 h before to 4 h after its peak, split into paths whose midpoint is in full daylight (red) and in darkness (navy, the control: X-rays never reach the night side). Each curve is divided by its own level before the flare, then averaged over all flares (superposed epoch analysis).
Flares in detail: path length, sun height, SNR
Three questions about the same flares, now a full year of them from the GOES-19 flare list: are long paths (several hops, several passes through the D layer) hit harder than short ones? Does the loss grow as the sun climbs? And how many dB do the signals actually lose?
Method
All WSPR spots on 40–10 m from wspr.live, 3 h before to 4 h after each M/X flare peak, in 10-minute steps. Path midpoint and the sun's elevation there decide day (sun > 20°) or night (< −12°, control). Counts are divided by the level 150–30 min before the peak, and then by the same ratio for the same hours one day earlier (control day without a flare) — this removes the daily rhythm of the network and the day/night line moving across the map during the 7-hour window. SNR: every transmitter–receiver pair heard at least 3 times before the flare is compared with its own pre-flare mean, minus the same quantity on the control day; the share of pair decodes that disappear is shown separately. Flares whose control day also had an M/X flare are skipped. Lines are medians over flares; shaded bands are 95% confidence intervals of the median (bootstrap: the flares are resampled 300 times, each with its whole curve). Model: NOAA DRAP, highest affected frequency 10·log₁₀(flux)+65 MHz, vertical absorption (HAF/f)1.5 dB, scaled by cos χ0.75. Code: SQ9GOL server, flare_detail.py (available on request).Geomagnetic storms: days, not minutes
A flare hits with light and is over in an hour. A geomagnetic storm comes a day or two later with the solar wind (a coronal mass ejection hitting the magnetosphere) and heats and drains the ionosphere for days, worst under the auroral ovals. Here: every storm with Kp ≥ 6 after two quiet days in the last three years, the whole WSPR network, spots counted in 3-hour steps from 2 days before to 4 days after the onset and divided by the same UTC hour of the two quiet days before (this removes the day/night rhythm). The lines are medians over all storms, split by the latitude of the path midpoint.
How good are the trajectory forecasts?
Hindcast: every 12 hours of each flight a virtual balloon starts from a real fix and is carried by the archived GFS (amber) or ECMWF (green) wind at the balloon's height; after 6, 12, 24, 48 h it is compared with where the real balloon was. Red: the real SondeHub forecasts that the SQ9GOL server now logs every 6 hours for each balloon in the air, scored once the balloon gets there. Hindcast errors are the floor: a forecast made days ahead can only be worse.
What 12 km of height does
A ground station's signal must bounce off the ionosphere, so nobody hears it between ~50 km and the first hop: the skip zone. From 12 km the balloon sees about 450 km in a straight line, and its signal starts its hops already high. Green bars: receptions inside the radio horizon.
The ionosphere seen from the balloon
Every reception beyond the radio horizon bounced off the ionosphere somewhere on the way. Turn it around: each such path tells where the ionosphere was dense enough to reflect the band, and when. With a simple mirror model (F2 layer at 300 km, equal hops along the great circle, at most 3800 km each) every reception from 1500 km up gives one or more reflection points and the minimum critical frequency foF2 the layer must have had there: foF2 ≥ f · cos(angle of incidence). A ground station can only do this from one place; the balloon moves the sounder around the world.
Required foF2 vs local sun time at the reflection point
A lower bound, not a measurement of foF2: the real layer can be denser, paths can be longer than the shortest great circle, and real hops are not all equal. Night shading on the chart: 0–6 and 18–24 h local sun time. Next step: compare with ionosonde data (GIRO).
The best ears of the WSPR network
The balloon is a transmitter with fixed power that travels around the world, so it can compare receiving stations fairly. For each reception we take the SNR minus the median SNR of all receptions from the same distance (500 km steps). Averaged per station, this says how many dB better or worse than a typical station it hears the balloon — antenna, noise floor and location together.
Only stations with at least 8 receptions of this flight. Polish stations in green. One flight, one band: a station far from the flight's path has fewer and longer paths, so treat the ranking as a friendly comparison, not a calibration. Pick another flight above to see a different band.
Helium leak, daily cycle and temperature
At float a foil balloon is a fixed volume of gas: if it slowly leaks, it floats a little lower each day. Red dots: daytime median height per day, dashed: the trend. The daily cycle shows the sun heating the gas.
Gravity waves: the balloon bobbing over mountains
A foil balloon has a fixed volume, so it floats on a surface of constant air density — the same principle as the superpressure balloons that research projects like Strateole-2 use to study atmospheric waves. When wind crosses mountain ridges or a storm pushes the air, gravity waves travel up into the stratosphere and lift and drop the balloon by tens to hundreds of metres. Take away the slow changes (daily heating, helium loss) and what is left is the wobble.
Method: height minus its mean over ±1 hour, RMS over ±40 minutes. One fix every 10 minutes is too slow to resolve single short waves (they are aliased), but their energy still shows up in the RMS. Altitude comes in 20 m steps, so anything below ~10 m is noise. Terrain height: Open-Meteo elevation API.
The crystal in the cold
Every station reports the exact frequency it heard. The median over all receivers of a frame cancels their own errors and shows the tracker's oscillator, here plotted against the tracker's own temperature. The slope is the oscillator's temperature coefficient, measured in flight.
Two different sources meet here: the temperature comes from the sensor inside the tracker's RP2040 microcontroller, the frequency from receivers all over the world. The Traquito tracker generates its signal with an Si5351A clocked by a 0.5 ppm TCXO (a temperature-compensated crystal oscillator), so what we see is how well that compensation works in the cold – not a bare crystal. Panel 4c below checks how much the number depends on the obvious error sources.
4b · Hysteresis and ageing
Does the crystal behave the same when it cools at sunset as when it warms at sunrise? And once temperature is taken out, does the frequency still creep over the days (ageing)?
4c · How reliable is this?
The same fit, repeated with the main error sources removed one by one: the balloon's own Doppler shift (about 1 Hz at 100 km/h on 20 m, computed for every receiver from the balloon's velocity and the direction to that receiver), each station's own clock error (estimated from this flight: how far the station usually sits from the median of the other receivers of the same frame), frames heard by few receivers, low sun (sunrise and sunset move the ionosphere – an extra Doppler shift – exactly when the tracker heats up or cools down) and the time lag between the processor's sensor and the TCXO. If the slope stays about the same in every row, the error sources do not drive the result. What this cannot replace: a ground test of the same tracker in a freezer with a thermocouple on the TCXO and a GPS-disciplined receiver.
Meteors by radio: listening to GRAVES
GRAVES, a French space-surveillance radar near Dijon, beams a steady 143.050 MHz signal up into the sky. From Włostowice, 1100 km away, it is normally silent – the Earth's curve hides it. But when a grain of space dust burns up 80–110 km high, it leaves a trail of ionised air that for a split second works as a mirror: the radar's signal bounces down to us as a short "ping". Our dipole and receiver listen around the clock and the SQ9GOL server counts every ping – day or night, through clouds.
Loading…
Method: receiver fixed on 143.050 MHz, 30 Hz FFT bins, an echo is a signal within ±400 Hz of the radar frequency at least 10.5 dB above that bin's own background (100 ms average). Events longer than 8 s are dropped (aircraft also reflect GRAVES). Most echoes last a few tenths of a second; long, strong ones come from bright meteors. Doppler: the trail drifts with high-altitude winds. Counts depend on the receiver and antenna – compare days and hours with each other, not with other stations.
Wind: the comparison of the balloon's drift with the GFS and ECMWF weather models is in the propagation lab. Data: WSPR spots from wspr.live, GOES X-ray, Kp and flare list from NOAA SWPC (archived hourly by the SQ9GOL server since 4 Oct 2026), flight tracks from SondeHub and the SQ9GOL server. Simple statistics, shown openly: treat single events as hints, not proof.