SO-ARM101 ワイヤレス遠隔操作トラブルシューティングガイド(NanoCam 版)
本ページは ESP32-NanoCam 版 SO-ARM101 ワイヤレス遠隔操作のよくある故障のトラブルシューティングをまとめたものです。完全な操作手順は SO-ARM101 ワイヤレス遠隔操作(ESP32-NanoCam 版)を参照してください。
汎用トラブルシューティング早見表
| 現象 | チェック項目 |
|---|---|
| 書き込み時に接続できない | 手動でダウンロードモードへ(BOOT+リセット);platformio.ini に upload_port を追加 |
| 書き込み後にシリアル出力がない | USB ケーブルと CH340 ドライバを確認;Windows はデバイスマネージャーで COM ポートを確認 |
Waiting for micro-ROS Agent... で止まる | AGENT_IP / UDP 8888 / クライアント分離を確認 |
サーボバスが応答しない(servo_mask≠0x3f) | サーボドライバ基板の UART 経由で P2-7/P2-8 に接続されているか確認;フォロワーアームは 12V 5A 外部給電 |
| マイクレベルが常に 0 | audio: ES8311 ready ログを確認;I2C 41/42 のプルアップ;マイクに息を吹きかけて検証 |
| スピーカーから音が出ない | スピーカーの接続を確認;ES8311 音量レジスタ R_DAC32(現在のファームウェアでは最大 0xFF に設定済み) |
| WiFi が頻繁に切れる | アンテナ・距離を確認;RGB が赤になると WiFi 切断を意味し、10s 後に自動再起動 |
書き込みとシリアルの問題
- 書き込み時に接続できない:BOOT キー(GPIO0)を押し続ける → USB を挿す(またはリセットを押す)→ BOOT を離す、その後すぐに upload を再実行。Windows でシリアルポートが自動認識されない場合は、
platformio.iniの[env:nano_cam]にupload_port = COM3の 1 行を追加(デバイスマネージャーの CH340 の実際の COM 番号に置き換え)。 - 書き込み後にシリアル出力がない:NanoCam の USB は CH340K → UART0 で、Linux でのデバイス名は
/dev/ttyUSB0。挿しても認識されない場合は USB ケーブルと CH340 ドライバ(カーネル同梱)を確認。 - サーボバスが応答しない(
servo_mask≠0x3f):サーボバスがサーボドライバ基板の UART 経由で P2-7/P2-8(GPIO19/20)に接続されていることを確認(UART0 の 43/44 ではない);フォロワーアームは必ず 12V 5A で外部給電(USB では 6 個のサーボを駆動できない)。 - サーボバスとデバッグ用シリアルの混同:デバッグ用シリアルは USB-C(CH340K → UART0)で、サーボバスとは完全に独立しており同時に使用可能。
コンパイルとツールチェーンの問題
- 初回
pio runのダウンロードが遅い/止まる(初回は espressif32 プラットフォーム、toolchain-xtensa-esp32s3ツールチェーン約 100 MB、Arduino フレームワーク約 200 MB を順にダウンロード):PlatformIO の残り時間表示は不正確で、しばらく止まったように見えた後に突然完了することがよくあります。5 分ほど待ち、パーセンテージが進むか確認してください;プロキシ/VPN を有効化(システムプロキシ経由)してもかまいません。 - ツールチェーンの手動ダウンロード:ブラウザで
https://dl.espressif.com/dl/xtensa-esp32s3-elf-gcc8_4_0-esp-2021r2-patch5-win32.zipをダウンロード(Linux は-linux-amd64.tar.gz)。解凍後にディレクトリ名をtoolchain-xtensa-esp32s3に変更し、C:\Users\<用户名>\.platformio\packages\に配置してpio runを再実行;途中で Ctrl+C で中断しても環境は壊れず、再実行で続きからダウンロードされます。 - Windows で Git Bash から
pioコマンドが見つからない:PowerShell/CMD のターミナルに切り替えるか、C:\Users\<用户名>\.platformio\penv\Scriptsを PATH に追加してください。
カメラ専用トラブルシューティング
| 現象 | 根本原因 | 修正 |
|---|---|---|
i2c driver install error + camera probe failed | I2C 競合:ES8311 が Wire1 で GPIO41/42 を占有し、カメラ SCCB の I2C ドライバインストールが拒否される | audio_es8311.cpp の init() 末尾に Wire1.end() を追加し、I2C をカメラ用に解放 |
JPEG format is not supported on this sensor(0x106) | GC2145 にはハードウェア JPEG エンコーダがない(OV2640/OV5640 のみ) | キャプチャを PIXFORMAT_RGB565 に変更し、/stream と /jpg は frame2jpg でソフトウェア JPEG エンコード |
/jpg、/stream が応答せず、ブラウザが回り続ける | httpd スタックオーバーフロー:デフォルト 8KB では frame2jpg のソフトウェアエンコードを賄えない | start_server() で config.stack_size = 16384 |
/stream は開くが画面が真っ黒 | multipart バウンダリ欠落:各フレーム間に STREAM_BOUNDARY が送られず、ブラウザが解析できない | 各フレーム送信前に STREAM_BOUNDARY を追加送信 |
curl で /jpg を確認すると HTTP:000 だが、ブラウザでは画像が出る | esp_http_server はシングルタスク:/stream が httpd タスクを占有すると /jpg が実行できない;または curl のタイムアウトが短すぎる | /stream を閉じてから /jpg を単独で確認;ブラウザで curl の代わりに検証 |
| カメラ初期化は成功するが全黒/フレームなし | 多くはハードウェア要因:AVDD/DOVDD 給電、PWDN レベル、フレキ接触 | まずブラウザの /jpg でスナップショットを確認(画像が出ればリンクは正常);カメラの 2.8V 給電とフレキを確認 |
| VGA 画面下部の約 2/3 に表示崩れ | DVP データレートが高すぎる:VGA RGB565 が本基板の DVP サンプリングタイミング余裕を超える(24/20/16MHz × シングル/ダブルバッファすべてで再現);QVGA は正常 | 正式構成では QVGA 320×240(FPV には十分)を使用、またはより安定した XCLK に変更/DVP のハードウェア配線を修正 |
備考:表中の前 4 項目は同梱ファームウェアで修正済みです。最新のファームウェアを書き込めばよく、手動でコードを変更する必要はありません。
注意:esp_http_server はシングルタスクのため、/stream と /jpg は同時にアクセスできません——/stream を開いている間は /jpg がずっとハングします。単一フレームを取得する前にストリームのページを閉じてください。
オーディオ専用トラブルシューティング
| 現象 | 根本原因 | 修正 |
|---|---|---|
スピーカーが完全に無音 + マイクレベル ≈ 0(例 0.0009) | MCLK が出力されていない:legacy I2S ドライバが ESP32-S3 で MCLK を生成せず、ES8311 内部の DAC/ADC にクロックがない | LEDC で GPIO39 に 6.15MHz の MCLK を生成(audio_es8311.cpp の start_ledc_mclk()) |
| 通知音が小さすぎる(耳を近づけないと聞こえない) | デジタル振幅が低い + ES8311 のマスター音量が小さい | play_tone の振幅 12000→30000、R_DAC32 0x30→0xFF(約 +29dB) |
| 電源投入時に起動の"ピピッ"だけで他の通知音がない | 正常な現象:準備完了/ロック解除の通知音はイベントドリブンで、遠隔操作を実行して初めて鳴る | 起動音=電源投入時に再生;準備完了音=Agent 通信確立時;ロック解除音=制御コマンド受信時 |
備考:前 2 項目は同梱ファームウェアで修正済みです。3 項目目は正常な現象で、対処は不要です。
マイク、スピーカー、RGB のハードウェアチェック
- マイクレベルが常に 0:
audio: ES8311 readyログを確認;MCLK が出力されていることを確認(GPIO39 に約 1.65V があるはず、LEDC 生成);I2C バス 41/42 のプルアップ(基板上に 10K あり);マイクに息を吹きかけ、/follower_audio/levelが変化するか確認。 - スピーカーから音が出ない:NS4150B のスピーカーがスピーカーコネクタに接続されていることを確認;GPIO39 MCLK に出力があることを確認(LEDC、
start_ledc_mclk());音量レジスタR_DAC32(現在 0xFF);ES8311 が未初期化の場合はログに失敗理由が出力されます。 - RGB ランプが点灯しない:WS2812 のデータピンは GPIO18。ファームウェア起動ログで
camera_streamの前に RMT 初期化エラーが出ていないか確認(通常は出ません)。
ネットワークと micro-ROS の問題
Waiting for micro-ROS Agent...で止まる:AGENT_IPに Ubuntu PC の LAN IP が設定されているか、UDP 8888 が許可されているか、ルーター/ホットスポットのクライアント分離が有効になっていないか(無効にする必要あり)を順に確認。NanoCam のアンテナはモジュール上の U.FL アンテナです。RSSI が悪い場合はまずアンテナと設置位置を確認し、5/10/20/30 メートルの距離実測を行うことを推奨します。- WiFi が頻繁に切れる:アンテナと距離を確認;RGB が赤になると WiFi 切断を意味し、ファームウェアは 10s タイムアウト後に自動再起動します。
- 接続できない場合はまず環境を確認:NanoCam と Ubuntu PC は同じ 2.4GHz LAN に接続されている必要があります(スマホのホットスポットで可);ネットワークを変更した場合は、
AGENT_IPと WiFi 設定も忘れず更新してください(ワイヤレス遠隔操作チュートリアルの「WiFi の設定」節を参照)。

