SXceiver

Full duplex SDR transceiver for Raspberry Pi

SXceiver specifications

SXceiver is based on a Semtech SX1255 I/Q transceiver chip connected to a Raspberry Pi using I2S and SPI interfaces.

Frequency range

Guaranteed tuning range is 400-510 MHz. Most units can tune over a somewhat wider range, typically around 360-550 MHz.

RF matching networks are optimized for the 70 cm amateur radio band (430-440 MHz).

Sample rate, bandwidth and bit depth

Sample rates currently supported by the SoapySX driver are 25 kHz, 50 kHz, 75 kHz, 150 kHz, 300 kHz and 600 kHz.

The SX1255 chip internally uses 1-bit delta-sigma analog-to-digital converters (ADC) for "I" and "Q" signals. These operate at a fixed sample rate of 38.4 MHz. This high sample rate, 1-bit signal is fed into a digital decimation filter outputting a stream at a lower sample rate and higher bit depth. Effective number of bits (ENOB) depends on sample rate and gain settings.

Transmit signal is correspondingly fed through an interpolating filter and delta-sigma modulator before "I" and "Q" DACs. These decimation and interpolating filters have a somewhat slow roll-off in their frequency response, limiting useful bandwidth to around half of the sample rate being used.

Other RF specifications

Other features

SXceiver supports full duplex with precise synchronization of receive and transmit signal streams through timestamps. This makes it suitable for timing-critical digital modes based on time division duplexing (TDD), frequency division duplexing (FDD) or time division multiple access (TDMA).

SXceiver can also control an external RX/TX switch in sync with the transmit signal stream. This is useful for TDD modes where fast switching between receive and transmit is needed.

Supported Raspberry Pi models

SXceiver has been tested to work on Raspberry Pi Zero 2 W, Raspberry Pi 2, Raspberry Pi 3B+, and Raspberry Pi 4.

Raspberry Pi 5 is not fully supported at the moment. The Linux driver for its I2S peripheral has some bugs which have not been fully fixed or worked around yet. Additionally, if you ordered your SXceiver before August 15, 2024, you will need to update the device tree overlay on the HAT EEPROM to add Raspberry Pi 5 support.

Most other Raspberry Pi models should work but have not been tested yet.

SXceiver requires a 40-pin GPIO header, so oldest Raspberry Pi 1 models with 26-pin header are not supported.

Note that older models with slower processor cores may have insufficient performance for some applications, so the best choice of Raspberry Pi model depends on your application.