# ESP Firmware Flasher

> ブラウザからUSBでESP32／ESP8266にファームウェアを書き込み。esptool-jsでチップを自動判別し、任意アドレスへ.binを書き込み、フラッシュのバックアップも可能。

- URL: https://bytescope.dev/ja/esp-flasher/
- Locale: ja · Also: [en](https://bytescope.dev/en/esp-flasher.md) · [zh-Hant](https://bytescope.dev/zh-Hant/esp-flasher.md)
- Runs: Web Serialで基板とローカルに通信します — ファームウェアがブラウザの外に出ることはありません。
- Requires: Chrome, Edge or Opera on desktop (Web Serial API). Not Firefox, Safari or any mobile browser; the page still renders the documentation and a support matrix there.
- Updated: 2026-09-08

## What it does

この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を壊した場合だけで、それは本ツールでは意図的にできないようにしてあります。

## Limits

Does not compile firmware or flash boards without a USB serial connection; it flashes ESP8266/ESP32 binaries you already have.

全消去はフラッシュ上のすべて（キャリブレーションやNVSのデータも含む）を消します。取り消しはできません — 先にバックアップを取ってください。

## FAQ

### 対応しているESPチップはどれですか？

本ツールは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の破壊が必要で、本ツールにはそれができません。

### eFuseの書き込みやセキュアブートに対応していますか？

いいえ。これは意図的な判断です。esptool-jsはespefuseやespsecureを同梱していないため、eFuseの書き込み、セキュアブートの有効化、フラッシュ暗号化の鍵の扱いはここにはありません。いずれも取り消せない操作であり、ブラウザではなく管理されたデスクトップのツールチェーンから行うべきです。

### チップに入っている今のファームウェアをバックアップできますか？

はい。読み出し機能で、フラッシュの指定範囲（またはチップ全体）を.binファイルにダンプしてダウンロードし、保管できます。新しいものを書き込む前にやっておくべき、いちばん大切な一手です。更新がうまくいかなくても、そのイメージをそのまま書き戻せます。

## Related tools

- [Serial Monitor & Plotter](https://bytescope.dev/ja/serial-monitor.md) — 書き込んだあとはモニタを開いて基板の起動を見る →
- [Firmware Installer](https://bytescope.dev/ja/install.md) — WLED / Tasmota / ESPHomeをワンクリックで入れたい？ インストーラを使う →
