name: build-flash description: Build and flash ESP32 DJ Console firmware with frontend
Build & Flash ESP32 DJ Console
Environment Setup
ESP-IDF must be sourced before any build commands:
source ~/esp/esp-idf/export.sh
Build Commands
Full build (frontend + firmware)
Use the unified build script:
cd /home/sf/src/Esp32DjConsole
./build.sh
This runs: npm install (if needed) -> npm run build -> gzip assets -> idf.py build (includes SPIFFS image).
Build and flash
./build.sh flash # Auto-detect port
./build.sh flash /dev/ttyUSB0 # Specific port
Frontend only
cd frontend && npm run build
Output goes to build/www/. The SPIFFS image is regenerated on next idf.py build.
Firmware only (skip frontend rebuild)
idf.py build
Flash only (already built)
idf.py -p /dev/ttyUSB0 flash monitor
Partition Layout
| Partition | Offset | Size | Contents |
|---|---|---|---|
| nvs | 0x9000 | 24KB | Config (WiFi creds, settings) |
| phy_init | 0xF000 | 4KB | PHY calibration |
| factory | 0x10000 | 1.875MB | Firmware |
| www | 0x1F0000 | 1MB | SPIFFS (frontend assets) |
Key Files
sdkconfig.defaults— ESP-IDF config overrides (edit this, NOTsdkconfig)sdkconfig— auto-generated, do NOT edit directlypartitions.csv— partition tableCMakeLists.txt— builds frontend via npm, generates SPIFFS imagebuild.sh— unified build script with gzip compression
Common Issues
- "ESP-IDF not found": Run
source ~/esp/esp-idf/export.shfirst - Frontend changes not showing: Ensure
build/www/has fresh files, thenidf.py buildto regenerate SPIFFS - Partition too small: www partition is 1MB, check
build/www/total size - sdkconfig conflicts: Delete
sdkconfigand rebuild —sdkconfig.defaultswill regenerate it