
PIrateRF trasforma il tuo Raspberry Pi Zero W in un generatore di segnali RF portatile che crea il proprio hotspot WiFi. Controlla tutto, dalle trasmissioni FM ai modi digitali, tramite il tuo browser - hackerare le onde radio da qualsiasi luogo! 📡⚡

PIrateRF trasforma il tuo Raspberry Pi Zero W in un generatore di segnali RF portatile che crea il proprio hotspot WiFi. Controlla tutto, dalle trasmissioni FM ai modi digitali, attraverso il tuo browser - hackerai le onde radio da qualsiasi luogo! 📡⚡
🎬 Clicca qui per il video promozionale di PIrateRF
📺 Clicca qui per il video di presentazione di PIrateRF
⚠️ AVVISO LEGALE
PIrateRF è progettato per la sperimentazione e l'educazione radioamatoriale - incluso test interni sicuri senza antenne esterne. Creato per ingegneri che sanno che le buone pratiche RF contano più dei confini amministrativi arbitrari. Gli utenti sono responsabili del rispetto di tutte le normative RF locali e dei requisiti di licenza. Non sono responsabile per le tue stupide fottute decisioni!
Tutte le immagini dimostrative e i test in questa documentazione sono stati eseguiti al chiuso senza antenna, con una portata massima di circa 5 metri.
Tutto controllato tramite un punto di accesso WiFi autonomo - connetti qualsiasi dispositivo e inizia a trasmettere come il ribelle RF che sei destinato ad essere! Perfetto per operazioni in acque internazionali e regioni con politiche dello spettro più... flessibili.
Salta tutte le stronzate di build e vai direttamente al caos RF:
.img scaricatosudo dd if=piraterf_2025-11-23_22-18-49.img of=/dev/sdX bs=4M status=progress (sostituisci /dev/sdX con la tua scheda SD)https://piraterf.local e inizia immediatamente a trasmettere!Impostazioni Predefinite:
fucker, Password FUCKER, Hostname piraterf.localPrima di fare QUALSIASI altra cosa, connetti il tuo fottuto Pi Zero W e rendilo accessibile tramite SSH. Segui questo tutorial che funziona davvero:
👉 Tutorial di Connessione USB Pi Zero W
Questo ti permetterà di connettere il tuo Pi Zero tramite USB con accesso SSH in modo da poter effettivamente distribuire PIrateRF su quel piccolo bastardo.
🌐 CONDIVISIONE INTERNET RICHIESTA: Dopo che la connessione USB funziona, DEVI condividere Internet dal tuo computer al Pi Zero. Gli script di configurazione devono scaricare pacchetti e dipendenze - niente Internet, niente caos RF.
Configurare la condivisione Internet su Ubuntu/Linux:
Imposta la connessione come condivisa: In Impostazioni di Rete di Ubuntu, trova la connessione USB (di solito usb0), cliccaci sopra, vai alle impostazioni IPv4, e cambia il metodo da "Solo collegamento locale" a "Condiviso con altri computer"
Ferma i servizi Docker (interferiscono con la rete):```bash sudo systemctl stop docker.socket sudo systemctl stop docker
3. **Riavvia NetworkManager**:```bash
sudo systemctl restart NetworkManager
usb0 e enp5s0 con le tue interfacce reali):```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. **Provalo**: Accedi tramite SSH al tuo Pi con `ssh [email protected]` (o qualunque [email protected] tu abbia impostato) ed esegui `ping 8.8.8.8` - se funziona, sei pronto a causare un po' di caos RF!
**Trova le tue interfacce**: Usa `ip link show` per vedere `usb0` (connessione Pi) e la tua interfaccia internet principale.
### 1. Configurazione Iniziale```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
Configurazione di esempio (modifica per adattarla alla configurazione del tuo Pi):```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. Configurazione completa del Pi```bash
# Run the full automated setup
make pi
Questo comando:
https://piraterf.localCollega più dispositivi al punto di accesso PIrateRF e accedi tutti contemporaneamente all'interfaccia web! Mentre solo una trasmissione può essere eseguita alla volta (perché GPIO non cazzo condivide), tutti i dispositivi collegati vedono lo stato della trasmissione in tempo reale, i log di output e possono alternarsi nel controllo delle trasmissioni RF. Perfetto per divertirsi con amici in un'orgia di onde radio! 📡💥
Funzionalità Multi-Dispositivo:
Collega la tua antenna al GPIO 4 (Pin Fisico 7) sul Pi Zero W:
⚠️ AVVISO: Il Raspberry Pi produce onde quadre sui pin GPIO con armoniche su tutto lo spettro. Per trasmissioni esterne corrette, DEVI utilizzare filtri passa-basso appropriati per sopprimere le emissioni spurie e rispettare le normative RF. Senza filtraggio, stai trasmettendo su più frequenze contemporaneamente.

Trasmissione FM completa con supporto RDS:
Opzioni di Configurazione:
Processo di Caricamento: I file vengono automaticamente convertiti tramite FFmpeg in formato WAV 48kHz/16 bit/mono e salvati in
./files/audio/uploads/
Ricezione:
Applicazioni: Trasmissioni radio underground, streaming musicale, podcasting, radio comunitarie, stazioni radio pirata, rickrolling di interi quartieri


Streaming microfono in tempo reale con modulazione configurabile:
Opzioni di Configurazione:
Ricezione:
Applicazioni: Commenti in diretta, comunicazioni di emergenza, reti radioamatoriali, trasmissioni in tempo reale, trasmetti i tuoi rutti, vai in diretta radio mentre sei nel moshpit


Modalità digitale per segnali ultra-deboli per HF DX:
Opzioni di Configurazione:
Ricezione:
Applicazioni: Contatti DX a lunga distanza, comunicazione a segnale debole, contatti intercontinentali, confondere un casino i contestatori


Comunicazione testuale digitale classica:
Opzioni di Configurazione:
Ricezione:
Applicazioni: Comunicazione testuale digitale, bollettini notizie, messaggistica telescrivente, invio di arte ASCII su RTTY


Modulazione binaria a spostamento di frequenza per trasmissione dati:
Opzioni di Configurazione:
Processo di Caricamento: I file vengono spostati così come sono (nessuna conversione) in
./files/data/uploads/mantenendo l'estensione originale
Ricezione:
Nota: pw-record --target=81 cattura l'audio dal monitor sink di PulseAudio (l'output del tuo software SDR). Modifica il parametro --rx in base alla velocità di baud selezionata. L'implementazione attuale funziona meglio con velocità di 50-100 baud.
Applicazioni: Bollettini digitali, trasferimento file, packet radio, trasmissione dati, modi digitali radioamatoriali, invio di pornografia come ai tempi del dialup


Sistema di messaggistica per cercapersone digitale:
Opzioni di configurazione:
Ricezione:
Nota: pw-record --target=81 cattura l'audio dal monitor sink PulseAudio (l'output del tuo software SDR). Cambia la modalità di multimon-ng in base al baud rate selezionato:
-a POCSAG512-a POCSAG1200-a POCSAG2400Applicazioni: Sistemi di cercapersone di emergenza, notifiche di allerta, messaggistica cercapersone, caos di notifica di massa, bombardamento nostalgico anni '90


Trasmissione CW tradizionale:
Opzioni di configurazione:
Ricezione:
Nota: pw-record --target=81 cattura l'audio dal monitor sink di PulseAudio (l'uscita del tuo software SDR). I parametri -d (ritardo) e -g (guadagno) dovrebbero essere regolati in base alla tua velocità di trasmissione (punti al minuto). Velocità più elevate richiedono valori di ritardo inferiori, velocità più basse necessitano di valori di ritardo maggiori per una decodifica corretta.
Applicazioni: Pratica del codice Morse, trasmissioni di beacon, comunicazioni di emergenza, invio di messaggi sporchi in CW, spam di beacon


Generazione semplice di portante per test:
Opzioni di Configurazione:
Ricezione:
Applicazioni: Sintonizzazione dell'antenna, test del trasmettitore, misurazioni ROS, trolling con portante morta, test di circuiti RF


Sweep di frequenza automatici per analisi RF:
Opzioni di Configurazione:
Ricezione:
Applicazioni: Analisi dell'antenna, test dei filtri, misurazioni della risposta in frequenza, oscillare come un pazzo, test di tortura dell'antenna


Trasmissione di immagini TV a scansione lenta:
Opzioni di Configurazione:
Processo di Upload: Le immagini vengono convertite tramite ImageMagick in formato RGB 320x256 (estensione .rgb) per la trasmissione SSTV, salvate in
./files/images/uploads/(file .Y di spectrum paint disponibili se caricati in precedenza)
Ricezione:
Applicazioni: Trasmissione di immagini via radio, SSTV radioamatoriale, comunicazione visiva, trasmissione di foto di galli - guarda quel bel gallone

Converte le immagini in arte spettrale RF:
Opzioni di Configurazione:
Processo di Upload: Le immagini vengono convertite tramite ImageMagick in formato YUV (estensione .Y) per spectrum paint E formato RGB 320x256 (estensione .rgb) per SSTV, entrambi salvati in
./files/images/uploads/
Ricezione:
Applicazioni: Arte spettrale RF, visualizzazione dello spettro, dimostrazioni di analisi del segnale, disegnare foto di cazzi sulle cascate, graffiti spettrali


Replica di file di campioni IQ grezzi per la riproduzione del segnale:
Opzioni di Configurazione:
Processo di Upload: I file IQ vengono spostati così come sono (nessuna conversione) in
./files/iqs/uploads/preservando l'estensione .iq
Ricezione:
Applicazioni: Replica del segnale, cattura/replica del ripetitore, test e validazione, analisi del segnale, riproduzione di modulazioni complesse, replay di catture SDR, ricerca di impronte digitali RF
Smetti di inserire gli stessi fottuti parametri ogni volta! PIrateRF include un sistema completo di gestione delle preimpostazioni:
Caratteristiche:
Utilizzo:
Archiviazione:
Le preimpostazioni sono archiviate come file JSON in files/presets/{modulename}/ e possono essere sottoposte a backup, condivise o controllate tramite versioni. Perfette per mantenere le tue configurazioni preferite di replay del campanello, impostazioni di trasmissione FM o configurazioni FT8!
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
### Gestione Pi```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
## 🏴☠️ Avviso Legale e di Sicurezza
**⚠️ REQUISITI LEGALI IMPORTANTI ⚠️**
### Licenza Radioamatoriale Richiesta
- **La maggior parte delle frequenze richiede una licenza radioamatoriale**
- FT8, RTTY, FSK, SSTV e la maggior parte delle operazioni HF/VHF/UHF necessitano di una licenza adeguata
- Verifica con la tua autorità radioamatoriale locale (FCC/Ofcom/ecc.) per i requisiti di licenza
### Regolamentazioni sulle Frequenze
- **Rimani nelle bande amatoriali**: Usa solo le frequenze assegnate al servizio radioamatoriale
- **Limiti di potenza**: Il Pi Zero emette solo pochi milliwatt - se usi un amplificatore, rispetta i limiti massimi di potenza per la tua classe di licenza
- **Emissioni spurie**: Usa sempre filtri passa-basso appropriati
- **Nessun contenuto commerciale**: La radioamatorialità proibisce comunicazioni commerciali
### Requisiti Hardware (per un uso corretto)
- **Filtri passa-basso obbligatori**: Il GPIO del Pi produce onde quadre con armoniche in tutto lo spettro
- **Antenna adeguata**: Usa antenne risonanti per la tua frequenza operativa
- **Potenza in uscita**: Il GPIO del Pi Zero emette solo pochi milliwatt - se vuoi più portata, avrai bisogno di un amplificatore adeguato e di un filtro passa-basso
- **Monitoraggio SWR**: A livelli di potenza di milliwatt, al Pi non frega niente del SWR, ma se usi un amplificatore devi avere un adattamento d'impedenza adeguato o friggi l'amplificatore
### Restrizioni Geografiche
- **I piani di banda variano per paese**: Le allocazioni radioamatoriali USA/Europa/Asia differiscono
- **I limiti di potenza variano**: Verifica le normative locali per la tua classe di licenza
- **Frequenze di emergenza**: Non interferire mai con le comunicazioni di emergenza/sicurezza pubblica
### 🏠 Test e Sperimentazione al Chiuso
- **Nessuna antenna = portata minima**: Senza un'antenna adeguata, i segnali sono estremamente deboli e confinati all'interno della tua casa
- **Test e apprendimento**: Perfetto per comprendere i concetti RF, le modalità digitali e la funzionalità del software
- **Sviluppo di protocolli**: Testa codifica/decodifica senza trasmissione esterna
- **Uso didattico**: Impara sulla modulazione, il filtraggio e l'elaborazione del segnale in sicurezza al chiuso
## 📡 Frequenze Operative Standard
PIrateRF supporta l'intero spettro radioamatoriale. Ecco le frequenze comuni per ogni modalità:
### Bande Amatoriali HF (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
### Bande Amatoriali VHF/UHF
- **2m**: 144-148 MHz (FM: 144.0-148.0 MHz, Repeaters: 146.0-148.0 MHz out)
- **1.25m**: 222-225 MHz | **70cm**: 420-450 MHz (Repeaters: 440-450 MHz out)
### Frequenze Standard FT8 (modalità USB)
- **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
### Frequenze Standard RTTY (modalità USB)
- **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
### Frequenze Standard SSTV
- **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)
### Split Standard per Ripetitori FM
- **2m**: Input 144-146 MHz, Output 146-148 MHz (0.6 MHz split)
- **70cm**: Input 420-430 MHz, Output 440-450 MHz (5 MHz split)
## 🔗 Dipendenze Principali
- **[rpitx](https://github.com/F5OEO/rpitx)** - libreria di trasmissione RF per GPIO del Raspberry Pi
- **[gorpitx](https://github.com/psyb0t/gorpitx)** - wrapper Go che fornisce un'API pulita per rpitx
- **[servicepack](https://github.com/psyb0t/servicepack)** - framework di sviluppo e distribuzione
- **[aichteeteapee](https://github.com/psyb0t/aichteeteapee)** - server HTTP con supporto WebSocket
## 📝 Licenza
Questo progetto è concesso in licenza sotto WTFPL (Do What The Fuck You Want To Public License).
## TODO
- (gorpitx) Aggiungi 1 secondo extra di portante alla trasmissione RTTY
- (gorpitx) Butta via minimodem in FSK e usa qualcos'altro
- (gorpitx) Correggi la spaziatura delle parole nel codice Morse
- Dimostra effettivamente che SSTV funziona (provato con qsstv e varie impostazioni + vari ascoltatori e niente, non ci riesco)
- Aggiungi sovrapposizioni di aiuto dell'interfaccia: pulsanti info sulla modalità che spiegano cosa fa ogni modalità di trasmissione + suggerimenti per input che spiegano cosa cambia ogni opzione di configurazione
- Risolvi il cazzo di header dell'interfaccia così non è più un fottuto rettangolo che incasina l'ombra lol
**🏴☠️ Ora esci e inizia a trasmettere come il pirata RF che sei destinato a essere! 📡**
_Ricorda: Da un grande potere RF deriva una grande responsabilità. Opera sempre legalmente e non fare lo stronzo con gli altri operatori._
---
_Costruito con dispetto usando https://github.com/psyb0t/servicepack_