Skip to content

Amped-ESP32 and Amped-Esparagus

The Sonocotta Amped-ESP32 boards put a PCM5100 I2S DAC in front of a TPA3110 or TPA3128 Class-D amplifier. Speakers connect directly to the board, but unlike the Loud boards the signal passes through a real DAC first.

Neither part has an I2C control port. The amplifier's only control line is an active-high UNMUTE pin, driven from RTSP playback events by the same board support code the Loud boards use: muted until a client presses play, standby on pause, off on disconnect.

Variants

Environment Chip Ethernet Display Controls Bluetooth Prebuilt
amped-esp32 ESP32 yes SH1106 OLED
amped-esp32-bt ESP32 yes SH1106 OLED yes yes
amped-esparagus ESP32 yes rotary encoder
amped-esparagus-bt ESP32 yes rotary encoder yes yes
amped-esp32-s3 ESP32-S3 yes SH1106 OLED yes

Bluetooth Classic exists only on the original ESP32, so there is no -bt build for the S3 board. On an ESP32 the published binary is the Bluetooth one.

Amped-Esparagus is rev M only

config/sdkconfig.defaults.amped-esparagus describes rev M hardware. Earlier revisions use a different pinout.

Its ILI9342 TFT is not a supported driver — the firmware speaks SSD1306/SH1106/SSD1309 OLED and ST7789 TFT — so display support is commented out in the board configuration and the board ships without a screen. The rotary encoder works: turning it changes volume, clicking it toggles play/pause.

Features

  • PCM5100 DAC into a TPA3110 or TPA3128 Class-D amplifier
  • Amplifier held muted until playback starts, standby on pause, off on disconnect
  • Software volume control — neither part has a volume register
  • 8 MB flash
  • Bluetooth A2DP on the ESP32 variants
  • W5500 SPI Ethernet with automatic WiFi failover
  • SH1106 OLED over SPI on Amped-ESP32 and Amped-ESP32-S3; a rotary encoder on Amped-Esparagus

Flashing

Use the Amped installer for your board on the flashing page.

# ESP32 — AirPlay + Bluetooth + Ethernet + OLED
pio run -e amped-esp32-bt -t upload
pio run -e amped-esp32-bt -t uploadfs

# ESP32 — Esparagus rev M, rotary encoder
pio run -e amped-esparagus-bt -t upload
pio run -e amped-esparagus-bt -t uploadfs

# ESP32-S3
pio run -e amped-esp32-s3 -t upload
pio run -e amped-esp32-s3 -t uploadfs
idf.py set-target esp32
idf.py -DSDKCONFIG_DEFAULTS="config/sdkconfig.defaults;config/sdkconfig.defaults.amped-esp32;config/sdkconfig.defaults.bt" build
idf.py -p /dev/ttyUSB0 flash

Swap in config/sdkconfig.defaults.amped-esp32-s3 after idf.py set-target esp32s3 for the S3 revision.

Default GPIO assignments

Function Amped-ESP32 Amped-Esparagus Amped-ESP32-S3
I2S BCK 26 26 14
I2S WS 25 25 15
I2S DO 22 22 16
Amp UNMUTE 13 13 17
Status LED 12
Rotary A 33
Rotary B 27
Encoder click 34
SPI SCLK 18 18 12
SPI MOSI 23 23 11
SPI MISO 19 19 13
Ethernet CS 5 5 10
Ethernet INT 35 35 6
Ethernet RST 14 14 5
Display CS 15 47
Display DC 4 38
Display RST 32 48