Skip to content

ajsb85/bushers

Repository files navigation

⚡ Bushers Adaptive ESP32 WebSerial Firmware Flasher

GitHub Pages React Spectrum S2 Vite TypeScript License

A premium, state-of-the-art WebSerial ESP32 Firmware Flasher web application built with React, TypeScript, Vite, and Adobe React Spectrum S2. This dashboard provides a highly refined, corporate-industrial interface to write, erase, and debug firmware streams on Espressif ESP32 microcontrollers directly from your web browser—no local command-line tools or drivers required.

🔗 Live Web Application URL: https://ajsb85.github.io/bushers/


🎨 Design & Visual Aesthetics

The application layout is modeled after the Stitch Design System featuring a high-density, hybrid fixed-fluid layout tailored for industrial engineering dashboards:

  • Aesthetic Harmony: Features an elegant corporate dark/light palette with polished glassmorphic surfaces, subtle hover micro-animations, and fluid transition systems.
  • Dual-Theme Dark Mode: Built with deep, curated HSL color tokens mapped directly from Tailwind CSS (background: #1A1B1E, primary-container, status-success, and outline variants).
  • Xterm.js Status Monitor: Integrates a real-time, low-level, high-contrast console stream designed with a retro-industrial look, leveraging full terminal emulators with ANSI color sequences.

🚀 Key Features

  • ⚡ WebSerial Connection Handshaking: Robust, sandboxed hardware communication directly from compatible browsers (Chrome, Edge, Opera) with fully adjustable Baudrates (up to 921600).
  • 📺 Xterm.js Terminal Console: Seamlessly displays real-time execution streams from esptool-js with flawless support for ANSI escape color codes, logging streams, and carriage return carriage-overs (\r progress indicators).
  • 📦 Atomic/Composite S2 Interface: Built entirely with @react-spectrum/s2 components—including premium high-contrast action buttons, dense offset tables, checklist toggles, and reactive progress bars.
  • 💾 Preloaded Firmware selection: Instantly selects and flashes preloaded official firmware binaries (including partitions, bootloaders, boot app buffers) or allows custom drag-and-drop local uploads.
  • 🛠️ Hardware Controls: Direct interface to trigger quick actions like chip initialization, hardware resetting (via DTR toggling), and full-chip flash memory erasing.
  • 📱 Responsive 12-Column Grid: Dynamic fluid sidebar-content layout that formats beautifully across dual-monitor desktop screens and mobile handheld interfaces.

📖 Step-by-Step Flashing Instructions

To flash your ESP32 device using the online flasher, follow these simple steps:

  1. Connect your ESP32 Device: Connect your ESP32 board to your computer's USB port.
  2. Select Baudrate: Open the Live Web Application, and select your desired flashing speed (recommended: 460800 or 921600 for high-speed writes).
  3. Establish Serial Bridge: Click the CONNECT button in the sidebar. A browser prompt will appear. Choose the correct USB-Serial port (e.g. Silicon Labs CP210x or CH340) and click Connect.
  4. Confirm Binary Files: Choose either:
    • Default Binaries: Select the desired checkboxes in the Firmware offsets table (bootloader, partitions, app).
    • Single Binary Mode: Toggle the switch to flash a single consolidated merged.bin file directly at offset 0x0.
    • Custom Upload: Drag and drop your own custom compilation binary file and specify its hex address offset.
  5. Trigger Flash Sequence: Click the high-contrast FLASH FIRMWARE button. The terminal console will display connection logs, erase sectors, write data blocks, and verify MD5 hashes in real-time.
  6. Verify & Run: Once progress reaches 100%, the console will report success and automatically reset your board into user-application mode.

🛠️ Technical Stack & Dependencies


📦 Local Installation & Development

To clone, set up, and run the project locally on your machine, perform the following steps:

  1. Clone the Repository:

    git clone https://github.com/ajsb85/bushers.git
    cd bushers
  2. Install Dependencies:

    npm install
  3. Run Development Server:

    npm run dev

    Open your browser and navigate to the address displayed in the terminal (usually http://localhost:5173/).

  4. Build Production Bundle:

    npm run build

    The static optimized production build is generated inside the dist/ directory.


🤝 Contribution Guidelines

Please read our CONTRIBUTING.md to understand how you can submit bug reports, feature requests, or propose design upgrades to the project.


📜 License

This project is open-source and licensed under the Apache License 2.0. See the LICENSE file or head over to the Apache Official Site for detailed terms.

Developed with ⚡ by the Bushers Adaptive Team.

About

A premium, state-of-the-art WebSerial ESP32 Firmware Flasher built with React, Vite, and Adobe React Spectrum S2.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors