Maker.io main logo

ESP32 Analog VU Meter – Smooth Needle, Real Audio Response (DIY Build)

2026-05-18 | By Mirko Pavleski

License: General Public License ESP32

In several of my previous videos, I have shown you how to make analog VU meters emulated on different displays. This time, I will explain how to make such a project, but now on display modules that contain almost all the components, including the MCU. It is only necessary to add a few passive elements and an LED that will function as a peak meter.

gy

Specifically, in this project, I use two CrowPanel 3.5"-HMI ESP32 Displays 480x320, a module with impressive features:

  • a powerful HMI touch screen with a 480*320 resolution

  • ESP32-WROOM-32 module as the main control processor

  • Integrated WiFi and Bluetooth-compatible wireless functions

  • TF card slot,

  • multiple peripheral interfaces,

  • USB interface,

  • speaker interface,

  • battery interface, etc.

In this project, I will use only a small part of these possibilities.

As for the several passive components dedicated to the ADC input of the module, the explanation is as follows. The code is designed to process a pure AC input audio signal. To measure this signal, we need to raise the ADC input to some reference voltage level. We achieve this with the two 100K resistors. Now the signal moves above and below this reference point. The capacitor blocks any DC component, and the 1K series resistor serves to protect the input from a too strong signal. The modules are powered directly from a 3.7V lithium battery or via the USB Type-C connector.

nmk

hj

- First, the pins are defined, then the PEAK THERSHOLD, which sets the LED to light up when the arrow crosses the red field. PEAK HOLD MS is the time during which the LED remains lit in milliseconds. adcMin and adcMax are defined according to the value of the input signal. For a standard input signal of 775mV, these values ​​are 0 and 600.

These two commands define the arrow's forward and backward movement speeds separately, so that the visual impression can be adjusted according to desire.

It's nice to see how the device behaves in real conditions with different input signals.

jkhj

And finally, a short conclusion. In this project, I built a fully functional analog-style VU meter using a CrowPanel 3.5"-HMI ESP32 display and LVGL. Unlike typical digital meters, this one behaves like a real analog VU meter – with smooth needle movement, adjustable attack/release speed, and accurate audio response.

IMPORTANT UPDATE: During the final development of the project, I encountered a problem. Namely, after uploading the code, the GPIO25 and GPIO32 pins, which are located directly on the GPIO_D connector, were constantly at a high level (3V3). These pins were probably used by one of the libraries, so for me, the easiest way was to use other free pins. For this purpose, I made leads (soldered wires) directly on the microcontroller to the GPIO21 (peak LED) and GPIO35 (Input) pins. These pins are marked in the pictures below.

vhyuiy

Tillv. artnr. DIS05035H
GRAPHIC DISPLAY - - 3.5"
Elecrow
286,37 kr
View More Details
Add all DigiKey Parts to Cart
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.