Introduction: Animated LED Matrix Jukebox in 10 Min
This tutorial shows how to build an animated LED matrix jukebox using Grablo's visual programming blocks. Play music with synchronized GIF animations on a 32x32 NeoPixel display—a perfect mood lamp for your desk or room!
What You'll Build
An animated LED matrix jukebox with:
- 32x32 NeoPixel LED matrix display
- Synchronized music and animated GIFs
- Dashboard control with Play/Skip buttons
- Automatic track looping
- No coding required
Supplies
Required Components
- Raspberry Pi (Zero, 3, or 4)
- 32x32 WS2812B NeoPixel LED Matrix (or 4x 32x8 matrices)
- 5V DC Power Supply (10A+ recommended)
- Speaker (3.5mm audio jack, USB audio adapter, or Bluetooth)
- 18AWG power wires
Wiring: Refer to attached wiring diagram
⚠️ Critical Notes:
- Use thick wires (18AWG or thicker) for power lines
- Raspberry Pi GND must be connected to power supply GND (common ground)
- 5V 10A power supply supports up to ~30% brightness. Use higher amperage for brighter output
Step 1: Quick Start
- Download and install Grablo software on your Raspberry Pi
- Wire components according to wiring diagram
- Get this project
- Download music and GIF files and upload to your controller
- Open Grablo app in your browser
- Connect to your Raspberry Pi and hit RUN!
To build it yourself, continue to Step 2.
Step 2: Create Dashboard
Create Project & Dashboard
- Go to https://app.grablo.co
- Click "Create Project"
- Name your project
- Create a new dashboard
Add Widgets
- Switch Widget: Create a "Play" variable to control playback on/off
- Push Button Widget: Create a "Next" variable to skip to next track
Step 3: Logic-Music Playback
Control 1-3: Play Music Tracks
Create three controls to play three music tracks sequentially.
- Condition (Compare): Play = True
- Action (Play Media): Create media player, command = Play, upload music file
Duplicate for each track with different music files.
💡 Tip: When multiple controls exist in the same logic, they execute sequentially. When the third track finishes, it loops back to the first.
Step 4: Logic-Stop Music
Control 4: Stop Music
Stop playback when switch is off or Next button is pressed.
- Condition 1 (Compare): Play = False
- Condition 2 (Compare): Next = True
- Condition Operator: OR
- Option: Rising Edge
- Action (Play Media): Command = Stop
Step 5: Logic-LED Matrix
Control 5-7: Display Animations
Display matching GIF animation while each track plays.
- Condition (Watch Action): Select music playback action, Status = Running
- Action (I/O Device Control): Create WS2812B matrix device, command = Show Image, upload 32x32 GIF
Control 8: Clear LED Matrix
Turn off LEDs when switch is off.
- Condition (Compare): Play = False
- Action (I/O Device Control): Command = Clear
Step 6: GPIO Pin Configuration
You can use either GPIO 10 or GPIO 12 to control the LED matrix.
GPIO 10 (SPI) - Recommended:
- Allows use of 3.5mm audio jack for sound
- Requires adding spidev.bufsiz=32768 to /boot/cmdline.txt
GPIO 12 (PWM):
- No configuration needed
- 3.5mm audio jack will not work
- Use USB audio adapter or Bluetooth speaker instead
Step 7: Launch Your Project
That's it—you're done!
Launch Your Project
- Open Grablo app in your desktop or mobile browser
- Select your project
- Connect to your Raspberry Pi
- Hit RUN and enjoy!
Expected Results
When you run your project:
- Turn on Play switch: First track plays with matching animation
- Press Next button: Skips to next track and animation
- Press Next again: Cycles through all tracks, then loops back to first
- Turn off Play switch: Music stops and LED matrix clears
Step 8: Video Tutorial
Watch the complete build process in action!
Step 9: Expand Your Project
Add more functionality:
- Add more tracks and animations
- Time-based mood lighting (morning/evening themes)
- Voice control to switch tracks
Troubleshooting
No sound:
- Check speaker connection
- If using GPIO 12, use USB audio adapter or Bluetooth speaker
- Verify audio file format (MP3, WAV supported)
LEDs not lighting up:
- Check power supply capacity and connections
- Verify GPIO pin matches your configuration
- For GPIO 10, ensure spidev.bufsiz=32768 is added to /boot/cmdline.txt
Animation not displaying correctly:
- Verify matrix layout settings match your physical arrangement
- Check GIF size (should be 32x32 pixels)
- Try reducing brightness if colors look wrong
Resources
- Website: https://grablo.co
- Download: https://grablo.co/download
- Web App: https://app.grablo.co
- Docs: https://doc.grablo.co
- Support: support@grablo.co





