Checking browser support…
ESP32/ESP8266のファームウェアをブラウザから直接書き込み — チップ自動判別、.bin書き込み、フラッシュのバックアップ。IDEもesptoolのインストールも不要。
Talks to your board locally over Web Serial — firmware never leaves your browser.
Checking browser support…
このESPファームウェア書き込みツールは、Web Serial APIを使ってブラウザからESP32・ESP8266へUSBで直接つながります。インストールするものは何もありません。Pythonもesptoolも、Arduino IDEも要りません。中核にはEspressif公式の書き込みライブラリesptool-js(Apache-2.0)を使っているため、通信プロトコルはコマンドラインのesptool.pyと同じものです。ボードをつなぐと、チップの種類(ESP32、S2、S3、C3、C6、H2、そしてESP8266)とフラッシュ容量を自動判別し、高速なボーレートを自動で交渉します。
ESPの完全なファームウェアは通常、3つのファイルをそれぞれ別のフラッシュオフセットへ書き込む形になります。ブートローダ、パーティションテーブル、そしてアプリです。本ツールは判別したチップに合わせて標準のオフセットをあらかじめ入力します。初代ESP32/S2ならブートローダは0x1000(USB-Serial-JTAG搭載の新しいチップでは0x0)、パーティションテーブルは0x8000、アプリは0x10000で、それぞれの意味も画面内で説明するので勘に頼る必要はありません。ダウンロードしたものがESP Web Tools形式の結合バイナリ1本なら、結合モードに切り替えてそのファイルを入れるだけです。0x0へまとめて書き込まれ、アドレス指定は要りません。
書き込みは、チップ上にあるものを上書きします。何かを書き込む前に、読み出し機能で現在のフラッシュを.binファイルへダンプして保管してください。新しいファームウェアがうまく動かなければ、そのバックアップをそのまま書き戻せます。フラッシュIDやMACアドレスの読み取り、チップ全体の消去(二重確認を経る破壊的な操作)も行えます。
esptool-jsはすでに存在するイメージを書き込むだけで、コンパイルも変換も行いません。ELFを.binに変換することはできず(それはESP-IDFのツールチェーンの仕事です)、espefuseやespsecureも含みません。eFuseの書き込みも、セキュアブートやフラッシュ暗号化の鍵の扱いも、意図的にここにはありません。いずれも取り消せない操作であり、Webページではなく管理されたデスクトップ環境で行うべきものです。
間違ったイメージを書き込んだり、正しいイメージを間違ったアドレスへ書き込んだりすると、ボードが起動しなくなることがあります。ただし、ほとんどの場合は復旧できます。BOOT/IO0ボタンを押したまま(またはLowに固定して)接続してROMダウンロードモードに入れ、正常なファームウェアかバックアップを書き込んでください。本当に文鎮化するのはeFuseを壊した場合だけで、それは本ツールでは意図的にできないようにしてあります。
本ツールはesptool-js自身のチップ自動判別に任せており、ESP32、ESP32-S2、ESP32-S3、ESP32-C2、ESP32-C3、ESP32-C6、ESP32-H2、そしてESP8266をカバーします。接続後にチップの種類、フラッシュ容量、MACアドレスをチップから直接読み取るので、書き込み対象を間違えることはありません。実機で未検証のチップは、検証済みと偽らず対応状況の注記に正直に書いてあります。
Web Serialが使えるChromium系ブラウザです。デスクトップのChrome、Edge、Opera、そしてAndroid版のChrome 148以降。SafariとFirefoxはWeb Serialを実装しておらず予定も公表されていないため、そもそもシリアルポートを開けません。ChromeまたはEdgeでこのページを開いてください。
標準的な3ファイル構成なら、ブートローダは初代ESP32とESP32-S2で0x1000、USB-Serial-JTAGを備える新しいチップ(S3、C3、C6、H2)では0x0です。パーティションテーブルは0x8000、アプリは0x10000です。本ツールは判別したチップに合わせてこれらをあらかじめ入力し、意味も説明します。迷うときは、アドレス指定が要らない結合バイナリ1本を使ってください。
結合(マージ済み)バイナリとは、ブートローダ、パーティションテーブル、アプリケーションを正しいオフセットどおりにつなぎ合わせた1本の.binファイルです。WLEDやTasmotaなどのプロジェクトは、ワンクリック導入のためにこの形式を配布しています。結合モードではそのファイル1つを入れるだけで、0x0へまとめて書き込まれ、ファイルごとのアドレス指定は要りません。
間違ったイメージを書き込んだり、間違ったアドレスへ書き込んだりすると起動しなくなることはありますが、ほとんどの場合は復旧できます。BOOT/IO0をLowにしたまま接続してROMダウンロードモードに入れ、正常なファームウェアか自分で取ったバックアップを書き戻してください。書き込む前に必ず全体の読み出しバックアップを取っておけば、いつでも元に戻れます。本当に恒久的な文鎮化にはeFuseの破壊が必要で、本ツールにはそれができません。
いいえ。これは意図的な判断です。esptool-jsはespefuseやespsecureを同梱していないため、eFuseの書き込み、セキュアブートの有効化、フラッシュ暗号化の鍵の扱いはここにはありません。いずれも取り消せない操作であり、ブラウザではなく管理されたデスクトップのツールチェーンから行うべきです。
はい。読み出し機能で、フラッシュの指定範囲(またはチップ全体)を.binファイルにダンプしてダウンロードし、保管できます。新しいものを書き込む前にやっておくべき、いちばん大切な一手です。更新がうまくいかなくても、そのイメージをそのまま書き戻せます。
After flashing, open the monitor to watch your board boot →
Want one-click WLED / Tasmota / ESPHome instead? Use the installer →