世界を動かす技術を、日本語で。

WiFi 7ルーターを320Mspsソフトウェア定義無線受信機に変換する

2026年10月12日原文(github.com)

概要

Gemtek W1700K Wi-Fi 7ルーターを広帯域ソフトウェア定義受信機(SDR)へ変換する手法 MediaTek MT7996無線チップによる14ビットIQデータの高速キャプチャと10GbE経由のストリーミング 独自ファームウェアのみ利用、MediaTekコード不使用 Linuxホスト上でブラウザUIによるスペクトラム・ウォーターフォール表示 導入・運用方法、注意点、必要環境の解説

Gemtek W1700KをSDR受信機化する概要

  • Gemtek W1700K Wi-Fi 7ルーター を 広帯域ソフトウェア定義受信機 (SDR)へ変換する技術
  • MediaTek MT7996 無線チップで 14ビット複素IQデータ を最大320 Mspsで取得
  • Airoha AN7581 SoC がデータを10 GbEでストリーミング
  • Linuxホストで リアルタイムスペクトラム・ウォーターフォール 表示
  • 受信機制御(LO、サンプルレート、ゲイン等)は ブラウザUI横のコントロールパネル から操作

機能詳細

  • サンプリングレート
    • 40, 80, 160, 320 Msps(14ビット複素IQ)
    • バンド2では640/2(640 Mspsの半分間引き)も対応
  • 対応バンド
    • 2.4 GHz(MT7976)、5 GHz・6 GHz(各2基のMT7977)
    • バンド切替はストリーム稼働中にレジスタ書き込みで即時切替
  • チューニング
    • チャンネル固定ではなく 任意の周波数 (LO)はバンドごとに任意Hzで設定可能
    • LOの再設定はストリーム中でも約1msで完了
  • フロントエンド制御
    • AGCまたは手動LNA/ベースバンドゲイン
    • アナログフィルタ20〜320 MHz

データ転送・ストリーミング

  • SoC内DRAMの1GiBリングバッファ へDMA転送
  • カーネルが8KiBごとにUDPデータグラムで10GbEポートへゼロコピー送信
  • 320 Msps時にはリンク帯域確保のためサンプルペアを28ビットでパッキング(ロスレス自動処理)
  • ホスト側で w1700k-stream がIQストリームを各プロセスに共有メモリで配信
  • デシメーションロールオフ補正(flatten)もオプションで可能
  • w1700k-spectrum で262,144ポイントFFTを100フレーム/秒でブラウザ表示
  • sdr-recv でストリーム録音も可能

ファームウェア・ソフトウェア構成

  • 完全自作ファームウェア (ROMパッチ、WM/WA)をMT7996上で実行
    • MediaTek純正コード・ファームウェアは一切使用しない
    • MediaTek初期化・キャリブレーション手順を解析し、独自に再現
  • リポジトリ構成
    • platform/:SoC用U-Boot、Linuxカーネル、BusyBox
    • kernel/w1700k_sdr/:MT7996ドライバ、DMAリング、10GbEエクスポート等
    • firmware/:MT7996用独自ファームウェア
    • host/w1700k/:ホスト側制御・ファームウェアロード・ストリーミング・UI
    • host/stream/:IQストリーム配信サービス
    • host/spectrum/:スペクトラム・ウォーターフォールWebサーバ
    • host/recv/:ストリーム録音
    • init/:初期導入・アップデート・リカバリ
    • include/hw/:MT7996/AN7581レジスタリファレンス
    • docs/:アーキテクチャ、ロードマップ

導入手順・必要環境

  • 必要機材
    • W1700K本体
    • 3.3V USBシリアルアダプタ(コンソール接続用)
    • LAN3ポート接続用イーサネットケーブル
    • 10GbE NICを搭載したLinuxホスト(WANポート直結、例:Intel X710+SFP+モジュール)
  • ビルド・導入コマンド例
    • make:全ビルド(10分程度)
    • make check:テストスイート
    • sudo init/host/link up IFACE:LAN3ポート用IP設定
    • sudo init/host/tftp-forward enable IFACE
    • init/install:NANDバックアップ・インストール・キャリブ保存
    • sudo init/host/link up IFACE10G 10.77.0.10/24 9216:10GbEリンク設定
    • host/stream/build/w1700k-stream &:ストリーム配信開始
    • host/spectrum/build/w1700k-spectrum --controller "host/bin/w1700k serve" --listen 0.0.0.0:8073:Webサーバ起動
    • ブラウザでhttp://HOST:8073/へアクセスし、▶ボタンで受信開始(初回はファームウェアロードに約2秒)
  • CLI操作
    • host/bin/w1700k load|start|band|tune|gain|filter|stop|statusで各種制御

ビルド要件

  • C/C++コンパイラ、make、git、Python 3.10+、Buildroot関連ツール
  • clang、ld.lld、llvm-objcopy、llvm-readobj(RISC-Vファーム用)
  • openssl(ファームウェア暗号化)、libfftw3-dev、zlib(ストリーム・スペクトラムサーバ用)
  • ベンダーファームウェアは一切不要

注意事項・ライセンス

  • 本ファームウェアは受信専用
    • MediaTekの送信キャリブレーションは一切実行せず、MAC送信経路も無効化
    • ただし、アンテナ端子を高感度機器へ直結する場合は必ずアッテネータ挿入を推奨
  • ROMパッチはeFuseを書き換えない
    • MediaTek純正ROMパッチ(2025年以降)はeFuseゲートビットを一度だけ書き込み、以後恒久的に残る
  • 導入時はストックOSを完全に置換
    • init/installでNAND全体をバックアップ、復元には生NANDライタが必要(本リポジトリには含まず)
  • 未公開レジスタアクセスはSoCハング・無線機能停止のリスク
    • include/hw/で既知の危険アドレスを明記
  • ライセンス
    • MIT(Linuxドライバ・カーネルパッチはGPL-2.0、U-BootパッチはGPL-2.0+、一部BSD-3-Clause-Clear)
    • 詳細はLICENSE参照

Hackerたちの意見

わー、めっちゃクールだね!DCから昼間に移行するわけじゃないけど、5GHzで320 Mspsの受信機を手に入れる安い方法は知らないな。

ありがとう、クロード。

└

そうそう、こんなの読むとさ。「BRINGUP、コールドラジオから:MediaTekのROMパッチがダウンロード時に何をするか(XO、ピンマルチプレクサ、バンドごとのCONN AFEキャリブレーションパルス、チップIDによるAダイTOP初期化、パッドとCONNスイッチ、AダイのeFuseトリム);UMACプールのレイアウト;共通およびバンドごとのPHY初期化;各AダイのRF初期化テーブル、抵抗キャリブレーション、RCフィルターキャリブレーション;FEM出力とクリスタルトリム。」これって、他の言語を下手に英語に訳したわけでもなく、ただの単語の羅列だよね。こんなのや、読めない数学の「証明」とか見ると、ほんとにここに何のメリットがあるのか分からなくなる。これから得られるのは、もしドキュメントがあれば、このハードウェア用にWifi7アプリケーションよりも一般的なSDRアプリケーションを書けるってことかな。LLMモデルがこの挙動を引き起こせるってのは、もしかしたら良い存在証明かもね。

└

クロードだろうがそうじゃなかろうが:アマチュア無線と信号分析にとって大きなブレイクスルーだよ。これで、手動で調整したものをプログラムして、フルの13cmと5cmラジオにできるようになった。esp-sdrハックとこれが出る前は、両バンドともかなり難しくて高価だったからね。

└

誰かがハーネスにハードウェアをセットアップして、その後トークンを使ってリバースエンジニアリングするつもりなら、公開してくれて感謝だよ。一年前は違ったけどね。こういうvibe-REプロジェクトをたくさん見たけど、実際に主張していることすらできないものが多かった。今は、誰かがフロンティアモデルをコードに向けて、数日間トークンを消費させると、出力は他のプロジェクトのスタート地点として価値があることが多いよ。

└

こういうソフトウェアを書くのにGPTを使ってみて。誰でもできるわけじゃないと思うよ。問題領域をよく理解してないと無理だし。何かを理解するって、まだどのAIにも代わりはできないからね。

古いサービスモニターの修理をたくさんやってきて、SDRにも手を出してるけど、これはすごい!サービスモニターを作るには大量の機械加工とハードウェアが必要だけど、デスクトップCNCや安いPCB、10GHz台に入るジャリービーンコンポーネントがあれば、可能性は無限大だよ。ヒートシンク付きの100ワットDC-5GHz 20dB固定減衰器、0-110 dBスイッチング減衰器、5GHzローパスフィルター、7-12GHzローカルオシレーター/ミキサー上下変換器を追加すれば、小さくて非常に高性能なサービスモニターが5GHzまで使えるようになるよ。8)

└

なんで4GHzなの?

└

サービスモニター?

ラジオの音質はどう?SNRは?

└

Wi-Fi認証されてるなら、最高品質だと思うよ。ほとんどのMediaTekモデムはそうだしね。標準化された認証テストシステムに一度でも接続されてないと、そのタグは付けられないから。

参考までに、同じチップセットだから、これがNVMe用のPCIeを内蔵したBanana Pi R4でも動くって確信してるよ。

Hacker Newsで議論の続きを見る