
PIrateRF verwandelt deinen Raspberry Pi Zero W in einen tragbaren RF-Signalgenerator, der einen eigenen WiFi-Hotspot bereitstellt. Steuere alles von FM-Übertragungen bis zu digitalen Modi über deinen Browser – hacke die Luftwellen von überall aus! 📡⚡

PIrateRF verwandelt deinen Raspberry Pi Zero W in einen tragbaren HF-Signalgenerator, der seinen eigenen WiFi-Hotspot erstellt. Steuere alles von FM-Übertragungen bis zu digitalen Modi über deinen Browser – hacke die Ätherwellen von überall! 📡⚡
🎬 Klicke hier für das PIrateRF-Promo-Video
📺 Klicke hier für das PIrateRF-Showcase-Video
⚠️ RECHTLICHER HINWEIS
PIrateRF wurde für Amateurfunk-Experimente und -Bildung entwickelt – einschließlich sicherer Innenraumtests ohne externe Antennen. Entwickelt für Ingenieure, die verstehen, dass gute HF-Praktiken mehr zählen als willkürliche Verwaltungsgrenzen. Die Nutzer sind für die Einhaltung aller lokalen HF-Vorschriften und Lizenzanforderungen verantwortlich. Ich bin nicht verantwortlich für irgendwelche deiner dummen Scheißentscheidungen!
Alle Demonstrationsbilder und Tests in dieser Dokumentation wurden drinnen ohne Antenne durchgeführt, mit einer maximalen Reichweite von etwa 5 Metern.
Alles gesteuert über einen eigenständigen WiFi-Zugangspunkt – verbinde ein beliebiges Gerät und beginne zu senden wie der HF-Rebell, der du sein solltest! Perfekt für Operationen in internationalen Gewässern und Regionen mit mehr... flexiblen Spektrumspolitiken.
Überspringe den ganzen Build-Quatsch und komm direkt zum HF-Chaos:
.img-Datei aussudo dd if=piraterf_2025-11-23_22-18-49.img of=/dev/sdX bs=4M status=progress (ersetze /dev/sdX durch deine SD-Karte)https://piraterf.local und beginne sofort mit dem Senden!Standardeinstellungen:
fucker, Passwort FUCKER, Hostname piraterf.localBevor du IRGENDETWAS anderes tust, verbinde deinen verdammten Pi Zero W und mache ihn per SSH zugänglich. Folge diesem Tutorial, das tatsächlich funktioniert:
👉 Pi Zero W USB-Verbindungs-Tutorial
Dadurch wird dein Pi Zero per USB mit SSH-Zugriff verbunden, sodass du PIrateRF tatsächlich auf den kleinen Bastard deployen kannst.
🌐 INTERNETFREIGABE ERFORDERLICH: Nachdem die USB-Verbindung funktioniert, MUSST du das Internet von deinem Computer mit dem Pi Zero teilen. Die Setup-Skripte müssen Pakete und Abhängigkeiten herunterladen – kein Internet, kein HF-Chaos.
Internetfreigabe unter Ubuntu/Linux einrichten:
Verbindung auf „Geteilt“ setzen: In den Ubuntu-Netzwerkeinstellungen die USB-Verbindung (normalerweise usb0) finden, darauf klicken, zu den IPv4-Einstellungen gehen und die Methode von „Nur Link-Local“ auf „Mit anderen Computern teilen“ ändern
Docker-Dienste stoppen (sie stören die Vernetzung):```bash sudo systemctl stop docker.socket sudo systemctl stop docker
3. **NetworkManager neu starten**:```bash
sudo systemctl restart NetworkManager
usb0 und enp5s0 durch Ihre tatsächlichen Schnittstellen):```bash
sudo iptables -A FORWARD -i usb0 -o enp5s0 -j ACCEPT
sudo iptables -A FORWARD -i enp5s0 -o usb0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 10.42.0.0/24 -o enp5s0 -j MASQUERADE5. **Testen Sie es**: Verbinden Sie sich per SSH mit Ihrem Pi: `ssh [email protected]` (oder mit dem von Ihnen eingerichteten [email protected]) und führen Sie `ping 8.8.8.8` aus – wenn das funktioniert, sind Sie bereit, ein wenig RF-Chaos zu verursachen!
**Finden Sie Ihre Schnittstellen**: Verwenden Sie `ip link show`, um `usb0` (Pi-Verbindung) und Ihre Hauptinternetschnittstelle zu sehen.
### 1. Erste Einrichtung```bash
# Clone the repository
git clone https://github.com/psyb0t/piraterf.git
cd piraterf
# Configure your Pi settings
nano scripts/pi_config.sh
# Set: PI_USER, PI_HOST, PI_PASS, AP_SSID, AP_PASSWORD
Beispielkonfiguration (an Ihre Pi-Einrichtung anpassen):```bash PI_USER="fucker" # Pi username PI_HOST="piraterf.local" # Pi hostname/IP PI_PASS="FUCKER" # Pi password
AP_SSID="🏴☠️📡" # WiFi AP name AP_PASSWORD="FUCKER!!!" # WiFi AP password AP_CHANNEL="7" # WiFi channel (1-14) AP_COUNTRY="US" # Country code
### 2. Vollständige Pi-Einrichtung```bash
# Run the full automated setup
make pi
This command will:
https://piraterf.localConnect multiple devices to the PIrateRF access point and all access the web interface simultaneously! While only one transmission can run at a time (because GPIO doesn't fucking share), all connected devices see real-time transmission status, output logs, and can take turns controlling the RF transmissions. Perfect for fucking around with friends in a radio wave gangbang! 📡💥
Multi-Device Features:
Connect your antenna to GPIO 4 (Physical Pin 7) on the Pi Zero W:
⚠️ WARNING: The Raspberry Pi GPIO outputs square waves with harmonics across the entire spectrum. For proper outdoor transmission, you MUST use appropriate low-pass filters to suppress spurious emissions and comply with RF regulations. Without filtering, you're broadcasting on multiple frequencies simultaneously.

Full FM broadcasting with RDS support:
Configuration Options:
Upload Process: Files automatically converted via FFmpeg to 48kHz/16-bit/mono WAV format and saved to
./files/audio/uploads/
Reception:
Applications: Underground radio broadcasting, music streaming, podcasting, community radio, pirate radio stations, rickrolling entire neighborhoods


Real-time microphone streaming with configurable modulation:
Configuration Options:
Reception:
Applications: Live commentary, emergency communications, amateur radio nets, real-time broadcasting, broadcast your burps, go live on radio while in the moshpit


Ultra-weak signal digital mode for HF DX:
Configuration Options:
Reception:
Applications: Long-range DX contacts, weak signal communication, intercontinental contacts, confusing the fuck out of contesters


Classic digital text communication:
Configuration Options:
Reception:
Applications: Digital text communication, news bulletins, teletype messaging, sending ASCII art over RTTY


Binary frequency shift keying for data transmission:
Configuration Options:
Upload Process: Files moved as-is (no conversion) to
./files/data/uploads/preserving original extension
Reception:
Hinweis: pw-record --target=81 erfasst Audio vom PulseAudio-Monitor-Sink (Ihre SDR-Software-Ausgabe). Ändern Sie den --rx-Parameter, um Ihrer gewählten Baudrate zu entsprechen. Die aktuelle Implementierung funktioniert am besten mit Baudraten von 50-100.
Anwendungen: Digitale Mitteilungen, Dateiübertragung, Packet Radio, Datenübertragung, Amateurfunk-Digitalmodi, Versenden von Pornografie wie zu DFÜ-Zeiten


Digitales Pager-Nachrichtensystem:
Konfigurationsoptionen:
Empfang:
Hinweis: pw-record --target=81 erfasst Audio vom PulseAudio-Monitor-Sink (Ihre SDR-Software-Ausgabe). Ändern Sie den multimon-ng-Modus basierend auf Ihrer gewählten Baudrate:
-a POCSAG512-a POCSAG1200-a POCSAG2400Anwendungen: Notruf-Funksysteme, Alarmmeldungen, Pager-Nachrichten, Massenbenachrichtigungs-Chaos, 90er-Jahre-Nostalgie-Bombardement


Traditionelle CW-Übertragung:
Konfigurationsoptionen:
Empfang:
Hinweis: pw-record --target=81 erfasst Audio vom PulseAudio-Monitor-Sink (Ihre SDR-Softwareausgabe). Die Parameter -d (Verzögerung) und -g (Verstärkung) sollten basierend auf Ihrer Übertragungsrate (Striche pro Minute) angepasst werden. Höhere Raten erfordern niedrigere Verzögerungswerte, niedrigere Raten benötigen höhere Verzögerungswerte für eine korrekte Dekodierung.
Anwendungen: Morse-Code-Übung, Beacon-Übertragungen, Notfallkommunikation, unanständige Nachrichten in CW senden, Beacon-Spam


Einfache Trägererzeugung zum Testen:
Konfigurationsoptionen:
Empfang:
Anwendungen: Antennenabstimmung, Senderprüfung, SWR-Messungen, Dead-Carrier-Trolling, HF-Schaltungstest


Automatische Frequenzdurchläufe für HF-Analyse:
Konfigurationsoptionen:
Empfang:
Anwendungen: Antennenanalyse, Filterprüfung, Frequenzgangmessungen, Wobbeln wie ein Verrückter, Antennen-Quältests


Bildübertragung per Slow Scan Television:
Konfigurationsoptionen:
Upload-Vorgang: Bilder werden via ImageMagick in das RGB-Format 320x256 (.rgb-Erweiterung) für SSTV-Übertragung konvertiert und unter
./files/images/uploads/gespeichert (Spectrum-Paint-.Y-Dateien sind ebenfalls verfügbar, sofern zuvor hochgeladen)
Empfang:
Anwendungen: Bildübertragung per Funk, Amateurfunk-SSTV, visuelle Kommunikation, Hahn-Bild-Übertragung – sieh dir diesen riesigen Arschhahn an

Bilder in HF-Spektrum-Kunst umwandeln:
Konfigurationsoptionen:
Upload-Vorgang: Bilder werden via ImageMagick in das YUV-Format (.Y-Erweiterung) für Spectrum Paint UND in das RGB-Format 320x256 (.rgb-Erweiterung) für SSTV konvertiert, beide unter
./files/images/uploads/gespeichert
Empfang:
Anwendungen: HF-Spektrum-Kunst, Spektrumsvisualisierung, Signalanalyse-Demonstrationen, Schwanzbilder auf Wasserfälle malen, Spektrum-Graffiti


Wiedergabe von rohen IQ-Sample-Dateien zur Signalreproduktion:
Konfigurationsoptionen:
Upload-Vorgang: IQ-Dateien werden unverändert (keine Konvertierung) nach
./files/iqs/uploads/verschoben, wobei die .iq-Erweiterung erhalten bleibt
Empfang:
Anwendungen: Signalwiedergabe, Repeater-Aufnahme/-Wiedergabe, Test und Validierung, Signalanalyse, Reproduktion komplexer Modulationen, SDR-Aufnahme-Wiedergabe, HF-Fingerabdruck-Forschung
Hör auf, jedes Mal dieselben verdammten Parameter einzugeben! PIrateRF enthält ein vollständiges Verwaltungssystem für Voreinstellungen:
Funktionen:
Verwendung:
Speicherung:
Voreinstellungen werden als JSON-Dateien in files/presets/{modulename}/ gespeichert und können gesichert, geteilt oder versioniert werden. Perfekt, um deine Lieblings-Türklingel-Wiedergabekonfigurationen, FM-Rundfunk-Setups oder FT8-Konfigurationen zu verwalten!
make run-dev # Run locally with development setup make build # Cross-compile for Pi Zero ARM make lint-fix # Format and lint code make test-coverage # Run tests with coverage
### Pi-Verwaltung```bash
make pi # Complete automated setup
make deploy # Deploy to Pi
make install # Install systemd service
make ssh # SSH into Pi
make pi-reboot # Reboot Pi
make uninstall # Remove from Pi
make pi-image # Clone and shrink Pi SD card image
piraterf/ ├── cmd/ # Application entry points ├── internal/pkg/services/ │ └── piraterf/ # Core service implementation │ ├── http_server.go # Web server and API │ ├── websocket*.go # Real-time communication │ ├── audio_.go # Audio processing │ ├── image_.go # Image processing │ ├── preset_.go # Preset management │ └── execution_.go # RF transmission management ├── scripts/ # Setup and deployment scripts ├── html/ # Web interface templates ├── static/ # Frontend assets (CSS/JS/images) ├── files/ # Runtime file storage │ ├── audio/ # Audio files (uploads, SFX) │ ├── images/ # Image files (uploads) │ ├── data/ # Data files for FSK │ ├── iqs/ # IQ sample files │ └── presets/ # Per-module preset configurations │ ├── pifmrds/ # FM broadcast presets │ ├── sendiq/ # IQ transmission presets │ └── ... # Other module presets └── uploads/ # Temporary upload staging
## 🏴☠️ Rechtliche Hinweise und Sicherheitshinweise
**⚠️ WICHTIGE RECHTLICHE ANFORDERUNGEN ⚠️**
### Erforderliche Amateurfunklizenz
- **Die meisten Frequenzen erfordern eine Amateurfunklizenz**
- FT8, RTTY, FSK, SSTV und die meisten HF/VHF/UHF-Betriebsarten benötigen eine entsprechende Lizenz
- Überprüfen Sie die Anforderungen Ihrer lokalen Amateurfunkbehörde (FCC/Ofcom usw.)
### Frequenzvorschriften
- **Bleiben Sie in den Amateurbändern**: Nutzen Sie nur Frequenzen, die dem Amateurfunk zugewiesen sind
- **Leistungsgrenzen**: Der Pi Zero gibt nur wenige Milliwatt ab – wenn Sie einen Verstärker verwenden, beachten Sie die maximalen Leistungsgrenzen Ihrer Lizenzklasse
- **Nebenaussendungen**: Verwenden Sie stets geeignete Tiefpassfilter
- **Keine kommerziellen Inhalte**: Amateurfunk verbietet geschäftliche Kommunikation
### Hardwareanforderungen (für ordnungsgemäße Nutzung)
- **Tiefpassfilter sind Pflicht**: Die Pi-GPIOs erzeugen Rechteckwellen mit Harmonischen im gesamten Spektrum
- **Geeignete Antenne**: Verwenden Sie resonante Antennen für Ihre Betriebsfrequenz
- **Ausgangsleistung**: Die Pi-Zero-GPIOs liefern nur wenige Milliwatt – wenn Sie mehr Reichweite wünschen, benötigen Sie einen geeigneten Verstärker und Tiefpassfilter
- **SWR-Überwachung**: Bei Milliwatt-Leistung ist dem Pi das SWR egal, aber wenn Sie einen Verstärker verwenden, benötigen Sie eine ordnungsgemäße Impedanzanpassung, sonst braten Sie Ihren Verstärker
### Geografische Beschränkungen
- **Bandpläne variieren je nach Land**: Die Amateurfunk-Zuweisungen in den USA, Europa und Asien unterscheiden sich
- **Leistungsgrenzen variieren**: Überprüfen Sie die örtlichen Vorschriften für Ihre Lizenzklasse
- **Notruffrequenzen**: Stören Sie niemals den Notfunk oder die öffentliche Sicherheit
### 🏠 Test- und Experimentierbetrieb in Innenräumen
- **Keine Antenne = minimale Reichweite**: Ohne ordnungsgemäße Antenne sind die Signale extrem schwach und auf Ihr Zuhause beschränkt
- **Testen und Lernen**: Ideal zum Verständnis von HF-Konzepten, digitalen Betriebsarten und Softwarefunktionen
- **Protokollentwicklung**: Testen Sie Kodierung/Dekodierung ohne externe Aussendung
- **Lehrzwecke**: Lernen Sie sicher in Innenräumen über Modulation, Filterung und Signalverarbeitung
## 📡 Standard-Arbeitsfrequenzen
PIrateRF unterstützt das gesamte Amateurfunk-Spektrum. Hier sind übliche Frequenzen für jede Betriebsart:
### HF-Amateurfunkbänder (3-30 MHz)
- **80m**: 3,5-4,0 MHz | **40m**: 7,0-7,3 MHz | **30m**: 10,1-10,15 MHz
- **20m**: 14,0-14,35 MHz | **17m**: 18,068-18,168 MHz | **15m**: 21,0-21,45 MHz
- **12m**: 24,89-24,99 MHz | **10m**: 28,0-29,7 MHz
### VHF/UHF-Amateurfunkbänder
- **2m**: 144-148 MHz (FM: 144,0-148,0 MHz, Relais: 146,0-148,0 MHz Ausgabe)
- **1,25m**: 222-225 MHz | **70cm**: 420-450 MHz (Relais: 440-450 MHz Ausgabe)
### FT8-Standardfrequenzen (USB-Modus)
- **80m**: 3,573 MHz | **40m**: 7,074 MHz | **30m**: 10,136 MHz
- **20m**: 14,074 MHz | **17m**: 18,100 MHz | **15m**: 21,074 MHz | **10m**: 28,074 MHz
### RTTY-Standardfrequenzen (USB-Modus)
- **80m**: 3,580-3,600 MHz | **40m**: 7,035-7,045 MHz | **30m**: 10,130-10,150 MHz
- **20m**: 14,070-14,099 MHz | **15m**: 21,070-21,100 MHz | **10m**: 28,070-28,120 MHz
### SSTV-Standardfrequenzen
- **80m**: 3,736 MHz (LSB) | **40m**: 7,055 MHz (LSB)
- **20m**: 14,233 MHz (USB) | **15m**: 21,343 MHz (USB) | **10m**: 28,667 MHz (USB)
- **2m**: 144,55 MHz (FM)
### FM-Relais-Standardabstände
- **2m**: Eingang 144-146 MHz, Ausgang 146-148 MHz (0,6 MHz Abstand)
- **70cm**: Eingang 420-430 MHz, Ausgang 440-450 MHz (5 MHz Abstand)
## 🔗 Kernabhängigkeiten
- **[rpitx](https://github.com/F5OEO/rpitx)** - HF-Sende-Bibliothek für Raspberry Pi GPIO
- **[gorpitx](https://github.com/psyb0t/gorpitx)** - Go-Wrapper, der eine saubere API für rpitx bereitstellt
- **[servicepack](https://github.com/psyb0t/servicepack)** - Entwicklungs- und Bereitstellungs-Framework
- **[aichteeteapee](https://github.com/psyb0t/aichteeteapee)** - HTTP-Server mit WebSocket-Unterstützung
## 📝 Lizenz
Dieses Projekt ist unter der WTFPL (Do What The Fuck You Want To Public License) lizenziert.
## TODO
- (gorpitx) 1 weitere Sekunde Träger zur RTTY-Übertragung hinzufügen
- (gorpitx) Minimodem in FSK loswerden und etwas anderes verwenden
- (gorpitx) Wortabstand im Morsecode korrigieren
- Tatsächlich nachweisen, dass SSTV funktioniert (mit qsstv und verschiedenen Einstellungen + verschiedenen Zuhörern versucht, aber Fehlanzeige)
- UI-Hilfe-Overlays hinzufügen: Modusinformations-Buttons, die erklären, was jeder Übertragungsmodus bewirkt + Tooltips pro Eingabefeld, die erklären, was jede Konfigurationsoption ändert
- Den verdammten UI-Header reparieren, damit er nicht mehr so ein Rechteck ist, das den Schatten versaut, lol
**🏴☠️ Jetzt geh raus und sende wie der RF-Pirat, der du sein sollst! 📡**
_Denke daran: Mit großer HF-Leistung kommt große Verantwortung. Halte dich stets an die gesetzlichen Vorschriften und sei kein Arschloch gegenüber anderen Funkamateuren._
---
_Erbaut mit Bosheit unter Verwendung von https://github.com/psyb0t/servicepack_