Web-based firmware flasher for ESP devices, built with React + TypeScript + Vite and powered by esp-web-tools.
This project lets users connect supported devices over Web Serial, choose a firmware manifest, and flash directly from the browser.
- Device firmware selection from a manifest list (
/public/firmware/manifests.json) - Browser-based flashing through
esp-web-install-button - Clear unsupported-browser and permission warnings
- Material UI based interface
- Auto-injected app version from
package.json
- React 19
- TypeScript
- Vite
- Material UI
- TSyringe + reflect-metadata
- Node.js (current LTS recommended)
- npm
- A Web Serial compatible browser (Chrome/Edge)
Install dependencies:
npm installStart development server:
npm run devLint:
npm run lintProduction build:
npm run buildPreview build:
npm run preview- Firmware files and manifest files are served from
/public/firmware/. - In CI/CD, release assets are downloaded from
borneo-iot/borneotagrelease-fw-latest. - Supported downloaded assets include:
manifests.json*.bin*.bin.gz*.manifest.json
deploy.yml: builds the site and deploys to GitHub Pages onmasterpush or manual dispatch.check-manifests.yml: daily check that compares remote and release manifests, then triggers deployment if content changed.
src/
App.tsx Main UI and flashing flow
main.tsx Application bootstrap and theme setup
types.d.ts Custom JSX and global version typing
public/
firmware/ Firmware binaries and manifests
.github/workflows/
deploy.yml
check-manifests.yml