Overview
TeensyVisualizer is an entirely on-chip hardware spectrum analyzer that displays frequency bins from either line-in or microphone input on an RGB LED Matrix display. Unlike most Teensy-based audio visualizers that rely on software FFT, this project uses hardware frequency analysis via two MSGEQ7 Graphic Equalizer ICs — creating a much more realistic, logarithmic representation of audio.
The system displays 14 bands across 40Hz-16kHz on HUB75 RGB LED matrices, with user-changeable display modes and color profiles. All settings are non-volatile and stored in the Teensy's onboard EEPROM.
Featured on the Tindie Blog in August 2022.
Hardware Design
Core Components
| Component | Purpose |
|---|---|
| Teensy 4.0 ARM MCU | Microcontroller (600MHz ARM Cortex) |
| SmartMatrix SmartLED Shield | HUB75 LED matrix driver |
| 2 MSGEQ7 Graphic Equalizer ICs | Hardware frequency analysis |
| SI5351A Clock Generator | Frequency offset for 14 channels |
| LM358 Dual Channel Op Amp | Audio input amplification |
| HUB75 64x32 P5 LED Matrix | Display (any size supported) |
The MSGEQ7 Trick
A single MSGEQ7 chip provides 7 frequency bands. To achieve 14 independent bands, I use two chips with a clever trick: the onboard SI5351A Clock Generator feeds two different external clocks to offset the center frequencies of each MSGEQ7. This effectively doubles the frequency resolution while maintaining the analog character of the hardware filters.
The MSGEQ7's logarithmic decay rate per sample creates smooth, musical visualizations that software FFT implementations struggle to match.
Audio Input
The board supports two input methods, selectable via an onboard switch:
- 3.5mm Line-In: Passthrough connection for any audio source
- Built-in Electret Microphone: For ambient audio pickup
Both inputs feature adjustable gain through the dual op-amp circuit. Two trimmer potentiometers allow fine-tuning:
- Microphone circuit: up to 100x gain (adjustable via R7)
- Line input: up to 2x gain (adjustable via R3)
Features
- 14 Channel Hardware Spectrum Analyzer: No software FFT required
- Automatic Matrix Scaling: Supports any matrix size with daisy chaining
- Dual Input Modes: Switch between line-in passthrough or built-in microphone
- Adjustable Gain: Dual channel amplifier with trim pots
- Built-in Power: 5V DC jack with on/off switch
- Mode Selection: Onboard button to cycle display modes
- Brightness Control: Onboard potentiometer for real-time adjustment
- Non-Volatile Storage: Settings persist across power cycles
- Auto-Dimming: Display dims automatically when no audio is detected
User Interface
The design prioritizes simplicity — no programming required for daily use:
- Power Switch: Large toggle for on/off
- Input Switch: Toggle between line-in and microphone
- Brightness Knob: Analog potentiometer for real-time control
- Mode Button: Press to cycle color profiles, hold to change display modes
- Gain Trim Pots: 25-turn precision adjustment for each input
PCB Design
The custom PCB integrates all components into a compact form factor designed to mount directly behind the LED matrix panel. Female headers are used for all ICs including the Teensy, allowing for easy replacement. The board connects to the SmartLED Shield via 2x14 male header pins.
Key design considerations:
- Power Distribution: Terminal block for matrix power connection
- Modularity: Socketed ICs for easy debugging and replacement
- Form Factor: Flush mounting with the LED matrix edge
All design files are open source under the MIT license:
- Gerber files for PCB fabrication
- KiCad schematic and board layouts
- Complete Bill of Materials
3D Printed Case
A custom 3D printed case is included with the kit, designed for the standard 320mm x 160mm 64x32 P5 LED Matrix. The case requires six M3x30mm screws and provides a clean, finished look for the visualizer.
Build Your Own
Full kits and bare PCBs are available on Tindie. The kit includes everything needed to build a TeensyVisualizer. Components can also be sourced individually using the BOM in the GitHub.
Credits
Originally inspired by Mark Donner's 14 Channel Analyzer based on the ATMega2560 using FastLED. The circuit was redesigned from the ground up around the Teensy 4.0 and 3.3V logic, using SmartMatrix for HUB75 panel control.
Open-source libraries used:
- SmartMatrix — HUB75 LED matrix driver
- FastLED — LED animation library
- SI5351MCU — Clock generator control
