hanhdt / esp32-flash-tool

A simplify flashing tool of ESP32 boards on multiple platforms.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ESP32 Flash Tool

A desktop application for flashing production ESP32 firmware. App suports multiple platforms (Windows, MacOS, Linux)

ESP32 Flash Tool

Motivation

Simplify settings, clean UI and focus on mass manufacturing process where development and manufacturing are separated steps.

Dependencies install

  • Node v14.19.1
  • Python v2.7
  • ESP32 Flash Tool depends on pySerial version 3.0 or newer for serial communication with the target device. Hence, you should install Python before start run the app.

To install pySerial manually by running something like:

$pip install pyserial
or
$easy_install pyserial
or
$apt-get install python-serial

depending on your platform. (The official pySerial installation instructions are here).

How to build from source?

Install dependencies

$npm install

Build app

$npm run build

Run app locally

$npm run dev

Package app

$npm run package

Firmware manufacturing process

Imagine you have at least 5 steps from firmware development to flashing firmware into production board. The app would be used at Step 5 in the process flowing:

Firmware Manufacturing Process

Create a single compressed file for ESP32 Flash Tool

ESP32 flash tool uses a single zipped file for flashing, just simply collect all required binaries, and create partitions.csv in the same folder then compress all into a zip file.

partitions.csv file format

ESP32 flash tool uses partitions.csv for identifying offsets of binary blobs. Sample of partitions.csv will be:

id,name,offset
1,bootloader.bin,0x1000
2,ota_data_initial.bin,0xd000
3,partitions.bin,0xf000
4,device-00001.bin,0x10000
5,app.bin,0x20000

About

A simplify flashing tool of ESP32 boards on multiple platforms.

License:MIT License


Languages

Language:Python 60.8%Language:C 31.7%Language:JavaScript 3.4%Language:Vue 2.0%Language:SCSS 0.9%Language:Makefile 0.7%Language:Shell 0.3%Language:PowerShell 0.1%Language:EJS 0.1%