Hacker News Digest

12 октября 2026 г. в 12:41 • github.com • ⭐ 341 • 💬 90

Original • HN

#github

Turn a WiFi 7 Router into a 320Msps Software Defined Radio Receiver

Проект превращает роутер Gemtek W1700K с Wi-Fi 7 в широкополосный программно-определённый приёмник. Его чип MediaTek MT7996 захватывает сырые 14-битные IQ-данные со скоростью до 320 Msps, а SoC Airoha AN7581 передаёт их по 10 Гбит/с Ethernet без копирования в ядро Linux. На хосте запускаются сервисы: w1700k-stream принимает поток и делает его доступным через разделённую память, а w1700k-spectrum строит спектр и водопад в браузере с обновлением 100 кадров в секунду на основе 262144-точечного FFT. Управление LO, усилением, фильтрами и выбором диапазона происходит в реальном времени с задержкой около 1 мс.

Система поддерживает три диапазона: 2,4 ГГц (один MT7976), 5 ГГц и 6 ГГц (по одному MT7977 в каждом). Переключение между ними — запись в регистр во время работы потока. Частоты настройки задаются произвольным Гц в пределах диапазонов синтезатора с шагом ~3 Гц для 2,4 ГГц и ~12 Гц для 5/6 ГГц. Возможны скорости дискретизации 40, 80, 160 и 320 Msps на всех диапазонах, а на втором диапазоне также 640/2 Msps (каждая вторая выборка из 640 Msps), обеспечивая плоский отклик до ±155 МГц с алиасингом сигналов на 160–320 МГц от LO. Аналоговый фильтр имеет полосу 20–320 МГц, а усиление регулируется вручную или через AGC.

Прошивка радио разработана с нуля: включает патч ROM, загрузчик и драйвер WM/WA, собранные из репозитория, без использования кода MediaTek. Инициализация выполняется путём повторения последовательности регистров из трассировки оригинальной прошивки. Для сборки нужны стандартные инструменты (компилятор, make, git, Python 3.10+, Buildroot-зависимости, clang, ld.lld, LLVM-утилиты, OpenSSL для шифрования прошивки, libfftw3-dev и zlib). Прошивка приёмная только — передача отключена, MAC не излучает. Установка заменяет стоковую ОС, но позволяет сделать резервную копию NAND и восстановить её позже. Доступ к недокументированным адресам чипов может зависнуть SoC, поэтому в include/hw/ помечены все известные опасности. Лицензия — MIT с исключениями для GPL и BSD-файлов, унаследованных от драйверов mt66 и mt76.