BleepieAPRS

BleepieAPRS is alternate firmware for your Bleepie hardware. It runs on exactly the same board — the same hexpansion, radio and USB-C board — but instead of turning it into a POCSAG/FLEX pager it turns it into an APRS transceiver. Flash it on and your Bleepie becomes an APRS beacon, tracker and messaging radio; flash the original firmware back and it’s a pager again.

⚠️ You need an amateur radio licence. APRS runs on the amateur bands, so you must hold a licence and use your own callsign to transmit. The firmware ships with the placeholder callsign N0CALL and will keep warning you until you set your own. You can operate APRS in the 433Mhz band at 10dBm without a license but you will likely not find any digipeaters or gateways so you’ll be an isolated network. However this should work for badge to badge.

ℹ️ Beta: BleepieAPRS is currently a beta. It works and is fun to play with, but expect rough edges — particularly around receive (see the limitations below). Bug reports and feedback are welcome on the repo.

What it can do

BleepieAPRS has two operating modes you can switch between at runtime (from the badge Settings, or the mode command):

  • Classic — traditional 1200-baud AFSK APRS. This is the APRS everyone else is running.
  • LoRa — LoRa-APRS, the mode growing in popularity for low-power tracking.

Once you’ve set your callsign, you can:

  • Send position beacons — put yourself on the map with a symbol (car, bike, jogger, house…) and a comment.
  • Track with GPS — if your badge has a GPS (via the capabilities API or a GPS hexpansion), BleepieAPRS becomes a live tracker, beaconing your position as you move.
  • Send APRS messages — text messages addressed to another station.
  • Send status reports and Mic-E position (with course and speed).
  • Receive APRS packets — reliably in LoRa mode, experimentally in classic mode.
  • Auto-beacon on a timer, and keep a log of frames sent and received.

Your station identity (callsign, SSID, symbol, path, comment, position) is shared across both modes, so you only set it once.

The app functionality is very much still work in progress I’ve not discovered what the most useful things do do with this are yet, so feedback here is very much welcome.

Frequency

Classic APRS is typically run on the 2 m band (144.800 MHz in Europe, 144.390 in North America), and LoRa-APRS is typically on 70 cm (433.775 MHz). Switching mode retunes to that mode’s usual default, and you can set any frequency yourself afterwards with the freq command.

The Bleepie hardware can operate anywhere from 137 to 512 MHz, so you aren’t limited to those defaults. Note though that the receive path — including the antenna — is optimised around 430–440 MHz. LoRa-APRS on 70 cm is therefore the best match; classic APRS on 2 m will transmit and work, but its receive is less well matched.

Limitations

This project was very much an afterthought once I’d created Bleepie, I’d originally designed the HW for paging and this is a “what if?” type of project. Having said that Bleepie was originally a hack of Lora radios to support POCSAG so going back to Lora for APRS is closer to the original intent of the radio module.

  • Classic-mode receive is marginal. The radio in Bleepie has no proper audio path for decoding AFSK, so classic RX is a hack that only recovers roughly 1 in 10 packets even with a strong signal. It’s a proof of concept — treat classic mode as mainly a transmit mode. LoRa mode receives reliably.
  • Carrier-sense is energy-based. Before transmitting, classic mode listens and holds off if the channel is busy — but it can only sense energy, not decode who’s talking, so it’s collision-avoidance, not a guarantee.
  • It’s beta software — settings, commands and behaviour may change between versions.

Getting and flashing BleepieAPRS

Flashing BleepieAPRS works just like updating the Bleepie firmware — you’ll need the USB-C board connected to your Bleepie with the FPC cable (the same one the Bleepie page mentions for firmware updates). No badge is required for flashing.

1. Download the firmware. Grab the latest firmware.uf2 from the BleepieAPRS repo:

2. Enter bootloader mode. Hold down the BOOT button on the RP2040-Tiny while you plug the USB-C board into your computer. The board appears as a USB drive called RPI-RP2.

3. Flash it. Drag the firmware.uf2 file onto the RPI-RP2 drive. The board reboots automatically into BleepieAPRS — that’s it.

4. Set your callsign. Connect to it over a serial terminal at 115200 baud (or use the badge app) and set your callsign before you transmit:

call M0ABC
ssid 7
symbol />
mode lora
beacon

To go back to being a pager, flash the original Bleepie firmware the same way.