FM-1-transporter

FM-1 Transporter

English

接続

FM-1 の USB 信号線につないだ小型ボード(RP2040 / RP2350)を使い、PC から M-VAVE FM-1(JieLi AC791N / WL82)の Flash を読み書きするツールです。

ハードウェア

配線は 3 本だけです。VBUS は接続しないでください。 FM-1 は内蔵バッテリーで動作します。

ボード D+ D- 状態
Seeed XIAO RP2040 D6 (GP0) D7 (GP1) ✅ 推奨
Raspberry Pi Debug Probe(UART コネクタ) TX (GP4) RX (GP6) ✅ 動作確認済み
Raspberry Pi Pico GP0 GP1 ⚠️ ビルドのみ、未検証
Raspberry Pi Pico 2 GP0 GP1 ⚠️ ビルドのみ、未検証。D+/D- に外付け 15 kΩ プルダウンが必要な場合あり(RP2350 E9)
Waveshare RP2350-USB-A / USB-C / USB-CM GP12 GP13 ⚠️ 実験的・非推奨。基板の改造(D+ の 1.5 kΩ プルアップを外す、FM-1 に VBUS を出さない)とファームの移植が必要

どのボードも GND 同士をつなぎます。

導入

  1. Releases から使うボードの UF2 をダウンロードします。
  2. BOOTSEL を押しながらボードを接続し、RPI-RP2 ドライブに UF2 をコピーします。
  3. jl-uboot-tool から wl82loader.bin を入手します。このリポジトリには同梱していません。ツール使用時にボードの RAM へ送られます。

使い方

ウェブアプリ(Chrome / Edge): web/index.html を開き、手順に従います。

CLI(pyserial が必要):

python3 tools/fm1t.py --loader wl82loader.bin info
python3 tools/fm1t.py --loader wl82loader.bin dump backup.bin
python3 tools/fm1t.py --loader wl82loader.bin write --package FM-1_vNN.fwsc --ref backup.bin --write

--write なしの write は確認のみです。FM-1 のファームが壊れている場合は fm1t.py rekey を実行してから FM-1 の電源を入れます。その他は fm1t.py --help を参照してください。

ビルド

pico-sdk 2.2.0、ARM GCC、CMake が必要です。

git submodule update --init
cmake -S . -B build -DPICO_SDK_PATH=$HOME/pico-sdk -DPICO_BOARD=seeed_xiao_rp2040
make -C build -j8 fm1_transporter

Pico は -DPICO_BOARD=pico、Pico 2 は -DPICO_BOARD=pico2、Debug Probe は -DFM1T_BOARD=debugprobe -DPICO_BOARD=pico を指定します。

注意事項

Architecture · Protocol · Dev log · AGENTS.md

ライセンス

MIT。Pico-PIO-USB(MIT)を含みます。一部のルーチンは jl-uboot-tool(MIT)から移植しています。