GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

espressif

esptool – ESP8266およびESP32シリアルブートローダユーティリティ

投稿日:

ESP8266およびESP32シリアルブートローダユーティリティ

esptool.py

Espressif ESP8266およびESP32チップのROMブートローダと通信する、Pythonベースのオープンソースのプラットフォームに依存しないユーティリティです。

esptool.pyは、非公式コミュニティプロジェクトとしてFredrik Ahlberg(@ themadinventor )によって開始されました。 これは現在、Espressifでもサポートされています。 現在のプライマリメンテナーはAngus Gratton(@ projectgus )です。

esptool.pyは、GPLv2ライセンスの下でフリーソフトウェアです。

インストール/依存関係

簡単インストール

Python 2.7またはPython 3.4以上がシステムにインストールされている必要があります。

最新の安定したesptool.pyリリースは、 pipiからpip経由でインストールできます:

$ pip install esptool

いくつかのPythonのインストールでは、これはうまくいかず、エラーがpython -m pip install esptoolpython -m pip install esptoolまたはpip2 install esptool試してみてください。

インストール後、デフォルトのPython実行可能ファイルディレクトリにesptool.pyインストールし、 esptool.pyコマンドで実行する必要があります。

手動インストール

手動インストールでは、このリポジトリから最新の開発バージョンを実行できます。

esptool.pyは、ターゲットデバイスとのシリアル通信のpySerialバージョン2.5以降に依存します。

python setup.py install実行してesptool.pyをシステム全体でインストールすることを選択した場合、これは自動的に処理されます。

setup.pyを使用しない場合、あなたのプラットフォームに応じてpip install pyserialeasy_install pyserialまたはapt-get install python-serialようなものを実行して、手動でpySerialをインストールする必要があります。 (正式なpySerialのインストール手順はこちら )。

esptool.pyはpyaes&ecdsa Pythonモジュールを “vendored”ライブラリとしてバンドルしています。 これらのモジュールは、ESP32のみのespsecure.pyおよびespefuse.pyツールを使用する場合に必要です。 上記のようにpipまたはsetup.pyてesptool.pyをインストールすると、これらのライブラリのバージョンがpypiからインストールされます。 esptool.pyをリポジトリディレクトリから直接実行すると、 “vendored”バージョンが使用されます。

使用法

esptool.py -hを使用して、使用可能なすべてのコマンドとコマンドラインオプションの概要を確認してください。

特定のコマンドのすべてのオプションを表示するには、コマンド名に-hを追加します。 つまり、 esptool.py write_flash -hです。

共通オプション

シリアルポート

シリアルポートは、 -p /dev/ttyUSB0 (LinuxおよびOSXのようなunixenの場合)や-p COM1 (Windowsの場合)のように-pオプションを使用して選択します。

WindowsでCygwinを使用している場合は、Windows形式の名前をUnixスタイルのパス( COM1/dev/ttyS0など)に変換する必要があり/dev/ttyS0 (ESP32にESP32を指定したWindows環境でesp-idfを使用する場合は不要ですが、この環境ではCOMポートをそのまま受け入れるmingw Pythonとpyserialを使用します)。

Linuxでは、現在のユーザーがシリアルポートにアクセスできないことがあり、「Permission Denied」エラーが表示されます。 ほとんどのLinuxディストリビューションでは、解決策はsudo usermod -a -G dialout <USERNAME>ようなコマンドでユーザをdialoutグループに追加することです。 詳細については、Linuxディストリビューションのドキュメントを参照してください。

ボーレート

デフォルトのesptool.pyボーレートは115200bpsです。 異なるレートは、 -b 921600 (またはあなたの選択した別のボーレート)を使用して設定できます。 デフォルトのボーレートは、 ESPTOOL_BAUD環境変数を使用して指定することもできます。 これwrite_flashread_flash操作とread_flash操作が高速化されます。

esptool.pyが初期接続を確立するときボーレートは115200に制限されますが、高速転送はデータ転送にのみ使用されます。

ほとんどのハードウェア構成は-b 230400 、一部は-b 460800-b 921600 、および/または-b 1500000以上で動作します。

接続に問題がある場合は、ボーレートを115200未満に設定することもできます。 ブート・ログ情報を出力するためにESP8266が使用する通常のボー・レートである74880を選択することもできます。

コマンド

ELFをバイナリに変換する

elf2imageコマンドは、ELFファイル(コンパイラ/リンカの出力から)をフラッシュするバイナリブロブに変換します。

esptool.py --chip esp8266 elf2image my_app.elf

このコマンドはシリアル接続を必要としません。

elf2imageは、 フラッシュモードの引数--flash_freqelf2imageも受け付けます。これはイメージヘッダーのデフォルト値を設定するために使用できます。 これは、チップによって直接ブートされるイメージを生成する場合に重要です。 これらの値は、 write_flashコマンドで上書きすることもできます。詳しくは、 write_flashコマンドを参照してください。

ESP8266のelf2イメージ

デフォルトのコマンド出力は、 my_app.elf-0x00000.binmy_app.elf-0x40000.bin 2つのバイナリファイルです。 ファームウェアファイル名のプレフィックスは、 – --output/-oオプションを使用して変更できます。

elf2imageは、 rbootやEspressifブートローダプログラムなどのソフトウェアブートローダスタブでの使用に適した「バージョン2」イメージファイルを生成することもできます。 適切なブートローダーを点滅させることなく “バージョン2″イメージをフラッシュすることはできません。

esptool.py --chip esp8266 elf2image --version=2 -o my_app-ota.bin my_app.elf

elf2image for ESP32

esp32の場合、elf2imageは単一の出力バイナリ “image file”を生成します。 デフォルトでは、これは.elfファイルと同じ名前で、拡張子は.binです。 すなわち:

esptool.py --chip esp32 elf2image my_esp32_app.elf

上記の例では、出力イメージファイルはmy_esp32_app.binと呼ばれmy_esp32_app.bin

バイナリをフラッシュに書き込む

elf2imageまたはmake_imageのバイナリは、シリアルwrite_flashコマンドを使ってチップに送ることができます:

esptool.py --port COM4 write_flash 0x1000 my_app-0x01000.bin

複数のフラッシュアドレスとファイル名を同じコマンドラインで指定することができます:

esptool.py --port COM4 write_flash 0x00000 my_app.elf-0x00000.bin 0x40000 my_app.elf-0x40000.bin

フラッシュに書き込むときに--chip引数はオプションです。シリアルポートに接続するときにesptoolがチップの種類を検出します。

--port引数は、シリアルポートを指定します。 これは、COMx(Windows)、/ dev / ttyUSBx(Linux)、/dev/tty.usbserial(OS X)または類似の名前のような形式をとります。

write_flashの次の引数は、オフセット(アドレス)とファイル名の1つ以上のペアです。 ESP8266「バージョン1」イメージを生成する場合、elf2imageによって作成されるファイル名には、ファイル名の一部としてフラッシュオフセットが含まれます。 他のタイプの画像については、SDKのマニュアルを参照して、オフセットするファイルを確認してください。

write_flash(および他のコマンド)に渡される数値は、16進数(0x1000)または10進数(4096)のいずれかで指定できます。

デフォルトを上書きする場合は、 フラッシュモードとフラッシュサイズの引数を指定する必要があります。 例えば:

esptool.py --port /dev/ttyUSB0 write_flash --flash_mode qio --flash_size 32m 0x0 bootloader.bin 0x1000 my_app.bin

esptool v2.0以降、デフォルトでは.binイメージファイルからフラッシュモードとサイズを保持し、フラッシュサイズを検出するため、これらのオプションはほとんど必要ありません。 詳細については、 Flashモードのセクションを参照してください。

デフォルトでは、パフォーマンス向上のためにシリアル転送データが圧縮されています。 -u/--no-compressオプションは、この動作を無効にします。

write_flashコマンドが失敗した場合、またはフラッシュされたモジュールが起動に失敗した場合は、 「トラブルシューティング」を参照してください。

フラッシュの確認

write_flashはフラッシュに書き込まれたデータのMD5ハッシュを常に検証するため、通常は手動での検証は必要ありません。 ただし、フラッシュの内容を確認したい場合は、 verify_flashコマンドで行うことができます。

./esptool.py verify_flash 0x40000 my_app.elf-0x40000.bin

注記:デフォルトのブートイメージ(ESP8266ではオフセット0、ESP32ではオフセット0x1000)を検証する場合、 --flash_sizeに渡されたwrite_flash 、– --flash_size 、– --flash_freq引数もwrite_flashに渡されなければなりません。 それ以外の場合、 verify_flashはイメージファイルのヘッダーの不一致を検出します。

フラッシュを消去する

フラッシュチップ全体を消去するには(すべてのデータを0xFFバイトに置き換えます)

esptool.py erase_flash

フラッシュ領域を消去するには、アドレス0x20000から開始し、長さ0x4000バイト(16KB)で開始します。

esptool.py erase_region 0x20000 0x4000

アドレスと長さは共にSPIフラッシュ消去セクタサイズの倍数でなければなりません。 これは、サポートされているフラッシュチップの0x1000(4096)バイトです。

ファームウェアイメージを手動で組み立てる

次のように、バイナリセグメント(objcopyから抽出したものなど)からファームウェアイメージを手動でアセンブルすることもできます。

esptool.py --chip esp8266 make_image -f app.text.bin -a 0x40100000 -f app.data.bin -a 0x3ffe8000 -f app.rodata.bin -a 0x3ffe8c00 app.flash.bin

このコマンドはシリアル接続を必要としません。

注:make_imageは現在、ESP8266ではサポートされていますが、ESP32ではサポートされていません。

ダンプメモリ

dump_memコマンドは、チップのメモリ空間から領域をダンプします。 たとえば、ESP8266からROM(64 KiB)をダンプするには:

esptool.py dump_mem 0x40000000 65536 iram0.bin

内蔵MACアドレスを読み込む

esptool.py read_mac

ESP32専用コマンド

esptool.pyにバンドルされているESP32の次のコマンドは、wikiに記載されています。

SPIフラッシュIDを読み込む

esptool.py flash_id

出力例:

Manufacturer: e0
Device: 4016
Detected flash size: 4MB

フラッシュチップの製造元名および部品番号については、 flashromソースコードを参照してください。

内部チップIDを読む:

esptool.py chip_id

ESP8266では、これはsystem_get_chip_id() SDK関数の出力と同じです。 チップIDは4バイト長で、下位3バイトはMACアドレスの最終バイトです。 上位バイトは、ほとんどの(すべて?)ESP8266ではゼロです。

ESP32では、このIDはオンチップefuseに格納されているベースMACアドレスから得られます。

シリアル接続

ESP8266およびESP32 ROMシリアルブートローダは、3.3V UARTシリアル接続を使用します。 多くの開発ボードは、オンボードでシリアル接続を行います。

ただし、チップをUSB /シリアルアダプタなどに配線する場合は、次の接続を行う必要があります。

ESP32 / ESP8266ピン シリアルポートピン
TX(別名GPIO1) RX(受信)
RX(別名GPIO3) TX(送信)
接地 接地

ESP8266のTX(送信)はシリアルポート接続のRX(受信)に接続されており、逆も同様です。

チップを5V TTLシリアルアダプタに接続しないでください。特に高電圧RS-232アダプタには接続しないでください。 3.3Vシリアルのみ!

ブートローダの起動

シリアルブートローダを起動するには、ESP8266とESP32の両方を特定の方法でリセットする必要があります。

いくつかの開発ボード(NodeMCU、WeMOS、HUZZAH Feather、Core Board、ESP32-WROVER-KITを含む)では、esptool.pyは自動的にシリアルブートローダにリセットをトリガすることができます。

他のすべての人にとって、シリアルブートローダに入るには3つのことが起こらなければなりません – リセット、必要なピンが正しく設定され、GPIO0が低くなった:

起動モード

ESP8266とESP32はどちらもリセットするたびにブートモードを選択します。 リセットイベントは、次のいずれかの方法で発生します。

  • チップに印加される電力。
  • nRESETピンはローで、ハイになります(ESP8266のみ)。
  • CH_PD / ENピン( “イネーブル”)ピンはローで、ハイになっています。

ESP8266では、nRESETピンとCH_PDピンの両方をハイにプルアップして、チップが動作を開始する必要があります。

ブートモードの選択の詳細については、次のWikiページを参照してください。

フラッシュモード

write_flashおよびその他のコマンドラインは、ブートローダのフラッシュモード、フラッシュサイズ、フラッシュクロック周波数を設定するコマンドライン引数を受け入れます。 正確に動作させるためには、チップに正しいモード、周波数、サイズの設定が必要です。柔軟性はありますが、 起動可能イメージの先頭にあるヘッダーには、これらの値が含まれています。

これらの値を無効にするには、 --flash_size --flash_mode 、– --flash_sizeおよび/または--flash_freqオプションをコマンドラインでwrite_flash後にwrite_flashする必要があります。

esptool.py --port /dev/ttyUSB1 write_flash --flash_mode dio --flash_size 4MB 0x0 bootloader.bin

これらのオプションは、起動可能イメージをオフセット0x0のESP8266またはオフセット0x1000のESP32に点滅させる場合にのみ参照してください。 これらは、ROMブートローダがフラッシュからロードするために使用するアドレスです。 他のすべてのオフセットで点滅する場合、これらの引数は使用されません。

フラッシュモード(–flash_mode、-fm)

これらは、クワッドフラッシュI / OまたはデュアルフラッシュI / Oモードを設定します。 有効な値は、 keepqioqoutdiodoutです。 デフォルトはkeepで、イメージファイルに既に値が入っていても保持します。 このパラメータは、環境変数ESPTOOL_FMを使用して指定することもできます。

ほとんどのボードはqioモードを使用します。 一部の(すべてではない)NodeMCUボード上のESP-12Eモジュールを含む一部のESP8266モジュールはデュアルI / Oで、ファームウェアは--flash_mode dioフラッシュされたときにのみ起動します。 ほとんどのESP32モジュールはデュアルI / Oです。

qioモードでは、2つのGPIO(9と10)がSPIフラッシュ通信に使用されます。 フラッシュモードがdio設定されている場合、これらのピンは他の目的に使用できます。

これらのモードの詳細については、 SPI Flash Modes wikiページを参照してください

フラッシュ周波数(–flash_freq、-ff)

SPIフラッシュ・インタラクションのクロック周波数。 有効な値は、 keep40m26m20m80m (MHz)です。 デフォルトはkeepで、画像ファイルに既に値が入っていても保持します。 このパラメータは、環境変数ESPTOOL_FFを使用して指定することもできます。

ほとんどのチップに接続されているフラッシュチップは40MHzのクロック速度で動作しますが、デバイスが起動しない場合は、より低い値を試すことができます。 最高80MHzのフラッシュクロック速度が最高の性能を発揮しますが、フラッシュまたはボードの設計がこの速度に対応していないとクラッシュする可能性があります。

フラッシュサイズ(–flash_size、-fs)

SPIフラッシュのサイズ(メガバイト単位)。 有効な値はチップタイプによって異なります。

チップ flash_sizeの値
ESP32 detect1MB2MB4MB8MB16MB
ESP8266 detect256KB512KB1MB2MB4MB2MB-c1 8MB16MB

ESP8266の場合、 OTAの「ファームウェアスロット」のいくつかの追加のサイズとレイアウトが利用可能です

デフォルトの--flash_sizeパラメータはdetect 、SPIフラッシュIDに基づいてサイズを自動検出しようとします。 検出に失敗すると、警告が出力され、デフォルト値の4MB (4メガバイト)が使用されます。

フラッシュサイズが正常に検出されなかった場合、 flash_idコマンドを使用してフラッシュサイズを確認し、出力からIDを検索します( Read SPI flash idを参照)。 あるいは、フラッシュチップのシルクスクリーンラベルを読み取り、そのデータシートを検索してください。

デフォルトのflash_sizeパラメータは、環境変数ESPTOOL_FSを使用して上書きすることもできます。

ESP8266およびフラッシュサイズ

ESP8266 SDKは、フラッシュの「終わり」にWiFi設定を保存し、このサイズを使って終わりを見つけます。 しかし、このサイズより大きなイメージを書く必要がない限り、あなたが実際に持っているよりも小さいフラッシュサイズを指定することには欠点はありません。

ESP-12、ESP-12EおよびESP-12Fモジュール(およびNodeMCU、HUZZAHなどのモジュールを使用するボード)は、通常、少なくとも4メガバイト/ 4MB (時には32メガビット)のフラッシュを備えています。

OTAを使用している場合は、OTAの「ファームウェアスロット」のいくつかの追加のサイズとレイアウトが利用可能です。 OTAアップデートを使用しない場合は、これらの余分なサイズを無視することができます:

flash_size arg OTAスロットの数 OTAスロットのサイズ OTA以外のスペース
256KB 1(OTAなし) 256KB N / A
512KB 1(OTAなし) 512KB N / A
1MB 2 512KB 0KB
2MB 2 512KB 1024KB
4MB 2 512KB 3072KB
2MB-C1 2 1024KB 0KB
4MB-C1 2 1024KB 2048KB
8MB [^] 2 1024KB 6144KB
16MB [^] 2 1024KB 14336KB
  • [^]すべてのESP8266 SDKに8MBと16MBのフラッシュ・サイズがサポートされていません。 SDKがこれらのフラッシュサイズをサポートしていない場合は、– --flash_size 4MB使用して--flash_size 4MB

ESP32とフラッシュサイズ

ESP32 esp-idfは、パーティションテーブルをオフセット0x8000のフラッシュに点滅させます。 このテーブルのすべてのパーティションは、設定されたフラッシュサイズに収まる必要があります。そうしないと、ESP32は正常に動作しません。

高度なオプション

より珍しいesptool.pyコマンドラインオプションのいくつかについては、 Advanced Options wikiページを参照してください。

リモートシリアルポート

RFC2217 (Telnet)プロトコルをサポートするネットワーク化されたリモートシリアルポート、またはプレーンなTCPソケットに接続することができます。 詳細については、 リモートシリアルポートwikiページを参照してください。

トラブルシューティング

点滅している問題は、トラブルシューティングのためには厄介なことがあります。 問題が発生している場合は、ここで提案をお試しください:

ブートローダは応答しません

“接続に失敗しました”のようなエラーが表示された場合、あなたのチップはおそらくブートローダに正しく入っていないでしょう:

  • コマンドラインに正しいシリアルポートを渡していることを確認してください。
  • シリアルポートにアクセスする権限を持っていることを確認してください。また、他のソフトウェア(Linuxのモデムマネージャなど)は、それと対話しようとしていません。 共通の落とし穴は、このポートにアクセスしているシリアル端末を別のウィンドウで開き、それを忘れることです。
  • チップが安定した電源から3.3Vを受信して​​いることを確認します(詳細については、「 不十分な電力」を参照)。
  • ブートローダの入力の説明に従って、すべてのピンが接続されていることを確認します マルチメーターで各ピンの電圧を確認し、 “高い”ピンは3.3Vに近く、 “低い”のピンは0Vに近くする必要があります。
  • 上記のGPIOピンに他のデバイスを接続している場合は、それらを削除して、esptool.pyが動作するかどうか確認してください。
  • より遅いボーレートを使用してみてください( -b 9600はボーレート問題ではないことを確認するのに非常に遅い値です)。

write_flash操作が途中で失敗する

ランダムなエラーで途中で点滅が失敗した場合は、低いボーレートで再試行してください。

電源の安定性の問題も原因です(「 不十分な電力 」を参照)。

write_flashは成功しますが、プログラムは実行されません

esptool.pyがwrite_flashでモジュールをフラッシュできますが、プログラムが実行されない場合は、次のようにしてください:

間違ったフラッシュモード

一部のデバイスはdioフラッシュモードのみをサポートしています。 qioモードでのフラッシュ書き込みは成功しますが、チップはフラッシュを読み取って実行することができません。したがって、起動時に何も起こりません。 -fm dioオプションをwrite_flashに渡してみてください。

フラッシュモードの詳細と、デバイスでどのモードがサポートされているかを判断する方法については、「 SPIフラッシュモード」の wikiページを参照してください。

不十分な電力

ESP8266およびESP32用の3.3V電源は、大電流(最大70mAの連続、200-300mAのピーク、ESP32ではわずかに高い)を供給する必要があります。 また、電力需要の大きなスパイクに対応するには、電源回路に十分な容量が必要です。

容量不足

あらかじめ作成された開発ボードまたはモジュールを使用している場合、入力電源が適切であれば、通常は内蔵のパワーレギュレータとコンデンサが十分です。

これは非常に単純なピンブレークアウトモジュールには当てはまりません – これに似ています。 これらのブレークアウトは、追加コンポーネントなしで確実に動作するのに十分な容量を集積していません。 ESP-WROOM02やESP-WROOM32などの表面実装OEMモジュールは、信頼性の高いPCB上に外部バルクコンデンサが必要です。モジュールのデータシートを参照してください。

電源定格

esptool.pyを使用してシリアルブートローダーのステージに十分な電流を供給し、通常のファームウェア操作では十分ではない電源装置を使用することは可能です。 マルチメータで測定すると3.3VのVCC電圧が垂下することがありますが、これが起こっていなくても問題が生じる可能性があります。

より高い電流定格の3.3V電源を交換し、電源ラインにコンデンサを追加したり、3.3V電源ワイヤを短くしたりしてください。

FTDI FT232Rチップ/アダプタまたはArduinoボードからの3.3V出力は、ESP8266またはESP32に電力を供給するのに十分な電流を供給しません (時には動作するように見えるかもしれませんが、 他のUSB TTL /シリアルアダプタも限界があります。

不足しているブートローダ

最近のESP8266 SDKとESP32 esp-idfは両方とも、小さなファームウェアブートローダープログラムを使用しています。 ROMのハードウェアブートローダがこのファームウェアブートローダをフラッシュからロードし、プログラムを実行します。 ESP8266について。 ファームウェアブートローダイメージ( boot_v1.x.binようなファイル名をboot_v1.x.bin )は、オフセット0でフラッシュする必要があります。ファームウェアブートローダが見つからない場合、ESP8266は起動しません。 ESP32では、ブートローダイメージはesp-idfによってオフセット0x1000でフラッシュされます。

どのバイナリをどのオフセットでフラッシュする必要があるかについては、SDKまたはesp-idfのマニュアルを参照してください。

切断されなければならないSPIピン

esptool.pyが話すROMブートローダと比較して、実行中のファームウェアは、SPIフラッシュにアクセスするために、より多くのチップのピンを使用します。

「Quad I / O」モード( -fm qio 、esptool.pyのデフォルト)を設定すると、GPIO 7,8,9,10がSPIフラッシュを読み込むために使用され、それ以外の場合は切断する必要があります。

“Dual I / O”モード( -fm dio )を設定した場合、GPIO 7と8はSPIフラッシュを読み込むために使用され、それ以外の場合は切断する必要があります。

以前にQuad I / Oモードを使用していても、GPIO 9と10に接続したい場合は、デュアルI / Oモードに切り替えるか、ピンから何かを切り離してください。 GPIO 9および10がSPIフラッシュチップの入力ピンにも接続されている場合、GPIO 9および10は汎用I / Oとして使用するには不適切な場合があることに注意してください。

これらのピンに加えて、GPIO 6および11もSPIフラッシュ(すべてのモード)にアクセスするために使用されます。 ただし、これらのピンが正しく接続されていないと、通常は点滅が完全に失敗します。

早期墜落

ブートログを表示するには、 シリアル端末プログラムを使用します。 (ESP8266ボーレートは74880bps、ESP32は115200bps)。 初期起動時にプログラムがクラッシュするか、エラーメッセージを出力するかどうかを確認してください。 例については、「 ブートログ 」を参照してください。

シリアルターミナルプログラム

デバッグとシリアル相互作用に適した多くのシリアルターミナルプログラムがあります。 pyserialモジュール(esptool.pyに必要)には、コマンドライン端末プログラムminiterm.pyが1つ含まれています。 詳細はこのページを参照するか、 miniterm -h実行してください

すべてのシリアル・プログラムがESP8266 74880bpsの「ブート・ログ」ボー・レートをサポートしているわけではありません。 サポートは特にLinux上ではまばらです。 miniterm.pyはすべてのプラットフォームでこのボーレートをサポートしています。 ESP32はより一般的な115200bpsを使用します。

esptool.pyインタラクションのトレース

esptool.py --traceを実行すると、すべてのシリアルインタラクションが標準出力にダンプされます(これは大量の出力です)。 これは、シリアル接続の問題をデバッグするときや、バグレポートの情報を提供するときに役立ちます。

内部技術資料

リポジトリwikiには、ROMブートローダが使用するシリアルプロトコルとファイル形式に関する技術文書が含まれています。 これは、esptool.pyを開発したり、システム内部をハッキングする場合に便利です。

esptool.pyは当初Fredrik Ahlberg(@themadinventor、@kongo)によって作成され、現在Angus Gratton(@projectgus)によって管理されています。 また、@rojer、@jimparis、@ jms19、@pfalcon、@tommie、@ 0ff、@ george-hopkinsなど、ESP8266コミュニティの多くのメンバーから改善を受けています。

このドキュメントと付属のソースコードは、GNU General Public License Version 2で公開されています。コピーについては、付随するファイルLICENSEを参照してください。







-espressif

執筆者:

関連記事

関連記事はありませんでした