ESP32 OLED Bairan Song Lyrics Visualizer
Wiring Schematic
View full-size circuit ↗
YOUR PROJECT LEARNING PATH
Build it with confidence.
Project overview
Know what you’re building before you start wiring.
Create an ESP32-powered lyrics visualizer that displays Bairan song lyrics as animated bitmap frames on a 128×64 SSD1306 OLED using I²C communication.
Follow this guide to assemble the display, install the required libraries, upload the animation sketch, and verify smooth frame playback while learning how to adjust animation timing.
Disconnect USB power before changing wiring, and connect the OLED to 3.3 V only if your specific display module supports that supply voltage.
Components required
Gather these parts before you begin.
Build the project
Work through one focused step at a time. You can revisit any step whenever you need.
Prepare the ESP32 and OLED
With USB power disconnected, position the ESP32 and SSD1306 OLED on the breadboard. Identify the display's VCC, GND, SDA, and SCL pins.
Check the pin labels on your specific modules because their physical order can vary. Keep the connections accessible for inspection before applying power.
Connect OLED Power and Ground
Connect OLED VCC to the ESP32 3.3 V output and OLED GND to ESP32 GND, provided the specific display module supports 3.3 V operation.
Inspect the power polarity and confirm the ground connection is secure. Keep USB power disconnected until you have verified both connections against the module labels.
Connect the I²C Data Line
Connect the OLED SDA data pin to ESP32 GPIO 21. This line carries display commands and bitmap data from the microcontroller to the OLED.
Confirm that SDA reaches GPIO 21 and is not connected to the clock pin or a power rail. Check the wire at both ends before continuing.
Connect the I²C Clock Line
Connect the OLED SCL clock pin to ESP32 GPIO 22. The clock line synchronizes data transfers between the ESP32 and the OLED display.
Verify that SDA and SCL are not swapped and that the sketch uses matching GPIO assignments. Compare the wiring against your actual board and display labels.
Upload and Test the Animation
Install the required libraries, select the correct ESP32 board and serial port in Arduino IDE, then compile and upload the Bairan animation sketch.
Confirm that the OLED initializes and bitmap frames appear in sequence. If the display remains blank or frames look distorted, check the wiring, library installation, and bitmap file.
Software & tools
Install these before uploading the firmware.
Expected output
Compare your build with the result described here.
After uploading the sketch, the SSD1306 OLED should initialize and display the Bairan lyrics as a sequence of animated bitmap frames, according to the supplied animation data.
Check that frames appear in the intended order and that playback speed matches the configured delay. If the sketch is designed to loop, confirm that the sequence restarts after its final frame.
Troubleshooting & fixes
Choose the issue that best matches what you’re seeing.
01OLED Display Remains Blank
Verify OLED VCC and GND connections, then check SDA on GPIO 21 and SCL on GPIO 22. Confirm the module's I²C address, display initialization settings, and supported voltage before testing again.
02Animation Frames Look Corrupted
Confirm the Adafruit GFX and SSD1306 libraries are installed correctly and that bitmap.h is available in the sketch's required location. Check bitmap dimensions, array definitions, and display-buffer updates.
03Animation Timing Is Incorrect
Check that ANIM_FRAME_COUNT matches the number of available frames and that the delay value uses milliseconds as intended. Adjust the frame interval gradually and verify the sequence after each upload.