This is an old revision of the document!


Karaoke Machine

Name Giurgiu Andrei-Ștefan
Group 335CA

Introduction

The project consists of creating a karaoke mechanism, using a speaker for the instrumental and an LCD screen for the lyrics. The user can choose from a preset selection of songs, loaded on a microSD card. The songs which are listed at the beginning on the screen, can be selected using buttons. The speaker volume can also be adjusted using a potentiometer.

The goal of the project is to create a relaxing and fun atmosphere for the users.

General description

The ESP32 is the main component of the project, since it will be in charge of reading data from the card and send the audio signal to an amplifier using the I2S protocol.

The MAX88357A amplifier will take the digital signal from the ESP32 and transform it into a strong analogue signal. After this the sound will be sent to the speaker.

The main storage component is a 16GB microSD card, formatted as Fat32. The instrumental files are stored in the .mp3 format and the lyrics files in the .lrc format, which is a text format with timestamps before the text, so that syncing with the instrumental is easier.

The user interface is made of three classes of components: the 20×4 LCD display with an I2C interface, the volume adapter and the buttons. The display is a simple LCD with an I2C module attached, which at the beginning will show the available songs on the device. Using the buttons, the user can select a song and play it.

Block Scheme

 Schema bloc

Hardware Design

The list of components used is:

  • ESP32-WROOM-32D Microcontroller
  • MAX98357A Amplifier
  • MB102 Power Module
  • LCD Display with PCF8574 I2C module
  • microSDHC Card
  • 40mm 3W Speaker
  • MicroSDHC Reader Module
  • Potentiometer
  • Buttons
  • 2x Breadboard

Component Pinout

Component Pin Name Connected To
ESP32-DEVKITC-32D 3V3 Potentiometer (Top Pin)
IO34 Potentiometer (Wiper)
IO27 PLAY/PAUSE BUTTON
IO14 UP BUTTON
IO13 DOWN BUTTON
GND Common GND
5V MB102 (VCC2)
IO23 Micro SDHC reader (MOSI)
IO22 PCF8574 (SCL)
IO21 PCF8574 (SDA)
IO19 Micro SDHC reader (MISO)
IO18 Micro SDHC reader (SCK)
IO5 Micro SDHC reader (CS)
IO16 MAX98357A (DIN)
IO26 MAX98357A (BCLK)
IO25 MAX98357A (LRC)
MB102 Power Supply VCC2 ESP32 (5V), MAX98357A (Vin), PCF8574 (VCC), Micro SDHC reader (VCC)
GND Common GND
VCC1 Not Connected
MAX98357A LRC ESP32 (IO25)
BCLK ESP32 (IO26)
DIN ESP32 (IO16)
GAIN Not connected
SD Not Connected
GND Common GND
Vin MB102 (VCC2)
+ Speaker (+)
- Speaker (-)
PCF8574 VCC MB102 (VCC2)
GND Common GND
SDA ESP32 (IO21)
SCL ESP32 (IO22)
Micro SDHC reader CS ESP32 (IO5)
SCK ESP32 (IO18)
MOSI ESP32 (IO23)
MISO ESP32 (IO19)
VCC MB102 (5V)
GND Common GND
Potentiometer Top Pin ESP32 (3V3)
Wiper ESP32 (IO34)
Bottom Pin Common GND
PLAY/PAUSE BUTTON Pin 1 ESP32 (IO27)
Pin 2 Common GND
UP BUTTON Pin 1 ESP32 (IO14)
Pin 2 Common GND
DOWN BUTTON Pin 1 ESP32 (IO13)
Pin 2 Common GND
Speaker + MAX98357A (+)
- MAX98357A (-)

Electrical Scheme

Software Design

Under construction while I think about using State Machine or FreeRTOS.

Results

To be determined after Software Milestone.

Concluzii

To be determined after Software Milestone.

Download

Click here.

Journal

  • 15.04.2026: First discussion with the assistant regarding the project theme.
  • 05.05.2026: Partial creation of the technical documentation, which contains the project theme, block diagram and list of components.
  • 08.05.2026: Add the electrical scheme of the project.
  • 09.05.2026: Add the component pinout and refined the general description section.

Resources

All the lyric files were originally taken from lrclib.net and preprocessed using Audacity in order to sync the timestamps with the instrumental.

Datasheets

Component Link Datasheet
ESP32-WROOM-32D Datasheet microcontroller
Amplifier MAX98357A Datasheet MAX98357A
LCD 20×4 Datasheet display
MB102 Power supply module Datasheet MB102
MicroSDHC reader module Datasheet MicroSDHC

Export to PDF

pm/prj2026/vlad.radulescu2901/andrei.giurgiu0801.1778357834.txt.gz · Last modified: 2026/05/09 23:17 by andrei.giurgiu0801
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0