How gurdeepsinghiet/esp32_bootloader works
This firmware turns an ESP32 into an SD-card emulator launcher and updater. On startup it mounts the card, then either checks root-level firmware/version files or scans emulator folders and presents a PS/2 menu. It compares versions, flashes changed firmware to the OTA app partition, and boots the selected emulator. Maintenance also supports downloading emulator files over Wi-Fi and extracting app images from merged binaries. Main-flow wiring is based on the sampled source and README; unsampled implementation details are not inferred.
Main entry points: main.cpp Boot Coordinator · render.h Emulator Menu · extract.h Firmware Extractor · updater.h Online Updater
Components 17
Boot and Flash
- Boot Coordinator
src/main.cpp - SD Mount
src/main.cpp - Version Check
src/main.cpp - OTA Flash
src/main.cpp - ESP32 App Partitions
- Emulator Boot
src/main.cpp
Card and Configuration
- Firmware Discovery
src/main.cpp - SD Configuration
src/rc.h
Display and Input
- Emulator Menu
src/render.h - PS/2 Input
src/main.cpp - VGA Display
src/render.h
Emulator Maintenance
- Online Updater
src/updater.h - Firmware Extractor
src/extract.h
Other components
- Power On
- Device Operator
- SD Card
- Emulator Service
Connections 25
- Power On → Boot Coordinator: starts
- Boot Coordinator → SD Mount: initializes
- SD Mount → SD Card: mounts
- Boot Coordinator → SD Configuration: loads settings
- SD Configuration → SD Card: reads/writes
- Boot Coordinator → Firmware Discovery: scans firmware
- Firmware Discovery → SD Card: reads files
- Boot Coordinator → Emulator Menu: presents choices
- Emulator Menu → PS/2 Input: polls keys
- Device Operator → PS/2 Input: presses keys
- Emulator Menu → VGA Display: draws interface
- Boot Coordinator → Version Check: checks version
- Version Check → SD Card: reads version
- Boot Coordinator → OTA Flash: flashes when changed
- OTA Flash → SD Card: reads firmware
- OTA Flash → ESP32 App Partitions: writes ota_0
- Boot Coordinator → Emulator Boot: boots selected app
- Emulator Boot → ESP32 App Partitions: selects app
- Emulator Menu → Online Updater: dispatches maintenance
- Emulator Menu → Firmware Extractor: dispatches extraction
- Online Updater → Emulator Service: requests catalog/files
- Online Updater → SD Card: saves downloads
- Firmware Extractor → SD Card: reads merged images
- Firmware Extractor → SD Card: writes app and version
- Firmware Extractor → VGA Display: reports progress