Projects

An open TETRA ecosystem.

Twelve projects built by the Polish ham radio community — from a base station and SDR receivers, through mobile apps, to a SIM card applet. All hand-built, on open hardware.

TetraSpot — TETRA hotspot

TETRA stack — base station (TETRA hotspot) with microservice architecture

Pre-alpha

TetraSpot is an implementation of the TETRA protocol stack. The project enables running a TETRA base station with support for voice calls (group, individual simplex and full-duplex), SDS messages, packet data with internet access, GPS location (LIP) and integration with external networks (TetraPack via the TetraPoland hub, SIP/PABX). The microservice-based architecture allows flexible deployment — from a single Raspberry Pi 5 to multi-site configurations.

Features

  • Full BS radio stack: PHY → LMAC → UMAC → LLC → MLE → MM/CMCE/SNDCP
  • π/4-DQPSK modulation/demodulation (USRP, LimeSDR, LimeSDR Mini, sxceiver)
  • SYNC/SYSINFO broadcast — network visible as a valid TETRA network
  • Terminal registration (MM Location Update) and group attachment
  • Group voice calls — our own ACELP codec implementation per the ETSI specification
  • Individual P2P calls (half-duplex and full-duplex)
  • Floor control for half-duplex calls
  • SDS messages — individual and group, send, receive, store & forward
  • Private-call relay between apps — the hub brokers the call setup
  • GPS/LIP location — terminal position tracking
  • Packet data — the radio gets an IP address and reaches the internet through the station
  • WAP portal on the radio — the handset’s own browser opens pages served by the station: cell status, call log with callsigns, SDS log and the list of attached radios
  • Voice takes precedence over data — a call reclaims the packet-data timeslot, and a dormant radio is woken when data arrives for it
  • Dual carrier — more simultaneous calls from one station, with the data channel on its own carrier
  • APRS bridge — radio and station positions reach APRS maps, with callsigns mapped to radio numbers
  • Optional TEA1 authentication with whitelist
  • OTAR key distribution (Over-The-Air Rekeying) — SCK/CCK/GCK
  • Dynamic group assignment (DGNA)
  • Sign in to the network with BrandMeister credentials
  • Integration with TetraPack via the TetraPoland hub
  • TetraPoland hub: floor arbitration, dashboard accounts, event log and live updates
  • TetraPoland apps for Android and iOS recognized in the hub — with each client’s version
  • Hub admin console: talk straight from the browser onto the air, listen in on a chosen source (group, station or app), record calls and ban stations
  • Remote station control over SDS — a status or a text message (restart, reboot, power off), with delivery acknowledgement
  • Echo (parrot) service — call in and hear yourself, to check network access and audio quality
  • SIP/PABX telephony gateway
  • GSM cellular gateway — an SMS from the mobile network reaches the radio as SDS and back
  • Call barring and calling-line identity restriction (CLIR) — emergency calls exempt
  • Web management panel (dashboard, call logs, configuration) over HTTPS
  • Panel: timeslot occupancy view, power telemetry, transmit-path calibration and system logs straight from the browser
  • Radio codeplug management from the panel — read and write over USB, offline .cpe handling (no CPS, no Windows)
  • Optional supplementary services: a talking clock and street-name display on the radio (from its GPS position)
  • DMR ID database with callsign lookup
  • Ready-made SD card image — the station is personalized from a questionnaire (callsign, frequencies, talkgroups) and works after the first boot
  • Online wizard that issues the image — invite code, generation queue and automatic enrolment of the station into the network
  • Automatic fleet updates — every release is digitally signed and a station rejects an update without a valid signature
  • Raspberry Pi 5 deployment with systemd services

In development

Multi-site supportMultislot packet-data channelLLC retransmissionMS mode (mobile terminal)

Architecture

  BS #1 (RPi5)    BS #2 (RPi5)    BS #N
  ┌──────────┐    ┌──────────┐    ┌─────┐
  │ PHY/LMAC │    │ PHY/LMAC │    │ ... │
  │ UMAC/LLC │    │ UMAC/LLC │    │     │
  │ MLE      │    │ MLE      │    │     │
  └────┬─────┘    └────┬─────┘    └──┬──┘
       │               │             │
       └───────────────┼─────────────┘
                       │ QUIC (bitcode)
          ┌────────────┴────────────┐
          │   SWITCH (DXT) :4433   │
          │   MM / CMCE / SNDCP    │
          │   Service Registry     │
          └────────────┬────────────┘
                       │
  ┌─────────┬────────┬───┼───┬──────────┬───────────┐
  │         │        │       │          │           │
Audio GW   SDS    Auth     LIP    Telephony  Management
(ACELP,   Server Server  Server     GW        Panel
 Brew/RTP) (REST) (TEA1/   (GPS)  (SIP/PABX)  :8080
                  OTAR)

Star topology with a central Switch (DXT). All microservices communicate via QUIC with bitcode serialization.

More about TetraSpot

Multi-Radio — multi-system radio

The first SDR terminal in ham radio with hardware requirements this modest

Alphasince March 2026

One device instead of several radios — Multi-Radio today works in nine systems: analogue FM (with AM and SSB), TETRA, DMR, P25, M17, D-STAR, YSF (System Fusion), plus NXDN and dPMR — the last two not yet verified against a commercial radio. The whole thing fits on a Raspberry Pi with a single SDR board. We have been building it since March 2026, and it is the first SDR terminal in the ham radio world with hardware requirements this modest: it registers with the network, authenticates, attaches to talkgroups, transmits and receives voice and exchanges messages — without a commercial radio costing thousands. Every mode is checked against real gear: DMR against an AnyTone, P25 against a Harris, YSF against a Yaesu, D-STAR against an ICOM, and TETRA against a Motorola EBTS and a TetraSpot. The radio can also cycle through the systems on its own and stop wherever someone is transmitting. You drive it from a phone app, from the browser or from the touch panel on the station itself, and all the credentials — ISSI, MCC/MNC and talkgroups — go in online. No programming cable, no vendor software, no codeplug procedure.

Operating modes — working today

  • Analogue FM — receive and transmit, narrowband and wideband
  • AM and SSB (LSB/USB) — new analogue modes alongside FM
  • TETRA TMO — terminal registered to the network, checked against a Motorola EBTS and a TetraSpot
  • TETRA DMO — live monitoring of direct-mode traffic
  • DMR — two-way voice, confirmed on air against an AnyTone AT-D878UVII Plus
  • P25 — two-way voice, confirmed on air against a Harris P7100
  • M17 — two-way voice between our own stations; not yet tested against a commercial radio
  • D-STAR — two-way voice, confirmed on air against an ICOM ID-51
  • YSF (System Fusion) — two-way voice, confirmed on air against a Yaesu FT-991A
  • NXDN — full voice path (transmit and receive); not yet verified against a commercial radio
  • dPMR — full voice path (transmit and receive); not yet verified against a commercial radio
  • Mode switching at the press of a button — the new system is ready in about a second
  • Scanning across systems — the radio cycles through the modes and stops wherever someone is transmitting

Applications

Voice

  • Group calls on a TETRA network
  • Individual (private) calls
  • Conversations in DMR, P25, M17, D-STAR and YSF — transmit and receive
  • Monitoring TETRA direct mode, outside infrastructure coverage
  • Analogue FM communication from the same device

Data

  • SDS text messages with delivery reports
  • GPS position reports (LIP) — tracking on the map
  • Status messages — canned reports at one button press
  • Callsign, short messages and GPS position on air in D-STAR

Where it fits

  • An affordable terminal where a commercial radio costs too much
  • A monitoring and test station while building out a network
  • Learning and experimenting — full insight into what happens on air
  • Nine systems from one device, instead of buying several radios

Already working in TETRA mode

  • Network registration and TAA1 authentication
  • Attaching to talkgroups
  • Group and individual calls — setup and release
  • Voice reception (our own ACELP codec implementation)
  • SDS messages — sending, receiving, delivery reports
  • Status messages and LIP position reports
  • Live view of network parameters and received signal level
  • Login settings configured online — no cable, no codeplug

Already working in the digital modes

  • DMR: live reception — who is transmitting, to which talkgroup, on what frequency
  • DMR: voice transmission straight on air with a PTT button
  • DMR: your own ID, talkgroup, Color Code and power set from the app
  • P25: voice transmission and reception with the radio and talkgroup identifiers decoded
  • P25: your own NAC, talkgroup and transmitting identifier set from the app
  • M17: two-way voice with the callsign in every frame — checked between our own stations
  • D-STAR: two-way voice, callsign and short messages
  • YSF (System Fusion): two-way voice, confirmed against a real Yaesu radio
  • TETRA DMO: monitoring — who is transmitting, to whom, and on which network
  • NXDN and dPMR: voice transmits and receives on our own hardware — compatibility with a commercial radio still unconfirmed (no radio to test against)
  • Optional voice encryption in the digital modes (DMR and P25)
  • Scanning across systems, stopping on activity — dwell time per mode is configurable
  • S-meter and receive/transmit indicators in every mode

Control — phone, browser, panel

  • Android app — full control of the radio from your phone
  • Pick the link to the phone: automatic, Bluetooth or Wi-Fi
  • PTT, monitoring and a live view in every mode
  • Frequency, talkgroups and parameters changed without touching the station config
  • Cross-system scanning started from the app — with a view of the mode the radio stopped on
  • Web panel still available — the same features from a browser, audio included
  • Touch control head on the station — every mode and setting, without a phone or a computer
  • Bluetooth pairing opened deliberately and only briefly — nobody outside takes over the transmitter
  • Paired-phone management — device list and unpairing from either side
  • Battery (UPS) monitoring — charge level, charging state and power draw in the app
  • Remote restart and shutdown of the station from the app

In development

Verifying NXDN and dPMR against commercial radiosTransmission in TETRA direct mode (DMO)Voice transmission in TETRA network mode (TMO)Mutual authenticationPacket data transmissionDMR through a repeater (time slots)Running several modes at once"Plecki" back-plate module — the whole Multi-Radio station on the back of a smartphone, with its own battery and a 2 W amplifier (architecture and parts list done, schematic and PCB next)

Hardware requirements

Raspberry Pi · SDR HAT — that is all it takes to have a nine-system terminal. The board handles one mode at a time, so you switch between systems at the press of a button.
More about Multi-Radio

TLA — Tetra Light Analyzer

author: SP8MB

Web-based TETRA network analyzer on Raspberry Pi. Real-time monitoring of 64 channels with voice playback, call recording, spectrum analysis, SDS decoding and terminal location tracking — all from a browser.

TLA — screenshot

Features

Monitoring

  • Real-time monitoring of 64 TETRA channels
  • GSSI/ISSI identifier display
  • Call type recognition (group, individual, PSTN)
  • Encryption detection (none / TEA1)
  • Color-coded channel activity grid

Audio

  • Live call playback (our own ACELP implementation)
  • Automatic call recording to MP3
  • Channel selection and muting
  • Download and manage recordings

Spectrum & signal

  • FFT spectrum with waterfall visualization
  • DQPSK constellation diagram
  • Signal/noise/SNR monitoring
  • Quality metrics: MER, burst errors, carrier number
  • AFC tracking (automatic frequency correction)

Data

  • SDS message decoding
  • Terminal location tracking via LIP protocol
  • Call registry with full session history
  • Network statistics (call count, active terminals)
  • Export reports to PDF

Network

  • MCC/MNC identification with operator name
  • Known networks database with quick tuning
  • Neighbor frequency detection
  • Auto-tune to NETINFO frequencies
  • Auto PPM correction from AFC value

System

  • Responsive web UI (desktop and mobile)
  • Bilingual UI (Polish / English)
  • Light / dark theme
  • HTTPS with SSL certificate
  • Optional password protection
  • Support for multiple SDR receivers (RTL-SDR, HackRF, Airspy, SDRplay, LimeSDR, USRP)

Architecture

RTL-SDR USB Dongle
       |
  GNURadio 3.10
  (TETRA demodulation + FFT)
       |
       +---> UDP:42001 ---------> tetra-rx (osmo-tetra)
       +---> TCP:42002 (FFT/ZMQ)        |
                                         +---> UDP:7379 (TETMON)
                                         +---> TCP:42003 (constellation)
                                                    |
                                              TLA Backend
                                              (web server)
                                              HTTP:8080
                                                    |
                                                Browser

TetraPoland (Android)

Software TETRA terminal — PTT-over-Cellular

Beta

Android app connecting to the TetraPoland hub over a fast, resilient QUIC link. It works as a software TETRA terminal — users get full radio functionality (group and individual calls, SDS, talkgroup scanning) on a regular phone with a cellular or Wi-Fi connection. Compatible with hardware PTT buttons, wireless Bluetooth LE buttons and headsets (SCO). It supports private calls between users, sign-in with your BrandMeister network credentials, and GPS positions reported to the tetra-poland.pl map.

Features

  • Group PTT calls (RX/TX) with floor control
  • Individual calls (half/full-duplex)
  • Sign in with your BrandMeister network credentials
  • SDS messages — individual and group, with delivery reports and quick replies
  • Talkgroup scanning with hold, priority and DSP presets
  • GPS position reporting to the tetra-poland.pl map and GPX track logging
  • Bluetooth LE PTT buttons (PTT-Z01, AnyTone, HM-10)
  • Hardware PTT and Bluetooth SCO headset
  • Own ACELP codec implementation per the ETSI specification
  • QUIC transport (Brew-over-QUIC) — fast resume after a network change
  • High-quality audio (jitter buffer, AGC, noise reduction)
  • Runs continuously in the background
  • Contact list and call history
  • HTTP Digest auth + TLS

In development

Companion Wear OS watch app — PTT and favourite talkgroups from the wrist, optional audio through the watch (hardware testing in progress)
More about the TetraPoland app

TetraPoland (iOS)

Software TETRA terminal for iPhone and iPad — PTT-over-Cellular

TestFlight

The same TetraPoland network, now on iPhone and iPad. The app connects to the TetraPoland hub over the same fast QUIC link as the Android version and turns the phone into a software TETRA terminal — group PTT calls and private calls (simplex and full-duplex) over mobile data or Wi-Fi. A full-duplex private call behaves like a regular iPhone call: it shows on the lock screen and in the system (CallKit). Only an identity verified by BrandMeister (a verified DMR ID) gets on the network — no more anonymous login. Distributed through TestFlight.

Features

  • Group PTT calls — transmit and receive
  • Private calls — simplex and full-duplex
  • Full-duplex calls integrated with iOS (CallKit) — on the lock screen, like a regular phone
  • Automatic hang-up of a simplex call after a short idle
  • Call setup tones (ringback)
  • Talkgroup scanning with answering on the scanned group
  • PTT beep and an optional roger beep audible to the other side
  • The tetra-poland.pl map built into the app
  • Receive-quality bars with a threshold legend
  • Reception mixes with music and podcasts instead of pausing them
  • The radio survives a phone call — reception comes back on its own, no re-login
  • Sign in only with a BrandMeister-verified DMR ID
  • Optional GPS position reporting to the tetra-poland.pl map
  • ACELP codec core shared with the Android version, per the ETSI specification
  • QUIC / WSS transport to the TetraPoland hub

In development

Wireless Bluetooth LE PTT button (PTT-Z01, AnyTone, HM-10) — hardware testing in progressPush notifications — waking the app for an incoming call while it is closedApp Store release (currently available via TestFlight)

How to install

iPhone / iPad · iOS 16+ · TestFlight — install the app through TestFlight (link and invite code on the “Download” page). Current version 1.0.4.
More about the TetraPoland app

ATAK TETRA Plugin

ATAK integration with TETRA radio

Beta

Plugin for ATAK (Android Team Awareness Kit) integrating the tactical map with TETRA radio. Terminal positions (LIP) appear on the ATAK map as CoT (Cursor on Target), SDS messages show as alerts, and PTT allows transmission without leaving the map. Radio connection via USB/Serial, Bluetooth SPP or TCP gateway.

Features

  • SDS — short text messages (SDS-1 / SDS-2)
  • LIP — automatic position reporting on CoT map
  • Status messages — predefined and custom
  • PTT — transmit button from the tactical map
  • Group and individual calls
  • Team positions visible on the ATAK map
  • Floating PTT overlay on map (draggable)
  • RX / TX, signal and radio battery indicators
  • Talkgroup switching from radio keypad (+MCTGS)
  • Connection: USB/Serial, Bluetooth SPP or TCP gateway
  • Periodic position reporting (30 s moving / 15 min static)
  • Auto-reconnect and background operation (foreground service)

TSIM — TETRA SIM Applet

JavaCard SIM applet for TETRA terminals

JavaCard applet implementing the TETRA identity module (TIM/TSIM) per ETSI TS 100 812-2. Provides the full TAA1 authentication chain (HURDLE + TA11/TA12/TA21/TA22/TB4), OTAR key management (TA32/TA52/TA71/TA82/TA92) and the DF_TETRA file structure with required EFs (ITSI, SPN, forbidden networks, SCK/CCK/GCK addresses). Operates via UICC/APDU interface — can replace the original card in any TETRA terminal.

Features

  • Full TAA1 — HURDLE + TA11/TA12/TA21/TA22/TB4
  • OTAR — TA32/TA52 (SCK), TA71 (GCK), TA82 (CCK), TA92 (MGCK)
  • DF_TETRA with required EFs (EF_ITSI, EF_SPN, EF_FORBIDDEN, etc.)
  • PIN1 / PIN2 / ADM / PUK management
  • UICC / APDU interface — compatible with TETRA terminals
  • Personalization (ITSI, K key, SPN, MCC/MNC, security class)
  • Security classes SC1 (clear) / SC2 (SCK) / SC3 (CCK)

Target card

NXP JCOP4 J3R150 — 150 KB EEPROM, JavaCard 3.0.5, GlobalPlatform 2.3

Standards

ETSI TS 100 812-2 V2.4.1 — TSIM ApplicationETSI EN 300 812-3 V2.3.1 — IC card TSIMETSI EN 300 392-7 — Security (TAA1, TEA1)

TETRA Remote Head

Remote TETRA radio control panel via PEI

Web control panel for a Motorola TETRA radio driven by AT commands over the PEI (RS232) interface. The backend exposes a REST API, SSE event stream and full-duplex audio over WebRTC — so any browser can operate the radio like a physical control head: group and individual calls, SDS, talkgroup switching, scanning, GPS, network status. It can also run as a full remote operator console: it captures the GPS positions of other radios by polling Remote SDS and visualizes them on a map. Designed for vehicle mounting (e.g. BMW R1250RT) with the radio in the case and the panel on a phone. A newer variant integrates a motorcycle-helmet intercom (Cardo) and a wireless PTT button through an ESP32 bridge.

TETRA Remote Head — screenshot

Features

  • Full radio control via AT/PEI
  • WebRTC full-duplex audio (RX/TX) with low latency
  • PTT from the browser (click, key, touchscreen)
  • Wireless Bluetooth LE PTT button (ELET-PTT603E34)
  • Motorcycle-helmet bridge: ESP32 + Cardo intercom (HFP) — audio and PTT over Bluetooth
  • Group and individual calls, SDS
  • Talkgroup selection and scanning
  • GPS, RSSI, battery, network status, alarm/TXI
  • Captures GPS positions of other radios by polling Remote SDS
  • Live map visualization of terminal positions
  • Runs as a full remote operator console
  • Remotely clear an alarm and control many functions of remote terminals (requires the option programmed in CPS)
  • PEI multiplexer (pei_mux) — shared port for svxlink + remotehead
  • Radio watchdog — automatic recovery of the radio link
  • HTTPS + optional authentication
  • systemd service, autostart

Architecture

TETRA radio (Motorola MTM/MTP)
       |
   RS232 / PEI (AT, 9600 bps)
       |
       v
   /dev/ttyS2
       |
   pei_mux  (multiplexer: PTY symlinks, AT serialization, URC broadcast)
       |          |
       v          v
  svxlink     tetra_remote_head  (web server)
              REST :443  SSE :443  WebRTC (audio)
                     |
                ALSA: radio_capture / radio_playback
                     |
              Browser (PWA, control head)

Target deployment: BMW R1250RT motorcycle — radio in the case, phone on the handlebar as the panel.

Tested radios

Motorola MTH800 · MTP700 · MTP850 · CEP400 · MTP35xx · MXP600 · all MTM/MXM · Hytera PTC760 — controlled over the PEI (AT) interface.

OWRX Mobile (Android)

Native OpenWebRX+ client for Android — by SP8MB

Beta

Native Android client for OpenWebRX+ receivers (luarvique fork). It lets you listen to your own SDR servers in the field — with background audio, a band scanner, a TETRA monitor and an APRS map. It exists because the browser falls short in the field on Android: audio dies with the screen off and an LTE drop needs a manual refresh. A pure client for your own servers (supports nginx basic auth) — it neither contains nor bypasses any encryption.

OWRX Mobile — receiver view with waterfall and band planOWRX Mobile — TETRA monitor with network header and activity log

Features

Receiver

  • Waterfall and spectrum with a frequency scale (pinch-zoom, pan, tap to tune)
  • Digital frequency readout — enter MHz with auto-jump to the covering profile
  • Mute and software volume, squelch with Auto mode
  • AGC / manual device gain, noise reduction (NR)
  • Band bookmarks with tags above the scale

Background audio

  • Background playback with a media notification and wake lock
  • Silence watchdog (30 s) and automatic reconnection
  • Resumes last state after an LTE drop (frequency/mode/squelch)
  • Full session shutdown with one button

Scanner and recording

  • Three modes: full band, range (from–to), bookmark scan
  • Carrier detection from FFT, manual or Auto threshold, 8.33 / 12.5 / 25 kHz raster
  • Blacklist, hit history, beep and vibration on a catch
  • Recording to .m4a (AAC) and VOX mode (auto-record each transmission)

TETRA and map

  • TETRA monitor: network (MCC/MNC/LA, ETSI time, encryption), timeslots, neighbors
  • Active SSIs by category (Real / Address / ESI), MS registrations, SDS
  • OSM map with APRS/AIS icons — including locally decoded frames
  • Aircraft rotated by heading (ADSB/VDL2/HFDL), Maidenhead locators

Administration

  • Manage the OWRX server from the panel (device list, gain, profiles)
  • Connects to your own OpenWebRX+ servers (nginx basic auth)
  • Polish-language interface

OpenWebRX+ TETRA Plugin

TETRA decoder plugin for OpenWebRX+ — by SP8MB

A plugin that adds a TETRA mode to OpenWebRX+: π/4-DQPSK demodulation, L1/L2/L3 layer decoding, ACELP voice playback and a dedicated web panel with network, call and terminal information — all right inside the OpenWebRX+ UI.

OpenWebRX+ TETRA Plugin — waterfall, TETRA monitor and network panel

Features

  • π/4-DQPSK demodulation (GNURadio)
  • L1/L2/L3 protocol decoding (osmo-tetra / tetra-rx)
  • Voice playback — our own ACELP codec implementation per the ETSI specification, in the browser
  • AFC from the FLL port
  • Network panel: MCC, MNC, LA, Color Code, DL/UL, encryption status, network time
  • Active calls (call setup / connect / release / TX grant)
  • GSSI / ISSI with real-ISSI vs ESI-alias distinction
  • Timeslot state (Traffic / Control / Common-Ctrl / Reserved / Unalloc) with TTL
  • Neighbor cell list (cell_id, carrier, DL freq, load)
  • Active SSIs and MS registration events (LU Accept/Reject, attach/detach, auth)
  • SDS messages with protocol and delivery-status decoding
  • Floating event window with filters, G/SSI label editor, CSV export, remote and compact modes

TETRA Air Trace

TETRA signaling decoder over the radio PEI — by SP8MB

A tool for capturing and analyzing TETRA air-interface signaling over the PEI (Peripheral Equipment Interface) of Motorola radios (MTM800 / MTP850). It connects to the radio over serial or USB, enables trace mode and decodes frames live — calls, registrations, SDS, GPS, SYSINFO. Available as a Windows app, an Android app and a desktop tool.

Features

  • Live TETRA signaling trace over the radio PEI
  • Decodes 30+ frame types (CALL, GROUP, REG, SDS, GPS/LIP, SYSINFO)
  • ISSI / GSSI identifier extraction
  • Frequency decode from the SYSINFO frame (band, carrier, duplex)
  • ETSI-compliant PDU names
  • Automatic port detection and radio identification
  • Color-coded trace view, Detail / Radio / Network / Stats tabs
  • Frame filtering and traffic statistics
  • Copy trace lines to the clipboard
  • Dark theme across all platforms

Tested radios

Motorola MTH800 · MTP700 · MTP850 · CEP400 · MTP35xx · MXP600 · all MTM/MXM · Hytera PTC760 — connected over PEI (ESC P … ESC S), 115200 8N1, serial or USB OTG.

Platforms

Windows appAndroid appDesktop tool

Spectrum & EMC Analyzer

Service spectrum analyzer with a TETRA decoder — by SP8MB

Pre-alpha

A software radio spectrum analyzer with a web interface that replaces several separate boxes on the service bench. It does three things at once: shows a live spectrum with automatic signal detection and tracking, runs lab-grade measurements (channel power, occupied bandwidth, adjacent-channel power, harmonics) and performs electromagnetic-compatibility (EMC) testing against CISPR/EN55032 profiles — from prescan to a quasi-peak report. In live traffic it recognizes and decodes emissions, including TETRA (network TMO and direct-mode DMO) with voice playback, as well as DMR, P25, M17, YSF and D-STAR. It works with a low-cost SDR receiver or drives a Rigol lab analyzer, and runs in a simulation mode with no hardware at all.

Features

Spectrum & signals

  • Live spectrum with a waterfall
  • Automatic signal detection (percentile baseline + OS-CFAR)
  • Tracking of emissions appearing and disappearing (NEW / GONE)
  • Emission-type recognition and demodulation

Measurements

  • Markers, channel power, occupied bandwidth (OBW)
  • Adjacent-channel power (ACP), carrier-to-noise (C/N)
  • Harmonics and third-order intercept (TOI)

EMC

  • CISPR32 / EN55032 profiles
  • PRESCAN → peak list → quasi-peak measurement → report
  • Hardware quasi-peak detector
  • HTML / SVG report

Decoders

  • TETRA TMO and DMO — with voice playback (our own ACELP codec implementation per the ETSI specification)
  • DMR, P25, M17, YSF and D-STAR
  • AES-256 / RC4 decryption from a key store
  • Network, call and identifier view

Hardware

  • Low-cost SDR receivers (RTL-SDR, PlutoSDR)
  • Rigol DSA815-TG lab analyzer (SCPI control)
  • Simulation mode — works with no hardware

Validated on hardware

Spectrum with anomaly detection and full Rigol control (EMC and measurements) on a real analyzer — and TETRA decoding confirmed on a live 440 MHz signal, with voice recovered from a captured group call.