Various Projects Find Hidden SDR Capabilities in ESP32 Microcontrollers
여러 프로젝트가 ESP32 마이크로컨트롤러의 숨겨진 SDR 기능을 발견했습니다
ESP32 일부 모델에서 문서화되지 않은 기능을 이용해 원시 IQ 기저대역 샘플을 얻는 방법이 여러 프로젝트에서 발견됐습니다. 대부분은 데이터 내보내기 대역폭이 낮아 스펙트럼 분석에 그치지만, FPGA나 ESP32-S31의 기가비트 이더넷을 쓰면 연속 수신도 가능해집니다.
- 주제
AI 요약
ESPARGOS 팀은 ESP32 Wi-Fi 마이크로컨트롤러 여러 대와 패치 안테나를 배열해 신호 도래 방향을 찾고, 증강현실 열지도를 만드는 프로젝트를 진행해 왔습니다. 최근 팀은 일부 ESP32 칩에 고정된 Wi-Fi·Bluetooth 기능을 우회해 원시 IQ 기저대역 샘플을 캡처하는 문서화되지 않은 기능이 있음을 확인했습니다. 이에 따라 칩에 따라 2.2~2.7GHz 대역을 수신하고, ESP32-C5는 4.8~6.0GHz 대역까지 다룰 수 있습니다. 샘플링 속도는 최대 80MS/s이며 아날로그 대역폭은 칩에 따라 약 13~54MHz입니다.
PC로 연속 데이터를 보내기 어려운 이유
일반적인 PC 연결형 SDR로 쓰기에는 출력 대역폭이 부족해 데이터를 PC로 내보낼 때 스냅샷만 전송할 수 있습니다. 따라서 ESP32만으로는 스펙트럼 분석은 가능하지만 연속 무선 데이터를 복조하거나 디코딩하기 어렵습니다. 예외는 ESP32-S31입니다. 기가비트 이더넷으로 최대 16MS/s 연속 스트리밍을 지원하며, GNU Radio와 gqrx용 SoapySDR 드라이버도 개발 중입니다. ESP-WebSDR 페이지에서는 대부분의 ESP32 개발 보드에 브라우저로 펌웨어를 설치하고 실시간 스펙트럼과 워터폴을 볼 수 있습니다.
ESPARGOS 하드웨어에서는 위상 동기 IQ 샘플 캡처도 가능해졌습니다. 이제 Wi-Fi와 Bluetooth 신호에 한정하지 않고 2.4GHz 대역의 임의 신호를 대상으로 방향을 찾을 수 있습니다. 위상 동기 송신도 가능하지만 오용 위험을 이유로 현재 구현하지 않고 있다고 팀은 밝혔습니다.
FPGA를 이용한 연속 수신 프로젝트
Reddit 사용자 h0m3us3r도 비슷한 기능을 발견해 9월 26일 GitHub에 코드를 올렸습니다. FPGA를 USB 3 프런트엔드로 사용해 ESP32-S3의 원시 IQ 데이터를 PC로 연속 전송하는 방식입니다. 스냅샷만 내보내는 ESPARGOS와 달리 PC에서 전체 복조와 디코딩을 시도할 수 있습니다. 다만 현재 시제품은 FPGA가 ESP32 클록을 공급해 위상 잡음이 좋지 않습니다. 클록 문제를 해결하면 2.2~2.8GHz 대역에서 최대 80MHz 대역폭을 지원하는 범용 SDR을 ESP32와 FPGA 조합으로 만들 수 있다는 구상입니다.
또 다른 프로젝트 C5VRX는 ESP32-C5를 5.8GHz 실시간 FPV 영상 수신기로 씁니다. 다른 방식으로 구현한 것으로 보이지만, 문서화되지 않은 IQ 데이터 스트림으로 FPV 신호를 샘플링하고 칩 내부에서 복조한 뒤 간단한 저항 DAC로 아날로그 컴포지트 영상을 출력합니다. 개발이 진행 중이며 원거리에서 안정적으로 작동하지는 않습니다.
Hacker News 반응
- @mallets — 1달러짜리 무선 IC 중에도 강력한 ‘SDR’ 기능을 갖춘 제품이 많지만, 인증·규정 준수·수출 통제 문제 때문에 문서화되지 않을 겁니다. 여기 소개된 프로젝트가 수신 전용으로 범위를 제한한 건 타당합니다. 임의 송신까지 가능하다는 사실이 알려지거나 언론에 오르내리면 Espressif가 기능을 막아야 할지도 모릅니다. 그런 일이 없으면 좋겠습니다. RF 신호를 비트로 바꾸는 저렴한 선택지가 많을수록 좋으니까요. 기술적인 면에서는 위상 잡음, 이미지, DC 오프셋 같은 신호 품질 정보가 별로 보이지 않습니다. 직접 써봐야겠네요. ESP32-S31은 기대됩니다.
- @ErroneousBosh — 임의 송신이 가능해진다고 Espressif가 왜 그래야 하죠? 적절한 면허만 있으면 원하는 주파수로 송신하는 일은 완전히 합법입니다.
- @mallets — 최종 사용자는 합법일 수 있지만 Espressif는 FCC 같은 규제 기관과 문제를 겪을 수 있습니다.
- @ssl-3 — 적절한 면허를 가진 개인에게는 합법입니다. 하지만 미국의 RF 송신 규정은 다른 법과 구조가 다릅니다. 허가받은 송신만 할 수 있고 기본적으로는 금지된다는 뜻입니다. 지금 제 창가에는 센서 값을 Wi-Fi로 보내는 ESP32 WROOM 모듈이 개발 보드에 꽂혀 있습니다. WROOM 모듈은 FCC에 등록돼 있습니다. 문서화된 방식으로만 작동시키면 허가된 방식으로 쓰는 셈이고, FCC 규정 Part 15 덕분에 별도 면허 없이 실제로 사용할 수 있습니다. 저렴하고 구하기 쉬운 하드웨어로 센서 프로젝트를 빠르게 시작해 소프트웨어 개발에 집중할 수 있었습니다. 여기서 우려하는 점은 문서에 없는 사용법이 공개되고 실제로 쓰이기 시작하면 이런 WROOM 모듈을 구하기 어려워질 수 있다는 겁니다. 다만 저 자신이 그 우려에 동의하는 건 아닙니다.
- @BlackRabbit1 — 제가 조사한 바로는 Reddit에서 선보인 80MSPS, 10비트 데이터를 FPGA와 USB 3 없이 컴퓨터로 옮기기는 지금 꽤 어렵습니다. 새 ESP32-S31은 기가비트 인터페이스로 IQ 데이터를 빼낼 수 있을 것 같습니다. 대략 20~40MSPS쯤 가능할 것으로 예상합니다. 이 해킹은 13cm 아마추어 무선 대역에서 큰 변화를 가져올 수 있습니다. 새 5GHz ESP32 모듈은 5cm 대역에서도 쓸 수 있겠지요. Espressif 부품은 모두 Wi-Fi 인증을 받았으니 매우 안정적이고 견고한 무선 장비가 되리라 예상합니다. 몇 개 주문해 연구실에서 배송을 기다리는 중입니다.
- @rasz — FPGA와 USB 3 조합은 80MSPS, 10비트에서 데이터가 IQ 쌍당 약 1.2바이트로 압축돼 초당 95~100MB 정도가 됩니다. 어떤 FPGA 플랫폼이나 보드를 썼는지는 언급이 없네요. FT600 USB 칩만 약 10달러입니다. 대신 흔한 5달러짜리 FX2LP USB 2.0 개발 보드를 쓰면 어떨까요? CY7C68013A-56은 16비트 인터페이스를 지원하고 하루 종일 30MB/s를 전송할 수 있습니다. 총 10달러로 2.4GHz에서 약 12MSPS, 10비트 SDR을 만들 수 있습니다.
- @rmast — GitHub README에 FPGA가 나옵니다. Alchitry Au 보드이며 Artix-7 XC7A35T와 256MiB DDR3를 씁니다.
- @xd1936 — 정말 흥미롭네요! FPGA가 ESP32에 클록을 공급해서 위상 잡음이 나쁘다는 문제가 있었는데, 5일 전에 해결된 것 같습니다.
- @cellular — 양쪽에 몇 대씩 놓고 정밀한 타이밍으로 매우 안정적인 LoRa 방식 시스템을 만들 방법이 있을까요?
- @mrheosuper — ESP32-S3는 PSRAM을 지원하는데, 샘플을 PSRAM으로 보내고 PSRAM에 로직 분석기를 연결하면 디지털 인터페이스를 거치지 않고 샘플을 직접 얻을 수 있을까요? PSRAM 앞에 캐시가 있긴 하지만 동기화는 간단할 것 같습니다.
원문: RTL-SDR.com / 번역·요약: Trawling