Wi-Fi 7 роутер Gemtek W1700K переделали в SDR-приёмник с полосой 320 МГц
Wi-Fi 7 роутер Gemtek W1700K переделали в SDR-приёмник с полосой 320 МГц На GitHub вышел проект w1700k-sdr. Радиочип роутера MediaTek MT7996 отдаёт сырые I/Q по 14 бит, до 320 млн отсчётов в секунду. SoC Airoha AN7581 гонит поток по 10 GbE на компьютер, там спектр и водопад в браузере. По данным репозитория: ⚙️ три приёмных тракта: MT7976 на 2,4 ГГц и два MT7977 на 5 и 6 ГГц ⚙️ гетеродин у тестового экземпляра перестраивается в 2,081-2,748 и 4,647-7,576 ГГц, шаг сетки синтезатора 3-14 Гц, перестройка на ходу около 1 мс ⚙️ частота дискретизации 40, 80, 160 или 320 млн отсчётов/с ⚙️ аналоговый фильтр 20-320 МГц, АРУ или ручное усиление ⚙️ только приём: передающий тракт отключён, калибровки передачи не запускаются Самое интересное в прошивке. Кода MediaTek на MT7996 нет вообще. ROM чипа не проверяет таблицу перехватов в патче, через неё автор и загрузил свои прошивки управляющих ядер. Инициализацию и калибровки радиотракта восстановили по трассе штатной прошивки: 69 холодных загрузок, каждое обращение к регистрам записано вместе с адресом кода. Потом оставили только то, что нужно для приёма, и переписали на C. С пропускной способностью вышло впритык. 320 млн отсчётов/с по 32 бита на пару I/Q дают 1,28 ГБ/с, а 10 GbE несёт около 1,24 ГБ/с полезной нагрузки. Поэтому половину блоков упаковывают до 28 бит на пару прямо на ядрах радиочипа, без потерь, и канал загружен примерно на 97%. Кольцевой буфер на 1 ГиБ в памяти SoC переживает остановки примерно до 0,8 с. Ограничения автор перечисляет сам. Уровни в дБм не откалиброваны, есть только дБ от полной шкалы. Ниже 2 ГГц и между 2,75 и 4,65 ГГц без внешнего преобразователя не принять. Установка проверена на одном экземпляре, штатная ОС стирается, вернуть её можно только программатором NAND. Патч грузится лишь на чипах с незапрограммированными защитными eFuse. Участок 5,65-5,95 ГГц, где работает аналоговое FPV-видео, по ширине помещается в одно окно 320 МГц. Края окна по уровню проседают до -19 дБ, на хосте это выравнивается. Полезная Нагрузка