I've uploaded the completed project on my Github - including all the code, an open frameworks based emulator, the custom circuit boards, and fusion 360 design files. There's a lot more information including a build log on there that I will try to slowly repeat and improve on here.

This is not a project for the faint-hearted and will likely need adjustment for part availability for the controller, but there should be everything there to complete it. 

Project overview

Features
- 25+ different patterns with the ability to change the color palette being used for most patterns!
- Custom global blur/fade/glitter effects that can run on top of any pattern
- Text overlay onto patterns with the ability to enter custom text using the controller
- LCD Screen for changing settings/patterns + showing battery voltage and power usage
- Current sensor for monitoring power usage
- Encoder + buttons for navigating the UI
- An accelerometer (because why not)
- Microphone input 
- Wireless compatibility with NRF24L01 or ESP-01

Hardware
I made a custom circuit board for connecting everything up along with a daughter board for powering the LEDs and providing the data through a CAT5 cable. A Teensy 4.0 is the heart of the project, providing plenty of raw power to overcome my inefficient coding and push out the 1920x RGB LEDs while also controlling a UI. The microphone is connected to a MSGEQ7 for ease of processing and there's even an included MPU9250 accelerometer.

The RGB leds are the SK6805-2427 strips, held carefully in place by 3d printed scaffolding, which is then built (like building a ship in a bottle) inside of a 25cm poly-carbonate sphere. This helps to diffuse the light so that the individual lights are less visible and gives a nice effect.

The power section I'm particularly proud of. I had a lot of issues with earlier versions of not being able to deliver enough power with the brightness turned up and so I knew with this version that 4xAA batteries wouldn't cut it considering I went from 288x LEDs to 1920x. It's powered by 4x 18650 batteries with a bulky 5V 15A step down convertor for the LEDS, and a separate 5V step-down convertor for the controller/Teensy. This allowed me to use thinner wires by sending the full battery voltage up to the LEDs (about 1m away from the battery and controller), and helped to prevent the voltage dipping on high brightness patterns for the controller.


Software
The software is built on Arduino because I'm just a hobbyist programmer, although I did most of the programing using an emulator in OpenFramworks in visual studio. This helped a lot to quickly iterate on patterns without needing to have everything plugged in and setup, and helped a lot for debugging issues. I did have to write a wrapper around the fastLED library calls, which could be useful for simulating any custom strip of LEDs or even (with some extra effort) a 3d version of a LED array.

The controller is based around a 5 way joystick and a large encoder, kind of similar to the original iPods. This made it easy to quickly changing settings and patterns. The LEDs are double buffered to allow global effects over the existing patterns along with text overlays - allowing you to write words in real time onto the totem pole!

For more details including videos and the complete build log along with all code/parts/design files - check out the github!


User interface
The UI is split into different pages that are accessed through joystick left and right, and items are selected with joystick up and down. Most menu items allow you to press the center button to enter into it, to access different settings or for example to bring up pattern names like above. You can also use the encoder to quickly change a setting without entering into it's submenu.

It includes a selection for global color palettes which is great for matching patterns to stage lighting at the festival, or setting a certain mood. I choose a color screen which even allowed a preview of the palettes...

Read more »