Skip to content

Latest commit

 

History

History
1126 lines (763 loc) · 75.8 KB

esp32.md

File metadata and controls

1126 lines (763 loc) · 75.8 KB

Moddable SDKでESP32を使用する

Copyright 2016-2024 Moddable Tech, Inc.
改訂: 2024年9月13日

このドキュメントは、EspressifのESP32シリーズのSoC向けにアプリを構築するためのガイドを提供します。Moddable SDKは、ESP32ESP32-S2ESP32-S3ESP32-C3ESP32-C6、およびESP32-H2をサポートしています。

目次

概要

アプリケーションをビルドする前に、以下を行う必要があります:

  • Moddable SDKをインストールし、そのツールをビルドする
  • ESP32プラットフォーム用の必要なドライバと開発ツールをインストールする

以下の手順では、コマンドラインツールmcconfigを使用してデバイス上でhelloworldのサンプルを実行することで、セットアップを確認します。

詳細については、ツールのドキュメントを参照してください。

mcconfigを使用してビルドする際には、開発ボードのプラットフォーム識別子-p引数に指定してデバイスターゲットを設定します。例えば、Moddable Two用にビルドするには、次のコマンドを使用します。

mcconfig -d -m -p esp32/moddable_two

利用可能なESP32、ESP32-S2、ESP32-S3、ESP32-C3、ESP32-C6およびESP32-H2のサブプラットフォームとそのプラットフォーム識別子のリストは、以下のプラットフォームセクションに記載されています。

プラットフォーム

ESP32

ESP32には以下の機能があります:

  • 240 MHzプロセッサ
  • デュアルコア
  • Wi-Fi
  • BLE
  • 520 KB RAM
  • 4 MBフラッシュ

Moddable SDKは、ESP32上に構築された多くのデバイスをサポートしています。以下の表は、各デバイス、そのプラットフォーム識別子、デバイス固有の主要機能のリスト、および追加リソースへのリンクを示しています。

名前 プラットフォーム識別子 主要機能 リンク

Moddable Two
esp32/moddable_two
simulator/moddable_two
2.4" IPSディスプレイ
240 x 320 QVGA
16ビットカラー
静電容量式タッチ

20 外部ピン
  • Moddable Two 開発者ガイド
  • Moddable 製品ページ

  • Moddable Display 2
    esp32/moddable_display_2
    simulator/moddable_two
    2.4" IPSディスプレイ
    240 x 320 QVGA
    16ビットカラー
    静電容量式タッチ

    20 外部ピン
  • Moddable Display 開発者ガイド
  • Moddable 製品ページ
  • ESP32
    Node MCU ESP32
    esp32/nodemcu
    M5Stack
    M5Stack
    esp32/m5stack
    esp32/m5stack_core2
    1.8" LCDディスプレイ
    320 x 240 QVGA
    16ビットカラー

    オーディオ再生
    加速度計
    NeoPixels
  • 製品ページ
  • M5Stack Fire
    M5Stack Fire
    esp32/m5stack_fire 1.8" LCDディスプレイ
    320 x 240 QVGA
    16ビットカラー

    オーディオ再生
    加速度計
    NeoPixels
  • 製品ページ
  • M5Stick C
    M5Stick C
    esp32/m5stick_c
    simulator/m5stick_c
    0.96" LCDディスプレイ
    80 x 160
    16ビットカラー

    IMU
    マイクロフォン
  • 製品ページ
  • M5Stick C PLUS
    M5Stick C PLUS
    esp32/m5stick_cplus 1.14" LCDディスプレイ
    135 x 240
    16ビットカラー

    IMU
    マイクロフォン
  • 製品ページ
  • M5Atom
    M5Atom
    esp32/m5atom_echo
    esp32/m5atom_lite
    esp32/m5atom_matrix
    5 x 5 RGB LEDマトリックスパネル

    MPU6886慣性センサー
    6 外部ピン
  • 製品ページ
  • M5AtomU
    M5AtomU
    esp32/m5atom_u Neopixel、1ボタン
    マイクロフォン
    6 外部ピン
  • 製品ページ

  • M5 Paper
    esp32/m5paper
    simulator/m5paper
    960 x 540 ePaperタッチスクリーン
    温度センサー
  • 製品ページ
  • Moddable SDK ドキュメント

  • M5Core Ink
    esp32/m5core_ink 200 x 200 ePaperディスプレイ
    ブザー
    ダイヤル
  • 製品ページ
  • Moddable SDK ドキュメント

  • Heltec WiFi Kit 32
    esp32/heltec_wifi_kit_32 128 x 64 OLEDディスプレイ
  • 製品ページ

  • Wemos OLED Lolin32
    esp32/wemos_oled_lolin32 128 x 64 OLEDディスプレイ
    内蔵LEDなし
  • 追加情報

  • SparkFun Thing
    esp32/esp32_thing
  • 製品ページ

  • SparkFun Thing Plus
    esp32/esp32_thing_plus
  • 製品ページ

  • ESP32 WRover Kit
    esp32/wrover_kit
  • 製品ページ

  • Wireless Tag WT32-ETH01
    esp32/wt32_eth01 内蔵イーサネット
  • 製品ページ

  • Lilygo TTGO
    esp32/lilygo_ttgo 135 x 240 IPSディスプレイ
    ボタン
  • 製品ページ
  • Moddable Zero esp32/moddable_zero
  • 配線ガイド
  • ESP32-S2

    ESP32-S2には以下の機能があります:

    • 240 MHzプロセッサ
    • Wi-Fi
    • 320 KB RAM
    • 外部SRAMサポート
    • 一般的なモジュールには4 MBフラッシュ

    Moddable SDKはEspressifの2つのESP32-S2開発キットをサポートしています。以下の表は各デバイス、そのプラットフォーム識別子、デバイス固有の主要機能のリスト、および追加リソースへのリンクを示しています。

    名前 プラットフォーム識別子 主要機能 リンク

    Kaluga
    esp32/kaluga 3.2インチLCDディスプレイ
    320 x 240 QVGA
    16ビットカラー

    2 MB SRAM
    スピーカーとオーディオ再生
    タッチパッドパネル
    NeoPixel LED
  • Moddableブログ記事
  • 製品ページ

  • Saola
    (WROOM & WROVERバージョン)
    esp32/saola_wroom
    esp32/saola_wrover
    NeoPixel LED
    2 MB SRAM (WROVERバージョンのみ)
  • Moddableブログ記事
  • 製品ページ

  • Adafruit
    QT Py ESP32-S2
    esp32/qtpys2 Neopixel、1ボタン、STEMMA/QWIIC
  • 製品ページ

  • ili9341
    esp32/qtpys2_ili9341 ili9341 QVGAディスプレイ
    320 x 240
    16ビットカラー
  • 配線ガイド

  • Lolin
    S2 Mini
    esp32/lolin_s2mini 1ボタン
  • 製品ガイド
  • ESP32-S3

    ESP32-S3は、オリジナルのESP32の後継機です。以下の特徴があります:

    • 240 MHzプロセッサ(デュアルコア)
    • Wi-Fi
    • BLE
    • 512 KB RAM
    • 外部PSRAMサポート
    • 人気のあるモジュールに8 MBフラッシュ

    Moddable SDKはESP32-S3上に構築されたデバイスをサポートしています。以下の表は、各デバイス、そのプラットフォーム識別子、デバイス固有の主要機能のリスト、および追加リソースへのリンクを示しています。

    名前 プラットフォーム識別子 主要機能 リンク

    Moddable Six
    esp32/moddable_six
    esp32/moddable_six_cdc
    simulator/moddable_six
    2.4" IPS display
    240 x 320 QVGA
    16-bit color
    8-bit 並列ディスプレイバス
    静電容量式タッチ
    Neopixel
    Qwiic コネクタ
    追加のスピーカー

    20個の外部ピン
  • Moddable Six 開発者ガイド
  • Moddable製品ページ

  • Moddable Display 6
    esp32/moddable_display_6
    simulator/moddable_six
    2.4" IPS display
    240 x 320 QVGA
    16-bit color
    8-bit parallel display bus
    静電容量式タッチ
    Neopixel
    Qwiic コネクター
    追加のスピーカー

    20個の外部ピン
  • Moddable Display 開発者ガイド
  • Moddable製品ページ

  • ESP32-S3-DevKitC-1-N8
    esp32/esp32s3
  • 製品ページ

  • Adafruit QT Py ESP32-S3
    esp32/qtpys3 Neopixel、1ボタン、STEMMA/QWIIC
  • 製品ページ

  • Adafruit ESP32-S3 TFT Feather
    esp32/feather_s3_tft 1.14インチTFTディスプレイ
    240 x 135 16ビットカラー
  • 製品ページ

  • AtomS3
    esp32/m5atom_s3 0.85インチIPSディスプレイ
    128 x 128 16ビットカラー
    1ボタン
    IMU
  • 製品ページ

  • AtomS3 Lite
    esp32/m5atom_s3_lite Neopixel、1ボタン
  • 製品ページ

  • M5Dial
    esp32/m5dial 1.28インチIPS 240×240円形ディスプレイ、タッチ、1ボタン、ロータリーエンコーダ、RTC
  • 製品ページ

  • M5Stamp S3
    esp32/m5stamp_s3 Neopixel、1ボタン
  • 製品ページ

  • Lilygo T-QT ESP32-S3
    esp32/lilygo_t_qt 0.85インチLCDディスプレイ
    128 x 128 16ビットカラー
    2ボタン
    Qwiicコネクタ
  • 製品ページ

  • Lilygo T-Display-S3
    esp32/lilygo_tdisplay_s3 1.9インチLCDディスプレイ
    170 x 320 16ビットカラー
    8ビットパラレルディスプレイ
    タッチ
    2ボタン
    Qwiicコネクタ
  • 製品ページ

  • Seeed Studio
    XIAO ESP32S3
    esp32/xiao_esp32s3 1ボタン
  • 製品ページ

  • ili9341
    esp32/qtpys3_ili9341
    esp32/xiao_esp32s3_ili9341
    ili9341 QVGAディスプレイ
    320 x 240
    16ビットカラー
  • 配線ガイド
  • ESP32-S3 カメラ

    名前 プラットフォーム識別子 主要機能 リンク

    Lilygo T Camera Plus S3
    esp32/lilygo_t_camera_plus_s3 OV2640 カメラ
    1.3" IPSディスプレイ
    240 x 240 タッチスクリーン
    マイク
    スピーカー
  • 製品ページ

  • M5 Atom S3R M12
    esp32/m5atom_s3r OV3660 カメラ
    マイク
    BMI270 IMU
    8MB PSRAM
  • 製品ページ

  • M5Stack Core S3
    esp32/m5stack_cores3 GC0308 カメラ
    マイク
    スピーカー
    ili9341 QVGA タッチスクリーン
    320 x 240
    BMI270 IMU
    BM8563 RTC
    8MB PSRAM
  • 製品ページ

  • Seed Studio
    XIAO ESP32S3 Sense
    esp32/xiao_esp32s3_sense OV2640 カメラ
    マイク
    8MB PSRAM
  • Getting Started
  • Display Wiring Guide
  • ESP32-C3

    ESP32-C3には以下の機能があります:

    • 160 MHz RISC-V MCU
    • Wi-Fi
    • BLE
    • 400 KB RAM
    • 人気のあるモジュールに4 MBフラッシュメモリ

    Moddable SDKは3つのESP32-C3開発キットをサポートしています:

    名前 プラットフォーム識別子 主な機能 リンク

    ESP32-C3-DevKitM-1
    esp32/esp32c3
  • 製品ページ

  • ESP32 C3 DevKitクローン
    esp32/esp32c3_cdc
  • 製品ページ

  • ESP32-C3-DevKit-RUST-1
    esp32/c3_devkit_rust
  • 製品ページ

  • Seeed Studio
    XIAO ESP32C3
    esp32/xiao_esp32c3 1ボタン
  • 製品ページ

  • Adafruit
    QT Py ESP32-C3
    esp32/qtpyc3 Neopixel, 1ボタン, STEMMA/QWIIC
  • 製品ページ
  • AI Thinker ESP-C3-32S-Kit
    (1 MBおよび2 MBバージョン)
    esp32/c3_32s_kit
    esp32/c3_32s_kit_2m
    RGB LED
  • 製品仕様

  • ili9341
    esp32/qtpyc3_ili9341
    esp32/xiao_esp32c3_ili9341
    ili9341 QVGAディスプレイ
    320 x 240
    16ビットカラー
  • 配線ガイド

  • Lolin
    C3 Mini
    esp32/lolin_c3mini 1ボタン
  • 製品ガイド

  • Lolin
    C3 Pico
    esp32/lolin_c3pico Neopixel, 1ボタン
  • 製品ガイド
  • ESP32-C6

    ESP32-C6には以下の機能があります:

    • 160 MHz RISC-V MCU
    • Wi-Fi
    • BLE
    • 512 KB RAM
    • 人気のあるモジュールに4 MBフラッシュメモリ

    Moddable SDKは3つのESP32-C6開発キットをサポートしています:

    名前 プラットフォーム識別子 主な機能 リンク

    ESP32-C6-DevKitC-1
    esp32/esp32c6 NeoPixel、ボタン
  • 製品ページ

  • M5NanoC6
    esp32/m5nanoc6 LED、NeoPixel、ボタン
  • 製品ページ
  • ESP32-H2

    ESP32-H2には以下の機能があります:

    • 96 MHz RISC-V MCU
    • BLE
    • 320 KB RAM
    • 人気のあるモジュールに4 MBフラッシュメモリ

    Moddable SDKは3つのESP32-H2開発キットをサポートしています:

    Name Platform identifier Key features Links

    ESP32-H2-DevKitM-1
    esp32/esp32h2 NeoPixel、ボタン
  • 製品ページ
  • マニフェストでESP32サブクラスを指定する

    ビルドのターゲットESP32サブクラスは、マニフェストのbuildセクションでESP32_SUBCLASSプロパティを使用して指定します。これは通常、ターゲットビルドデバイスのマニフェストによって設定されます。以下の例は、サブクラスをESP32-S2に設定する方法を示しています。

    "build":{
    	"ESP32_SUBCLASS": "esp32s2"
    },
    
    ESP32_SUBCLASS デバイス
    esp32 または未設定 ESP32
    esp32s2 ESP32-S2
    esp32s3 ESP32-S3
    esp32c3 ESP32-C3
    esp32c6 ESP32-C6
    esp32h2 ESP32-H2

    ビルドタイプ

    ESP32は、デバッグ、instrumented、およびリリースの3種類のビルドをサポートしています。各ビルドは、製品開発プロセスの異なる段階に適しています。どの種類のビルドを行うかは、コマンドラインから選択します。

    デバッグ

    デバッグビルドはJavaScriptのデバッグに使用されます。デバッグビルドでは、ESP-IDFのロギングが無効化され、GDBスタブは存在しません。

    mcconfig コマンドラインで -d オプションを使用すると、デバッグビルドが選択されます。

    instrumented

    instrumentedビルドはネイティブコードのデバッグに使用されます。instrumentedビルドでは、ESP-IDFのロギングが有効化され、GDBスタブが存在します。JavaScriptデバッガは無効化されます。通常、xsbugで利用可能な計測データは、1秒ごとにシリアルコンソールに出力されます。

    mcconfig コマンドラインで -i オプションを使用すると、instrumentedビルドが選択されます。

    リリース

    リリースビルドは本番用です。リリースビルドでは、ESP-IDFのロギングが無効化され、GDBスタブは存在せず、JavaScriptデバッガは無効化され、instrumented統計は収集されず、シリアルコンソールの出力も抑制されます。

    mcconfig コマンドラインで -d および -i オプションを省略すると、リリースビルドが選択されます。なお、-r はリリースビルドの選択ではなく、回転を指定します。

    macOS

    Moddable SDKのESP32用ビルドは現在、ESP-IDF v5.3.1(コミット c8fc5f64)およびEspressifのidf.pyツールのCMakeオプションを使用しています。

    インストール

    1. Getting Startedドキュメントに従って、Moddable SDKツールをインストールします。

    2. 必要なサードパーティのSDKおよびツールのために、ホームディレクトリに~/esp32という名前のesp32ディレクトリを作成します。

    3. macOS 10.15(Catalina)以前のバージョンを使用している場合は、Silicon LabsのCP210x USB to UART VCPドライバをダウンロードしてインストールします。

      macOS Catalinaを使用している場合、VCPドライバを有効にするために追加の手順が必要です。インストール中に「システム拡張がブロックされました」というポップアップが表示された場合は、ダイアログの指示に従ってセキュリティとプライバシーのシステム環境設定で拡張機能を有効にしてください。

    もし、macOS 10.16 (Big Sur) 以降を使用している場合、VCPドライバをインストールする必要はありません。

    1. 初めてインストールする場合は、ESP-IDF GitHubリポジトリを ~/esp32 ディレクトリにクローンします。必ず --recursive オプションを指定してください。v5.3.1 タグをチェックアウトすることを忘れないでください:

      cd ~/esp32
      git clone -b v5.3.1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3.1
      
    2. (オプション)Homebrewを更新し、Python、cmake、ninja、pipパッケージ管理システム、およびpyserialをインストールします。すでに古いバージョンがインストールされている場合は、それらのパッケージを brew upgrade でアップグレードします:

      brew update
      brew install python3 cmake ninja dfu-util
      brew upgrade python3 cmake ninja dfu-util
      pip install pyserial
      
    3. USBケーブルを使用してESP32デバイスをmacOSホストに接続します。

    4. シェルのスタートアップ/初期化ファイルを開きます。

      macOS Mojave以前の場合、デフォルトのシェルは bash なので、~/.profile を開く必要があります。

      open ~/.profile
      

      macOS Catalinaから、デフォルトのシェルは zsh です。したがって、~/.zshrc を開いてください。

      open ~/.zshrc
      
    5. 開いたファイルに次の行を追加して保存します。これにより、IDF_PATH 環境変数がESP-IDFディレクトリを指すように設定されます。

      export IDF_PATH=$HOME/esp32/esp-idf-v5.3.1
      

      上級ユーザー向けにオプションの環境変数が1つあります: UPLOAD_PORT

      ESP-IDFビルド/設定ツール idf.py はほとんどの場合シリアルポートを自動的に検出します。検出しない場合は、使用するポートのパスを UPLOAD_PORT 環境変数に設定します。

      export UPLOAD_PORT=/dev/cu.SLAB_USBtoUART
      

      適切なシリアルポートを特定するには、ESP32デバイスを接続する前後のmacOSのシリアルデバイスのリストを確認し、新しく表示されるシリアルポートをメモします。シリアルデバイスファイルのリストを表示するには、ターミナルで次のコマンドを使用します。

    ls /dev/cu.*
    

    UPLOAD_PORTmcconfig コマンドラインでも指定でき、複数のESP32デバイスにデプロイする際に便利です。

    UPLOAD_PORT=/dev/cu.SLAB_USBtoUART mcconfig -d -m -p esp32
    
    1. ~/.profile~/.zshrc にエクスポート文を追加しても、アクティブなシェルインスタンスの環境変数は更新されませんので、新しいシェルインスタンスを開く(新しいタブ/ウィンドウを開く)か、シェルで手動でエクスポート文を実行してから続行してください。

    2. ESP-IDFインストールスクリプトを実行します。これにより、ESP-IDFビルドに必要な適切なクロスコンパイルツールチェーンとユーティリティがインストールされます。

    cd $IDF_PATH
    ./install.sh
    

    M1チップを搭載したMacを使用している場合、インストールスクリプトを実行する前に追加の手順が必要です。これは、ESP-IDFがまだDarwin-arm64ホストを適切にサポートしていないためです。このコメント には、この問題を回避するための手順が記載されています。

    1. ビルド環境を設定するために、ESP-IDFのexport.shスクリプトをソースにします。**これは新しいシェルインスタンスを開くたびに__毎回__実行する必要があります。**手動で実行するか、スタートアップスクリプトで実行してください。

      source $IDF_PATH/export.sh
      

      新しいシェルインスタンスのためにこのプロセスを自動化したい場合は、上記のステップ7-9の指示に従い、シェルのスタートアップ/初期化スクリプトの最後にsourceコマンドを追加してください。export IDF_PATHコマンドの後に追加することを確認してください。

    2. デバイスターゲット用にhelloworldをビルドしてセットアップを確認します:

      cd ${MODDABLE}/examples/helloworld
      mcconfig -d -m -p esp32/<YOUR_SUBPLATFORM_HERE>
      

      ESP32ターゲット用にアプリケーションを初めてビルドする際、ツールチェーンが設定オプションの入力を求めることがあります。この場合、デフォルトを受け入れてください。

    トラブルシューティング

    アプリケーションをインストールしようとすると、エラーや警告の形で障害に遭遇することがあります。このセクションでは、macOSでの一般的な問題とその解決方法について説明します。

    他のmacOS、Windows、およびLinuxで共通の問題については、このドキュメントの下部にあるトラブルシューティングセクションを参照してください。

    デバイスが接続されていない/認識されない

    次のエラーメッセージは、デバイスがコンピュータに接続されていないか、コンピュータがデバイスを認識していないことを意味します。

    error: cannot access /dev/cu.SLAB_USBtoUART
    error: cannot access /dev/usbserial-0001
    

    これが発生する理由はいくつかあります:

    1. デバイスがコンピュータに接続されていません。ビルドコマンドを実行するときに接続されていることを確認してください。
    2. 電源のみのUSBケーブルを使用しています。データ同期可能なUSBケーブルを使用していることを確認してください。
    3. 別のアプリケーションがシリアルポートに接続されています。例えば、シリアルモニターがポートを開いている可能性があります。アプリケーションを閉じるか、デバイスをアプリケーションから切断してください。
    4. コンピュータがデバイスを認識しません。この問題を解決するためには、以下の指示に従ってください。

    デバイスを取り外し、次のコマンドを入力します。

    ls /dev/cu*
    

    次に、デバイスを接続し、同じコマンドを再度実行します。ターミナル出力に新しいものが表示されない場合、デバイスはコンピュータに認識されていません。

    macOS 10.15以前を使用している場合は、正しいVCPドライバがインストールされていることを確認してください。macOS 10.16以前を使用している場合は、VCPドライバをインストールする必要はありません。

    認識された場合、デバイス名が取得され、UPLOAD_PORT環境変数を編集する必要があります。以下のコマンドを入力し、/dev/cu.SLAB_USBtoUARTをシステム上のデバイス名に置き換えてください。

    export UPLOAD_PORT=/dev/cu.SLAB_USBtoUART
    

    SSL証明書エラー

    EspressifはPython 3への移行を推奨しています。Python 2.7は推奨されていません。

    しかし、Python 2.7を使用していて、ESP-IDFのビルド中にSSL証明書エラーが発生する場合は、Python 2.7と必要なパッケージを手動でインストールする必要があります。追加のコンポーネントをインストールするために、brewpipを使用しました。

    brew install python
    brew install python@2
    pip install future
    pip install pyserial
    pip install cryptography
    

    更新

    これは大幅なアップデートです。クリーンクローンから始めるのが最善です。

    1. ディスクスペースに余裕がある場合は、古いESP-IDFをバックアップすることをお勧めします。

      cd ~/esp32/
      mv esp-idf esp-idf.old
      
    2. ディレクトリを削除し、リポジトリをクローンします。

      cd ~/esp32
      rm -rf esp-idf
      git clone -b v5.3.1 --recursive https://github.com/espressif/esp-idf.git
      
    3. (オプション - おそらくこれを行う必要はありません)Homebrewを更新し、必要なツールがすべて揃っていることと、それらが最新であることを確認します:

      brew update
      brew install python cmake ninja
      brew upgrade python cmake ninja
      pip install pyserial
      
    4. IDF_PATH 環境変数がシェルのユーザープロファイルファイル(例:~/.profile または ~/.zshrc、シェルによって異なります)に正しく設定されていることを確認します。

      export IDF_PATH=$HOME/esp32/esp-idf
      
    5. ESP-IDFインストールスクリプトを実行します。これにより、ESP-IDFビルドに必要な適切なクロスコンパイルツールチェーンとユーティリティがインストールされます。

      cd $IDF_PATH
      ./install.sh
      
    6. ESP-IDFのexport.shスクリプトをソースにしてビルド環境をセットアップします。これは新しいシェルインスタンスを開くたびに手動で、またはスタートアップスクリプトによって実行する必要があります。

      source $IDF_PATH/export.sh
      

      新しいシェルインスタンスのためにこのプロセスを自動化したい場合は、上記のステップ3の指示に従い、シェルのスタートアップ/初期化スクリプトの最後にsourceコマンドを追加します。export IDF_PATHコマンドの後に追加することを確認してください。

    Windows

    Moddable SDKのESP32用ビルドは現在、ESP-IDF v5.3.1(コミット c8fc5f64)およびEspressifのidf.pyツールのCMakeオプションを使用しています。

    インストール

    1. Getting Startedドキュメントの指示に従って、Moddable SDKツールをインストールします。

    2. Silicon LabsのCP210x USB to UART VCPドライバをダウンロードしてインストールします。ドライバのzipファイルには、x64およびx86バージョンのインストーラが含まれています。ほとんどの最新のPCは64ビット版のWindowsを実行しているため、x64バージョンのVCPドライバを使用する必要があります。32ビット版のWindowsを実行している場合は、x86バージョンのドライバを使用してください。(コンピュータが64ビット版のWindowsを実行しているかどうかは、システム設定の「PCの情報」で確認できます)

    3. EspressifのESP-IDF Windowsインストーラをダウンロードして実行します。これにより、ESP32 Xtensa gccツールチェーン、Ninja Build、OpenOCD、およびKConfigフロントエンドがインストールされます。このツールは、必要に応じて新しくダウンロードされたツールを含むようにPATHを設定します。

    インストーラーのデフォルトオプションをすべて受け入れるか、必要に応じてインストール場所を変更しても安全です。

    CMakeやPythonがまだインストールされていない場合、インストーラーはそれらのツールをダウンロードしてインストールするように促します(必要に応じてインストールしてください)。

    インストーラーはESP-IDFのgitリポジトリをクローンするオプションを提供します。このオプションを選択する場合は、「v5.3.1(リリースバージョン)」オプションを選択し、ホームフォルダ内のesp32\esp-idfというディレクトリにクローンしてください。

    1. ESP-IDFをESP-IDF Windowsインストーラーを使用してクローンしなかった場合、ホームフォルダにesp32ディレクトリを作成します。これは、ファイルエクスプローラーまたはコマンドプロンプトから行います:

      cd %USERPROFILE%
      mkdir esp32
      
    2. ESP-IDFをESP-IDF Windowsインストーラーを使用してクローンしなかった場合、ESP-IDF Githubリポジトリを~/esp32ディレクトリにクローンします。必ず--recursiveオプションを指定してください。その後、v5.3.1タグをチェックアウトします:

      cd %USERPROFILE%\esp32
      git clone -b v5.3.1 --recursive https://github.com/espressif/esp-idf.git
      

    既にESP-IDFのクローンコピーを持っている場合、最も簡単な更新方法は既存のesp-idfフォルダーを削除して再度クローンすることです。EspressifのESP-IDFの取得方法を参照

    1. USBケーブルを使ってESP32デバイスをWindowsホストに接続します。

    2. これらの指示に従って、コントロールパネルアプリの「環境変数」ダイアログを開きます。そのダイアログから:

      • IDF_PATHという名前のユーザー変数を作成し、ESP-IDFをクローンしたディレクトリに設定します。例:
        • 変数名: IDF_PATH
        • 変数値(「ディレクトリを参照。..」ボタンを使用してこの選択を行います): C:\Users\<user>\esp32\esp-idf

      上級ユーザー向けのオプションの環境変数が1つあります:UPLOAD_PORT

      ESP-IDFビルド/設定ツールidf.pyはほとんどの場合シリアルポートを自動的に検出します。検出しない場合は、上記と同じ手順でUPLOAD_PORT環境変数に使用するポートのパスを設定します。

    • UPLOAD_PORT: デバイスのCOMポート、例:COM3

      正しいシリアルポートを特定するには、Windowsデバイスマネージャを起動します。「ポート (COM & LPT)」セクションを開き、「Silicon Labs CP210x USB to UART Bridge」が表示されていることを確認し、関連するCOMポート(例:COM3)をメモします。

    1. 新しく設定された環境変数は既存のコマンドプロンプトインスタンスでは有効にならないため、これらの変更を適用した後に新しいコマンドプロンプトインスタンスを開くようにしてください。

    2. ESP-IDFインストールバッチファイルを実行します。これにより、ESP-IDFビルドに使用されるユーティリティがマシンに対して設定されます。

      cd %IDF_PATH%
      install.bat
      
    3. ESP-IDF Windowsインストーラーは、重要な環境変数とパスを自動的に設定する「ESP-IDF 5.3.1 CMD」と呼ばれるコマンドプロンプトを提供します。「ESP-IDF 5.3.1 CMD」でESP32プロジェクトをビルドすることをお勧めします。新しいコマンドプロンプトインスタンスごとに、Visual Studio x86初期化バッチファイルを手動で実行する必要があります。システムに応じてパスを調整してください。

    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat"
    

    専門家向けの注意: Windowsのショートカットを編集することに慣れている場合、この手動プロセスの便利な代替手段として、「ESP-IDF 5.3.1 CMD」ショートカットを変更して、ESP-IDF環境とVisual Studio x86環境の両方を初期化することができます。これを行うには、「ESP-IDF 5.3.1 CMD」ショートカットを右クリックして「プロパティ」を選択します。プロパティウィンドウの「ターゲット」フィールドには、次のようなコマンドが表示されます。

    C:\WINDOWS\system32\cmd.exe /k "C:\Users\<username>\.espressif\idf_cmd_init.bat"
    

    ターゲットを次のように変更して、vcvars32.batへのパスを含めることができます。システムに合わせてパスを調整してください。

    %comspec% /k ""%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat" && pushd %IDF_PATH% && "%IDF_TOOLS_PATH%\idf_cmd_init.bat" && popd"
    

    また、ショートカットの「作業フォルダー」フィールドを %MODDABLE% に更新して、Moddable SDKディレクトリでコマンドプロンプトセッションを開始することも便利です。

    > 注: これらの指示は、ESP-IDF が1つだけインストールされていることを前提としています。必要に応じて、`idf_cmd_init.bat` に特定の ESP-IDF インストールを指定する引数を渡すこともできます。この引数は、デフォルトの "ESP-IDF 5.3.1 CMD" ショートカットで設定する必要があります。
    
    1. "ESP-IDF 5.3.1 CMD" コマンドプロンプトで、デバイスターゲット用に helloworld をビルドしてセットアップを確認します:

      cd %MODDABLE%\examples\helloworld
      mcconfig -d -m -p esp32/<YOUR_SUBPLATFORM_HERE>
      

    トラブルシューティング

    アプリケーションをインストールしようとすると、エラーや警告の形で障害が発生することがあります。このセクションでは、Windowsでの一般的な問題とその解決方法について説明します。

    macOS、Windows、およびLinuxで共通のその他の問題については、このドキュメントの最後にあるトラブルシューティングセクションを参照してください。

    ESP-IDF のビルドが非常に遅い

    Windows 10および11に含まれている組み込みのウイルス対策ソフトウェア(Microsoft Defender、以前のWindows Defender)は、ESP-IDFのビルドを大幅に遅くする可能性があります。EspressifのESP-IDF Windows インストーラーには、ビルド中のリアルタイムスキャンを回避するために必要なすべての除外設定を自動的に構成するオプションが含まれています。ビルドが遅い場合は、ESP-IDF Windowsインストーラーを再実行して、そのオプションが選択されていることを確認してください。また、これらの指示に従って、Moddableビルドフォルダーやその他のカスタムビルド出力ディレクトリを手動で除外する必要がある場合もあります。

    Python バージョン

    Espressifは、ESP-IDF v5.3.1でビルドする際にPython 3.9以降の使用を推奨しています。Python 3.9はESP-IDF Windowsインストーラーによってインストールされます。

    以前のバージョンのPython(例えばPython 2.7)がシステムにインストールされていた場合、Python 3.9がデフォルトで選択されるようにするために、システムPATHからそれを削除する必要があるかもしれません。PATH内のC:\Python27\C:\Python27\Scripts\のようなエントリを探し、ビルドプロセス中にPythonエラーが発生した場合はそれらを削除してください。

    Python 依存関係

    Pythonの依存関係がインストールされていないというエラーが発生した場合、それはESP-IDFインストーラーがPythonを更新できなかったことを意味します。これは通常、マシンの権限の問題によって発生します。これを修正するには、「x86 Native Tools Command Prompt for VS 2022」からpython -m pip install -r %IDF_PATH%\requirements.txtを実行してください。

    デバイスが接続されていない/認識されない

    デバイスが接続されていない場合、またはUPLOAD_PORTが適切なCOMポートに設定されていない場合、ビルド後にいくつかのエラーメッセージが表示されることがあります。次のようなエラーメッセージは、デバイスがコンピュータに接続されていないか、コンピュータがデバイスを認識していないことを意味します。could not open port 'COM3'というメッセージに注目してください。

    raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
    serial.serialutil.SerialException: could not open port 'COM3': FileNotFoundError(2, 'The system cannot find the file specified.', None, 2)
    

    これが発生する理由はいくつかあります:

    1. デバイスがコンピュータに接続されていない。ビルドコマンドを実行する際に接続されていることを確認してください。
    2. 電源供給のみのUSBケーブルを使用している。データ同期が可能なUSBケーブルを使用していることを確認してください。
    3. コンピュータがデバイスを認識していない。この問題を解決するには、以下の指示に従ってください。

    デバイスマネージャーでUSBデバイスの一覧を確認します。デバイスが不明なデバイスとして表示される場合、正しいVCPドライバがインストールされていることを確認してください。

    デバイスがCOM3以外のCOMポートに表示される場合、UPLOAD_PORT環境変数を編集する必要があります。以下のコマンドを入力し、COM3をシステムに適したデバイスのCOMポートに置き換えてください。

    set UPLOAD_PORT=COM5
    

    その他のエラー

    Windows上の多くのESP32エラーは、Espressifツールを更新することで修正できます。これは特に、「ESP-IDF CMD」コマンドプロンプトの初期化中に報告されるエラーや、ビルド中のPythonバージョンエラーに当てはまります。

    Espressifツールを更新するには、最新のESP-IDF Windows Installerをダウンロードして実行します。既にESP-IDFツリーがインストールされている場合は、新しいESP-IDFツリーをクローンしないでください。代わりに、既存のESP-IDFツリーを使用するオプションを選択し、%IDF_PATH%を指し示します。

    更新

    ビルド環境が最新であることを確認するために、以下の手順を実行します:

    1. EspressifのESP-IDF Windows Installerをダウンロードして実行します。これにより、ESP32 Xtensa gccツールチェーン、Ninja Build、OpenOCD、およびKConfigフロントエンドが更新されます。このツールは、必要に応じて新しくダウンロードされたツールを含むようにPATHを設定します。

    インストーラーのデフォルトオプションをすべて受け入れるか、必要に応じてインストール場所を変更しても安全です。

    CMakeやPythonがまだインストールされていない場合、インストーラーはそれらのツールをダウンロードしてインストールするように促します(必要に応じてインストールしてください)。

    ESP-IDFをクローンする場合は、v5.3.1 (release version)のesp-idfを選択してください。

    インストーラーを使用してESP-IDFをクローンする場合は、次のステップの指示に従ってv5.3.1タグに更新してください。

    1. ESP-IDF Windows Installerを使用してESP-IDFをクローンしなかった場合、ESP-IDF Githubリポジトリを~/esp32ディレクトリにクローンします。--recursiveオプションとブランチv5.3.1タグを指定してください:

      cd %USERPROFILE%\esp32
      git clone -b v5.3.1 --recursive https://github.com/espressif/esp-idf.git
      
    2. コントロールパネルアプリの「環境変数」ダイアログを開き、これらの指示に従ってください。そのダイアログから、IDF_PATH Windows環境変数が正しく設定されていることを確認します。

      • IDF_PATHC:\Users\<user>\esp32\esp-idf の値を持つ必要があります
    3. ESP-IDFのインストールバッチファイルを実行します。これにより、ESP-IDFビルドに使用されるユーティリティがマシンに対して構成されます。

      cd %IDF_PATH%
      install.bat
      
    1. ESP-IDF Windowsインストーラーは、重要な環境変数とパスを自動的に設定するコマンドプロンプト「ESP-IDF 5.1 CMD」を提供します。ESP32プロジェクトをビルドする際には、「ESP-IDF 5.1 CMD」を使用することをお勧めします。新しいコマンドプロンプトインスタンスごとに、Visual Studio x86初期化バッチファイルを手動で実行する必要があります。システムに合わせてパスを調整してください。

      "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat"
      

      熟練者向けの注意: Windowsショートカットの編集に慣れている場合、この手動プロセスの便利な代替手段として、「ESP-IDF 5.1 CMD」ショートカットを変更して、ESP-IDF環境とVisual Studio x86環境の両方を初期化することができます。これを行うには、「ESP-IDF 5.1 CMD」ショートカットを右クリックし、「プロパティ」を選択します。プロパティウィンドウの「ターゲット」フィールドには、次のようなコマンドが表示されます。

      C:\WINDOWS\system32\cmd.exe /k "C:\Users\<username>\.espressif\idf_cmd_init.bat"
      

      ターゲットを次のように変更して、vcvars32.batへのパスを含めることができます。システムに合わせてパスを調整してください。

      %comspec% /k ""%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat" && pushd %IDF_PATH% && "%IDF_TOOLS_PATH%\idf_cmd_init.bat" && popd"
      

      ショートカットの「開始位置」フィールドを %MODDABLE% に更新して、Moddable SDKディレクトリでコマンドプロンプトセッションを開始するのも便利です。

      注: これらの手順は、ESP-IDF のコピーが 1 つだけインストールされていることを前提としています。必要に応じて、idf_cmd_init.bat に特定の ESP-IDF インストールを指定する引数を取ることもできます。この引数は、デフォルトの「ESP-IDF 5.1 CMD」ショートカットに設定する必要があります。

    2. 「ESP-IDF 5.1 CMD」コマンドプロンプトで、デバイスターゲット用に helloworld をビルドしてセットアップを確認します:

      cd %MODDABLE%\examples\helloworld
      mcconfig -d -m -p esp32/<YOUR_SUBPLATFORM_HERE>
      

    Linux

    Moddable SDKのESP32向けビルドは現在、ESP-IDF v5.3.1(コミット c8fc5f64)およびEspressifの idf.py ツール のCMakeオプションを使用しています。

    インストール

    1. Getting Started documentの指示に従って、Moddable SDKツールをインストールします。

    2. ESP-IDFでコンパイルするために必要なパッケージをインストールします。

      Ubuntu 20.04以降(およびPython 3をデフォルトとする他のLinuxディストリビューション)の場合:

      sudo apt-get update
      sudo apt-get install git wget flex bison gperf python-is-python3 python3-pip python3-serial python-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util
      

      Ubuntu 20.04以前(およびPython 2をデフォルトとする他のLinuxディストリビューション)の場合:

      sudo apt-get update
      sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial cmake ninja-build ccache libffi-dev libssl-dev dfu-util
      

      注: ESP-IDFビルドはPython 3を推奨しており、まもなくPython 2.7のサポートを終了します。ディストリビューションがデフォルトでPython 2.7を使用している場合は、以下のコマンドでPython 3を明示的にインストールし、デフォルトのPythonインタープリタとして設定できます。これはシステム全体の変更であり、Pythonを使用する他のアプリケーションにも影響を与えることに注意してください。

      sudo apt-get install python3 python3-pip python3-setuptools
      sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
      
    3. 必要なサードパーティSDKとツールのために、ホームディレクトリに esp32 ディレクトリを ~/esp32 に作成します。

    4. これが初めてのインストールの場合、ESP-IDF GitHubリポジトリを ~/esp32 ディレクトリにクローンします。--recursive オプションを指定することを確認してください。その後、v5.3.1 タグをチェックアウトします:

    cd ~/esp32
    git clone -b v5.3.1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v5.3.1
    
    1. USBケーブルを使ってESP32デバイスをLinuxホストに接続します。

    2. シェルのスタートアップ/初期化ファイル(例:~/.bash_profile~/.zshrc、使用しているシェルによります)を開き、次の行をファイルに追加して保存します。これにより、IDF_PATH環境変数がESP-IDFディレクトリを指すように設定されます。

    export IDF_PATH=$HOME/esp32/esp-idf
    

    上級ユーザー向けのオプションの環境変数として、UPLOAD_PORTがあります。

    ESP-IDFビルド/設定ツールidf.pyはほとんどの場合シリアルポートを自動的に検出します。もし検出しない場合は、使用するポートのパスをUPLOAD_PORT環境変数に設定します。

    export UPLOAD_PORT=/dev/ttyUSB0
    

    適切なシリアルポートを特定するには、ESP32デバイスを接続する前後のLinuxホスト上のシリアルデバイスのリストを確認し、新しく表示されるシリアルポートを確認します。シリアルデバイスファイルのリストを表示するには、次のコマンドを使用します:

    ls /dev/*
    

    UPLOAD_PORTは、複数のESP32デバイスにデプロイする際に便利なmcconfigコマンドラインでも指定できます。

    UPLOAD_PORT=/dev/ttyUSB0 mcconfig -d -m -p esp32
    
    1. シェルのスタートアップファイルにエクスポート文を追加しても、アクティブなシェルインスタンスの環境変数は更新されませんので、新しいシェルインスタンス(新しいタブ/ウィンドウを開く)を開くか、シェルでエクスポート文を手動で実行してから続行してください。

    2. ESP-IDFインストールスクリプトを実行します。これにより、ESP-IDFビルドに必要な適切なクロスコンパイルツールチェーンとユーティリティがインストールされます。

      cd $IDF_PATH
      sh ./install.sh
      
    3. ESP-IDF export.shスクリプトをソースにしてビルド環境を設定します。これは新しいシェルインスタンスを開くたびに実行する必要があります。 手動で実行するか、スタートアップスクリプトで実行します。

      source $IDF_PATH/export.sh
      

      新しいシェルインスタンスのためにこのプロセスを自動化したい場合は、上記のステップ6-7の指示に従い、シェルのスタートアップ/初期化スクリプトの最後にsourceコマンドを追加します。export IDF_PATHコマンドの後に追加することを確認してください。

    4. デバイスターゲット用にhelloworldをビルドしてセットアップを確認します:

    cd $MODDABLE/examples/helloworld
    mcconfig -d -m -p esp32/<YOUR_SUBPLATFORM_HERE>
    

    ESP32ターゲット用のアプリケーションを初めてビルドする際、ツールチェーンが設定オプションの入力を求めることがあります。その場合は、デフォルトを受け入れてください。

    トラブルシューティング

    アプリケーションをインストールしようとすると、エラーや警告の形で障害に遭遇することがあります。このセクションでは、Linux上での一般的な問題とその解決方法について説明します。

    macOS、Windows、およびLinuxで共通のその他の問題については、このドキュメントの下部にあるトラブルシューティングセクションを参照してください。

    許可が拒否されました

    ESP32はttyUSB0デバイスを介してLinuxホストと通信します。Ubuntu Linuxでは、ttyUSB0デバイスはdialoutグループによって所有されています。ESP32をフラッシュする際に許可が拒否されましたエラーが発生した場合は、ユーザーをdialoutグループに追加してください:

    sudo adduser <username> dialout
    sudo reboot
    

    デバイスが接続されていない/認識されていない

    次のエラーメッセージは、デバイスがコンピュータに接続されていないか、コンピュータがデバイスを認識していないことを意味します。

    error: cannot access /dev/ttyUSB0
    

    これが発生する理由はいくつかあります:

    1. デバイスがコンピュータに接続されていません。ビルドコマンドを実行する際に接続されていることを確認してください。
    2. 電源のみのUSBケーブルを使用しています。データ同期が可能なUSBケーブルを使用していることを確認してください。
    3. コンピュータがデバイスを認識していません。この問題を解決するには、以下の指示に従ってください。

    デバイスを取り外し、次のコマンドを入力します。

    ls /dev/cu*
    

    次にデバイスを接続し、同じコマンドを再度実行します。ターミナル出力に新しいものが表示されない場合、デバイスはコンピュータに認識されていません。

    認識された場合、デバイス名がわかるので、UPLOAD_PORT環境変数を編集する必要があります。次のコマンドを入力し、/dev/ttyUSB1をシステム上のデバイス名に置き換えます。

    export UPLOAD_PORT=/dev/ttyUSB1
    

    更新

    これは大規模な更新です。クリーンなクローンから始めるのが最善です。

    1. ディスクスペースに余裕がある場合、古いESP-IDFをバックアップすることをお勧めします。
    cd ~/esp32/
    mv esp-idf esp-idf.old
    
    1. ディレクトリを削除し、リポジトリをクローンします。
    cd ~/esp32
    rm -rf esp-idf
    git clone -b v5.3.1 --recursive https://github.com/espressif/esp-idf.git
    
    1. (オプション)aptを更新し、ESP-IDFのコンパイルに必要な不足しているパッケージ(および既存のパッケージのアップグレード)をインストールします。インストールするパッケージは、ディストリビューションのデフォルトのPythonバージョンによって異なります。

    Ubuntu 20.04以降(およびPython 3をデフォルトとする他のLinuxディストリビューション)の場合:

    sudo apt-get update
    sudo apt-get install git wget flex bison gperf python-is-python3 python3-pip python3-serial python-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util
    

    Ubuntu 20.04以前(およびPython 2をデフォルトとする他のLinuxディストリビューション)の場合:

    sudo apt-get update
    sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial cmake ninja-build ccache libffi-dev libssl-dev dfu-util
    

    注: ESP-IDFのビルドはPython 3を推奨しています。ディストリビューションがデフォルトでPython 2.7を使用している場合、以下のコマンドでPython 3を明示的にインストールし、デフォルトのPythonインタープリタとして設定できます。これはシステム全体の変更であり、Pythonを使用する他のアプリケーションにも影響を与えることに注意してください。

    sudo apt-get install python3 python3-pip python3-setuptools
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
    
    1. シェルのユーザープロファイルファイル(例:~/.bash_profile または ~/.zshrc、シェルに応じて)に IDF_PATH 環境変数が正しく設定されていることを確認します。
    export IDF_PATH=$HOME/esp32/esp-idf
    
    1. ESP-IDFインストールスクリプトを実行します。これにより、ESP-IDFビルドに必要な適切なクロスコンパイルツールチェーンとユーティリティがインストールされます。
    cd $IDF_PATH
    ./install.sh
    
    1. ESP-IDFの export.sh スクリプトをソースにしてビルド環境を設定します。これは新しいシェルインスタンスを開くたびに手動で、またはスタートアップスクリプトによって実行する必要があります。
    source $IDF_PATH/export.sh
    

    新しいシェルインスタンスのためにこのプロセスを自動化したい場合は、上記のステップ3の指示に従い、シェルのスタートアップ/初期化スクリプトの最後に source コマンドを追加します。export IDF_PATH コマンドの後に追加することを確認してください。

    1. $MODDABLE/build/bin/esp32 または $MODDABLE/build/tmp/esp32 に既存のESP32ビルド出力がある場合は、それらのディレクトリを削除します。
    cd $MODDABLE/build
    rm -rf bin/esp32
    rm -rf tmp/esp32
    
    1. デバイスターゲット用に helloworld をビルドしてセットアップを確認します:
    cd $MODDABLE/examples/helloworld
    mcconfig -d -m -p esp32/<YOUR_SUBPLATFORM_HERE>
    

    ESP32ターゲット用にアプリケーションを初めてビルドする際、ツールチェーンが設定オプションの入力を求めることがあります。この場合、デフォルトを受け入れてください。

    トラブルシューティング

    アプリケーションをインストールしようとすると、エラーや警告の形で障害が発生することがあります。このセクションでは、一般的な問題とその解決方法について説明します。

    互換性のないボーレート

    次の警告メッセージは通常であり、心配する必要はありません。

    warning: serialport_set_baudrate: baud rate 921600 may not work
    

    ただし、アップロードが開始されても完了しないことがあります。コンソールに表示される進行バーが100%に達すると、アップロードが完了したことがわかります。例えば:

    ........................................................... [ 16% ]
    ........................................................... [ 33% ]
    ........................................................... [ 49% ]
    ........................................................... [ 66% ]
    ........................................................... [ 82% ]
    ........................................................... [ 99% ]
    ..                                                         [ 100% ]
    

    アップロードが途中で失敗する理由はいくつかあります:

    • USBケーブルが故障している。
    • 高いボーレートをサポートしていないUSBケーブルを使用している。
    • Moddable SDKが使用するデフォルトのボーレートよりも低いボーレートを必要とするボードを使用している。

    上記の最後の2つの問題を解決するには、次のようにしてボーレートを遅くすることができます:

    1. $MODDABLE/tools/mcconfig/make.esp32.mkを開きます。

    2. アップロード速度を921600に設定するこの行を見つけます:

    UPLOAD_SPEED ?= 921600
    
    1. スピードを小さい数値に設定します。例えば:
    UPLOAD_SPEED ?= 115200
    

    注: make.esp32.mkファイルを変更する代わりに、環境変数 UPLOAD_SPEED を設定して一時的に変更することができます。

    ESP32がブートローダーモードになっていない

    ESP32がブートローダーモードになっていない場合、デバイスにフラッシュすることはできません。ESP32を使用して構築されたほとんどの開発ボードには、ボードを再フラッシュしようとすると自動的にブートローダーモードにする回路が含まれています。一部のボードには含まれておらず、時々自動プログラミングが失敗することがあります。これは特にWindowsマシンで一般的です。

    ESP32がブートローダーモードになっていない場合、デバイスをフラッシュしようとするとステータスメッセージのトレースが一時的に停止し、数秒後にこのエラーメッセージがコンソールにトレースされます:

    A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
    

    ESP32を手動でブートローダーモードにするには、次の手順に従います:

    1. デバイスのプラグを抜きます。
    2. BOOTボタンを押し続けます。
    3. デバイスをコンピュータに接続します。
    4. mcconfig コマンドを入力します。
    5. 数秒待ってからBOOTボタンを離します。

    ESP32でのUSBの使用

    元々、ESP32のプログラミングとデバッグはシリアル接続またはUARTを介して行われていました。一部のデバイスには統合されたシリアル-to-USBチップ(UART)が含まれており、一部は外部プログラマを使用しています。

    新しいデバイスでは、EspressifはUSBサポートを追加しました。ESP32-S2からTinyUSBサポートが追加され、ESP32-S3でもTinyUSBサポートが続いています。

    ESP32-S3から始まり、ESP32-C3、ESP32-C6、ESP32-H2に続き、USBのサポートがUSBシリアル/JTAGドライバを使用してデバイスに統合されています。組み込みドライバを使用することでバイナリが小さくなるため、シリアル/JTAGドライバの使用が推奨されます

    マルチポートデバイス

    UARTとUSB接続の両方ができる開発ボードはたくさんあります。

    macOSでは、UARTポートに接続すると、デバイスは/dev/cu.usbserial-##### として認識されます。USBポートに接続すると、/dev/cu.usbmodem-#####として認識されます。

    Espressif IDFはどちらに接続されていてもアプリをインストールします。しかしながら、xsbug 接続はアプリケーションがビルドされた方法でのみ機能します。 例えば、esp32/esp32s3ターゲット用にアプリをビルドすると、デバッガに接続するためにUARTポートを使用します。esp32/esp32s3_cdcまたはesp32/esp32s3_usb用にアプリをビルドすると、USBポート経由で接続します。

    注意: もし、USBとしてビルドとしていて、UARTポートとして接続していたなら、xsbugは接続できないでしょう。

    ビルド構成

    デバイスのmanifest.jsonファイルでは、USE_USBビルドオプションがどのUSB実装を使用するかを指定します。また、SDKCONFIGPATHも指定して、このデバイスに特有のESP-IDF設定ファイルを取得します:

    "build": {
    	"ESP32_SUBCLASS": "esp32s2",
    	"USE_USB": "1",
    	"SDKCONFIGPATH": "./sdkconfig"
    	...
    

    USE_USB: 1 - TinyUSB

    TinyUSBはESP32-S2およびESP32-S3デバイスで動作します。

    TinyUSBを使用する場合、UPLOAD_PORTを設定する必要があります。例えば:

    export UPLOAD_PORT=/dev/cu.usbmodem01
    

    ビルドプラットフォームに関するセクションを参照してください macOS, Windows, または Linux で、デバイスの UPLOAD_PORT を見つける方法が説明されています。

    アプリケーションをビルドします:

    mcconfig -d -m -p esp32/esp32s3_usb

    注: デバイスがプログラミングモードになっていない場合、ビルドコンソールに通知が表示されます:

    # looking for UPLOAD_PORT: /dev/cu.usbmodem01
    ** Put device in programming mode **
    

    コンソールに Done と表示されたら、デバイスの Reset ボタンを押します。

    Executing "ninja flash"...
    Done
    

    デバイスの Reset ボタンを押すと、デバイスが再起動し、xsbug に接続されます。

    これらのうちいくつかデバイスはこの技術を使用します:

    プラットフォーム デバイス
    esp32/esp32s3_usb Espressif ESP32-S3-DevKitC
    esp32/m5atom_s3 M5 Atom S3
    esp32/m5atom_s3_lite M5 Atom S3 Lite
    esp32/qtpys2 Adafruit QT Py S2
    esp32/qtpys3 Adafruit QT Py S3
    esp32/s2mini Lolin S2 mini
    esp32/s3_tft_feather Adafruit ESP32-S3 TFT Feather

    Note: 注意: この端末の特徴として、プログラミングモードと実行モードのどちらにあるかに応じて、デバイスが異なる/dev/cu.usbmodem-#####として認識される点があります。

    例えば、esp32/esp32s3_usbのビルドでは、 /dev/cu.usbmodem123401がプログラミングモードとして確認できます。実行モードでは、 /dev/cu.usbmodem1234561となります。 よって DEBUGGER_PORT=/dev/cu.usbmodem1234561 および UPLOAD_PORT=/dev/cu.usbmodem123401 と設定することで適切な接続が保証されます。

    USE_USB: 2 - SERIAL-JTAG

    内蔵のSERIAL-JTAGドライバは、ESP32-S3およびESP32-C3デバイスで使用できます。

    通常、UPLOAD_PORTを設定したり、デバイスのボタンを押したりする必要はありません。ただし、複数のデバイスを同時に接続している場合は、UPLOAD_PORTを使用してどのデバイスを使用するかを指定する必要があります。

    アプリケーションをビルドします:

    mcconfig -d -m -p esp32/esp32s3_cdc

    これらのうちいくつかはデバイスはこの技術を使用します:

    プラットフォーム デバイス
    esp32/moddable_six_cdc Moddable Six
    esp32/c3_devkit_rust Espressif C3 DevKit Rust
    esp32/esp32c3_cdc Espressif C3 DevKitM
    esp32/esp32s3_cdc Espressif ESP32-S3-DevKitC
    esp32/qtpyc3 Adafruit QT Py C3
    esp32/xiao_esp32c3 Seeed Xiao ESP32C3

    ESP Registry componentsを使用する

    ESP Component Registryは多くのEspressifデバイスのコンポーネントやライブラリを公開しています。

    これらのコンポーネントの機能をJavaScriptモジュール公開するモジュールを作成できます。

    マニフェストのplatforms:esp32 セクションにdependencyプロパティを追加します:

    	"platforms": {
    		"esp32": {
    			"dependency": [
    				{ "name": "onewire_bus", "version": "^1.0.2" }
    			]
    		}
    	}

    依存関係からのライブラリおよびインクルードファイルは、自動的にESPレジストリから読み込まれ、プロジェクトで利用可能になります。次に、コンポーネントと連携するネイティブ部分を持つモジュールを作成できます。

    onewire module dependencyの示しています。