Raspberry Pi Software-Defined Radio Transmitter Toolkit
rpi-sdr-tx is a complete toolkit for turning your Raspberry Pi into a software-defined radio (SDR) transmitter. Based on rpitx, it enables RF signal transmission from 5 kHz to 1500 MHz without requiring additional RF hardware—though filtering is strongly recommended to avoid unwanted interference.
This project is intended for educational and experimental use in RF systems. It has not been certified for compliance with radio transmission regulations. You are solely responsible for ensuring your use complies with local laws.
This repository includes:
- ✅ rpitx SDR transmission software
- 🧰 USB gadget utilities
- 🔨 Custom image build scripts
- 🧱 3D-printable case designs
- 💿 Prebuilt images available in the Releases
Warning
Do not transmit RF signals through an antenna without a Band-Pass Filter (BPF)!
Unfiltered signals may cause harmful interference and violate regulatory limits.
Name | Link | Image | Qty |
---|---|---|---|
Raspberry Pi Zero 2 W | Amazon | ![]() |
1 |
PCB Edge - Straight SMA Female Connector | Amazon | ![]() |
1 |
WS2812B SMD 5050 RGB NeoPixel | Amazon | ![]() |
1 |
1x40-Pin 2.54mm Header | Amazon | ![]() |
1 |
USB-C Female Connector (Panel Mount) | Amazon (See Note I) | ![]() |
1 |
M2x0.4 Heat-Set Thread Insert | Amazon (See Note II) | ![]() |
- D3*H2.5 (or D3*H3) ×4 - D3*H2 ×2 |
M2x0.4 Flat Head Screws (6mm) | Amazon | ![]() |
4 |
M2x0.4 Ultra-Low Head Torx Screws (5mm) | Amazon | ![]() |
2 |
Aluminum Heat Sink (for Pi) | Amazon | ![]() |
1 |
IPEX 1 SMT Connector (optional) | Amazon | ![]() |
1 |
2.4G WiFi/BT FPC Antenna (optional) | Amazon | ![]() |
1 |
Note

The "panel mount" is actually a custom FR-4 PCB with a USB-C female port cutout. Most Amazon listings won't match the precise size (⌀16 mm between mounting holes).
If you're lucky, you'll get a close match — otherwise, it's best to use the Gerber files provided in this repository. You can upload them to a PCB manufacturer like JLCPCB with the following settings:
- Thickness:
1.6 mm
- Material:
FR-4
- Copper:
1oz
- Solder mask color: your choice
Then, purchase a standard USB-C female breakout board and solder it edge-mounted to the PCB. This gives you a clean and sturdy "USB-C Female PCB Panel Mount."
If you’re using the 3D-printed case STL files provided in this repository, print them with FDM, not SLA!
SLA resin prints are too brittle for heat-set inserts and may crack or warp under pressure or heat.
Use FDM printers with standard PLA, PETG, or ABS for reliable mechanical strength and heat resistance when inserting the M2 thread inserts.
Tool | Image |
---|---|
Wire Wrapping Wire (~30AWG) | |
24 AWG Electrical Wire | |
UV Solder Mask Ink | |
UV Flashlight | |
Soldering Tools | - Solder - Solder Paste - Soldering Iron - ESD Tweezers (optional, for IPEX install) |
Video
A full step-by-step assembly video will be made when time permits.
For now, here’s a preview of the completed assembly:
SMA Connector
Note
SMA Connector – Why Use UV Solder Mask Ink?
The RF output of rpi-sdr-tx
is transmitted through GPIO4.
If you're soldering an SMA connector directly to the edge of the Pi, take note:
- GPIO4 is surrounded by 5V, 3.3V, and GND pins.
- Accidental bridging during soldering could damage the Pi.
- Apply UV solder mask ink around these power pins to insulate and protect adjacent pads before soldering.
This precaution ensures safe RF output without risking a short circuit.
Case
- Flash Raspberry Pi OS (Bookworm Lite, 32-bit armhf) to your SD card.
Note
Only 32-bit is supported by rpitx
.
Be sure to add your Wi-Fi configuration before first boot, as we will SSH into the Pi.
-
Run:
sudo apt update && sudo apt -y full-upgrade sudo reboot
-
Install Git and clone this repo:
sudo apt install git git clone https://github.com/KaliAssistant/rpi-sdr-tx.git
-
Enter the repository and run the installer:
cd rpi-sdr-tx ./install.sh
-
The script modifies boot configs, so if prompted, type
y
to continue. -
After installation, the Pi will reboot. You’ll see RNDIS Ethernet on your PC.
Add a static IP:172.16.48.254/24
(no gateway) on your host system. -
SSH into the Pi:
ssh <user>@172.16.48.1
INSTALL_SPEEDRUN.MP4
Want to build the image yourself? Switch to the builder
branch:
-
Create a Debian/Ubuntu/Kali (Debian-based) VM or Docker container.
(Tested with VMware)
-
Clone the builder branch:
git clone https://github.com/KaliAssistant/rpi-sdr-tx.git -b builder
-
Setup builder config:
cd rpi-sdr-tx cp ./builder.txt.example ./builder.txt
Edit
builder.txt
to set mirror URLs, USB serial ID, etc. -
Run the build script as
root
:sudo ./rpi02w.sh
-
Build will take ~1 hour. ☕ Grab a coffee.
-
After success, check
./build-image/
for your image and checksum. -
Flash the image using Raspberry Pi Imager (recommended) or balenaEtcher.
The Pi Imager allows you to set hostname, username, password, Wi-Fi, SSH, etc. -
On first boot, the Pi Zero 2 W will auto-resize partition 2 and rootfs, then reboot.
If you didn’t set Wi-Fi, manually configure172.16.48.254
(no gateway) on your host to SSH via RNDIS USB Ethernet.
BUILD_SPEEDRUN.MP4
Demo:
AUDIO_TEST_1MIN.MP4
rpitx
— RF transmitter core by F5OEOlibusbgx
— USB gadget helpergt
— USB gadget config toolbcm2835-1.75
— BCM2835 GPIO library by Mike McCauley (GPLv3)inih
— INI parser by Ben Hoyt (New BSD License)
This repository is licensed under GPLv3
© KaliAssistant <work.kaliassistant.github@gmail.com>