1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Flipper ZeroでWi-Fi Developer Boardを使用する方法

Last updated at Posted at 2025-03-04

はじめに

本記事はFlipper ZeroでWi-Fi Developer Boardを使用する方法について記載しています。

Wi-Fi Developer Boardを購入してセットアップを行なったところ、セットアップに癖がありました。

Geekの方の参考になれば幸いです。

写真 2025-02-24 15 49 22.jpg

Wi-Fi Developer Board

Wi-Fi Developer Board(以下、Developer Board)は、Flipper Zeroを拡張するためのESP32-S21モジュールに基づいたプリント基盤です。

機能

Developer Boardは、Flipper Zeroにデバッグ機能とファームウェア更新機能を追加します。

基本的には開発者向けのデバッグ機能を提供しますが、Wi-Fiを利用した侵入テストを行うこともできます。

なお、侵入テストに関する機能は標準では搭載されていないため、自分でビルドを行うか用意されたファームウェアを使用するなど環境構築が必要です。

仕様

Developer Boardは、Black Magic Debug2と、CMSIS-DAP3を組み込んだカスタムファームウェアを搭載し、ESP32-S2 MCUをベースにしたESP-IDF4を使用して構築されています。

Developer Boardのハードウェアに関する詳細については、以下公式ドキュメントより確認できます。

購入方法

Amazonなどでも出品されていますが、正規ルートであるMarketplaceからの購入をお勧めします。

Marketplaceからの購入方法については、以前書いた「Geekのためのマルチツール Flipper Zero」をご参照ください。

また、上記記事でも書いていますが、支払いの通貨の選択によって金額が異なります。筆者は少しでも安く買うために今回もUSDを選択しました。

  • USD
    スクリーンショット 2025-02-19 23.30.01.png

  • JPY
    スクリーンショット 2025-02-19 23.22.20.png

セットアップ

Developer Boardを使用ために最低限必要な作業は、公式ドキュメントの「Get started with the Devboard」を踏まえて、以下の通りです。

  • Flipper Zeroでデバッグモードを有効にする
  • Developer Boardのファームウェアを更新する
  • DevboardをFlipper Zeroに接続する
  • コンピューターに接続する

写真 2025-02-24 15 47 03.jpg

Flipper Zeroでデバッグモードを有効にする

Flipper Zeroを操作して[Settings] → [System]に移動して、[Debug]を[ON]に設定します。

Screenshot 2025-02-24 at 15.52.24.png

Developer Boardのファームウェアを更新する

最新の機能とバグ修正を適用するためには、Developer Boardを定期的に更新することが重要です。

micro Flipper Build Toolのインストール

はじめにDeveloper Boardへファームウェアのフラッシュなどを行うことができるuFBTをインストールします。

以下はMacの例です。

$ python3 -m pip install --upgrade ufbt

Collecting ufbt
  Downloading ufbt-0.2.6-py3-none-any.whl.metadata (8.2 kB)
Collecting oslex>=0.1.3 (from ufbt)
  Downloading oslex-0.1.3-py3-none-any.whl.metadata (1.7 kB)
Collecting mslex (from oslex>=0.1.3->ufbt)
  Downloading mslex-1.3.0-py3-none-any.whl.metadata (4.2 kB)
Downloading ufbt-0.2.6-py3-none-any.whl (25 kB)
Downloading oslex-0.1.3-py3-none-any.whl (3.5 kB)
Downloading mslex-1.3.0-py3-none-any.whl (7.8 kB)
Installing collected packages: mslex, oslex, ufbt
Successfully installed mslex-1.3.0 oslex-0.1.3 ufbt-0.2.6

Developer BoardをPCに接続する

Developer Boardをブートローダモードに切り替えて、USB-CケーブルでPCに接続し、PCがDeveloper Boardを検出できる様にします。

写真 2025-02-24 15 58 45.jpg

以下のコマンドを実行して、PC接続後シリアルデバイスが認識されていることを確認します。

$ ls /dev/cu.*

/dev/cu.Bluetooth-Incoming-Port	/dev/cu.debug-console		/dev/cu.usbmodemblackmagic1	/dev/cu.usbmodemblackmagic3

Developer Boardをブートローダ モードに切り替えるためには、次の操作を行います。

  1. BOOTボタンを長押し
  2. BOOTボタンを押しながらRESETボタンを押す
  3. BOOTボタンを放す

写真 2025-02-24 16 00 24.jpg

ファームウェアのフラッシュ

ファームウェアをフラッシュするには、以下のコマンドを実行しますが、証明書の検証に失敗した場合は以下の様なメッセージが出力されます。

$ python3 -m ufbt devboard_flash

16:01:14.724 [I] Deploying SDK for f7
16:01:14.725 [I] Fetching version info for UpdateChannel.RELEASE from https://update.flipperzero.one/firmware/directory.json
16:01:14.812 [E] Failed to run operation: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)>. See --verbose for details
SDK is missing scripts distribution!
You might be trying to use an SDK in an outdated format.
You can clean up current state with `ufbt clean --purge`.
Run `ufbt update -h` for more information on SDK installation.

上記の様なメッセージが出力された場合は、以下のオプションを付与することで回避できます。

$ python3 -m ufbt --no-check-certificate update

16:09:35.449 [I] Deploying SDK for f7
16:09:35.450 [I] Fetching version info for UpdateChannel.RELEASE from https://update.flipperzero.one/firmware/directory.json
16:09:36.154 [I] Using version: 1.2.0
16:09:36.154 [I] uFBT SDK dir: /Users/flipper/.ufbt/current
16:09:36.835 [I] Deploying SDK
16:09:37.024 [I] SDK deployed.

再度、ファームウェアのフラッシュを行ったところ、今度は以下の様なエラーメッセージが出力されました。

$ python3 -m ufbt devboard_flash

Checking for tar..yes
Checking if downloaded toolchain tgz exists..no
Checking curl..yes
Downloading toolchain:
############################################################################################################################################################## 100.0%
done
Removing old toolchain..done
Unpacking toolchain to '/Users/flipper/.ufbt/toolchain':
##################################################################### 100.0%
linking toolchain to 'current'..done
Cleaning up..done
scons: Entering directory `/Users/flipper/.ufbt/current/scripts/ufbt'

fbt: warning: App folder '/Users/flipper': missing manifest (application.fam)
LoadAppManifest, line 130, in file "/Users/flipper/.ufbt/current/scripts/fbt_tools/fbt_apps.py"
python3 /Users/flipper/.ufbt/current/scripts/wifi_board.py
2025-02-24 16:12:22,183 [ERROR] WiFi board not found
2025-02-24 16:12:22,183 [INFO] Please connect WiFi board to your computer, hold down BOOT button and press RESET button
2025-02-24 16:12:22,183 [INFO] If you are using Linux, you may need to add udev rules to access the device
2025-02-24 16:12:22,183 [INFO] Check out 41-flipper.rules & README in scripts/debug folder
scons: *** [phony_devboard_flash] Error 1

PCから取り外し、再度接続を試みましたが、事象は解決できませんでした。

対応として、フォーラムの[ERROR] WiFi board not foundを参照して、以下の手順を実行することで解消できました。

  1. Wi-FiボードからUSB-Cを取り外す
  2. BOOTボタンを押しながら差し込む
  3. コマンドを実行

$ python3 -m ufbt devboard_flash

scons: Entering directory `/Users/flipper/.ufbt/current/scripts/ufbt'

fbt: warning: App folder '/Users/flipper': missing manifest (application.fam)
LoadAppManifest, line 130, in file "/Users/flipper/.ufbt/current/scripts/fbt_tools/fbt_apps.py"
python3 /Users/flipper/.ufbt/current/scripts/wifi_board.py
2025-02-24 18:27:14,528 [INFO] Downloading https://update.flipperzero.one/blackmagic-firmware/directory.json
2025-02-24 18:27:15,218 [INFO] Using channel 'release'
2025-02-24 18:27:15,218 [INFO] Using version '0.1.1'
2025-02-24 18:27:15,219 [INFO] Changelog:
2025-02-24 18:27:15,219 [INFO]   ## What's Changed
2025-02-24 18:27:15,219 [INFO]   * [readme] Add instructions on flashing firmware from source by @ide in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/8
2025-02-24 18:27:15,219 [INFO]   * [typo] fixed from credenitals to credentials by @GitAYYYer in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/9
2025-02-24 18:27:15,219 [INFO]   * Add schematic to README.md by @DrZlo13 in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/10
2025-02-24 18:27:15,219 [INFO]   * Update schematic to last version by @DrZlo13 in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/11
2025-02-24 18:27:15,219 [INFO]   * Update schematic link by @DrZlo13 in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/12
2025-02-24 18:27:15,220 [INFO]   * Fix the link that leads to schematics by @Alex-avia in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/15
2025-02-24 18:27:15,220 [INFO]   * add MDNS hostname as a config element by @0xDRRB in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/17
2025-02-24 18:27:15,220 [INFO]   * Dap-link support mode by @DrZlo13 in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/18
2025-02-24 18:27:15,220 [INFO]   * README: required version of esp-idf, development of the web interface by @DrZlo13 in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/22
2025-02-24 18:27:15,220 [INFO]   * Fix README esp-idf link by @DrZlo13 in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/27
2025-02-24 18:27:15,220 [INFO]   * Fix mDNS in AP mode by @Astrrra in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/29
2025-02-24 18:27:15,220 [INFO]   * Update blackmagic version by @DrZlo13 in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/23
2025-02-24 18:27:15,220 [INFO]   * Add indexer by @drunkbatya in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/32
2025-02-24 18:27:15,221 [INFO]   * Add compression by @drunkbatya in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/33
2025-02-24 18:27:15,221 [INFO]   ## New Contributors
2025-02-24 18:27:15,221 [INFO]   * @ide made their first contribution in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/8
2025-02-24 18:27:15,221 [INFO]   * @GitAYYYer made their first contribution in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/9
2025-02-24 18:27:15,221 [INFO]   * @Alex-avia made their first contribution in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/15
2025-02-24 18:27:15,221 [INFO]   * @0xDRRB made their first contribution in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/17
2025-02-24 18:27:15,221 [INFO]   * @Astrrra made their first contribution in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/29
2025-02-24 18:27:15,221 [INFO]   * @drunkbatya made their first contribution in https://github.com/flipperdevices/blackmagic-esp32-s2/pull/32
2025-02-24 18:27:15,221 [INFO]   **Full Changelog**: https://github.com/flipperdevices/blackmagic-esp32-s2/compare/0.0.2...0.1.1
2025-02-24 18:27:15,221 [INFO] Downloading https://update.flipperzero.one/builds/blackmagic-firmware/0.1.1/blackmagic-firmware-s2-full-0.1.1.tgz to /var/folders/9j/xp91vjk50y14w_m_lr_x1s3r0000gn/T/tmptfhyvs4z/blackmagic-firmware-s2-full-0.1.1.tgz
2025-02-24 18:27:15,351 [INFO] Unzipping /var/folders/9j/xp91vjk50y14w_m_lr_x1s3r0000gn/T/tmptfhyvs4z/blackmagic-firmware-s2-full-0.1.1.tgz
2025-02-24 18:27:15,372 [INFO] Running command: "python3 -m esptool -p /dev/cu.usbmodem01 -b 460800 --before default_reset --after no_reset_stub --chip esp32s2 write_flash --flash_mode dio --flash_freq 80m --flash_size 4MB 0x1000 bootloader.bin 0x10000 blackmagic.bin 0x8000 partition-table.bin" in "/var/folders/9j/xp91vjk50y14w_m_lr_x1s3r0000gn/T/tmptfhyvs4z"
2025-02-24 18:27:26,907 [INFO] WiFi board flashed successfully
2025-02-24 18:27:26,907 [INFO] Press RESET button on WiFi board to start it

また、ls /dev/cu.*の出力結果も変わったことが確認できました。

/dev/cu.Bluetooth-Incoming-Port	/dev/cu.debug-console		/dev/cu.usbmodem01

インストールを完了する

インストール完了後、次の操作を行いファームウェアが正常に更新されたことを確認します。

  1. RESETボタンを押してDeveloper Boardを再起動する
  2. USB-Cケーブルを外して再度接続する

DevboardをFlipper Zeroに接続する

ファームウェアを更新後、Flipper Zeroに接続できますが、次の2点に留意します。

  • Developer BoardをFlipper Zeroを接続する前に、Flipper Zeroの電源をオフにする
  • Developer Boardが完全に挿入されていることを確認する

写真 2025-02-24 18 35 09.jpg

コンピューターに接続する

Developer Boardにワイヤレスで接続するには、次の2つの方法があります。

  • Wi-Fi access point mode (default)
    • 独自の Wi-Fi ネットワークを作成
  • Wi-Fi client mode
    • 既存のWi-Fiネットワークを介してDevboardに接続できるため、インターネット接続を失うことなくWi-Fi経由でDevboard Webインターフェースにアクセスし、デバッグを行なうことが可能

Developer BoardへのWi-Fi接続

Developer BoardをWi-Fi client modeで接続するには、次の手順を実行して、Wi-Fi ネットワークに接続するように構成する必要があります。

  1. Flipper Zero の電源をオフにして開発ボードを接続し、デバイスの電源を再度オンにして、Developer BoardをFlipper Zeroに接続する
  2. Wi-Fi access point modeでDeveloper Boardに接続する
  3. ブラウザでDeveloper BoardのWebインターフェイス(http://192.168.4.1 または http://blackmagic.local )にアクセスする
  4. STAモードを選択し、ネットワークのSSID (名前) とパスワードを入力(+ボタンをクリックすると、近くの2.4GHzネットワークのリストが表示される※5GHzネットワークはサポートされない)

スクリーンショット 2025-02-24 18.42.40.png

以上で既存のWi-Fi ネットワーク経由でアクセスすることができます。

おわり

Flipper Zeroは好奇心をくすぐるのに最適なツールです。

Developer Boardを使用することで、低レイヤの開発について学ぶことができます。

参考

  1. Wi-FiとBluetoothを内蔵する低消費電力なSoCのマイクロコントローラ

  2. Black Magic Probeの形式に基づきGNU DeBugger (GDB)サーバを実装する

  3. CoreSight Debug Access Port (DAP)へのアクセスをサポートするプロトコル仕様及びARMが提供するリファレンスファームウェアの実装

  4. ESP32、ESP32-S、ESP32-C、ESP32-H シリーズのSoC向けEspressifの公式IoT開発フレームワーク

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?