EPIRB RX - portapack-mayhem/mayhem-firmware GitHub Wiki

🎯 Overview

The EPIRB RX application receives and decodes ELT/EPIRB/PLB COSPAS/SARSAT emergency beacon frames.

image

πŸ†˜ Beacons

The EPIRB RX application decodes 406 MHz distress beacon transmissions from EPIRBs (Emergency Position-Indicating Radio Beacons), PLBs (Personal Locator Beacons), and ELTs (Emergency Locator Transmitters).

COSPAS/SARSAT emergency beacons are used in boats (EPIRB), planes (ELT) or by individuals (PLB) to support Search And Rescue (SAR) operations by helping to locate accident sites.

🦺 Error Correction

Received beacons are decoded using BCH error detection and single-bit correction. Each beacon state is color-coded:

  • Green = valid packet
  • Yellow = corrected (1-bit error fixed)
  • Red = unrecoverable error

🎁 Features

RX parameters can be configured using standard RF settings: RF amplifier, LNA gain, and VGA gain.

Frequencies can be selected from a predefined list stored in the EPIRB/FREQ.TXT file.

The EPIRB RX application also outputs audio of the monitored frequency, with adjustable squelch and volume settings.

The application status header displays:

  • A time counter showing seconds since startup, or a 50-second countdown after each frame
  • The total number of received beacon frames
  • Statistics for valid, corrected, and invalid frames
  • The currently selected beacon information

The application uses a 4-tab layout:

  • List Tab: displays a summary of recently received beacons
  • Detail tab: shows detailed information about the selected beacon
  • Map tab: displays the beacon's location
  • QR tab: shows a QR code linking to the beacon location or details from SARSAT Beacon Hex Decoder service

The EPIRB RX application decoding algorithm is very sensitive to frequency alignment. Due to size limitation of Mayhem applications, the EPIRB RX application does not provide a spectrum waterfall view. Hearing a beacon frame does not necessarily mean you are tuned to the correct frequency, as COSPAS/SARSAT channels are very close to each other. If decoding fails, it is recommended to use the Audio application's waterfall view to verify frequency alignment.

πŸ“Ά Protocol

Beacon frame data is encoded using Manchester BPSK modulation at 400 bits per second, with a phase of Β±63Β°, in accordance with COSPAS/SARSAT specifications.

Each frame is preceded by a 160 ms carrier.

πŸ“» Baseband

A dedicated proc_epirb baseband processor has been implemented using a state machine to:

  • Detect the 160 ms carrier
  • Detect the first phase transition and start Manchester decoding at each phase change
  • Read packets using a dedicated PacketBuilder

❓ User Guide

πŸ“‘ Receiver section

This section is used to adjust receiver parameters for optimal decoding.

image Receiver parameters:
- RFA: RF Amplifier (0 or 1)
- LNA: LNA gain (0–40)
- VGA: VGA gain (0–62)
- SQL: Squelch level for audio output (0-99)
- Audio: Audio output level (0-99)

ℹ️ Application status

This section displays the current application status.

image Application status:
- TIME: shows seconds since startup or the countdown to the next beacon (50 s)
- COUNT: index of the selected beacon / total received beacons
- STATS: number of valid / corrected / invalid beacons
- ID: short ID of the selected beacon
- TYPE: type of the selected beacon
- LOC: Maidenhead Locator of the selected beacon
- STATE: satus (OK/KO) of the selected beacon

πŸ““ List Tab

The first tab displays a list of recently received beacons.

image Each entry gives:
- Reception time
- Beacon short ID
- Beacon type
- Location (if available): Maidenhead locator
- Status (OK if BCH1 and BCH2 codes are valid, KO otherwise ; if OK is displayed in yellow, it means that the frame has been corrected to match BCH1 and/or BCH2 code)

πŸ” Detail Tab

This tab provides detailed information about the selected beacon.

image Controls:
The encoder can be used to change the selected beacon.
Beacon details:
- Beacon type (EPIRB/ELT/PLB etc), mode (real/test) and reception time
- Protocol (Standard/User/National etc), Protocol description, and additional data
- Emergency type (if available): distress reason encoded in the message (Fire, Flooding, Collision, Grounding, Sinking, Disabled etc.)
- Country of origin
- Location (if available) in 3 formats
    o Maidenhead Locator,
    o DMS coordinates,
    o Decimal coordinates.
- BCH1 et BCH2 control code status (if in yellow, it means that the frame has been corrected to match BCH1/BCH2 code)
- Beacon Hex ID
- Beacon Serial Number (if available)
- Main location device
- Auxiliary location device

πŸ—ΊοΈ Map Tab

Displays the selected beacon on a map. Other beacons within the visible map area are also displayed.

image Controls:
- Arrow keys to move the map
- Encoder to adjust zoom

πŸ”— QR Tab

Display QR codes that can be scanned to access location or details from SARSAT Beacon Hex Decoder service

image QR Tab:
- QR option field can be used to chose between Map and Detail QR code:
    o Map QR code can be scanned to link to the beacon's coordinates in Maps
    o Detail QR code can be scanned to link to the beacon's details in SARSAT Beacon Hex Decoder service
- Data shows raw beacon frame data

βš™οΈ Settings

πŸ“ SETTINGS/rx_epirb.ini file

In addition to receiver settings, that are available from the UI, other settings can accessed by editing SETTINGS/rx_epirb.ini file when App Settings is enabled in the global Settings menu.

This settings include:

  • countdown: duration (in seconds) of the countdown that starts after receiving a frame

πŸ“ EPIRB/FREQ.TXT file

The list of frequencies available from the frequency selector comes from EPIRB/FREQ.TXT file.

You can edit this file to add custom frequencies.

Default frequencies:

  • 406.025 MHz (406025000)
  • 406.028 MHz (406028000)
  • 406.037 MHz (406037000)
  • 406.040 MHz (406040000)
  • 406.049 MHz (406049000)
  • 406.052 MHz (406052000)
  • 406.061 MHz (406061000)
  • 406.064 MHz (406064000)
  • 433.025 MHz (433025000)
  • 144.875 MHz (144875000)
  • 406.022 MHz (406022000)
⚠️ **GitHub.com Fallback** ⚠️