Skip to content

Ethernet (W5500)

The Esparagus Audio Brick supports wired Ethernet through a W5500 SPI module, giving a reliable low-latency connection where WiFi is unreliable or unavailable.

How it works

Ethernet is checked first at boot. If a cable is connected, WiFi is skipped entirely. Unplug the cable at runtime and WiFi starts automatically as a fallback; plug it back in and Ethernet takes over again.

stateDiagram-v2
    [*] --> Boot
    Boot --> CableCheck: check link
    CableCheck: Cable connected?

    CableCheck --> Ethernet: yes
    CableCheck --> WiFi: no

    Ethernet: Ethernet active
    Ethernet: WiFi stack not started
    WiFi: WiFi active
    WiFi: AP + STA mode

    Ethernet --> WiFi: cable unplugged
    WiFi --> Ethernet: cable plugged in

The web interface shows "Ethernet" or "WiFi" depending on which is active, and AirPlay and Bluetooth behave identically on either.

Wiring

The W5500 connects over SPI, sharing the clock and MOSI lines with the OLED display. The ESP32 and ESP32-S3 revisions of the Brick use different pins.

W5500 pin ESP32 ESP32-S3 Function
CLK 18 12 SPI clock
MOSI 23 11 SPI data out
MISO 19 13 SPI data in
CS 5 10 Chip select
INT 35 6 Interrupt
RST 14 5 Hardware reset
3V3 3.3 V 3.3 V Power
GND GND GND Ground

Configuration

Ethernet is enabled by default in every Esparagus Audio Brick build, on both revisions. GPIOs can be changed under Board Configuration → SPI and Ethernet Configuration in menuconfig.

To disable it, set:

CONFIG_ETH_W5500_ENABLED=n

When disabled, all Ethernet code is compiled out — no impact on flash size or RAM.

MAC address

The W5500 has no factory MAC address. The firmware derives a unique one from the ESP32's base MAC using ESP_MAC_ETH, so every board gets a stable, unique Ethernet MAC.