
PIrateRF превращает ваш Raspberry Pi Zero W в портативный RF-генератор сигналов, который создает собственную точку доступа WiFi. Управляйте всем — от FM-передач до цифровых режимов — через ваш браузер - взламывайте эфир откуда угодно! 📡⚡

PIrateRF превращает ваш Raspberry Pi Zero W в портативный генератор RF-сигналов, который создает собственную точку доступа WiFi. Управляйте всем, от FM-вещания до цифровых режимов, через ваш браузер - взламывайте эфир откуда угодно! 📡⚡
🎬 Нажмите здесь для промо-видео PIrateRF
📺 Нажмите здесь для демонстрационного видео PIrateRF
⚠️ ЮРИДИЧЕСКОЕ УВЕДОМЛЕНИЕ
PIrateRF предназначен для радиолюбительских экспериментов и обучения, включая безопасное тестирование в помещении без внешних антенн. Создан для инженеров, которые понимают, что правильные методы работы с RF важнее произвольных административных границ. Пользователи несут ответственность за соблюдение всех местных нормативов по RF и требований лицензирования. Я не несу ответственности за любые ваши глупые, мать их, решения!
Все демонстрационные изображения и тестирование в этой документации были выполнены в помещении без антенны, с максимальной дальностью около 5 метров.
Все управляется через автономную точку доступа WiFi - подключайте любое устройство и начинайте передавать, как RF-бунтарь, которым вы должны были стать! Отлично подходит для операций в международных водах и регионах с более... гибкой политикой спектра.
Пропустите всю эту сборку и переходите сразу к RF-хаосу:
.imgsudo dd if=piraterf_2025-11-23_22-18-49.img of=/dev/sdX bs=4M status=progress (замените /dev/sdX на вашу SD-карту)https://piraterf.local и начинайте передавать немедленно!Настройки по умолчанию:
fucker, Пароль FUCKER, Имя хоста piraterf.localПрежде чем делать ЧТО-ЛИБО еще, подключите ваш, мать его, Pi Zero W через SSH. Следуйте этому руководству, которое реально работает:
👉 Руководство по подключению Pi Zero W через USB
Это позволит подключить Pi Zero через USB с SSH-доступом, чтобы вы могли развернуть PIrateRF на этом маленьком засранце.
🌐 ТРЕБУЕТСЯ ОБЩИЙ ДОСТУП В ИНТЕРНЕТ: После того как USB-соединение заработает, вы ДОЛЖНЫ предоставить общий доступ к интернету с вашего компьютера на Pi Zero. Скрипты установки должны загрузить пакеты и зависимости – без интернета никакого RF-хаоса.
Настройка общего доступа к интернету на Ubuntu/Linux:
Установите соединение как общее: В настройках сети Ubuntu найдите USB-соединение (обычно usb0), нажмите на него, перейдите к настройкам IPv4 и измените метод с "Только локальная связь" на "Общий доступ для других компьютеров"
Остановите службы Docker (они мешают работе сети):```bash sudo systemctl stop docker.socket sudo systemctl stop docker
3. **Перезапустите NetworkManager**:```bash
sudo systemctl restart NetworkManager
usb0 и enp5s0 на ваши фактические интерфейсы):```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. **Проверьте это**: Подключитесь по SSH к вашему Pi с помощью `ssh [email protected]` (или любого другого [email protected], который вы настроили) и выполните `ping 8.8.8.8` - если это сработает, вы готовы устроить немного RF хаоса!
**Найдите ваши интерфейсы**: Используйте `ip link show`, чтобы увидеть `usb0` (подключение к Pi) и ваш основной интернет-интерфейс.
### 1. Первоначальная настройка```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
Пример конфигурации (измените в соответствии с вашей настройкой 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. Полная настройка Pi```bash
# Run the full automated setup
make pi
Эта команда выполнит:
https://piraterf.localПодключайте несколько устройств к точке доступа PIrateRF, и все они будут одновременно получать доступ к веб-интерфейсу! Хотя одновременно может выполняться только одна передача (потому что GPIO, блин, не разделяется), все подключенные устройства видят статус передачи в реальном времени, журналы вывода и могут по очереди управлять RF-передачами. Идеально для того, чтобы тупить с друзьями в радиооргии! 📡💥
Функции для нескольких устройств:
Подключите антенну к GPIO 4 (физический контакт 7) на Pi Zero W:
⚠️ ПРЕДУПРЕЖДЕНИЕ: GPIO Raspberry Pi выдает прямоугольные сигналы с гармониками по всему спектру. Для правильной передачи на улице вы ОБЯЗАНЫ использовать соответствующие фильтры нижних частот для подавления паразитных излучений и соблюдения норм RF. Без фильтрации вы вещаете на нескольких частотах одновременно.

Полное FM-вещание с поддержкой RDS:
Параметры конфигурации:
Процесс загрузки: Файлы автоматически конвертируются через FFmpeg в формат WAV 48 кГц/16 бит/моно и сохраняются в
./files/audio/uploads/
Прием:
Применение: Подпольное радиовещание, стриминг музыки, подкастинг, общественное радио, пиратские радиостанции, рикроллинг целых районов


Потоковая передача с микрофона в реальном времени с настраиваемой модуляцией:
Параметры конфигурации:
Прием:
Применение: Живые комментарии, экстренная связь, любительские радиосети, вещание в реальном времени, транслируйте свои отрыжки, выходите в радиоэфир прямо из мошпита


Цифровой режим для сверхслабых сигналов для HF DX:
Параметры конфигурации:
Прием:
Применение: Дальние DX-контакты, связь со слабыми сигналами, межконтинентальные контакты, сбивание с толку участников соревнований


Классическая цифровая текстовая связь:
Параметры конфигурации:
Прием:
Применение: Цифровая текстовая связь, новостные бюллетени, телетайпная передача сообщений, отправка ASCII-арта через RTTY


Бинарная частотная манипуляция для передачи данных:
Параметры конфигурации:
Процесс загрузки: Файлы перемещаются как есть (без конвертации) в
./files/data/uploads/с сохранением исходного расширения
Прием:
Примечание: pw-record --target=81 захватывает аудио с монитора PulseAudio (выход вашего SDR-программного обеспечения). Измените параметр --rx, чтобы он соответствовал выбранной скорости передачи в бодах. Текущая реализация лучше всего работает со скоростями 50–100 бод.
Применения: Цифровые бюллетени, передача файлов, пакетное радио, передача данных, цифровые режимы любительской радиосвязи, отправка порнографии, как в старые времена диалапа


Система сообщений цифрового пейджера:
Параметры конфигурации:
Прием:
Примечание: pw-record --target=81 захватывает аудио с мониторного выхода PulseAudio (выход вашего SDR-программного обеспечения). Измените режим multimon-ng в соответствии с выбранной скоростью передачи в бодах:
-a POCSAG512-a POCSAG1200-a POCSAG2400Применения: Системы экстренного пейджинга, уведомления о тревогах, обмен сообщениями через пейджеры, хаос массовых уведомлений, ностальгическая бомбардировка 90-х


Традиционная CW-передача:
Параметры конфигурации:
Прием:
Примечание: pw-record --target=81 захватывает аудио с монитора PulseAudio (выход вашего SDR-программного обеспечения). Параметры -d (задержка) и -g (усиление) следует настраивать в зависимости от скорости передачи (тире в минуту). Более высокие скорости требуют меньших значений задержки, более низкие — больших для правильного декодирования.
Применение: Практика азбуки Морзе, передача маяков, экстренная связь, отправка грязных сообщений на CW, спам маяков


Простая генерация несущей для тестирования:
Параметры настройки:
Приём:
Применение: Настройка антенны, тестирование передатчика, измерения КСВ, троллинг с несущей, тестирование ВЧ-цепей


Автоматические частотные развёртки для анализа ВЧ:
Параметры настройки:
Приём:
Применение: Анализ антенн, тестирование фильтров, измерения АЧХ, вибрация как маньяк, пытки антенн


Передача изображений медленным телевидением (SSTV):
Параметры настройки:
Процесс загрузки: Изображения преобразуются через ImageMagick в формат RGB 320×256 (расширение .rgb) для передачи SSTV, сохраняются в
./files/images/uploads/(также доступны файлы .Y для spectrum paint, если были загружены ранее)
Приём:
Применение: Передача изображений по радио, любительское радио SSTV, визуальная связь, рассылка фоток петухов — посмотрите на этого здорового петуха

Преобразование изображений в радиочастотное спектральное искусство:
Параметры настройки:
Процесс загрузки: Изображения преобразуются через ImageMagick в формат YUV (расширение .Y) для spectrum paint И RGB 320×256 (расширение .rgb) для SSTV, оба сохраняются в
./files/images/uploads/
Приём:
Применение: ВЧ-спектральное искусство, визуализация спектра, демонстрации анализа сигналов, рисование картинок членов на спектрограмме, спектральное граффити


Воспроизведение сырых IQ-сэмплов для регенерации сигнала:
Параметры настройки:
Процесс загрузки: IQ-файлы перемещаются как есть (без конвертации) в
./files/iqs/uploads/с сохранением расширения .iq
Приём:
Применение: Воспроизведение сигналов, захват/воспроизведение ретранслятора, тестирование и валидация, анализ сигналов, воспроизведение сложных модуляций, захват/воспроизведение SDR, исследования RF-отпечатков
Хватит каждый раз вводить одни и те же чёртовы параметры! PIrateRF включает полноценную систему управления пресетами:
Возможности:
Использование:
Хранение:
Пресеты сохраняются как JSON-файлы в files/presets/{modulename}/ и могут быть зарезервированы, переданы или помещены под контроль версий. Идеально подходит для хранения ваших любимых конфигураций для воспроизведения звонков, FM-радиовещания или 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
### Управление 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
## 🏴☠️ Юридическое уведомление и предупреждение по безопасности
**⚠️ ВАЖНЫЕ ЮРИДИЧЕСКИЕ ТРЕБОВАНИЯ ⚠️**
### Требуется лицензия радиолюбителя
- **Большинство частот требуют наличия лицензии радиолюбителя**
- FT8, RTTY, FSK, SSTV и большинство операций на КВ/УКВ/ДМВ требуют соответствующего лицензирования
- Уточните требования в вашем местном органе радиолюбительской связи (FCC/Ofcom и т.п.)
### Регламент использования частот
- **Работайте только в любительских диапазонах**: Используйте только частоты, выделенные для радиолюбителей
- **Ограничения по мощности**: Pi Zero выдает лишь несколько милливатт — при использовании усилителя соблюдайте максимальные ограничения мощности для вашего класса лицензии
- **Побочные излучения**: Всегда используйте подходящие фильтры нижних частот
- **Запрет коммерческого контента**: Любительская радиосвязь запрещает деловые переговоры
### Требования к оборудованию (для корректного использования)
- **Фильтры нижних частот обязательны**: GPIO Pi выдает прямоугольные импульсы с гармониками по всему спектру
- **Правильная антенна**: Используйте резонансные антенны для вашей рабочей частоты
- **Выходная мощность**: GPIO Pi Zero выдает лишь несколько милливатт — если нужно больше дальности, потребуются усилитель и фильтр нижних частот
- **Контроль КСВ**: При милливаттных уровнях мощности Pi плевать на КСВ, но если используете усилитель, необходимо правильное согласование импедансов, иначе усилитель сгорит
### Географические ограничения
- **Планы распределения частот различаются по странам**: Любительские диапазоны в США, Европе, Азии отличаются
- **Ограничения мощности варьируются**: Проверьте местные правила для вашего класса лицензии
- **Аварийные частоты**: Никогда не создавайте помех аварийной/общественной безопасности
### 🏠 Домашнее тестирование и эксперименты
- **Нет антенны = минимальная дальность**: Без правильной антенны сигналы крайне слабы и ограничены помещением
- **Тестирование и обучение**: Идеально для понимания концепций РФ, цифровых видов связи и функциональности ПО
- **Разработка протоколов**: Тестируйте кодирование/декодирование без внешней передачи
- **Образовательные цели**: Изучайте модуляцию, фильтрацию и обработку сигналов безопасно в помещении
## 📡 Стандартные рабочие частоты
PIrateRF поддерживает полный любительский радиоспектр. Вот общие частоты для каждого режима:
### Любительские КВ-диапазоны (3–30 МГц)
- **80 м**: 3.5–4.0 МГц | **40 м**: 7.0–7.3 МГц | **30 м**: 10.1–10.15 МГц
- **20 м**: 14.0–14.35 МГц | **17 м**: 18.068–18.168 МГц | **15 м**: 21.0–21.45 МГц
- **12 м**: 24.89–24.99 МГц | **10 м**: 28.0–29.7 МГц
### Любительские УКВ/ДМВ-диапазоны
- **2 м**: 144–148 МГц (FM: 144.0–148.0 МГц, Ретрансляторы: 146.0–148.0 МГц выход)
- **1.25 м**: 222–225 МГц | **70 см**: 420–450 МГц (Ретрансляторы: 440–450 МГц выход)
### Стандартные частоты FT8 (режим USB)
- **80 м**: 3.573 МГц | **40 м**: 7.074 МГц | **30 м**: 10.136 МГц
- **20 м**: 14.074 МГц | **17 м**: 18.100 МГц | **15 м**: 21.074 МГц | **10 м**: 28.074 МГц
### Стандартные частоты RTTY (режим USB)
- **80 м**: 3.580–3.600 МГц | **40 м**: 7.035–7.045 МГц | **30 м**: 10.130–10.150 МГц
- **20 м**: 14.070–14.099 МГц | **15 м**: 21.070–21.100 МГц | **10 м**: 28.070–28.120 МГц
### Стандартные частоты SSTV
- **80 м**: 3.736 МГц (LSB) | **40 м**: 7.055 МГц (LSB)
- **20 м**: 14.233 МГц (USB) | **15 м**: 21.343 МГц (USB) | **10 м**: 28.667 МГц (USB)
- **2 м**: 144.55 МГц (FM)
### Стандартные разносы частот FM-ретрансляторов
- **2 м**: Вход 144–146 МГц, Выход 146–148 МГц (разнос 0.6 МГц)
- **70 см**: Вход 420–430 МГц, Выход 440–450 МГц (разнос 5 МГц)
## 🔗 Основные зависимости
- **[rpitx](https://github.com/F5OEO/rpitx)** — библиотека RF-передачи для GPIO Raspberry Pi
- **[gorpitx](https://github.com/psyb0t/gorpitx)** — Go-обёртка, предоставляющая чистый API для rpitx
- **[servicepack](https://github.com/psyb0t/servicepack)** — фреймворк для разработки и развёртывания
- **[aichteeteapee](https://github.com/psyb0t/aichteeteapee)** — HTTP-сервер с поддержкой WebSocket
## 📝 Лицензия
Этот проект лицензирован под WTFPL (Do What The Fuck You Want To Public License).
## TODO
- (gorpitx) Добавить 1 дополнительную секунду несущей в передачу RTTY
- (gorpitx) Избавиться от minimodem в FSK и использовать что-то другое
- (gorpitx) Исправить пробелы между словами в азбуке Морзе
- Доказать, что SSTV работает (пробовал с qsstv и разными настройками + разными слушателями — не вышло)
- Добавить всплывающие подсказки в интерфейсе: информационные кнопки режимов, объясняющие, что делает каждый режим передачи + всплывающие подсказки для каждого поля конфигурации
- Исправить, блин, заголовок интерфейса, чтобы он не был больше прямоугольным — он портит тень, лол
**🏴☠️ А теперь вперёд — вещай как RF-пират, которым тебе суждено быть! 📡**
_Помните: С большой мощностью RF приходит большая ответственность. Всегда действуйте законно и не будьте мудаками по отношению к другим операторам._
---
_Создано с ненавистью с помощью https://github.com/psyb0t/servicepack_