A software TETRA radio on your phone. Install it and connect to the TetraPoland network over mobile data or Wi-Fi — no hardware to buy. On Android it also runs on PoC radios: it supports the hardware PTT key and the group knob (including models we have never seen — you teach the app your own keys), and on hardware with no touchscreen you drive it from the keypad.
Works on any Android phone — recommended
Requires iOS 16.0 or newer · build 80
A separate app for PoC radios without a touchscreen — driven entirely from the keys: the D-pad, the PTT trigger, the channel knob, Menu and Back. The same core as TetraPoland for phones, its own version series. Preliminary, for testing: login, talkgroups, duplex calls, contacts and the call log work; private simplex calls and SDS from the radio are still under test.
⬇ Download TetraPoland PoC (armeabi-v7a) · 5,5 MBPoC radios (Hytera P50) are 32-bit ARM — this is the file for them
Universal build (all architectures)⬇ 13,6 MBadb install -r tetrapoland-poc-armeabi-v7a.apkadb shell appops set pl.tetrapoland.poc SYSTEM_ALERT_WINDOW allow adb shell pm grant pl.tetrapoland.poc android.permission.WRITE_SECURE_SETTINGS adb shell settings put system knob_locked 0
Key rules: a short centre press selects, holding opens the item's menu, ← goes back, in lists → / ← jump by 10.
PoC operating manual →The full manual walks you through it step by step — from the SELF CARE password and the first login to talkgroups, scanning, the map and background operation, for Android and iPhone in one document.
A cleaner way the app introduces itself to the gateway. To the hub and BrandMeister the app now sends one fixed identifier — a distinct one for the Android, iOS and PoC-radio builds. This lets the server recognise our app's traffic unambiguously and tell it apart from other programs using the same gateway. The app's name and the way you use it are unchanged.
Group 91 (BM World) no longer sneaks into scanning on its own. A fresh install got groups 91–100 with scanning switched on, while the scan screen lists favourites only — so the group kept talking and there was nowhere to switch it off. New installs start without it, and existing ones tidy their scan list at the next launch: only a favourite group can be scanned, i.e. one that shows on the scan screen and can be unticked.
DMR ID verification works again on older radios and phones. On the Hytera PTC760, HIROYASU and other older Androids the "Verify" button next to the DMR ID returned an error — the app couldn't reach the radioid.net database because those systems don't know one of the newer security certificates. The missing certificate is now bundled with the app, so verification and contact import from radioid.net go through again, just like on newer phones.
Fixes for Hytera radios (PTC760 and similar). The PTT trigger worked in reverse — transmission started after the button was released instead of while it was held. The radio now transmits exactly as long as you hold the trigger. Group audio also defaulted to the quiet top receiver instead of the big front speaker — on Hytera radios reception now plays through the front speaker, as it should. Duplex (phone-style) calls still play at the ear.
BrandMeister login fixes: the BM link no longer dies permanently after a transient gateway rejection, hub and BM log in sequentially (no account collision), and the hub remembers your device after the first login. Sparser retries on a wrong password to avoid account lockouts.
New, more secure network login: your BrandMeister account (DMR ID + password) now also authenticates the Polish hub connection. Clear messages when access is denied.
Swipe-scroll in settings and side panels on small screens. Auto-start and language moved to the end of the settings list. Fixed the secure connection (SSL) on older Android phones.
Simplified audio path (removed mic sidetone and noise gate) and more stable reconnection to the BrandMeister network.
End-of-transmission tone (roger beep) at the end of each transmission.
Clean transmit audio — fixed the metallic voice distortion.
Record your travelled route to a GPX file, plus lighter GPS position reporting (longer battery life).
Ready-made audio profiles (Motorola / Quiet / Indoor), SDS quick replies and muting groups in the scanner.
Configurable talkgroup scanner — adjustable hold time and reply mode.
Improved Bluetooth headset handling during transmission.
Bluetooth Low Energy PTT buttons (multiple models) plus smarter position reporting.
Send your GPS position to the network map on tetra-poland.pl.
Reliable background operation — the app no longer disconnects when minimised or with the screen off.
Delivery and read receipts for SDS messages (ticks next to messages).
SDS and scanning fixes — favourites picker when sending, group priority, more reliable reports.
BrandMeister: correct switching and affiliation of the selected talkgroup (no more mixing all groups at once).
Stabilised BrandMeister connection — automatic receive recovery and reconnection after a stall.
Encrypted BrandMeister password and stronger privacy (less data in logs).
BrandMeister network login — talkgroups numbered ≥91 via your DMR ID and BrandMeister password.
A cleaner way the app introduces itself to the gateway. To the hub and BrandMeister the app now sends one fixed identifier — a distinct one for the iOS build. This lets the server recognise our app's traffic unambiguously and tell it apart from other programs using the same gateway. The app's name and the way you use it are unchanged.
The app finally connects over QUIC. Since the first release the app silently fell back to its secondary link (WebSocket) — the QUIC connection never actually came up. Three independent bugs in the app and one on the server side stacked on top of each other; all are fixed, and the server fix is already deployed. In practice: voice travels in datagrams instead of a stream (lower latency on a weak link), and the frame redundancy from the previous build — recovering lost fragments of voice — starts working for real. On Android the server shows it recovering everything that gets lost on the way; the iPhone now gets the same. Nothing to set up.
Less choppy audio in weak coverage. Every piece of voice now carries a spare copy of the two before it — when a packet dies on the way, the app rebuilds the missing fragment from the copy instead of leaving a hole. The Android app has had this since 1.7.9, and the server shows it recovering everything that gets lost on the way. Works over the (default) QUIC link; nothing to set up.
English that is actually English. Switching the language left most of the app in Polish — and not for one reason but three. The translation file was missing half its entries: whole screens, among them hardware buttons, the delete dialogs and the receive-quality legend, had no English at all. A dozen places could never translate, because text glued together from two pieces, or passed as a variable, bypasses the lookup entirely. And strings built in code — hub and BrandMeister status banners, Bluetooth button states, import progress, notifications — were assembled before the language was even known. All three holes are closed and the translation file has been rewritten at 247 entries. The system permission prompts speak English too; until now they came up in Polish whatever the phone was set to.
Keep the screen on. A new switch in Settings: the screen no longer dims while the app is up front — say, in a car mount. On by default; turn it off if you prefer the screen to sleep as before. Nothing changes in the background — the phone dims as usual, so the battery does not suffer outside the car.
A cleaner way the radio introduces itself to the gateway. To the hub and BrandMeister the PoC app now sends one fixed identifier — a distinct one for PoC radios. This lets the server recognise the radio's traffic unambiguously and tell it apart from other programs using the same gateway. The way you operate the radio is unchanged.
Group 91 (BM World) no longer sneaks into scanning on its own. A fresh install got groups 91–100 with scanning switched on, while the scan screen lists favourites only — so the group kept talking and there was nowhere to switch it off. New installs start without it, and existing ones tidy their scan list at the next launch: only a favourite group can be scanned, i.e. one that shows on the scan screen and can be unticked.