|
|
CrowPanel 3.5 |
x 2 | |
|
|
10 μF |
x 2 | |
|
C5SMF-RJF-CT0W0BB2Cree LED
|
x 2 | |
|
|
Resistors |
x 1 |
|
Soldering Iron Kit |
|
|
arduino IDEArduino
|
ESP32 Analog VU Meter – Smooth Needle, Real Audio Response (DIY Build)
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.

Specifically, in this project I use two CrowPanel 3.5"-HMI ESP32 Displays 480x320 which, together with the precisely made acrylic housings, cost about $15 for each display. For this low price we get 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.
This project is sponsored by PCBWay . From April 15 to June 15, 2026, PCBWay is organizing KiCad PCB Design Contest on the occasion of the launch of KiCad 10 with enhanced features and improved workflows. There are three grand prizes of $500 cash + a Raspberry Pi 5, as well as a Participation Award, a Raspberry Pi Pico 2. Review the official rules and selection criteria, submit your innovative design, and you could be our next winner. PCBWay and KiCad look forward to seeing your creativity in action!

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.

The two channels are identical. The advantage of this configuration with two separate channels with their own microcontrollers is the fact that they are totally independent and there is no interference between the channels.
A few words about the code, it is designed in a way that can be very easily modified, allowing us to set custom behavior of the arrows and pick LEDs according to personal preferences. Let me mention that when creating the graphic part I used LVGL and Squareline Studio, which means that by changing the UI files you can very easily create VU meters with different "faces".

- First, the pins are defined, then 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.
And 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.

And finally a short conclusion. In this project, I built a fully functional analog-style VU meter using an 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.


ESP32 Analog VU Meter – Smooth Needle, Real Audio Response (DIY Build)
Raspberry Pi 5 7 Inch Touch Screen IPS 1024x600 HD LCD HDMI-compatible Display for RPI 4B 3B+ OPI 5 AIDA64 PC Secondary Screen(Without Speaker)
BUY NOW- Comments(1)
- Likes(0)
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by Mirko Pavleski
-
Arduino 3D Printed self Balancing Cube
Self-balancing devices are electronic devices that use sensors and motors to keep themselves balanc...
-
ESP32 Analog VU Meter – Smooth Needle, Real Audio Response (DIY Build)
In several of my previous videos I have shown you how to make analog VU meters emulated on differen...
-
The Ultimate Smartphone VFO ESP32 & Si5351 Wireless Control
Variable frequency oscillators (VFOs) are commonly used in radio transmitters and receivers, especi...
-
DIY Shortwave Propagation Monitor - Measure Ionosphere Conditions
Shortwave Propagation is the way radio waves in the 3 to 30 MHz range travel from point A to point ...
-
Professional grade Smart Lock with ESP32, BLE and Android App Control
An electronic codelock is a security device that grants access using a numerical sequence—a PIN cod...
-
Building a 3-Input Stereo ECC83 (12AX7) Tube Preamp
Some time ago I presented you a project for a 3W stereo tube amplifier with a GU32 output vacuum t...
-
ESP32 Weather Dashboard with Satellite Maps and 16-day Weather Forecast
As you can see from my previous videos, besides Electronics, my fields of experimentation and proje...
-
Retro Analog VU Meter on Round dispalys (ESP32 and GC9A01)
Recently, in one of my previous videos I presented you a Retro VU Meter project on round displays ...
-
Ultimate 2-Player Reaction Timer with WS2812B LED Strips & Arduino
Arcade reaction game is a genre of play designed to test a player's physical response time and hand...
-
Building a Vintage Tube-Style Internet Radio with Raspberry Pi & Rotary Encoder
Internet radio (also known as web radio or net radio) is a digital audio service transmitted via th...
-
DIY Smart Code Lock with CrowPanel 1.28 ESP32 Rotary Display
A code lock is a keyless security device—either mechanical or electronic—that restricts access to d...
-
SDR Panadapter for Vintage Tube Radios – Step-by-Step Tutorial
A radio panadapter (or panoramic adapter) is a device or software tool used in amateur radio and ot...
-
Oscilloscope Clock Simulation on a Round ESP32 Display
An oscilloscope clock is a circuit that turns an old analog oscilloscope into a stylish, retro-them...
-
DIY Simple GU32 Tube Stereo Amplifier (2x3W on 12VDC)
Vacuum tube amplifiers are often favored for their smooth harmonic distortion, especially in the low...
-
DIY 3-Display OLED Clock with Arduino and I2C Multiplexer
In this video I want to present you another unusual clock to add to my large collection of such DIY...
-
Build a 5-Day forecast Raspberry Pi Weather Dashboard (Step-by-Step)
Recently in one of my previous videos,I introduced you to the 7 inch Elecrow Pi Terminal and how to...
-
ESP32 Aneroid Barometer using Squareline Studio and LVGL on CrowPanel Round display
A barometer is a scientific instrument used to measure atmospheric pressure. Rising Pressure genera...
-
LINAMP Project – Winamp-Style Audio Front Panel on Raspberry Pi 5
Winamp is one of the most iconic and historically significant digital media players ever created. I...
-
-
ARPS-2 – Arduino-Compatible Robot Project Shield for Arduino UNO
2301 0 5 -
-
A Compact Charging Breakout Board For Waveshare ESP32-C3
2792 3 7 -
AI-driven LoRa & LLM-enabled Kiosk & Food Delivery System
2992 2 0 -
-
-
-
ESP32-C3 BLE Keyboard - Battery Powered with USB-C Charging
3026 0 2 -
-







