Board Temp by Altitude
Battery Voltage Over 24 Hours
Solar-only trackers shut down at night (gaps). Always-on trackers show the full voltage swing.
Board Temp by Latitude Zone
Scatter: Board Temp vs Altitude
Global Flight Coverage
Heatmap showing telemetry density from 485 validated balloon flights worldwide.
Flight Duration Distribution
Flight duration distribution for validated balloon flights. Based on 485 flights from 199 callsigns.
Hardware Design Parameters
Based on temperature data from 485 validated balloon flights. Percentiles (5th/95th) are recommended over min/max for design targets.
| Parameter | Value | Notes |
|---|
Download Raw Data
Download the complete SQLite database (504 MB, compressed to 98 MB) for your own analysis.
gunzip parameter_finder.db.gz
Then query with SQLite, Python, R, or any tool that supports SQLite.
About This Data
Board Temperature, Not Ambient
These are PCB measurements, not ambient air temperature. U4B trackers use an LM75 sensor on the board. At 12km altitude, ambient air is around -50°C to -60°C, but the board reads warmer due to solar heating and self-heating from electronics (~20-30°C above ambient).
Sampling Bias
Every reading includes self-heating - we only get data when the MCU is running. Most trackers are solar-powered, so only 1% of readings are at night. Night readings average -30°C vs day at -12°C (~18°C swing).
Data Sparsity
Average: ~8 temperature readings per flight. Successful telemetry requires matching two separate WSPR slots heard by a common receiver. Only 25% of transmissions have decoded temperature. Data represents sparse spot-checks, not continuous monitoring.
Data Source
Telemetry from U4B pico balloon trackers collected via wspr.live (January 2024 - January 2026). U4B encodes temps from -50°C to +39°C; we correct wrapped readings using physics-based thresholds.
Value Wrapping (Data Quality)
U4B trackers wrap values when they exceed encoding limits, while Traquito trackers flatline. For example, a temperature above +39°C wraps to -50°C, and voltage above 4.95V wraps to 3.0V. This affects min/max statistics but has minimal impact on averages and percentiles.
- Temperature: -50°C to +39°C range, wraps at both ends
- Voltage: 3.0V to 4.95V range, can wrap both directions
- Speed/Altitude: Can also wrap; GPS glitches and spoofing (especially Middle East/Russia) cause additional errors
Our approach: We use 5th/95th percentiles instead of min/max for design parameters. We detect and correct obvious temperature wraps using physics-based rules. Thanks to Kevin AD6Z for documenting these tracker behaviors.
Data Validation Protocol
The Problem
Raw WSPR telemetry contains many false positives. Our initial processing found ~27,000 "flights" from ~3,400 "operators" - wildly inflated compared to community estimates of ~200 active operators. This included ground stations, false telemetry matches, and noise.
The Solution: Confidence Scoring
Each flight receives a confidence score (0-100) based on multiple heuristics. Only flights scoring 60+ are included in statistics.
| Feature | Points | Criteria |
|---|---|---|
| Movement | 40 max | 10+ grids (+20), 500+ km distance (+10), speed 50-150 km/h (+10) |
| Altitude | 30 max | Median 8+ km (+20), has cruise phase with 2+ readings (+10) |
| Temporal | 20 max | Duration 1+ day (+10), 5+ readings (+10) |
| Penalties | variable | Teleportation (-20), no movement at altitude (-40), ground station pattern (-25) |
Key Insight
Real balloons at cruise altitude move. A flight showing 10+ km altitude but only 1-2 grids is physically impossible - the telemetry is being incorrectly matched. Ground stations transmit hundreds of times per day from the same location but pick up false altitude readings from telemetry slot collisions.
Validation Results
Ground Truth Testing
We validated against Kevin AD6Z's list of 158 confirmed balloon callsigns and manually verified known non-balloons:
- Known balloons: VE3KCL (85), KC3LBR (90), SA6BSS (90), AB5SS (90) - all correctly included
- Known ground stations: AA1AH (10), AF7XZ (52) - both correctly excluded
Flight Duration (Validated)
Duration measured from first to last reading at cruise altitude (≥8km):
- 6% ended in under 2 days (28 flights)
- 29% lasted 2-7 days (125 flights)
- 35% lasted 7-30 days (151 flights)
- 30% lasted over 30 days (131 flights)
Validated flights show much better survival: median 8.8 days, average 53 days, max 723 days.
Callsign Normalization
Callsign counts are normalized by stripping portable suffixes
(e.g., SP6MPL/4 → SP6MPL). Note that one operator
may use multiple callsigns, so the actual number of individuals is likely lower.
Channel Deduplication
U4B trackers transmit on multiple sub-channels (base channel ± 0-4) and multiple bands simultaneously. Flights are deduplicated by callsign + base channel - the same balloon transmitting on 10m, 15m, and 20m is counted as one flight, not three.
Tracker Type Breakdown
Multiple tracker types exist in the pico balloon community, each with different characteristics:
| Tracker | Flights | Readings | Wrapping | Notes |
|---|---|---|---|---|
| Traquito | 259 | 50,186 | Flatlines | TX power 13 dBm, most common |
| U4B | 232 | 18,750 | Wraps | TX power 10 dBm, wraps at boundaries |
| KC3LBR | 17 | ~3,500 | Wraps | TX power 13 dBm but wraps like U4B |
| WB8ELK/Skytracker | - | - | Flatlines | Different protocol (not yet classified) |
Wrapping behavior: U4B trackers wrap values when they exceed encoding limits (e.g., temp above +39°C wraps to -50°C). Traquito and Skytracker flatline at boundaries instead. This affects min/max statistics but has minimal impact on averages and percentiles.