Stefan v2: A Lightweight and Efficient Balloon Tracker by SQ9P

Balloon Tracker Stefan v2

The Stefan v2 balloon tracker, developed by amateur radio operator SQ9P, is a compact and power-efficient platform designed for high-altitude balloon flights. Evolved from an earlier version originally intended as a pet tracker, Stefan v2 reflects thoughtful design choices aimed at reducing complexity while maintaining core functionality for APRS and telemetry applications.

This article highlights the project’s hardware design, power management techniques, and radio capabilities, based on a detailed write-up shared by the developer.


🔁 From v1 to v2: Key Changes

Version 1: Lessons Learned

The initial version of the tracker was physically large, had several hardware flaws, and suffered from unreliable performance. It was designed with a precise external oscillator (LSE) for timekeeping, intended to wake once every 24 hours and send status frames. However, limitations of the internal oscillator and ineffective power switching for GPS resulted in significant timing errors and high current draw. Additionally, some of the hardware files were lost, leaving only Gerber files from the manufacturing process.

Version 2: Simplified and Optimized

The second version drops unnecessary complexity. The design assumes more frequent transmissions (e.g., every 5 minutes), which significantly reduces the impact of timing drift. As a result, the external oscillator is removed, and the system now relies solely on the internal clock.

GPS power is controlled directly via GPIO pins rather than a MOSFET, reducing part count. The backup line for GPS is continuously powered, enabling hot and warm starts—a feature missing in v1.


⚡ Power Management

Power efficiency is central to the v2 design. The system:

  • Uses Stop mode on the STM32G030 microcontroller to reduce current to <5 μA when idle
  • Powers off the GPS between fixes while maintaining RTC through a dedicated backup line
  • Configures the SX1278 radio module for low-power standby when not transmitting

A typical use case involves:

  • A full GPS fix (~35 seconds) on the first cycle
  • Hot fixes (~2 seconds) on subsequent cycles
  • Intervals of ~5 minutes between transmissions

These strategies collectively enable long-duration operation on small Li-ion batteries.


🧩 Component Overview

Microcontroller – STM32G030

A low-cost, 32-bit ARM Cortex-M0+ MCU with:

  • 8 KB RAM
  • Up to 64 KB Flash (v2 uses the larger variant)
  • Multiple sleep modes with memory retention

Radio – SX1278

A Semtech transceiver supporting:

  • 2-FSK, GFSK, OOK, and LoRa
  • Frequencies between 137–525 MHz
  • Used in this project for APRS, AFSK, 4-FSK, and SSTV (via future firmware updates)

GPS – Ublox M10 footprint

Tested with various modules such as Quectel L-70 and ATGM336H. Hot start capability is supported in v2.

Power – Direct 3.6 V input

The tracker is powered directly by a 1S lithium battery. No voltage regulators or converters are used, simplifying the design and reducing idle current. There is currently no reverse polarity protection.


📦 Flash Storage for SSTV

Although v2 doesn’t archive positional data (as packets are transmitted live), external flash is retained for future support of SSTV image transmission. This allows the device to capture and transmit images during flight—a feature to be elaborated on in upcoming project updates.


🧪 Summary and Outlook

The Stefan v2 tracker demonstrates how thoughtful hardware and firmware design can yield a lightweight, low-power platform suitable for high-altitude balloon tracking. It prioritizes simplicity, reusability, and efficiency—removing unnecessary parts while adding support for advanced features like SSTV and 4-FSK.

Future posts from SQ9P are expected to cover:

  • Firmware structure and implementation
  • Modulation techniques on the SX1278
  • APRS and AX.25 integration
  • SSTV encoding and transmission

This project may be of interest to amateur radio operators, educators, or developers working on embedded radio and telemetry systems.


Source: SQ9P – Project Blog / Repository
License: Information presented here is summarized from publicly available posts by the project author. All credit to the original developer.

Post Comment

You May Have Missed