Stos TETRA — stacja bazowa z architektura mikroserwisowa
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.
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.
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.

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
|
PrzegladarkaProgramowy terminal TETRA — PTT-over-Cellular
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).
Integracja ATAK z radiokomunikacja TETRA
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.
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.
NXP JCOP4 J3R150 — 150 KB EEPROM, JavaCard 3.0.5, GlobalPlatform 2.3
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.

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.