While it could be viewed as stretching the brief a little, this project does run on power from its environment! This seemed like a good excuse to write it up a little as I made it back in Dec 2024 (during paternity leave for my newborn daughter and I haven't had a chance to tinker since!)
- powered by a standard contactless phone charging pad serving 5V to the unit wirelessly. The whole device, including charging coil, rotates with the display, avoiding batteries or slip rings
- motion comes from a 40mm square cooling fan hot-glued to a 3d printed base. The bladed fan part is fixed while all the rest rotates
- display is two back-to-back, 8x8 matrices, slightly laterally offset for maximum volume filling. (Adafruit DotStar High Density 8x8 Grid - 64 RGB LED Pixel Matrix). Driven via APA102 protocol.
- RP2040-tiny board - plug in the flexible cable to program the board, then disconnect and place on charging mat to start and run
- rotational speed/phase measurement via a optical sensor and reflective pillar
- software, written in rather organic C++. The two RP cores work independently and sync via shared memory. One core manages the motor speed and phase measurement via optical sensor input, the other emits the frames to be shown on the display. It can be compiled in desktop mode for dev/testing.
I found it fairly challenging to assemble - fixing the centre of the fan onto the fixed pillar particularly tricky - small offsets led to self-destructive vibrations! And then having built it, I wasn't able to find a particularly good use-case for it! Bouncing a simulated ball around the volume worked alright, and concurrently scrolling text in different planes was kinda novel, but my janky build quality made the resolution a bit limited. Extremely satisfying to put the idea into some kind of reality though and would love to see if it can be remixed further!
mooreri01
Dimitar
Menkveld