📡

TetraSpot

Stos TETRA — stacja bazowa z architektura mikroserwisowa

Pre-alpha

TetraSpot to implementacja stosu protokolow TETRA. Projekt umozliwia uruchomienie stacji bazowej TETRA z obsluga polaczen glosowych (grupowych, indywidualnych simplex i full-duplex), wiadomosci SDS, lokalizacji GPS (LIP) oraz integracji z sieciami zewnetrznymi (TetraPack przez hub TetraPoland, SIP/PABX). Architektura oparta na mikroserwisach pozwala na elastyczne wdrozenie — od pojedynczego Raspberry Pi 5 po konfiguracje wielostanowiskowe.

Funkcjonalnosci

Pelny stos radiowy BS: PHY → LMAC → UMAC → LLC → MLE → MM/CMCE/SNDCP
Modulacja/demodulacja Pi/4-DQPSK (USRP, LimeSDR, sxceiver)
Rozglaszanie SYNC/SYSINFO — siec widoczna jako prawidlowa siec TETRA
Rejestracja terminali (MM Location Update)
Polaczenia glosowe grupowe z kodekiem ACELP
Polaczenia indywidualne P2P (half-duplex i full-duplex)
Sterowanie podloga (floor control) dla polaczen half-duplex
Wiadomosci SDS — wysylanie, odbieranie, store & forward
Lokalizacja GPS/LIP — sledzenie pozycji terminali
Uwierzytelnianie TEA (TEA1/TEA2/TEA3) z biala lista
Dystrybucja kluczy OTAR (Over-The-Air Rekeying) — SCK/CCK/GCK
Dynamiczne przypisywanie grup (DGNA)
Integracja z TetraPack przez hub TetraPoland
Bramka telefoniczna SIP/PABX
Panel zarzadzania WWW (dashboard, logi polaczen, konfiguracja)
Wdrozenie na Raspberry Pi 5 z uslugami systemd

W rozwoju

Obsluga wielu stacji bazowych (multi-site)SNDCP (transmisja danych pakietowych)Retransmisja LLCTryb MS (terminal mobilny)

Architektura

  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) (TEA/    (GPS)  (SIP/PABX)  :8080
                  OTAR)

Topologia gwiazdy z centralnym Switch (DXT). Wszystkie mikroserwisy komunikuja sie przez QUIC z serializacja bitcode.

📻

TLA — Tetra Light Analyzer

autor: SP8MB

Webowy analizator sieci TETRA na Raspberry Pi. Monitoring 64 kanalow w czasie rzeczywistym z odtwarzaniem glosu, nagrywaniem rozmow, analiza widma, dekodowaniem SDS i sledzeniem lokalizacji terminali — wszystko z przegladarki.

TLA — zrzut ekranu

Funkcje

Monitoring

  • Sledzenie 64 kanalow TETRA w czasie rzeczywistym
  • Wyswietlanie identyfikatorow GSSI/ISSI
  • Rozpoznawanie typu polaczenia (grupowe, indywidualne, PSTN)
  • Wykrywanie szyfrowania (brak / TEA1-3)
  • Kolorowa siatka aktywnosci kanalow

Audio

  • Odtwarzanie rozmow na zywo (kodek ACELP)
  • Automatyczne nagrywanie rozmow do MP3
  • Wybor kanalu i wyciszanie
  • Pobieranie i zarzadzanie nagraniami

Widmo i sygnal

  • Widmo FFT z wizualizacja waterfall
  • Diagram konstelacji DQPSK
  • Monitoring poziomu sygnalu, szumu i SNR
  • Metryki jakosci: MER, bledy burst, numer nosnej
  • Sledzenie AFC (automatyczna korekcja czestotliwosci)

Dane

  • Dekodowanie wiadomosci SDS
  • Sledzenie lokalizacji terminali przez protokol LIP
  • Rejestr polaczen z pelna historia sesji
  • Statystyki sieci (liczba polaczen, aktywne terminale)

Siec

  • Identyfikacja MCC/MNC z nazwa operatora
  • Baza znanych sieci z szybkim strojeniem
  • Wykrywanie czestotliwosci sasiadow
  • Auto-tune do czestotliwosci z NETINFO
  • Auto-korekcja PPM z wartosci AFC

System

  • Responsywny interfejs webowy (desktop i mobile)
  • Dwujezyczny interfejs (polski / angielski)
  • Motyw jasny / ciemny
  • HTTPS z certyfikatem SSL
  • Opcjonalne zabezpieczenie haslem

Architektura

RTL-SDR USB Dongle
       |
  GNURadio 3.10
  (demodulacja TETRA + FFT)
       |
       +---> UDP:42001 ---------> tetra-rx (osmo-tetra)
       +---> TCP:42002 (FFT/ZMQ)        |
                                         +---> UDP:7379 (TETMON)
                                         +---> TCP:42003 (konstelacja)
                                                    |
                                              TLA Backend
                                            (FastAPI + WS)
                                              HTTP:8080
                                                    |
                                              Przegladarka
📱

TetraPoland (Android)

Programowy terminal TETRA — PTT-over-Cellular

Beta

Aplikacja Android laczaca sie z serwerem TetraSpot przez protokol Brew (WebSocket). Dziala jak programowy terminal TETRA — uzytkownik dostaje pelna funkcjonalnosc radiotelefonu (rozmowy grupowe i indywidualne, SDS, skanowanie talkgrup) na zwyklym telefonie z polaczeniem komorkowym lub Wi-Fi. Kompatybilna z obsluga PTT przez przyciski sprzetowe i headset Bluetooth (SCO).

Funkcje

Polaczenia grupowe PTT (RX/TX) z floor control
Polaczenia indywidualne (half/full-duplex)
Wiadomosci SDS — wysylanie i odbieranie
Skanowanie talkgrup z hold/priority
Kodek ACELP (ETSI ref C, NDK)
Audio Oboe (8 kHz mono, jitter buffer, AGC, NR)
Foreground service — dziala w tle
Sprzetowy PTT i headset Bluetooth SCO
Lista kontaktow i historia polaczen (Room)
Uwierzytelnianie HTTP Digest + TLS

Stack

JVM 17Jetpack Compose + Material 3Hilt (KSP)RoomOkHttp (WebSocket)NDK / CMakeOboeminSdk 21 / targetSdk 35
🎯

ATAK TETRA Plugin

Integracja ATAK z radiokomunikacja TETRA

Beta

Plugin do aplikacji ATAK (Android Team Awareness Kit) integrujacy taktyczna mape z radiokomunikacja TETRA. Pozycje terminali (LIP) trafiaja na mape ATAK jako CoT (Cursor on Target), wiadomosci SDS wyswietlaja sie jak komunikaty, a PTT pozwala nadawac bez opuszczania mapy. Lacznosc z radiem przez USB/Serial, Bluetooth SPP lub TCP/IP do bramki.

Funkcje

SDS — krotkie wiadomosci tekstowe (SDS-1 / SDS-2)
LIP — automatyczne przesylanie pozycji na mape CoT
Status messages — predefiniowane i wlasne
PTT — przycisk nadawania z poziomu mapy taktycznej
Polaczenia grupowe i indywidualne
Pozycje kolegow z zespolu widoczne na mapie ATAK
Floating PTT overlay na mapie (przeciagalny)
Wskazniki RX / TX, sygnalu i baterii radia
Zmiana talkgrupy z palikatora radia (+MCTGS)
Polaczenie: USB/Serial, Bluetooth SPP lub TCP gateway
🔐

TSIM — TETRA SIM Applet

Aplet JavaCard karty SIM dla terminali TETRA

Aplet JavaCard implementujacy modul tozsamosci TETRA (TIM/TSIM) zgodnie z ETSI TS 100 812-2. Realizuje pelny ciag uwierzytelniania TAA1 (HURDLE + TA11/TA12/TA21/TA22/TB4), zarzadzanie kluczami OTAR (TA32/TA52/TA71/TA82/TA92) oraz strukture plikow DF_TETRA z wymaganymi EF (ITSI, SPN, forbidden networks, adresy SCK/CCK/GCK). Dziala przez interfejs UICC/APDU — moze zastapic oryginalna karte w dowolnym terminalu TETRA.

Funkcje

Pelny TAA1 — HURDLE + TA11/TA12/TA21/TA22/TB4
OTAR — TA32/TA52 (SCK), TA71 (GCK), TA82 (CCK), TA92 (MGCK)
DF_TETRA z wymaganymi EF (EF_ITSI, EF_SPN, EF_FORBIDDEN itd.)
Zarzadzanie PIN1 / PIN2 / ADM / PUK
Interfejs UICC / APDU — kompatybilny z terminalami TETRA
Personalizacja (ITSI, klucz K, SPN, MCC/MNC, security class)
Klasy bezpieczenstwa SC1 (clear) / SC2 (SCK) / SC3 (CCK)

Docelowa karta

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

Standardy

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, TEA)
🎛

TETRA Remote Head

Zdalny panel radiotelefonu TETRA przez PEI

Webowy panel sterowania radiotelefonem TETRA Motorola sterowanym komendami AT przez interfejs PEI (RS232). Backend Flask eksponuje REST API, strumien zdarzen SSE oraz pelno-dupleksowe audio przez WebRTC (aiortc) — dzieki temu z dowolnej przegladarki mozna obslugiwac radio jak fizyczny panel czolowy: rozmowy grupowe i indywidualne, SDS, wybor talkgrupy, skanowanie, GPS, status sieci. Zaprojektowany do montazu w pojezdzie (np. BMW R1250RT) z radiem schowanym w kufrze i panelem na telefonie.

TETRA Remote Head — zrzut ekranu

Funkcje

Pelne sterowanie radiem przez AT/PEI
WebRTC full-duplex audio (RX/TX) z niskim opoznieniem
PTT z przegladarki (klik, klawisz, ekran dotykowy)
Polaczenia grupowe i indywidualne, SDS
Wybor i skanowanie talkgrup
GPS, RSSI, bateria, status sieci, alarm/TXI
Multiplekser PEI (pei_mux) — wspoldzielony port dla svxlink + remotehead
HTTPS + opcjonalne uwierzytelnienie
Service systemd, autostart

Architektura

Radiotelefon TETRA (Motorola MTM/MTP)
       |
   RS232 / PEI (AT, 9600 bps)
       |
       v
   /dev/ttyS2
       |
   pei_mux  (multiplexer: PTY symlinki, serializacja AT, broadcast URC)
       |          |
       v          v
  svxlink     tetra_remote_head  (Flask + flask-sock + aiortc)
              REST :443  SSE :443  WebRTC (audio)
                     |
                ALSA: radio_capture / radio_playback
                     |
              Przegladarka (PWA, panel czolowy)

Wdrozenie docelowe: motocykl BMW R1250RT — radio w kufrze, telefon na kierownicy jako panel.

tetra-poland.pl — by SP8MB