# f5oeo/rpitx

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/f5oeo-rpitx).**

4,433 stars · 575 forks · C · gpl-3.0

## Links

- GitHub: https://github.com/F5OEO/rpitx
- awesome-repositories: https://awesome-repositories.com/repository/f5oeo-rpitx.md

## Description

rpitx is a software-defined radio transmitter that runs on a Raspberry Pi, generating radio frequency signals from 5 KHz to 1500 MHz using only a GPIO pin. It functions as an analog and digital modulator, an RF signal generator, a radio protocol emulator, and a signal capture and replay system, all without requiring additional hardware.

The project achieves this by combining sample precomputation, direct memory-mapped GPIO toggling, and an interrupt-free timing loop to produce precise carrier frequencies and modulation patterns. It supports a wide range of modulation types including AM, FM, Single Side Band, and digital modes, and can emulate radio protocols such as pager messages, beacon signals, and Radio Data System text.

Beyond basic transmission, rpitx can record incoming RF signals and replay them, and it includes a transmodulation signal chain that demodulates a signal on one frequency and retransmits it on another with a different modulation type. It also supports slow scan television transmission and can generate patterns for spectrum analyzer art. The project is implemented in C and provides command-line tools for direct signal generation and transmission.

## Tags

### Operating Systems & Systems Programming

- [Software-Defined Radio Transmitters](https://awesome-repositories.com/f/operating-systems-systems-programming/raspberry-pi-systems-programming/software-defined-radio-transmitters.md) — Generates radio frequency signals from 5 KHz to 1500 MHz using only a Raspberry Pi GPIO pin for wireless transmission and experimentation.
- [Interrupt-Free Timing Loops](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-execution-context-layering/interrupt-handlers/interrupt-free-timing-loops.md) — Maintains carrier frequency accuracy by running a tight CPU-bound loop that avoids operating system interrupts and context switches.

### Hardware & IoT

- [Analog Voice Transmissions](https://awesome-repositories.com/f/hardware-iot/analog-voice-transmissions.md) — Modulates voice signals using Single Side Band for ham radio communication. ([source](https://github.com/F5OEO/rpitx#readme))
- [Analog and Digital Modulators](https://awesome-repositories.com/f/hardware-iot/digital-voice-transmissions/analog-and-digital-modulators.md) — Modulating signals using AM, FM, Single Side Band, and digital modes for voice and data transmission.
- [Memory-Mapped GPIO Togglers](https://awesome-repositories.com/f/hardware-iot/gpio-pin-controllers/memory-mapped-gpio-togglers.md) — Generates precise radio frequencies by directly manipulating the Raspberry Pi's GPIO pins through memory-mapped register access at the nanosecond level.
- [Custom Waveform Generation](https://awesome-repositories.com/f/hardware-iot/radio-frequency-signal-processing/custom-waveform-generation.md) — Creates custom waveforms, carriers, and frequency chirps for wireless transmission and experimental testing.
- [Broadband RF Generators](https://awesome-repositories.com/f/hardware-iot/radio-frequency-signal-processing/modulated-signal-generators/broadband-rf-generators.md) — Generating custom RF signals from 5 KHz to 1500 MHz using a Raspberry Pi GPIO pin for wireless experimentation and testing.
- [Real-Time Transmodulation](https://awesome-repositories.com/f/hardware-iot/radio-frequency-signal-processing/real-time-transmodulation.md) — Receives a signal on one frequency, demodulates it, and retransmits it on another frequency with a different modulation type. ([source](https://github.com/F5OEO/rpitx#readme))
- [Broadband RF Generators](https://awesome-repositories.com/f/hardware-iot/radio-frequency-signal-processing/rf-transmitters/broadband-rf-generators.md) — Generates RF signals from 5 KHz to 1500 MHz directly from a Raspberry Pi GPIO pin without additional hardware. ([source](https://github.com/F5OEO/rpitx#readme))
- [Analog and Digital Modulators](https://awesome-repositories.com/f/hardware-iot/radio-modulations/analog-and-digital-modulators.md) — Supports AM, FM, SSB voice, and digital modulation modes for ham radio and experimental communication.
- [Signal Replayers](https://awesome-repositories.com/f/hardware-iot/rf-signal-sampling/signal-replayers.md) — Records incoming RF signals and retransmits them later for protocol analysis and testing.
- [Frequency Synthesizers](https://awesome-repositories.com/f/hardware-iot/software-defined-radios/frequency-synthesizers.md) — Creates arbitrary carrier frequencies by toggling the GPIO pin at calculated intervals without a dedicated hardware oscillator.
- [Digital Data Protocol Transmitters](https://awesome-repositories.com/f/hardware-iot/digital-voice-transmissions/digital-data-protocol-transmitters.md) — Emits digital modulation modes including pager signals, digital voice, and beacon signals. ([source](https://github.com/F5OEO/rpitx#readme))
- [RDS Broadcasting](https://awesome-repositories.com/f/hardware-iot/radio-frequency-transmitters/fm-transmitters/rds-broadcasting.md) — Transmits FM radio signals that include Radio Data System metadata for reception by standard FM receivers. ([source](https://github.com/F5OEO/rpitx#readme))

### Networking & Communication

- [Multi-Protocol Radio Transmitters](https://awesome-repositories.com/f/networking-communication/data-streaming/radio/multi-protocol-radio-transmitters.md) — Emits pager messages, beacon signals, RDS data, and SSTV images for testing and decoding by standard receivers.
- [Protocol Emulators](https://awesome-repositories.com/f/networking-communication/data-streaming/radio/multi-protocol-radio-transmitters/protocol-emulators.md) — Emitting pager messages, beacon signals, and Radio Data System text to simulate or test radio communication protocols.

### Software Engineering & Architecture

- [Modulation Scheme Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/abstraction-layers/modulation-scheme-abstractions.md) — Encodes different modulation types by mapping them to a common sample-generation interface that produces the appropriate GPIO toggle patterns.
- [Waveform Buffer Precomputers](https://awesome-repositories.com/f/software-engineering-architecture/memory-buffering/waveform-buffer-precomputers.md) — Prepares entire waveform buffers in memory before transmission to eliminate real-time computation overhead during signal generation.

### Graphics & Multimedia

- [Slow Scan Television Modulation](https://awesome-repositories.com/f/graphics-multimedia/audio-driven-modulation/slow-scan-television-modulation.md) — Sending picture data via SSTV audio modulation for reception by compatible software and decoding. ([source](https://github.com/F5OEO/rpitx#readme))
