Raspberry Pi 5
The heart of the station — the whole TETRA stack runs in real time on the CPU. Get a Pi 5 with at least 2 GB of RAM. A Pi 4 will run it too, but expect stability problems — we explain why in the questions below.
The complete guide: what to buy, how to put it together, how to set up the system and where to get the software. One afternoon, no soldering iron required — everything plugs together. The result is your own TETRA station visible on the network map.

Nothing here is arbitrary — for every item we explain why it has to be that one, because three of them are easy to get wrong: the memory card, the power supply and the cooling.
The heart of the station — the whole TETRA stack runs in real time on the CPU. Get a Pi 5 with at least 2 GB of RAM. A Pi 4 will run it too, but expect stability problems — we explain why in the questions below.
TetraSpot writes logs and recordings continuously, 24/7. An ordinary card dies after a few months of that — High Endurance cards (SanDisk Max Endurance, Samsung PRO Endurance) are built for sustained writing.

Our own design (SQ8MXP and SP8MB) — an SDR board that plugs straight onto the GPIO header and handles the entire radio side. Every board is calibrated in-housebefore it ships, so the local oscillator leakage is already dealt with and there is nothing for you to trim. Costs about 350 PLN; for availability contact SP8MB, as the boards are made in batches.
This is not the place to save money. A Pi 5 with a radio board can draw serious current in bursts; a phone charger ends in throttling, reboots mid-transmission and a corrupted memory card.
The station runs DSP non-stop inside a closed case. Without a fan the Pi hits its thermal limit and drops its clock — you hear that as choppy audio.
The HAT has tiny U.FL sockets, antennas use SMA — the pigtail bridges them and brings the connector out to the case wall. Get the panel-mount version (with a nut) so the antenna bolts to the case instead of dangling on a cable.
Separate antennas for transmit and receive — TetraSpot works in duplex, transmitting and receiving at the same time. Space them as far apart as you can; the better the isolation, the more sensitive the receiver.
What matters is being able to bolt the antennas to the case — the SMA connectors pass through the wall. A 3D print is perfectly fine; aluminium additionally shields and carries heat away.
The whole thing goes together with a screwdriver. The only part that needs a light touch is the U.FL connectors — they are tiny and hate sideways force.
Push the TMO HAT onto the 40-pin header — straight, all pins at once, no tilting. Bolt it down on M2.5 standoffs: without them the board flexes when you plug in the pigtails and eventually cracks.
Press the U.FL plugs onto the RX and TX sockets — straight down, with a finger or a plastic tool, until they click. The connector is rated for a few dozen cycles, so treat it as a one-time connection, not a serviceable one.
Push the panel-mount ends of the pigtails through the holes and tighten the nuts from outside (8 mm spanner). Route the cables so they do not rest on the heatsink or block the fan.
Cooling, ventilation, lid — and the antennas last. Space them as far apart as you can. Never transmit without antennas connected: the power stage would be driving into an open circuit and can be damaged.
A fresh Raspberry Pi OS, two interfaces to enable and a quick check that power and cooling hold up. Nothing beyond the standard procedure.
Download the Raspberry Pi Imager and pick the latest Raspberry Pi OS (64-bit). 64-bit is mandatory — the stack will not run on a 32-bit system.
In the Imager open the settings (the gear icon or Ctrl+Shift+X) and set the hostname, a user with a password, your Wi-Fi network and enable SSH. That way the station never needs a monitor or keyboard.
Insert the card, apply power and log in over SSH after a moment:
ssh pi@tetraspot.local sudo apt update sudo apt full-upgrade -y sudo reboot
The HAT talks to the Pi over SPI and exposes its ID memory over I2C. Enable both in raspi-config → Interface Options:
sudo raspi-config Interface Options -> SPI -> Yes Interface Options -> I2C -> Yes sudo reboot
Before going further, make sure the power supply and cooling are up to it. throttled=0x0 means nothing is limiting the CPU — anything else means a weak supply or too much heat.
vcgencmd get_throttled vcgencmd measure_temp
The TETRA stack installs as a ready-made package with systemd services — once installed the station starts together with the system and everything is configured from the browser.
Yes. TetraSpot is a transmitter operating in the 430–440 MHz amateur band, so you need an operator certificate and a radio licence, and the station runs under your callsign. Without a licence you can build the hardware and listen, but not transmit.
The TMO HAT is about 350 PLN, the rest of the electronics a few hundred more, and a used TETRA radio starts at around 400 PLN — the whole build usually lands near 1300 PLN. Details and the 10 W BTS variant are described on the home page.
It will run, but do not count on stable operation. Audio from the HAT arrives over I2S via DMA and the program has to drain the buffer before it fills up. When the system is busy writing logs or doing something else, the process falls behind and drops samples (an XRUN) — you hear that as clicks and broken audio. The Pi 5 has the headroom in CPU and memory bandwidth that the Pi 4 simply lacks.
Yes — besides the Raspberry Pi the stack runs properly on x86-64, so a mini PC is a sensible alternative if a small enclosure is not a priority.
No — TetraSpot supports the SX1255, AD9363 and AD9361 chipsets, so in theory any board built around them will fit. What decides the quality, though, are three things: the TCXO reference, the filters and the calibration. A weaker TCXO drifts with temperature — the station heats up inside a closed case, the frequency wanders off and terminals start losing synchronisation. Poor filters pass through what they should be cutting out. And a third-party board will most likely arrive uncalibrated, leaving the oscillator leaking right in the middle of your own channel and degrading the signal you transmit. The TMO HAT is simply the easiest route: it plugs straight into the Pi, costs about 350 PLN, comes calibrated and there is nothing to source yourself.
The boards are made in small community batches — for one, contact SP8MB or ask on the TETRA-POLAND Telegram group.
With this design, yes — TetraSpot transmits and receives simultaneously (10 MHz duplex), so the RX and TX paths have separate outputs. The alternative is a duplexer and a single antenna, but that belongs to the far more expensive BTS variant.
The HAT alone gives you hotspot power. A base station adds a driver, a power amplifier, a duplexer and filters. The amplifier is the awkward part: TETRA uses a non-constant-envelope modulation (π/4-DQPSK), so the PA has to run linearly, in class A — otherwise the spectrum spreads and you start interfering with the neighbouring channels. The price of that linearity is poor efficiency and a serious amount of heat to get rid of. The duplexer lets you work off a single antenna, and the filters keep you from spilling outside your own channel.