Прошивка w1700k-sdr превращает роутер Gemtek W1700K в SDR-приёмник на 320 Msps

Прошивка w1700k-sdr превращает роутер Gemtek W1700K в SDR-приёмник на 320 Msps

В репозитории w1700k-sdr на GitHub описан способ превратить Wi-Fi 7 роутер Gemtek W1700K в широкополосный программно-определяемый приёмник (SDR). Радиомодуль роутера MediaTek MT7996 захватывает сырые 14-битные отсчёты IQ с частотой до 320 Msps (миллионов отсчётов в секунду), SoC Airoha AN7581 отправляет их по 10 GbE, а Linux-хост показывает живой спектр и водопад в браузере, рядом с органами управления приёмником.

На радиомодуле работает только собственная прошивка проекта: ROM-патч, а также WM и WA, собранные из репозитория, без кода MediaTek. Она сама поднимает радио с холодного включения: инициализация и калибровка MediaTek декодированы регистр за регистром по трассе работы родной прошивки MediaTek. Команды (частота гетеродина, частота дискретизации, захват, поток, усиление, фильтр) прошивка получает от хоста.

Демонстрации из описания: весь диапазон 2,4 ГГц на 320 Msps вживую, с выровненным спадом децимации (режим flatten); 262 144-точечное БПФ каждого отсчёта, 100 спектров в секунду (показанная запись идёт на 50 кадрах в секунду). Панель Stream показывает канал с нагрузкой 9,75 Гбит/с. Во втором примере два занятых 80-мегагерцовых Wi-Fi-канала на 5170-5330 МГц в выровненном обзоре на 320 МГц; при увеличении до 24 МГц вокруг 5250 МГц видны края каналов и защитный интервал между ними в ячейках по 1,22 кГц.

Что нужно: роутер W1700K (HW 1.x) или W1700K2 (HW 2.1), USB-адаптер последовательного порта на 3,3 В для консольного разъёма, Ethernet-кабель к порту lan3 для установки и сетевая карта 10 GbE на хосте, подключённая к порту wan (10GBASE-T; работает X710 с медным модулем SFP+). Сборка всего из публичных источников командой make занимает около 10 минут плюс загрузки; прошивки вендора не нужны. Установка (init/install) делает резервную копию NAND, ставит систему и сохраняет калибровку радио. Затем запускаются сервис потока и веб-сервер спектра, интерфейс открывается на порту 8073, а первый запуск загружает прошивку радио примерно за 2 секунды. Без браузера доступны те же операции командами host/bin/w1700k load|start|band|tune|gain|filter|stop|status.

Авторы отдельно оговаривают риски: прошивка только принимает, но к антенному порту не стоит подключать чувствительный прибор без аттенюатора; установка заменяет штатную операционную систему (возврат делает init/restore из резервной копии NAND); обращение к недокументированным адресам MT7996 или AN7581 может подвесить SoC или заклинить радио до перезапуска питания. Лицензия: MIT, за исключением драйвера и патчей ядра Linux (GPL-2.0-only), патчей U-Boot (GPL-2.0+), пользовательского заголовка драйвера (GPL-2.0 WITH Linux-syscall-note) и файлов, производных от драйвера mt76 от MediaTek (BSD-3-Clause-Clear).

Ключевые факты

  • Роутер Gemtek W1700K (ревизии HW 1.x и W1700K2 HW 2.1) работает как широкополосный SDR-приёмник: радиомодуль MediaTek MT7996 даёт сырые 14-битные IQ до 320 Msps.
  • Поток уходит через SoC Airoha AN7581 по 10 GbE на Linux-хост; спектр и водопад показываются в браузере. В демо 2,4 ГГц: 262 144-точечное БПФ, 100 спектров в секунду, канал 9,75 Гбит/с.
  • На MT7996 работает только собственная прошивка проекта без кода MediaTek; она получает команды от хоста и поднимает радио примерно за 2 секунды.
  • Прошивка только принимает; ROM-патч проекта не пишет eFuse, а установка заменяет штатную систему (откат через init/restore из резервной копии NAND).
  • Код под MIT, кроме драйвера и патчей ядра и U-Boot (GPL) и файлов, производных от mt76 (BSD-3-Clause-Clear).

Почему это важно

Проект показывает, что радиомодуль серийного Wi-Fi 7 роутера можно использовать как широкополосный приёмник сырых отсчётов IQ: до 320 Msps с 14-битной разрядностью, с живым спектром и водопадом на хосте. В описании показан весь диапазон 2,4 ГГц одним потоком и обзор 320 МГц в диапазоне 5 ГГц. Отдельно сделано то, что обычно закрыто: радио поднимается собственной прошивкой без кода MediaTek, а инициализация и калибровка восстановлены по трассе работы родной прошивки.

Кому это важно

Тем, кто занимается радиоприёмом и SDR, исследует эфир в диапазонах 2,4 и 5 ГГц, а также разработчикам встраиваемых систем и прошивок: в репозитории выложены документы docs/architecture.md и docs/roadmap.md, а в include/hw/ отмечены известные опасные места. Нужны роутер W1700K или W1700K2, USB-адаптер последовательного порта и хост с сетевой картой 10 GbE.

Как это применить

Порядок по описанию: собрать всё командой make (около 10 минут плюс загрузки; нужны компилятор C/C++, git, Python 3.10+, clang, ld.lld, openssl, libfftw3-dev и zlib), прогнать make check; поднять сеть до lan3 (192.168.1.10/24) и TFTP-пересылку; выполнить init/install, который сохранит резервную копию NAND и калибровку радио; поднять канал 10 GbE к порту wan, запустить сервис потока и веб-сервер спектра и открыть http://HOST:8073/, нажав ▶. Цена и сроки поставки роутера в источнике не указаны.

Можно ли доверять

Источник, собственное описание проекта в репозитории; все утверждения о прошивке, режиме только приёма и отсутствии записи в eFuse исходят от авторов проекта и независимо не проверены. Авторы проекта в тексте не названы, ни дата, ни номер версии не указаны. Не приведены чувствительность, коэффициент шума, динамический диапазон и точность приёмника, а также сравнение со специализированным SDR-оборудованием. Цифра 320 Msps дана как «до», без пояснения, во всех ли режимах она удерживается.

Риски и подводные камни

Установка заменяет штатную операционную систему; перед этим init/install копирует данные NAND на хост, и эту копию нужно сохранить, иначе вернуть штатную прошивку через init/restore нельзя. Обращение к недокументированным адресам MT7996 или AN7581 может подвесить SoC или заклинить радио до перезапуска питания. Микросхема NAND W25N04LV, которая встречается в некоторых W1700K2, поддерживается, но ни разу не запускалась на реальном устройстве: install на ней останавливается, пока не передан специальный флаг, и авторы просят сделать сырой дамп. По словам авторов, ROM-патчи MediaTek с 2025 года при первом запуске необратимо программируют один бит eFuse (в том числе с драйвером MediaTek), а патч проекта eFuse не пишет. К антенному порту нельзя напрямую подключать чувствительный прибор без аттенюатора. Для потока нужна сетевая карта 10 GbE, а не обычный гигабитный порт.

«Наша прошивка работает только на приём.»

— описание проекта w1700k-sdr на GitHub