Skip to content

Loud ESP is an ESP32-powered, rich-audio development board. Available with or without a color touchscreen, Loud ESP has a wealth of peripherals to support a wide range of user interaction. It is compact, portable, battery-powered, and uses a dual MAX98357 Hi-Fi DAC that will output 3W per speaker.

License

Notifications You must be signed in to change notification settings

sonocotta/loud-esp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Loud-ESP development board

Open Source Hardware Open Source Software I sell on Tindie
Dev Chat

image

Loud-ESP Kits is a set of development boards designed to make audio development for the ESP platform easy and feature-rich.

Key properties of this kit

  • It uses ESP chips as an MCU core, which has a huge community support and adaptation
  • It delivers 2-channel amplified high-quality audio ready to be connected to speakers of choice - no need to have an external amplifier. Therefore, it is all you need to complete your audio projects
  • It has low idle power consumption and built-in Li-Ion battery management; therefore, it is a good choice for any sort of portable and portable audio projects.
  • It has a rich UX peripheral, most obviously a TFT screen with touch, but also an IR receiver, and a header for physical controls, like a rotary encoder or joystick. Therefore, it is a good choice for standalone user-facing audio projects.

As of autumn 2025, I'm working on a spin-off of the original board that is tailored specifically for Espuino firmware, with a key difference to the original board being a replacement of the TFT screen with an RFID reader. It can be used for offline RFID-controlled media player devices, although I personally found it most usable in connection with Home Assistant and ESPHome driver integration.

While working on the new revision of the board, both received a few major schematic improvements to address a few issues I found over time with the original design. These include

  • New 3.3V buck-boost IC (TPS63060DSCR) that better handles low battery state
  • SDIO interface for the SD-card (as opposed to SPI, it uses fewer pins and provides better speed)
  • Move to the CH340C serial chip, as it seems more robust compared to the CP2102
  • Better power switch and a few smaller improvements.

Loud-ESP Features

image

MCU Core

  • ESP32 Dual Core 32-bit LX6 microprocessor running at 240 MHz
  • 16MB of flash storage
  • 8MB of PSRAM
  • CP2102/CH340C Serial communication/ Flashing chip

Battery management

  • Li-Ion battery charging with charge status indication
  • Battery overcharge and over-discharge protection
  • Battery overcurrent protection
  • Onboard 14500 battery holder or 2-pin connector for external battery (except Mini version)
  • Battery voltage reading using built-in DAC
  • Onboard power switch

Audio capabilities

  • Dual I2S stereo DAC (MAX98537) with built-in D-Class amp
  • 3W per channel on 4 Ohm load
  • Up to 92% efficiency
  • Onboard 5V boost converter

Peripheral

  • 2.8'' 320x240 TFT Screen with Touch sensor (except Mini version)
  • Wifi and BT
  • IR reader (except the Mini version)
  • RGB LED, RGB LED strip header
  • SDCard socket (except Mini version)
  • JTAG header (except the Mini version)
  • Rotary encoder/Joystick header (except the Mini version)

Other

  • RESET and GPIO0 (FLASH) buttons
  • Raspberry Pi 4 case mechanical compatibility
  • Software samples for every piece of onboard peripheral

RFID Edition

image

Compared to the original board, this one clearly changed shape to be hosted in the speaker enclosure. Apart from that, changes include

MCU, Audio, and Battery management

  • Same as Loud-ESP

Peripheral

  • RFID reader
  • RGB LED bar (12 LEDs)
  • SDCard socket (except Mini version)
  • Onboard rotary encoder with push button
  • 5x Push-buttons connected via GPIO expander
  • 1x Push-button (instead of a slide switch) to cut off power while not in use

Hardware

Prototype

image

Latest board

Assembed PCB only
DSC_0016 DSC_0019

Features

Loud-ESP Mini

IMAGE DESCRIPTION
image image MCU (WROVER ESP32)
image RESET and IO0/FLASH buttons
image Speaker Terminals
image Li-Ion Battery Connector
image Power switch
image USB port (Flashing + Serial + Power + Charging)
image RGB LED
image 5V Boost converter

Loud-ESP

IMAGE DESCRIPTION
image image MCU (WROVER ESP32)
image RESET and IO0/FLASH buttons
image Speaker Terminals
image Li-Ion Battery Connector
image Power switch
image USB port (Flashing + Serial + Power + Charging)
image RGB LED
image Dual 5V Boost converter
image IR Sensor
image TFT Screen Connector
image SD Card socket
image Rotary Encoder/Joystick module conector

External connectors

IMAGE DESCRIPTION
image image External RGB Strip connector. Chained to built-in RGB LED
image External Power switch. Short via the external button to power on the board.
image External 5V source. Alternative source of power and charging
image Disable battery current protection jumper. Short to override built-in 2A current limiter (only if you know what you're doing)

GAIN and MONO Selection

Both Boards have jumpers that can be used to configure the gain factor individually for both channels. The default GAIN is +9 dB. Short appropriate jumper to override the default To hardwire the DAC into MONO mode, you need to cut the MONO jumper (it is short by default)

Loud-ESP MINI Loud-ESP
image image

Board Revisions

These boards come in multiple revisions; normally, the revision of the specific board will be clearly visible on the back side of the PCB.

image

The current distribution of board revisions looks like this

Revision Loud-ESP Revision Loud-ESP Mini Description
D image - Extended PCB with built-in Rotary Encoder/ Joystick
E image E image Pre-production prototype. Distributed among beta-testers
F image F image Crowd Supply distribution
G image - - Engineering sample that replace serial bridge with CH340 (due to few CP2102 failures reported by customers)
H image - - Recent board update, introduce improved power topology, CH340 Serial bridge, USB-C port, and SDCARD over SDIO interface.

Reviosions A, B, and C were early prototypes, never distributed due to multiple hardware issues.

Pin Definitions

image

Pin usage summary

PIN PRIMARY FUNC JTAG I2S TFT TOUCH_TFT RGB_LED BAT IR SDCARD ROTARY ENC/ BTN INP PSRAM
IO0 BOOT SEL IR_IN
IO1 TX
IO2 CS
IO3 RX
IO4 DC
IO5 VSPI_CS CS
IO12 HSPI_MISO MTDI
IO13 HSPI_MOSI MTCK
IO14 HSPI_CLK MTMS
IO15 HSPI_CS MTDO
IO16 PSRAM_CS
IO17 PSRAM_CLK
IO18 VSPI_CLK CLK CLK CLK
IO19 VSPI_MISO MISO MISO MISO
IO21 CHRG
IO22 DATA
IO23 VSPI_MOSI MOSI MOSI MOSI
IO25 WS
IO26 CLK
IO27 CS
IO32 RES/LED
IO33 OUT
IO34 BAT_IN
IO35 A
IO36 B
IO39 BTN

Rev H update

Key hardware updates introduced in the rev H

  • SD-CARD over SDIo interface
  • CH340 Serial chip instead of CP2102
    • Few people reported its failure
  • USB-C instead of mini-USB
  • TPS63060 step-up/step-down 3.3V converter, which ensures smooth operation with low battery levels
    • Previous revision started flickering when battery voltage goes low, since the 3V3 rail would go even below 3V, causing ESP32 brown-outs

SD-CARD issues

Having used Loud-ESP for a few projects involving SDCARD, I came to the idea that having 3 high-speed devices on the same SPI line is not the best approach. Since SD-CARD can alternatively be connected to the SDIO interface, I decided to follow that path in revision H.

SDIO interface is hardwired to pins IO2, IO4, IO12-15, and by the SD specification, all must be pulled high for reliable operation. At the same time, the ESP32 specification states that pins 2 and 12 must be low at boot, otherwise the ESP32 will go into download mode. Thus, I left them floating, which caused some SD cards to fail. I didn't find a reliable solution to this contradiction and consider going back to the SPI interface in the next revision.

Updated pinout

PIN PRIMARY FUNC JTAG I2S TFT TOUCH_TFT RGB_LED BAT IR SDCARD ROTARY ENC/ BTN INP PSRAM
IO0 BOOT SEL IR_IN
IO1 TX
IO2 D0
IO3 RX
IO4 D1
IO5 VSPI_CS CS
IO12 HSPI_MISO MTDI D2
IO13 HSPI_MOSI MTCK D3
IO14 HSPI_CLK MTMS CLK
IO15 HSPI_CS MTDO CMD
IO16 PSRAM_CS
IO17 PSRAM_CLK
IO18 VSPI_CLK CLK CLK CLK
IO19 VSPI_MISO MISO MISO MISO
IO21 DC
IO22 DATA
IO23 VSPI_MOSI MOSI MOSI MOSI
IO25 WS
IO26 CLK
IO27 CS
IO32 LED
IO33 OUT
IO34 B
IO35 A
IO36 BTN
IO39 HOST

How to use a specific peripheral

esp32-peripheral-test firmware demonstrates how to use each of available peripheral. For many of them, you would need libraries, which are also included in this example. Of course, many alternatives can be found; for example, we will list those that are tested and work without a hassle.

Firmware

Introduction

Most repos are Platformio projects, all tested under Ubuntu 20.04 LTS. Some are ESP IDF projects, and would require installation steps before build

Most of the repos will utilize multiple environments with different settings for different board revisions. Please refer to platformio.ini file within the project folder.

For each project, please find a detailed description using links below

ESP Audio Development Kits repos

Third-party repositories that run on Loud-ESP

Audio projects

Visual only projects

How to flash

Recommended: Using Platformio

Whenever repo is a Platformio project, it is preferred to use it to flash firmware to the board. platformio.ini file will contain specific sections for different board revisions and configurations. Hardware-specific details are preferred to keep in this file as well.

[env:esp32-dev-board-c-240x240]
platform = espressif32
board = esp32dev
framework = arduino
build_flags =
  -D USER_SETUP_LOADED=1
  -D ST7789_DRIVER
  -D TFT_WIDTH=240
  -D TFT_HEIGHT=240
  -D TFT_DC=27
  -D TFT_BL=26
  -D TFT_INVERSION_ON=1
  -D TFT_RGB_ORDER=TFT_BGR
  -D TFT_ROTATION=2

[env:esp32-dev-board-c-240x320]
platform = espressif32
board = esp32dev
build_flags =
  -D USER_SETUP_LOADED=1
  -D ST7789_DRIVER
  -D TFT_WIDTH=240
  -D TFT_HEIGHT=320
  -D TFT_DC=13
  -D TFT_CS=05
  -D TFT_BL=12
  -D TFT_INVERSION_OFF=1
  -D TFT_RGB_ORDER=TFT_BGR
  -D TFT_ROTATION=1

Arduino IDE

Follow the ESP8266Audio library guide. Default settings will work out of the box with both Loud-ESP and Loud-ESP Mini boards.

ESPHome and Home Assistant

Being an ESP32-based device, you can easily integrate it into your Home Assistant using ESPHome. Start with esphome web installer, which will give you an ESPHome base install and WiFi configuration in minutes.

image image

Next, navigate to your Home Assistant (assuming you have your ESPHome integration installed), and adopt the newly created node

image

ESPHome will give you ESPHome configs for both the mini and full versions of the board.

Loud ESP Mini and Full version

The loud-esp-mini config enables common board peripheral

  • media_player publishes the media player into the Home Assistant, so you can use it together with the native player or Music Assistant. You have a volume knob in the HA as well.
  • image
  • Volume set up to 50% on player start. You can change that
  • light component exposes onboard RGB LED for use in integrations. In this example, it lights an LED depending on the media_player state
  • psram enabled for all devices to smooth out playback

Loud ESP Full version only

The loud-esp config enables all the board peripheral

  • remote_receiver exposes the IR reader. Example configures the SAMSUNG TV remote to control volume using volume buttons.
  • display component configures the onboard display
  • touchscreen component configures the onboard touchscreen and dumps touches to the console

Project example - Mopidy monitor

The loud-esp-mopidy-monitor config is a project that I did myself for HA Mopidy media center integration

  • media_player can be used for voice announcements
  • display shows the current Mopidy playing item, Artist, and title.
  • three playback buttons allow Play/Pause track and move back and forward along the playlist via touchscreen controls
  • on the top of display, there is a volume indicator with two buttons to change it
  • The progress bar shows the current progress of the track
  • display also shows playlist progress on the bottom with the current item highlighted

image

Currently, there is no component that can display track images, but it seems like it will be added soon

Bonus - automation example

The true power of the native speaker in the eHA is the use of automation. One example that I find useful. This simple automation will be pronounced every hour between 8 AM and 9 PM. Another one is used to pronounce bedtime, you get the point...

image

Squeezelite-ESP32

Squeezelite-ESP32 is a multimedia software suite that started as a 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 connects to all major online 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 ESP32-based boards are tested with Squeezelite-ESP32 software, which can be flashed using nothing but a web browser. You can use Squeezelite-ESP32 installer for that purpose.

How to flash and configure

Use Installer for ESP Audio Dock to flash firmware first. It has been preconfigured to work with ESP Audio boards and will configure all hardware automatically.

Select the correct device first image
Connect the device to the USB port and select it from the list image
Press Flash and wait around 2 minutes image
(Optional) You may enter the 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 the captive portal let the 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
(Optional) You may change device names to something close to your heart image
Exit recovery image

You can use it now

Bluetooth Spotify Connect AirPlay LMS Renderer
image image image image

Where to buy

You may support our work by ordering this product at Tindie and Elecrow

About

Loud ESP is an ESP32-powered, rich-audio development board. Available with or without a color touchscreen, Loud ESP has a wealth of peripherals to support a wide range of user interaction. It is compact, portable, battery-powered, and uses a dual MAX98357 Hi-Fi DAC that will output 3W per speaker.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages