Raspberry Pi Pico WでBLE/Wi-Fi ⇔ UARTブリッジのファームウェア「PicoBrg」
1. 概要
Raspberry Pi Pico Wを使用して、以下の2つのモードで通信の変換(ブリッジ)を行うファームウェア「PicoBrg」を作成しました。
- BLEモード: BLE ⇔ UART の変換
- Wi-Fiモード: Wi-Fi(TCPソケット通信) ⇔ UART の変換
2. システム構成
PicoBrgは、PCアプリによる「設定」と、実際の「ブリッジ通信」の2つのフェーズで構成されています。
2.1 設定時の構成
専用のPCアプリを使用して、Pico Wの各種設定(通信モード・Wi-Fi・UART)を行います。
-
補足
- PCとPico WをUSBケーブルで接続して設定を行います。
- 各種設定(通信モード、Wi-Fi、UART)はPico W内のFlashメモリに保存されるため、一度設定すれば電源を切っても保持されます。
2.2 ブリッジ通信時の構成
設定完了後、Pico Wは設定された通信モードに従ってデータの橋渡し(ブリッジ)を行います。
-
通信モードの補足
- デフォルトはBLEモードです。
- BLEモードの場合、Pico WはBLEの「ペリフェラル」として動作します。
- Wi-Fiモードの場合、Pico Wは「TCPサーバー」と「TCPクライアント」のどちらかとして動作可能です。
3. 成果物
ソースコード、バイナリ、マニュアルは以下のGitHubリポジトリで公開しています。
GitHub - shiomachisoft/PicoBrg
開発環境・使用言語
- ファームウェア(FW): C++ / Arduino IDE
- PCアプリ: C# / Visual Studio
4. 詳細仕様
4.1 BLE仕様
-
サービスUUID(GATT & Advertise)
-
6E400001-B5A3-F393-E0A9-E50E24DCCA9E(Nordic UART Service (NUS) を使用)
-
-
Characteristic UUID(Write: BLE→UART)
6E400002-B5A3-F393-E0A9-E50E24DCCA9E
-
Characteristic UUID(Notify: UART→BLE)
6E400003-B5A3-F393-E0A9-E50E24DCCA9E
注意点
BLEの実際の通信レートは通信相手や距離によって変動するため、UARTのボーレートは9600bpsや4800bpsなどの低めの値に設定することを推奨します。
4.2 Wi-Fi仕様
- 対応規格: 2.4GHz帯(IEEE 802.11b/g/n)
- 暗号化方式: WPA2
-
TCPソケットポート番号:
7777固定
4.3 ハードウェア構成(ピン・LED)
-
UARTで使用するピン
- UART0 TX:
GP0(1番ピン) - UART0 RX:
GP1(2番ピン)
- UART0 TX:
-
LED点灯内容
- BLEまたはWi-Fiの接続完了時: 点灯
- 上記以外(無線未接続時): 500ms間隔で点滅
4.4 デフォルト設定
初期状態のパラメータは以下の通りです。
| 設定項目 | デフォルト値 |
|---|---|
| モード | BLEモード |
| ボーレート | 9600bps |
| データビット | 8(固定) |
| ストップビット | 1 |
| パリティ | 無し |
5. まとめ
専用のPCアプリ(PicoJigApp)を使用することで、通信モードやWi-Fi・UART設定を簡単にFlashメモリへ書き込むことができます。スマートフォンアプリ(Serial Bluetooth TerminalやLightBlue)やTera Termを使用した具体的なブリッジ通信の確認手順については、GitHub内のマニュアルをご参照ください。
6. 免責事項
本記事の内容や本ソフトウェアの使用により生じた、いかなる損害やトラブルについても、作者は一切の責任を負いません。ご利用は自己責任でお願いいたします。

