
PIrateRF transforma seu Raspberry Pi Zero W em um gerador de sinal RF portátil que cria seu próprio hotspot WiFi. Controle tudo, desde transmissões FM até modos digitais, pelo seu navegador - hackeie as ondas de qualquer lugar! 📡⚡

PIrateRF transforma o seu Raspberry Pi Zero W num gerador de sinais RF portátil que cria o seu próprio hotspot WiFi. Controle tudo, desde transmissões FM até modos digitais através do seu navegador - hackeie as ondas de rádio de qualquer lugar! 📡⚡
🎬 Clique aqui para o Vídeo Promocional do PIrateRF
📺 Clique aqui para o Vídeo de Demonstração do PIrateRF
⚠️ AVISO LEGAL
O PIrateRF foi projetado para experimentação e educação em rádio amador - incluindo testes internos seguros sem antenas externas. Construído para engenheiros que entendem que boas práticas de RF importam mais que fronteiras administrativas arbitrárias. Os usuários são responsáveis pelo cumprimento de todas as regulamentações locais de RF e requisitos de licenciamento. Não sou responsável por nenhuma de suas decisões estúpidas!
Todas as imagens de demonstração e testes nesta documentação foram realizados em ambientes internos sem antena, com alcance máximo de aproximadamente 5 metros.
Todos controlados através de um ponto de acesso WiFi independente - conecte qualquer dispositivo e comece a transmitir como o rebelde RF que você nasceu para ser! Perfeito para operações em águas internacionais e regiões com políticas de espectro mais... flexíveis.
Pule toda a porcaria de compilação e vá direto ao caos RF:
.img baixadosudo dd if=piraterf_2025-11-23_22-18-49.img of=/dev/sdX bs=4M status=progress (substitua /dev/sdX pelo seu cartão SD)https://piraterf.local e comece a transmitir imediatamente!Configurações Padrão:
fucker, Senha FUCKER, Hostname piraterf.localAntes de fazer QUALQUER OUTRA COISA, conecte e acesse seu maldito Pi Zero W via SSH. Siga este tutorial que realmente funciona:
👉 Tutorial de Conexão USB para Pi Zero W
Isso conectará seu Pi Zero via USB com acesso SSH para que você possa realmente implantar o PIrateRF no pequeno desgraçado.
🌐 COMPARTILHAMENTO DE INTERNET OBRIGATÓRIO: Após a conexão USB funcionar, você DEVE compartilhar a internet do seu computador com o Pi Zero. Os scripts de configuração precisam baixar pacotes e dependências – sem internet, sem caos RF.
Configure o compartilhamento de internet no Ubuntu/Linux:
Defina a conexão como compartilhada: Nas Configurações de Rede do Ubuntu, encontre a conexão USB (geralmente usb0), clique nela, vá para as configurações de IPv4 e altere o método de "Apenas Link-Local" para "Compartilhado com outros computadores"
Pare os serviços Docker (eles interferem na rede):```bash sudo systemctl stop docker.socket sudo systemctl stop docker
3. **Reiniciar o NetworkManager**:```bash
sudo systemctl restart NetworkManager
usb0 e enp5s0 pelas suas interfaces reais):```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. **Teste**: Faça SSH no seu Pi com `ssh [email protected]` (ou qualquer [email protected] que você configurou) e execute `ping 8.8.8.8` - se funcionar, você está pronto para causar algum caos RF!
**Encontre suas interfaces**: Use `ip link show` para ver `usb0` (conexão Pi) e sua interface principal de internet.
### 1. Configuração Inicial```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
Exemplo de configuração (modifique para se adequar à sua configuração 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. Configuração Completa do Pi```bash
# Run the full automated setup
make pi
Este comando irá:
https://piraterf.localConecte vários dispositivos ao ponto de acesso PIrateRF e todos acessam a interface web simultaneamente! Embora apenas uma transmissão possa ser executada por vez (porque o GPIO não compartilha porra nenhuma), todos os dispositivos conectados veem o status da transmissão em tempo real, logs de saída e podem se revezar no controle das transmissões de RF. Perfeito para zoar com os amigos em um bacanal de ondas de rádio! 📡💥
Recursos Multi-Dispositivo:
Conecte sua antena ao GPIO 4 (Pino Físico 7) no Pi Zero W:
⚠️ AVISO: O GPIO do Raspberry Pi emite ondas quadradas com harmônicos em todo o espectro. Para transmissão externa adequada, você DEVE usar filtros passa-baixa apropriados para suprimir emissões espúrias e cumprir as regulamentações de RF. Sem filtragem, você está transmitindo em múltiplas frequências simultaneamente.

Transmissão FM completa com suporte a RDS:
Opções de Configuração:
Processo de Upload: Arquivos convertidos automaticamente via FFmpeg para formato WAV 48kHz/16-bit/mono e salvos em
./files/audio/uploads/
Recepção:
Aplicações: Radiodifusão subterrânea, streaming de música, podcasting, rádio comunitária, estações de rádio pirata, rickrolling em bairros inteiros


Streaming de microfone em tempo real com modulação configurável:
Opções de Configuração:
Recepção:
Aplicações: Comentários ao vivo, comunicações de emergência, redes de rádio amador, transmissão em tempo real, transmita seus arrotos, vá ao vivo no rádio enquanto está no moshpit


Modo digital de sinal ultra-fraco para HF DX:
Opções de Configuração:
Recepção:
Aplicações: Contatos DX de longo alcance, comunicação de sinal fraco, contatos intercontinentais, confundir a porra dos contestadores


Comunicação de texto digital clássica:
Opções de Configuração:
Recepção:
Aplicações: Comunicação de texto digital, boletins de notícias, mensagens de teletipo, envio de arte ASCII via RTTY


Chaveamento por deslocamento de frequência binário para transmissão de dados:
Opções de Configuração:
Processo de Upload: Arquivos movidos como estão (sem conversão) para
./files/data/uploads/preservando a extensão original
Recepção:
Nota: pw-record --target=81 captura áudio do monitor do PulseAudio (saída do seu software SDR). Altere o parâmetro --rx para corresponder à taxa de baud selecionada. A implementação atual funciona melhor com taxas de 50-100 baud.
Aplicações: Boletins digitais, transferência de arquivos, rádio pacote, transmissão de dados, modos digitais de rádio amador, enviar pornografia como antigamente nos modems discados


Sistema de mensagens de pager digital:
Opções de Configuração:
Recepção:
Nota: pw-record --target=81 captura áudio do sink de monitor PulseAudio (saída do seu software SDR). Altere o modo multimon-ng com base na taxa de baud selecionada:
-a POCSAG512-a POCSAG1200-a POCSAG2400Aplicações: Sistemas de paginação de emergência, notificações de alerta, mensagens de pager, caos de notificação em massa, bombardeio de nostalgia dos anos 90


Transmissão CW tradicional:
Opções de Configuração:
Recepção:
Nota: pw-record --target=81 captura áudio do monitor sink do PulseAudio (a saída do seu software SDR). Os parâmetros -d (atraso) e -g (ganho) devem ser ajustados com base na sua taxa de transmissão (pontos por minuto). Taxas mais altas exigem valores de atraso menores; taxas mais baixas precisam de valores de atraso maiores para uma decodificação adequada.
Aplicações: Prática de código Morse, transmissões de beacon, comunicações de emergência, envio de mensagens sujas em CW, spam de beacon


Geração simples de portadora para testes:
Opções de Configuração:
Recepção:
Aplicações: Ajuste de antena, teste de transmissores, medições de SWR, trolling de portadora morta, teste de circuitos de RF


Varreduras automáticas de frequência para análise de RF:
Opções de Configuração:
Recepção:
Aplicações: Análise de antenas, teste de filtros, medições de resposta em frequência, wobbulando como um maníaco, teste de tortura de antena


Transmissão de imagem em Slow Scan Television:
Opções de Configuração:
Processo de Upload: Imagens convertidas via ImageMagick para o formato RGB 320x256 (extensão .rgb) para transmissão SSTV, salvas em
./files/images/uploads/(arquivos .Y do spectrum paint também disponíveis se enviados anteriormente)
Recepção:
Aplicações: Transmissão de imagem via rádio, SSTV em rádio amador, comunicação visual, transmissão de foto de pinto - olha aquele galo enorme

Converta imagens em arte de espectro de RF:
Opções de Configuração:
Processo de Upload: Imagens convertidas via ImageMagick para formato YUV (extensão .Y) para spectrum paint E formato RGB 320x256 (extensão .rgb) para SSTV, ambos salvos em
./files/images/uploads/
Recepção:
Aplicações: Arte em espectro de RF, visualização de espectro, demonstrações de análise de sinal, desenhando paus nas waterfalls, graffiti de espectro


Reprodução de arquivo de amostras IQ brutas para reprodução de sinal:
Opções de Configuração:
Processo de Upload: Arquivos IQ movidos como estão (sem conversão) para
./files/iqs/uploads/preservando a extensão .iq
Recepção:
Aplicações: Reprodução de sinal, captura/reprodução de repetidor, teste e validação, análise de sinal, reprodução de modulações complexas, captura/reprodução SDR, pesquisa de fingerprinting de RF
Pare de inserir os mesmos porra de parâmetros toda vez! O PIrateRF inclui um sistema completo de gerenciamento de presets:
Funcionalidades:
Uso:
Armazenamento:
Presets são armazenados como arquivos JSON em files/presets/{modulename}/ e podem ser copiados, compartilhados ou versionados. Perfeito para manter suas configurações favoritas de replay de campainha, setups de transmissão FM ou configurações de 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
### Gerenciamento do 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
## 🏴☠️ Aviso Legal e de Segurança
**⚠️ REQUISITOS LEGAIS IMPORTANTES ⚠️**
### Licença de Radioamador Necessária
- **A maioria das frequências exige licença de radioamador**
- FT8, RTTY, FSK, SSTV e a maioria das operações em HF/VHF/UHF precisam de licenciamento adequado
- Verifique sua autoridade local de radioamador (FCC/Ofcom/etc.) para requisitos de licença
### Regulamentações de Frequência
- **Permaneça nas faixas de radioamador**: Use apenas frequências alocadas ao serviço de radioamador
- **Limites de potência**: O Pi Zero emite apenas alguns miliwatts - se estiver usando um amplificador, respeite os limites máximos de potência para sua classe de licença
- **Emissões espúrias**: Sempre use filtros passa-baixa apropriados
- **Sem conteúdo comercial**: O radioamadorismo proíbe comunicações comerciais
### Requisitos de Hardware (para uso adequado)
- **Filtros passa-baixa obrigatórios**: A GPIO do Pi emite ondas quadradas com harmônicos em todo o espectro
- **Antena adequada**: Use antenas ressonantes para sua frequência de operação
- **Potência de saída**: A GPIO do Pi Zero emite apenas alguns miliwatts - se quiser mais alcance, precisará de um amplificador adequado e filtro passa-baixa
- **Monitoramento de ROE**: Em níveis de miliwatts, o Pi não dá a mínima para a ROE, mas se estiver usando um amplificador, você precisa de casamento de impedância adequado ou vai queimar o amplificador
### Restrições Geográficas
- **Os planos de faixa variam por país**: As alocações de radioamadores dos EUA/Europa/Ásia diferem
- **Limites de potência variam**: Verifique as regulamentações locais para sua classe de licença
- **Frequências de emergência**: Nunca interfira em comunicações de emergência/segurança pública
### 🏠 Testes e Experimentação em Ambientes Fechados
- **Sem antena = alcance mínimo**: Sem uma antena adequada, os sinais são extremamente fracos e contidos dentro de sua casa
- **Testes e aprendizado**: Perfeito para entender conceitos de RF, modos digitais e funcionalidade do software
- **Desenvolvimento de protocolo**: Teste de codificação/decodificação sem transmissão externa
- **Uso educacional**: Aprenda sobre modulação, filtragem e processamento de sinais com segurança em ambientes fechados
## 📡 Frequências Operacionais Padrão
O PIrateRF suporta todo o espectro de radioamador. Aqui estão as frequências comuns para cada modo:
### Faixas de Radioamador de 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
### Faixas de Radioamador de VHF/UHF
- **2m**: 144-148 MHz (FM: 144.0-148.0 MHz, Repetidores: 146.0-148.0 MHz saída)
- **1.25m**: 222-225 MHz | **70cm**: 420-450 MHz (Repetidores: 440-450 MHz saída)
### Frequências Padrão FT8 (modo 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
### Frequências Padrão RTTY (modo 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
### Frequências Padrão 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)
### Divisões Padrão de Repetidores FM
- **2m**: Entrada 144-146 MHz, Saída 146-148 MHz (divisão de 0.6 MHz)
- **70cm**: Entrada 420-430 MHz, Saída 440-450 MHz (divisão de 5 MHz)
## 🔗 Dependências Principais
- **[rpitx](https://github.com/F5OEO/rpitx)** - Biblioteca de transmissão RF para GPIO do Raspberry Pi
- **[gorpitx](https://github.com/psyb0t/gorpitx)** - Wrapper Go fornecendo API limpa para rpitx
- **[servicepack](https://github.com/psyb0t/servicepack)** - Framework de desenvolvimento e implantação
- **[aichteeteapee](https://github.com/psyb0t/aichteeteapee)** - Servidor HTTP com suporte a WebSocket
## 📝 Licença
Este projeto está licenciado sob WTFPL (Do What The Fuck You Want To Public License).
## TODO
- (gorpitx) Adicionar 1 segundo extra de portadora na transmissão RTTY
- (gorpitx) Abandonar minimodem no FSK e usar outra coisa
- (gorpitx) Corrigir espaçamento entre palavras no código morse
- Realmente provar que SSTV funciona (tentei com qsstv e várias configurações + vários ouvintes e não consigo)
- Adicionar sobreposições de ajuda na interface: botões de informação de modo explicando o que cada modo de transmissão faz + dicas por campo explicando o que cada opção de configuração altera
- Corrigir a porra do cabeçalho da interface para não ser mais um retângulo que fode a sombra lol
**🏴☠️ Agora vá lá e comece a transmitir como o pirata de RF que você estava destinado a ser! 📡**
_Lembre-se: Com grande poder de RF vem grande responsabilidade. Sempre opere legalmente e não seja um idiota com outros operadores._
---
_Construído com despeito usando https://github.com/psyb0t/servicepack_
---