
PIrateRF는 여러분의 Raspberry Pi Zero W를 자체 WiFi 핫스팟을 생성하는 휴대용 RF 신호 발생기로 변환합니다. 브라우저를 통해 FM 방송부터 디지털 모드까지 모든 것을 제어하세요 - 어디서나 전파를 해킹하세요! 📡⚡

PIrateRF는 여러분의 Raspberry Pi Zero W를 휴대용 RF 신호 발생기로 변신시켜 자체 WiFi 핫스팟을 생성합니다. FM 방송부터 디지털 모드까지 모든 것을 브라우저를 통해 제어하세요 - 어디서나 전파를 해킹하세요! 📡⚡
⚠️ 법적 고지
PIrateRF는 아마추어 무선 실험 및 교육을 위해 설계되었습니다 - 외부 안테나 없이 실내에서 안전하게 테스트할 수 있습니다. 좋은 RF 관행이 임의적인 행정 경계보다 중요하다는 것을 이해하는 엔지니어를 위해 만들어졌습니다. 사용자는 모든 현지 RF 규정 및 면허 요건을 준수할 책임이 있습니다. 저는 여러분의 멍청한 결정에 대해 책임을 지지 않습니다!
이 문서의 모든 데모 이미지 및 테스트는 안테나 없이 실내에서 수행되었으며, 최대 범위는 약 5미터입니다.
모든 것은 독립형 WiFi 액세스 포인트를 통해 제어됩니다 - 어떤 기기든 연결하고, 당신이 되고자 했던 RF 반란군처럼 전송을 시작하세요! 국제 해역 및 더... 유연한 스펙트럼 정책을 가진 지역에 완벽합니다.
모든 빌드 지옥을 건너뛰고 바로 RF 혼돈으로 가세요:
.img 파일 선택sudo 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가 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 [email protected]`(또는 설정한 사용자@호스트.local)로 Pi에 SSH 접속한 후 `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 전송을 차례로 제어할 수 있습니다. 친구들과 함께 전파 난장판을 벌이기에 완벽합니다! 📡💥
다중 장치 기능:
안테나를 Pi Zero W의 **GPIO 4 (물리적 핀 7)**에 연결하세요:
⚠️ 경고: Raspberry Pi GPIO는 전체 스펙트럼에 걸쳐 고조파가 포함된 구형파를 출력합니다. 적절한 실외 전송을 위해서는 반드시 적절한 로우패스 필터를 사용하여 불필요한 방출을 억제하고 RF 규정을 준수해야 합니다. 필터링 없이 여러 주파수에서 동시에 방송하게 됩니다.

RDS 지원을 포함한 전체 FM 방송:
설정 옵션:
업로드 과정: 파일은 FFmpeg를 통해 자동으로 48kHz/16-bit/모노 WAV 형식으로 변환되어
./files/audio/uploads/에 저장됨
수신:
응용: 지하 라디오 방송, 음악 스트리밍, 팟캐스팅, 커뮤니티 라디오, 해적 라디오 방송국, 전체 이웃을 릭롤하기


설정 가능한 변조를 사용한 실시간 마이크 스트리밍:
설정 옵션:
수신:
응용: 실시간 해설, 비상 통신, 아마추어 라디오 네트, 실시간 방송, 트림 방송, 모쉬핏에서 라디오로 라이브


HF DX를 위한 초약신호 디지털 모드:
설정 옵션:
수신:
응용: 장거리 DX 접촉, 약신호 통신, 대륙간 접촉, 콘테스터들을 혼란스럽게 만들기


고전적인 디지털 텍스트 통신:
설정 옵션:
수신:
응용: 디지털 텍스트 통신, 뉴스 게시판, 텔레타이프 메시징, RTTY를 통한 ASCII 아트 전송


데이터 전송을 위한 이진 주파수 편이 키잉:
설정 옵션:
업로드 과정: 파일이 변환 없이 원래 확장자를 유지한 채
./files/data/uploads/로 이동됨
수신:
참고: pw-record --target=81은 PulseAudio 모니터 싱크(당신의 SDR 소프트웨어 출력)에서 오디오를 캡처합니다. --rx 매개변수를 선택한 baud rate에 맞게 변경하세요. 현재 구현은 50-100 baud rate에서 가장 잘 작동합니다.
응용 분야: 디지털 게시판, 파일 전송, 패킷 라디오, 데이터 전송, 아마추어 무선 디지털 모드, 다이얼업 시대처럼 포르노 전송


디지털 호출기 메시징 시스템:
구성 옵션:
수신:
참고: 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 비속어 전송, 비콘 스팸


테스트용 간단한 반송파 생성:
설정 옵션:
수신:
응용 분야: 안테나 튜닝, 송신기 테스트, SWR 측정, 데드 캐리어 트롤링, RF 회로 테스트


RF 분석을 위한 자동 주파수 스윕:
설정 옵션:
수신:
응용 분야: 안테나 분석, 필터 테스트, 주파수 응답 측정, 미친 듯이 흔들기, 안테나 고문 테스트


Slow Scan Television 이미지 전송:
설정 옵션:
업로드 프로세스: 이미지는 ImageMagick을 통해 SSTV 전송용 RGB 320x256 형식(.rgb 확장자)으로 변환되어
./files/images/uploads/에 저장됩니다(이전에 업로드된 경우 스펙트럼 페인트 .Y 파일도 사용 가능).
수신:
응용 분야: 무선 이미지 전송, 아마추어 무선 SSTV, 시각적 통신, 수탉 그림 방송 - 저 큰 수탉 좀 봐

이미지를 RF 스펙트럼 아트로 변환:
설정 옵션:
업로드 프로세스: 이미지는 ImageMagick을 통해 스펙트럼 페인트용 YUV 형식(.Y 확장자)과 SSTV용 RGB 320x256 형식(.rgb 확장자) 모두로 변환되어
./files/images/uploads/에 저장됩니다.
수신:
응용 분야: RF 스펙트럼 아트, 스펙트럼 시각화, 신호 분석 시연, 워터폴에 성기 그림 그리기, 스펙트럼 그래피티


신호 재생을 위한 원시 IQ 샘플 파일 재생:
설정 옵션:
업로드 프로세스: IQ 파일은 변환 없이 그대로
./files/iqs/uploads/로 이동되며 .iq 확장자가 유지됩니다.
수신:
응용 분야: 신호 재생, 중계기 캡처/재생, 테스트 및 검증, 신호 분석, 복잡한 변조 재생, SDR 캡처 재생, RF 지문 연구
매번 똑같은 파라미터를 입력하는 건 그만! PIrateRF에는 완전한 프리셋 관리 시스템이 포함되어 있습니다:
기능:
사용법:
저장소:
프리셋은 files/presets/{모듈명}/ 디렉토리에 JSON 파일로 저장되며, 백업, 공유 또는 버전 관리가 가능합니다. 좋아하는 초인종 재생 설정, 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 및 대부분의 HF/VHF/UHF 운영에는 적절한 면허가 필요합니다
- 해당 지역 아마추어 무선 당국(FCC/Ofcom 등)의 면허 요구 사항을 확인하세요
### 주파수 규정
- **아마추어 대역 내에서 유지**: 아마추어 무선에 할당된 주파수만 사용하세요
- **전력 제한**: Pi Zero는 몇 밀리와트만 출력합니다 - 증폭기를 사용하는 경우 면허 등급에 따른 최대 전력 제한을 준수하세요
- **불요 방출**: 항상 적절한 저역 통과 필터를 사용하세요
- **상업적 콘텐츠 금지**: 아마추어 무선은 상업적 통신을 금지합니다
### 하드웨어 요구 사항(적절한 사용을 위해)
- **저역 통과 필터 필수**: Pi GPIO는 스펙트럼 전반에 걸쳐 고조파가 포함된 구형파를 출력합니다
- **적절한 안테나**: 사용 주파수에 공진하는 안테나를 사용하세요
- **전력 출력**: Pi Zero GPIO는 몇 밀리와트만 출력합니다 - 더 먼 거리를 원한다면 적절한 증폭기와 저역 통과 필터가 필요합니다
- **SWR 모니터링**: 밀리와트 전력 수준에서는 Pi가 SWR에 전혀 신경 쓰지 않지만, 증폭기를 사용하는 경우 적절한 임피던스 정합이 필요합니다. 그렇지 않으면 증폭기가 타버릴 수 있습니다
### 지리적 제한
- **국가별 대역 계획 상이**: 미국/유럽/아시아의 아마추어 할당이 다릅니다
- **전력 제한 다양**: 면허 등급에 대한 현지 규정을 확인하세요
- **비상 주파수**: 비상/공공 안전 통신을 방해하지 마세요
### 🏠 실내 테스트 및 실험
- **안테나 없음 = 최소 범위**: 적절한 안테나가 없으면 신호가 매우 약해 집 안에 국한됩니다
- **테스트 및 학습**: RF 개념, 디지털 모드 및 소프트웨어 기능을 이해하는 데 완벽합니다
- **프로토콜 개발**: 외부 전송 없이 인코딩/디코딩 테스트
- **교육적 사용**: 실내에서 안전하게 변조, 필터링 및 신호 처리에 대해 배우기
## 📡 표준 운용 주파수
PIrateRF는 전체 아마추어 무선 스펙트럼을 지원합니다. 각 모드의 일반적인 주파수는 다음과 같습니다.
### 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
### VHF/UHF 아마추어 대역
- **2m**: 144-148 MHz (FM: 144.0-148.0 MHz, 리피터: 146.0-148.0 MHz 출력)
- **1.25m**: 222-225 MHz | **70cm**: 420-450 MHz (리피터: 440-450 MHz 출력)
### FT8 표준 주파수(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
### RTTY 표준 주파수(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
### 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)
### FM 리피터 표준 분할
- **2m**: 입력 144-146 MHz, 출력 146-148 MHz (0.6 MHz 분할)
- **70cm**: 입력 420-430 MHz, 출력 440-450 MHz (5 MHz 분할)
## 🔗 핵심 종속성
- **[rpitx](https://github.com/F5OEO/rpitx)** - Raspberry Pi GPIO용 RF 전송 라이브러리
- **[gorpitx](https://github.com/psyb0t/gorpitx)** - rpitx용 깔끔한 API를 제공하는 Go 래퍼
- **[servicepack](https://github.com/psyb0t/servicepack)** - 개발 및 배포 프레임워크
- **[aichteeteapee](https://github.com/psyb0t/aichteeteapee)** - WebSocket 지원 HTTP 서버
## 📝 라이선스
이 프로젝트는 WTFPL(Do What The Fuck You Want To Public License)에 따라 라이선스가 부여됩니다.
## TODO
- (gorpitx) RTTY 전송에 반송파 1초 추가
- (gorpitx) FSK에서 minimodem을 버리고 다른 것을 사용
- (gorpitx) 모스 부호에서 단어 간격 수정
- SSTV가 실제로 작동하는지 증명 (qsstv와 다양한 설정 및 여러 청취자로 시도했지만 안 됨)
- UI 도움말 오버레이 추가: 각 전송 모드가 무엇을 하는지 설명하는 모드 정보 버튼 + 각 구성 옵션이 무엇을 변경하는지 설명하는 입력별 툴팁
- 빌어먹을 UI 헤더를 수정해서 더 이상 그림자를 망치는 직사각형이 아니게 만들기 ㅋㅋ
**🏴☠️ 이제 밖에 나가서 당신이 본래 되어야 했던 RF 해적처럼 방송을 시작하세요! 📡**
_기억하세요: 큰 RF 전력에는 큰 책임이 따릅니다. 항상 합법적으로 운영하고 다른 운영자에게 나쁜 사람이 되지 마세요._
---
_악의를 담아 https://github.com/psyb0t/servicepack 를 사용하여 제작됨_