ESP32 Multi-Feature Handheld Device - Multiple Issues

robot_tech5443
Posts: 1
Joined: Sun Jul 12, 2026 12:03 pm

ESP32 Multi-Feature Handheld Device - Multiple Issues

Postby robot_tech5443 » Sun Jul 12, 2026 12:09 pm

About the Project:

I am building a handheld multi-purpose ESP32 device with the following features:

2.4" ILI9341 TFT display
DFPlayer Mini MP3 player with 8Ω speaker
MAX98306 stereo amplifier for internet radio streaming
SD card via TFT module built-in slot
WiFi for NTP clock, internet radio and Project Gutenberg books
Bluetooth audio output
3 tactile buttons and 10kΩ potentiometer for navigation
Auto color changing LED for music visualization
18650 battery with TP4056 Type C charging and MT3608 boost converter
Features: Pomodoro timer, Snake/Pong/Tetris/Flappy Bird/Space Invaders, MP3 player, internet radio, book reader, screensavers
Pin Assignment:

TFT CS → GPIO 15
TFT RESET → GPIO 4
TFT DC → GPIO 2
TFT MOSI → GPIO 23
TFT SCK → GPIO 18
TFT MISO → GPIO 19
SD CS → GPIO 5
DFPlayer RX → GPIO 17
DFPlayer TX → GPIO 16
MAX98306 LRC → GPIO 25
MAX98306 BCLK → GPIO 26
MAX98306 DIN → GPIO 22
LEFT button → GPIO 27
RIGHT button → GPIO 14
SELECT button → GPIO 12
Potentiometer → GPIO 34
Music LED → GPIO 13
Problem 1 - DFPlayer Mini overheating:

When I connected the DFPlayer Mini it got very hot immediately and started smelling burnt without even initializing. No error message appeared in Serial Monitor before overheating.

Connections used:

Pin 1 (VCC) → 5V
Pin 2 (RX) → GPIO 17
Pin 3 (TX) → GPIO 16
Pin 6 (GND) → GND
Pin 5 (SPK1) → Speaker +
Pin 7 (SPK2) → Speaker -
Questions:

What could cause DFPlayer to overheat immediately?
Is a 1kΩ resistor needed between ESP32 TX and DFPlayer RX?
Could reversed VCC/GND cause this?
Is the module likely damaged now?
Problem 2 - TFT Display not working:

Using TFT_eSPI library with ILI9341 driver. Configured User_Setup.h with correct pins. Display backlight comes on but no image appears on screen.

Connections:

VCC → 3.3V
GND → GND
CS → GPIO 15
RESET → GPIO 4
DC → GPIO 2
SDI → GPIO 23
SCK → GPIO 18
LED → 3.3V
SCO → GPIO 19
Test code used:

cpp

#include <TFT_eSPI.h>
TFT_eSPI tft = TFT_eSPI();

void setup() {
tft.init();
tft.setRotation(1);
tft.fillScreen(TFT_RED);
delay(1000);
tft.fillScreen(TFT_GREEN);
delay(1000);
tft.fillScreen(TFT_BLUE);
}

void loop() {}
Questions:

Is User_Setup.h configuration correct for ILI9341?
Could there be a pin conflict somewhere?
Any common mistakes with this display on ESP32?
Problem 3 - Power system not working:

Using TP4056 Type C → 18650 battery → MT3608 boost → ESP32 VIN.

Issues:

TP4056 seems to pass current directly to ESP32 without properly charging battery
MT3608 booster output unstable
18650 battery may be dead
Connections:

TP4056 IN+ → Type C +
TP4056 IN- → Type C -
TP4056 BAT+ → 18650 +
TP4056 BAT- → 18650 -
TP4056 OUT+ → MT3608 IN+
TP4056 OUT- → MT3608 IN-
MT3608 OUT+ → ESP32 VIN
MT3608 OUT- → ESP32 GND
Questions:

Is this wiring correct?
How to check if 18650 battery is dead using multimeter?
Is it safe to power ESP32 directly from TP4056 OUT without MT3608?
Problem 4 - MAX98306 amplifier:

Not sure if MAX98306 supports I2S audio directly from ESP32.

Current connections:

VDD → 5V
GND → GND
SDWN → 3.3V
L+ → GPIO 22
L- → GND
R+ → GPIO 22
R- → GND
LOUT+ → Speaker +
LOUT- → Speaker -
Questions:

Does MAX98306 support I2S or only analog input?
Is this wiring correct for mono speaker?
What changes are needed for ESP32 I2S audio?
Libraries used:

TFT_eSPI by Bodmer
DFRobotDFPlayerMini
ESP32-audioI2S by schreibfaul1
NTPClient
BluetoothA2DPSource
Board: ESP32 DevKit V1
Arduino IDE: 2.x

Any help appreciated! Thank you! :folded_hands:
Attachments
Screenshot 2026-07-11 at 10.40.46 PM.png
Screenshot 2026-07-11 at 10.40.46 PM.png (152.31 KiB) Viewed 37 times
Screenshot 2026-07-11 at 10.37.43 PM.png
Screenshot 2026-07-11 at 10.37.43 PM.png (163.01 KiB) Viewed 37 times
Screenshot 2026-07-11 at 10.34.33 PM.png
Screenshot 2026-07-11 at 10.34.33 PM.png (91.52 KiB) Viewed 37 times

Sprite
Espressif staff
Espressif staff
Posts: 10636
Joined: Thu Nov 26, 2015 4:08 am

Re: ESP32 Multi-Feature Handheld Device - Multiple Issues

Postby Sprite » Mon Jul 13, 2026 1:12 am

Moved ESP32-S31 -> Hardware

Reverse VCC/GND can certainly mess a module up permanently. If you had that and the module still gets uncomfortably hot even when you connect power properly, I'd assume it died.

No idea about your TFT. If you have an oscilloscope, you could try probing the pins, see if the signals look anything like you'd expect.

The MAX98306 does not support I2S. Depending on the type of ESP32 you're using (you didn't specify) and what the library supports, you may be able to use the DACs or PDM mode in order to get analog(-ish) output from the ESP32 that you can feed into that module.

Who is online

Users browsing this forum: ChatGPT-User and 0 guests