|
|
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...
-
Build a Real 5-Band Parametric EQ with ESP32 + WM8960 - Stereo DSP Audio Processor
Audio equalizer (EQ) is an electronic device that allows control over the strength of different fre...
-
Bass Reflex vs Sealed vs Horn – Same 2 inch Speaker Test
In one of the previous videos I presented the making of a miniature Horn type speaker box with a 2 ...
-
Building a Mini Fostex Horn Speaker with a 2-Inch Full-Range Driver
A back-loaded horn speaker is a loudspeaker design that channels the rear sound wave of a driver th...
-
ESP32 Moon Lamp That Shows the Real Moon Phase on Crowpanel Round Dispaly
Recently on the Hackaday portal I came across a very interesting project called Moon Display by aut...
-
40-Year-Old DIY Power Amplifiers – Do They Still Work - 500W MOSFET & Transistor Amps
This time I want to describe my two DIY super powerful audio amplifiers that I made about 40 years ...
-
Wi-Fi HaLow Explained! Long-Range Camera Test up to 300m (ESP32 + ThinkNode G4 from ELECROW)
I recently needed to install a security camera at a relatively large distance from my home, more pre...
-
Simple Object Recognition with the UNIHIKER K10 – No TensorFlow, No Internet, No Cloud AI
Object recognition has become one of the most popular applications of artificial intelligence and em...
-
DIY PCL82 Tube Amplifier, Single-Ended Amp with Amazing Sound
The idea for this project came from a local electronics magazine called EMITER, issue 12/13 from 20...
-
Simple MCP2036 SDR Radio - The Most Unusual Software Defined Radio
SDR (Software Defined Radio) is a radio communication system where many of the key electronic compo...
-
Elecrow All-in-One Arduino Starter Kit Review - 20 Projects & 16 Modules
This time I will describe a simple and practical way to enter the world of microcontrollers, specif...
-
ESP32-C3 Color Detector with TCS34725, Real-Time RGB Detection & Web Interface
Color detection is a fundamental task in many embedded systems – from industrial sorting machines t...
-
DIY ESP32 Telegram Flood Protection System - Smart Home Automation
Recently I had an unpleasant experience in my home, specifically my ground floor was flooded as a r...
-
Real-Time Air Traffic Radar using ESP32 + ADS-B Data
ADS-B, which stands for Automatic Dependent Surveillance-Broadcast, is the modern standard for trac...
-
DIY Green Laser Night Sky Object Finder - Find Stars & Galaxies Instantly with great accuracy
As an amateur astronomer, especially at the beginning, the most difficult part of observing the nig...
-
DIY Avionics Simulator with ESP32 - Artificial Horizon, Compass & Altimeter
The inspiration for this project comes from classical aircraft cockpit instruments used for navigat...
-
DIY Miniature X-Ray Machine using a TV Vacuum Tube DY86
An X-ray machine (or radiograph) is a quick, painless medical test that produces images of the struc...
-
Simple SDR Receiver Using 2x NE612 - Dual Conversion, Superheterodyne (0.1–30 MHz)
SDR (Software Defined Radio) is a radio system in which most of the functions of a classic radio (f...
-
SmallOLED - Live PC Stats, Animated Clocks & Audio Visualizer
781 0 3 -
"Talking Multimeter": Arduino-Based Speech Add-on for Multimeters with SCPI Protocol
443 0 1 -
Programmable Mist Maker - XIAO / QT PY Extension
2909 2 3 -
RadioHAT - Raspberry Pi radio development platform
2475 0 4 -
QWIIC-VL53L4CD Time-of-Flight Distance Sensor Module
2694 0 2 -
-
-
ARPS-2 – Arduino-Compatible Robot Project Shield for Arduino UNO
4557 0 6







