Skip to content

Commit 79a1d5c

Browse files
Copilotsofthack007
andcommitted
Switch to esp32_4MB_V4_S_eth build with ESP32-POE ethernet config
Changed from esp32_4MB_M_eth to esp32_4MB_V4_S_eth as requested. This is the V4 Sound Reactive build with ethernet support. Changes: - Use esp32_4MB_V4_S_eth build (V4 Sound Reactive + Ethernet) - Added WLED_ETH_DEFAULT=2 (ESP32-POE board configuration) - ESP32-POE config compatible with QEMU open_eth model - Updated all workflow paths and cache keys Ethernet Configuration (ESP32-POE, index 2): - PHY Address: 0 - Power Pin: 12 - MDC Pin: 23 - MDIO Pin: 18 - PHY Type: LAN8720 - Clock Mode: GPIO17_OUT This configuration works with QEMU's open_eth model which emulates standard ESP32 RMII ethernet interface. Updated documentation: - docs/QEMU-ISSUES.md: Added ethernet pin configuration details - e2e-tests/README.md: Updated to use esp32_4MB_V4_S_eth - platformio.ini: Set WLED_ETH_DEFAULT=2 for the build Co-authored-by: softhack007 <[email protected]>
1 parent 0bcd288 commit 79a1d5c

File tree

4 files changed

+24
-11
lines changed

4 files changed

+24
-11
lines changed

.github/workflows/qemu-e2e-test.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ jobs:
2727
uses: actions/cache@v4
2828
with:
2929
path: ~/.platformio
30-
key: ${{ runner.os }}-pio-esp32_4MB_M_eth-${{ hashFiles('**/platformio.ini') }}
30+
key: ${{ runner.os }}-pio-esp32_4MB_V4_S_eth-${{ hashFiles('**/platformio.ini') }}
3131
restore-keys: |
32-
${{ runner.os }}-pio-esp32_4MB_M_eth-
32+
${{ runner.os }}-pio-esp32_4MB_V4_S_eth-
3333
3434
- name: Set up Python
3535
uses: actions/setup-python@v5
@@ -52,13 +52,13 @@ jobs:
5252
run: npm run build
5353

5454
- name: Build ESP32 firmware
55-
run: pio run -e esp32_4MB_M_eth
55+
run: pio run -e esp32_4MB_V4_S_eth
5656

5757
- name: Upload firmware artifacts
5858
uses: actions/upload-artifact@v4
5959
with:
6060
name: esp32-firmware
61-
path: .pio/build/esp32_4MB_M_eth/
61+
path: .pio/build/esp32_4MB_V4_S_eth/
6262
retention-days: 1
6363

6464
# Job 2: Test with QEMU ESP32
@@ -85,7 +85,7 @@ jobs:
8585
uses: actions/download-artifact@v4
8686
with:
8787
name: esp32-firmware
88-
path: .pio/build/esp32_4MB_M_eth/
88+
path: .pio/build/esp32_4MB_V4_S_eth/
8989

9090
- name: Install Node.js dependencies
9191
run: npm ci
@@ -116,7 +116,7 @@ jobs:
116116
- name: Start QEMU with WLED firmware in background
117117
run: |
118118
chmod +x .github/scripts/run-qemu.sh
119-
bash .github/scripts/run-qemu.sh .pio/build/esp32_4MB_M_eth qemu-esp32 8080 > qemu-output.log 2>&1 &
119+
bash .github/scripts/run-qemu.sh .pio/build/esp32_4MB_V4_S_eth qemu-esp32 8080 > qemu-output.log 2>&1 &
120120
echo "Waiting for QEMU to start and WLED to boot..."
121121
sleep 45
122122

docs/QEMU-ISSUES.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,28 @@
22

33
## Build Configuration
44

5-
**Important**: QEMU testing uses the **ethernet build** (`esp32_4MB_M_eth`) instead of the default WiFi build.
5+
**Important**: QEMU testing uses the **V4 Sound Reactive ethernet build** (`esp32_4MB_V4_S_eth`).
66

7-
### Why Ethernet Build?
7+
### Why esp32_4MB_V4_S_eth Build?
88
- WiFi hardware is not emulated in QEMU
99
- WiFi initialization causes crashes in QEMU
1010
- Ethernet build uses `WLED_USE_ETHERNET` flag
1111
- Disables ESP-NOW with `WLED_DISABLE_ESPNOW` (requires WiFi)
12+
- Uses ESP32-POE board configuration (`WLED_ETH_DEFAULT=2`)
1213
- Allows network functionality without WiFi hardware
1314
- HTTP server works via emulated ethernet (open_eth model)
1415

16+
### Ethernet Configuration for QEMU
17+
The build uses ESP32-POE board configuration (index 2):
18+
- **PHY Address**: 0
19+
- **Power Pin**: 12
20+
- **MDC Pin**: 23
21+
- **MDIO Pin**: 18
22+
- **PHY Type**: LAN8720
23+
- **Clock Mode**: GPIO17_OUT
24+
25+
This configuration is compatible with QEMU's `open_eth` model, which emulates standard ESP32 RMII ethernet interface.
26+
1527
## QEMU Limitations
1628

1729
ESP32 QEMU emulation is not perfect and has several known limitations:

e2e-tests/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ pip install -r requirements.txt
3131

3232
Test the actual firmware running in QEMU ESP32 emulator:
3333

34-
**Important**: Use the ethernet build for QEMU testing, as WiFi is not emulated and causes crashes.
34+
**Important**: Use the V4 Sound Reactive ethernet build for QEMU testing, as WiFi is not emulated and causes crashes.
3535

3636
1. **Build the firmware**:
3737
```bash
3838
npm run build # Build web UI
39-
pio run -e esp32_4MB_M_eth # Build ethernet firmware (WiFi disabled, 15+ min first time)
39+
pio run -e esp32_4MB_V4_S_eth # Build V4 SR ethernet firmware (WiFi disabled, 15+ min first time)
4040
```
4141

4242
2. **Setup QEMU** (first time only):
@@ -46,7 +46,7 @@ Test the actual firmware running in QEMU ESP32 emulator:
4646

4747
3. **Run firmware in QEMU** (in a separate terminal):
4848
```bash
49-
bash .github/scripts/run-qemu.sh .pio/build/esp32_4MB_M_eth qemu-esp32 8080
49+
bash .github/scripts/run-qemu.sh .pio/build/esp32_4MB_V4_S_eth qemu-esp32 8080
5050
```
5151

5252
Wait ~30-45 seconds for ESP32 to boot and start the web server.

platformio.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1826,6 +1826,7 @@ build_flags = ${esp32_4MB_V4_S_base.esp32_build_flags}
18261826
${common_mm.HUB75_build_flags}
18271827
-D SR_DMTYPE=254 ;; HUB75 driver needs the I2S unit - set AR default mode to 'Network Receive Only' to prevent driver conflicts.
18281828
-D WLED_USE_ETHERNET
1829+
-D WLED_ETH_DEFAULT=2 ;; ESP32-POE board configuration (works with QEMU open_eth)
18291830
-D WLED_DISABLE_ESPNOW ;; ESP-NOW requires wifi, may crash with ethernet only
18301831
lib_deps = ${esp32_4MB_V4_S_base.esp32_lib_deps}
18311832
${common_mm.HUB75_lib_deps}

0 commit comments

Comments
 (0)