The project started off with a desire to use the Neopixel matrix panels and motors lying around in my stash. I started searching for ideas and came across a cool project, ULTiM8x8 modular, no-solder, RGB LED half cube, by jasoncoon. So, I decided to replicate it but with some changes to add motion.

The body was designed in Fusion 360 and includes a display with 3 Neopixel panels mounted on a turn table like platform. The display cycles through some animation sequences that can be changed over WiFi using a phone or any PC.

Below is the list of parts to be 3D printed and the required electronic components:

All parts were printed in PLA with 0.28 mm layer height and a 4 mm nozzle on an Ender 3. The STL files can be found on Thingiverse.

Click on the github link for changes to the code on top of the original repo.

Design choices

One unique challenge I faced in the beginning of the project was to transfer the power and signal from the base to the moving canopy. I searched up and found a few solutions including the use of hollow core motors or simply use an independent power source. The former was a bit expensive for my taste and the latter was a little inconvenient. So, I decided to go with an easy and relatively inexpensive option i.e. a slipring. 

A slip ring is an electromechanical device that allows the transmission of power and electrical signals from a stationary to a rotating structure. However, after digging a bit deeper, I noted that there was some concern around the electrical noise that is introduced with the use of a slipring. It was a bit of  a leap of faith since the control signal for the Neopixels has a rather strict timing requirement but it turned out ok. May be the quality of sliprings has improved and the noise effects may not be pronounced for small voltages and current.

Another tricky part was to figure out the mechanism for moving the canopy. All I knew was that I have to use gears but wasn't sure of the actual design. After some bit of thinking and tinkering, I designed a simple mechanism to have a gear in the center colinear with the slipring and transfer the power to this shaft from another gear and the motor installed next to it. However, then I came across a clever bearing design in the project Arduino controlled photogrammetry 3D-scanner, by Bribro12. So, I redesigned the part for my requirements and decided to use that instead.

A bit about the power requirements. The LEDs, microcontroller and the DC motor supply are all in parallel. The main supply comes from a 5V DC adapter capable of sourcing at least 3A of current. A single neopixel draws around 60mA of current to display white (red + green + blue) with full brightness. So, in theory, 192 pixels (64 x 3 panels) alone will take about 11.5A current. In practice, however, not all the pixels are illuminated at the same time and they are all be white either. The DC motor doesn't need too much torque to drive the canopy and as such doesn't draw excessive current. So, I figured 3A adapter should be enough.

A buck converter is used to step down the input voltage to the DC motor to the desired value based on the required speed using an onboard potentiometer. Alternatively, a common driver, L298N can be used to modulate the speed of the DC motor using Pulse Width Modulation (PWM) and additionally its direction using the H bridge.

Tips