Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

IDMxLedFX ๐ŸŽจ๐Ÿ’ก

High-Performance Bridge Between LedFX and iDotMatrix LED Display

Transform your iDotMatrix display into a blazing-fast LED visualizer with intelligent compression and optimization!

Python 3.7+ License: MIT LedFX Compatible

๐Ÿš€ What is IDMxLedFX?

IDMxLedFX is a high-performance gateway that connects LedFX to the iDotMatrix 32x32 LED display, enabling real-time audio-reactive visualizations with optimized frame rates and intelligent compression.

๐ŸŽฏ Key Features

  • โšก Blazing Fast: 20-30 FPS with intelligent PNG compression
  • ๐Ÿง  Smart Optimization: Automatic compression based on frame content
  • ๐Ÿ”„ Frame Skip: Skips identical frames for maximum efficiency
  • ๐Ÿ“Š Real-time Stats: Live FPS monitoring and compression analytics
  • ๐ŸŽจ Full Color: 32x32 RGB matrix with 16.7M colors
  • ๐Ÿ”Œ Plug & Play: Direct UDP connection to LedFX

๐Ÿ–ฅ๏ธ Compatible Display

iDotMatrix 32x32 Programmable LED Display

Perfect for:

  • Audio visualizations
  • Ambient lighting
  • Creative animations
  • Real-time effects
  • maaaany more

๐Ÿ“ฆ Installation

Prerequisites

  1. Python 3.7+
  2. LedFX installed and running
  3. iDotMatrix display paired via Bluetooth

Install Dependencies

pip install -r req.txt

Requirements

numpy==2.3.2
pillow==11.3.0
simplepyble==0.10.3

๐Ÿš€ Quick Start

1. Setup LedFX

  • Install and configure LedFX
  • Add a WLED device pointing to your pc running code for example is LedFX and this is on this same machine 127.0.0.1:21324
  • Configure 32x32 LED matrix (1024 pixels)

2. Update MAC Address

Edit core_ultra_simple.py:

TARGET_MAC = "38:20:09:4D:FC:D4"  # Replace with your display's MAC

3. Run IDMxLedFX

python3 core_ultra_simple.py

4. Start Visualizing! ๐ŸŽ‰

  • Play music in LedFX
  • Watch real-time visualizations on your iDotMatrix display
  • Monitor FPS in console logs

๐Ÿ“Š Expected Output

INFO:__main__:Simple LedFX receiver initialized on port 21324
INFO:__main__:Using Bluetooth adapter: hci0
INFO:__main__:Connecting to IDM-32x32 [38:20:09:4D:FC:D4]
INFO:__main__:Connection established! Starting Simple LedFX receiver...
INFO:__main__:FPS: 25.8
INFO:__main__:FPS: 27.1
INFO:__main__:FPS: 24.3

๐Ÿ› ๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    UDP     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    BLE      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  LedFX  โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ†’   โ”‚ IDMxLedFX   โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ†’ โ”‚ iDotMatrix  โ”‚
โ”‚         โ”‚  Port      โ”‚             โ”‚ Optimized   โ”‚   Display   โ”‚
โ”‚         โ”‚  21324     โ”‚ โ€ข Compress  โ”‚ PNG Data    โ”‚   32x32     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚ โ€ข Optimize  โ”‚             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚ โ€ข Monitor   โ”‚
                       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŽฎ Advanced Usage

Custom Frame Rate

UPDATE_INTERVAL = 0.04  # 25 FPS
UPDATE_INTERVAL = 0.033  # 30 FPS (default)
UPDATE_INTERVAL = 0.02   # 50 FPS (experimental)

Bluetooth Adapter Selection

# Auto-select first adapter
adapter = adapters[0]

# Manual selection
# adapter = adapters[1]  # Use second adapter

๐Ÿ”ง Troubleshooting

Connection Issues

# Check Bluetooth
bluetoothctl scan on
bluetoothctl devices

# Check UDP port
netstat -an | grep 21324

Low FPS

  • Dark scenes: Should achieve 25-30 FPS
  • Colorful scenes: Expect 15-25 FPS
  • Below 10 FPS: Check BLE connection strength

No Display Output

  1. Verify MAC address in code
  2. Ensure iDotMatrix is powered and paired
  3. Check LedFX WLED device configuration
  4. Restart LedFX and IDMxLedFX

๐Ÿ—๏ธ Project Structure

IDMxLedFX/
โ”œโ”€โ”€ core_ultra_simple.py    # Main application (recommended)
โ”œโ”€โ”€ idm_display.py          # Display communication module
โ”œโ”€โ”€ main.py                 # Display wrapper utilities
โ”œโ”€โ”€ req.txt                 # Python dependencies
โ””โ”€โ”€ README.md               # This file

๐Ÿ“ˆ Performance Tips

  1. Position matters: Keep display close to Bluetooth adapter
  2. Dark themes: Use darker color schemes for higher FPS
  3. USB extension: Use USB extension cable for better BLE range
  4. Power cycle: Restart display if connection becomes unstable

๐Ÿค Contributing

We welcome contributions! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Submit a pull request

Areas for improvement:

  • Additional LED matrix sizes
  • More compression algorithms
  • WiFi connectivity option
  • Audio-reactive effects

๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

Special Thanks

iDotMatrix Community - Inspiration from all the amazing projects:

Artificial Intelligence - For helping optimize and debug this project

"AI made the impossible possible, and the complex simple."

LedFX Team - For creating the amazing LED visualization software

"Last but not least, I wanna thank me I wanna thank me for believing in me I wanna thank me for doing all this hard work"

โ€” Snoop Dogg


๐ŸŒŸ Show Your Support

If this project helped you create amazing LED visualizations, please:

โญ Star this repository
๐Ÿ› Report issues
๐Ÿ“ข Share with the community
๐Ÿค Contribute improvements


Made with โค๏ธ for the LED universums

Happy visualizing! ๐ŸŽจ๐Ÿ’ซ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages