pchevali / esparagus-media-center

ESP32 based streaming upgrade for your audio gear

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Esparagus Media Center

Open Source Hardware Open Source Software

Esparagus Media Center is a series of ESP32 based media center devices. They all run Squeezelite-ESP32 software and have similar media capabilities, but aimed at different use cases. They share a similar look, and compared to my earlier designs, they have a great looking aluminum case.

Our Crowd Supply campaign for backing the manufacturing of Esparagus series boards is currently underway. If you have any interest, please consider subscribing to receive updates on the campaign.

Why Esparagus

ChatGPT made me call it that way. I only asked if there is a fruit or vegetable that is phonetically close to ESP32, which is the heart of this device.

Motivation

I did few audio projects in the past, some using ESP32, some using larger Orange Pi and Raspberry Pi devices. Each has its pros and cons, and each iteration I'm trying to focus on the details that were working best for me, while actually using them.

What I like about ESP32 is how lightweight it is. It barely draws power, so you may not care to turn it off at all. It boots in seconds and is ready for use in a snap. Still it is capable and works at par with Linux SBC solutions for audio applications, while costing a fraction of their price. Combined with proper Hi-Fi DAC you would not tell a difference to commercial devices standing side by side and costing much more.

Over last few years I see few amazing software products created to deliver audio on the ESP32, like squeezelite-esp32 or  euphonium. Esparagus media center devices are designed specifically to run these great pieces of software and bring a new life into aging audio equipment that most of us have at home, but do not use that much these days, since it is not working with Spotify and the family.

Esparagus HiFi MediaLink

Esparagus HiFi MediaLink is a handy low cost media device that will upgrade your legacy audio system with cutting-edge internet streaming capabilities and enhance your audio experience. It exposes line level output that you can plug into a stereo amplifier. It uses the legendary PCM51 series DAC with supreme audio quality.

DSC_0702

Loud Esparagus

Loud Esparagus is aimed to be paired with small-to-medium sized speakers in a small room. It uses a dual MAX98357 Hi-Fi DAC that will output 3W per speaker. Admittedly not much, but well enough for a kid's room or work place. Due to the D-class amp, it barely uses power and can be paired with a standard USB wall charger.

DSC_0689

Louder Esparagus

Louder Esparagus is a top-of-the-range model that uses modern highly capable TAS5805M DAC and is aimed to be paired with medium-to-large speaker systems. With 25W per channel stereo output it packs a punch and can easily enlive living quarters or dorm rooms. It is highly efficient, but much more demanding for power when cranked, therefore it uses USB-C Power Delivery to pull up to 65W from the wall power adapter. It can be used both with Wi-Fi and Ethernet (to make sure bad Wi-Fi would not interrupt the stream)

DSC_0725

Features

Hifi ESP Esparagus HiFi MediaLink Loud ESP Loud Esparagus Louder ESP Louder Esparagus
Image image DSC_0709 image DSC_0706 image DSC_0713
DAC PCM5100A 32bit Stereo DAC PCM5100A 32bit Stereo DAC
-100 dB typical noise level
Dual I2S DAC (MAX98357) with built in D-Class amp Dual I2S DAC (MAX98357) with built in D-Class amp Stereo I2S DAC (TAS5805M) with built in D-Class amp Stereo I2S DAC (TAS5805M) with built in D-Class amp
Power 3x LP5907 3.3 V Ultra-Low-Noise LDO 3x LP5907 3.3 V Ultra-Low-Noise LDO 5V from Mini-USB 5V from USB-C Up to 26V from external PSU Up to 20V from USB-C PD
Output 2.1 VRMS Line-level stereo output 3.5mm jack 2.1 VRMS Line-level stereo output 3.5mm jack 2x 3W 2x 3W 2x 23W at 22V Vin 2x 22W at 20V over USB-PD
PSRAM 8MB PSRAM (4MB usable) 8MB PSRAM (4MB usable) Onboard
8MB PSRAM (4MB usable) 8MB PSRAM (4MB usable) Onboard
8MB PSRAM (4MB usable) 8MB PSRAM (4MB usable) Onboard
Peripheral External WiFi Antenna
WS2812B RGB Led
SSD1306 128x64 OLED screen (optional)
External WiFi Antenna
WS2812B RGB Led
SSD1306 128x64 OLED screen (optional)
External WiFi Antenna
WS2812B RGB Led
SSD1306 128x64 OLED screen (optional), IR receiver, W5500 SPI LAN
Size 80 x 50 x 20mm 80 x 50 x 20mm 100 x 80 x 38mm

Onboard PSRAM

Audio streaming requires proper buffering to work, even with ESP32 500K of RAM it is a challenging task. All Esparagus boards are based on WROVER modules that have an onboard PSRAM chip.

Board Pinout

Common to every board

I2S CLK I2S DATA I2S WS PSRAM CE PSRAM CLK
ESP32 26 22 25 16 17

Peripheral (Loud Esparagus & Esparagus HiFi MediaLink )

SPI HOST SPI CLK SPI MOSI SPI MISO OLED DC OLED CS OLED RST WS2812 RGB LED RELAY EN
ESP32 2 18 23 19 4 5 32 33 21

TAS5805M DAC (Louder Esparagus)

I2C CLK I2C DATA PWDN FAULT
ESP32 27 21 33 34

Peripheral - OLED Screen and W5500 Ethernet (Louder Esparagus)

SPI HOST SPI CLK SPI MOSI SPI MISO LAN RES LAN CS LAN INT OLED DC OLED CS OLED RST
ESP32 2 18 23 19 14 5 35 4 15 32

Other Peripheral (Louder Esparagus)

USB-PD EN USB-PD POWER GOOD IR INPUT WS2812 RGB LED
ESP32 13 36 39 12

Software samples

In the software section two firmware examples provided.

  • esp32-i2s-bare is base I2S implementation based on ESP-IDF implementation directly.
  • esp32-i2s-esp8266audio is based on excellent ESP8266Audio library (it works with the whole ESP range, don't get fooled by the name), providing minimum code implementation.
  • esp32-i2s-web-radio is based on the same library, providing minimum web-readio stream player. It expects playlist as an input in 'data' folder.

Platformio IDE

All samples are provided as Plarformio IDE projects. After installing it, open sample project. Select proper environment based on your dock. Run Build and Upload commands to install necessary tools and libraries, build and upload prject to the board. Communication and proper upload method selection will be handled by IDE automatically.

Arduino IDE

Follow the ESP8266Audio library guide.

Squeezelite-ESP32

Squeezelite-ESP32 is a multimedia software suite, that started as renderer (or player) of LMS (Logitech Media Server). Now it is extended with

  • Spotify over-the-air player using SpotifyConnect (thanks to cspot)
  • AirPlay controller (iPhone, iTunes ...) and enjoy synchronization multiroom as well (although it's AirPlay 1 only)
  • Traditional Bluetooth device (iPhone, Android)

And LMS itself

  • Streams your local music and connect to all major on-line music providers (Spotify, Deezer, Tidal, Qobuz) using Logitech Media Server - a.k.a LMS with multi-room audio synchronization.
  • LMS can be extended by numerous plugins and can be controlled using a Web browser or dedicated applications (iPhone, Android).
  • It can also send audio to UPnP, Sonos, ChromeCast and AirPlay speakers/devices.

All Esparagus boards are tested with Squeezelite-ESP32 software. It can be flashed using nothing but web-browser. You can use Squeezelite-ESP32 installer for that purpose.

How to flash and configure

Use Squeezelite-ESP32 installer to flash firmware first.

Use Generic/I2S profile image
Connect device to USB port and select if from the list image image
Press Flash and wait around 2 minutes image
(Optional) You may enter serial console to get more information image
Device is in recovery mode. Connect to squeezelite-299fac wifi network with squeezelite password (your network name suffix will be different) image
When redirected to captive portal let device scan wifi network and provide valid credentials
You can use provided IP address (http://192.168.1.99/ on the screenshot) to access settings page image
HiFi and Loud
Navigate to NVS Editor section and provide following updates

dac_config: model=I2S,bck=26,ws=25,do=22
display_config: SPI,width=128,height=64,cs=5,reset=32,driver=SSD1306,HFlip,VFlip
led_vu_config: type=WS2812,length=1,gpio=33
spi_config: mosi=23,clk=18,host=2,miso=19,dc=4

Press Commit button
image
Louder ESP
Navigate to NVS Editor section and provide following updates

dac_config: model=I2S,bck=26,ws=25,do=22,sda=21,scl=27,i2c=45
(STEREO, BTL mode) dac_controlset: {"init":[{"reg":3,"val":2},{"reg":3,"val":3}],"poweron":[{"reg":3,"val":3}],"poweroff":[{"reg":3,"val":0}]}
(MONO, PBTL mode) dac_controlset: {"init":[{"reg":3,"val":2},{"reg":3,"val":3},{"reg":2,"val":4}],"poweron":[{"reg":3,"val":3}],"poweroff":[{"reg":3,"val":0}]}
i2c_config: scl=27,sda=21,speed=400000,port=1
set_GPIO: 33=vcc

Press Commit button
image
Louder ESP, Rev E

Update Ethernet configuration, if you're planning to use Ethernet module
eth_config: model=w5500,cs=5,speed=20000000,intr=35,rst=14
spi_config: mosi=23,clk=18,host=2,miso=19

Press Commit button
image
(Optional) You may change device names to something close to you heart image
Exit recovery image

You can use it now

Bluetooth Spotify Connect AirPlay LMS Renderer
image image image image

Hardware

Esparagus HiFi MediaLink Loud Esparagus Louder Esparagus
DSC_0711 DSC_0702 DSC_0710

Please visit hardware section for board schematics and PCB designs. Note that PCB are shared as multi-layer PDFs as well as Gerber archives.

Boxed

Esparagus HiFi MediaLink Loud Esparagus Louder Esparagus
image image image

PCB

Esparagus HiFi MediaLink Loud Esparagus Louder Esparagus
image image image

Where to buy

You may support our work by ordering this product at Tindie

About

ESP32 based streaming upgrade for your audio gear

License:Apache License 2.0


Languages

Language:C++ 95.2%Language:PLSQL 4.8%