It is one thing to create something ‘cool’ or technically interesting. But it is a completely different story to convince your girlfriend, partner, wife, family (or whatever you can name it) to hang something on a wall in our house or office. Then it is not about technology: it is more about design and art. So here is my attempt to solve that challenge:
So what is it? It is a technology hiding behind canvas art :-). Have a look:
I named the project “60 Billion Lights” because the build includes 60 dual shaft stepper motors. Such stepper motors are used in automotive car dashboards, each of them with a resolution of 4350 steps per revolution. Added to each: Forty 24bit RBG LEDs creating more than 60 billion position and light combinations.
If not active, it looks like a ‘normal piece of art’ on the wall:
Each of the 60 units has embedded acrylic ‘hands’ which can be moved and illuminated:
The installation is powered by 5V cable (that’s the connection cable in the lower right corner below). Communication is wired (USB (CDC), RS-485) or wireless (BLE, Wi-Fi).
The current firmware supports the following features:
- 2400 individually addressable RGB LEDs (color, brightness, dimming)
- 120 individually controllable stepper motors (direction, speed, acceleration/de-acceleration, absolute or relative angles), using automotive dashboard dual-shaft motors to build one of the 60 units
- 15 controller boards with NXP LPC845 running FreeRTOS, connected by RS-485 protocol
- Different clock hand modes: dual hand and triple hand mode
- Two different font sizes for numbers and text
- Displaying time, temperature, humidity and ambient light level
- Configurable and extendible demos and intermezzos
- Showing time in different modes: showing seconds, with/without frame, small/large, intermezzos
- Four different weather display modes: sunny, cloudy, rainy, icy
- USB CDC, RS-485 and BLE (Adafruit Bluefruit) and Wi-Fi (Espressif) connectivity
- Exchangeable front and back skins with quick change canvas system
- Software has for GNU gcc and Eclipse (NXP MCUXpresso IDE and SDK), running FreeRTOS
The front is a painted canvas with a wooden frame. The canvas can be easily changed. Using a canvas is both lightweight and makes it a unique piece of art.
Writing is supported using a 2×3 and a 3×5 ‘Pixel’ font: below an early demo using the 3×5 font using the ‘3 hand’ version:
Beside of showing sensor data (weather conditions, temperature, humidity and ambient light) it uses the RTC (real-time clock) to show the current time in different formats.
The 60 units make a perfect match with 60 minutes and 60 seconds.
The firmware has a ‘Pong’ game implemented, certainly more will be implemented:
Each unit uses 40 ‘sideways’ 24bit WS2812B RGB LEDs which illuminate laser-cut acrylic from the side. The acrylic has been laser-engraved on both sides. The canvas is painted with acrylic colors and laser cut.
The LEDs can ‘follow’ the hands or just illuminate the background, creating interesting effects especially at night. The firmware supports different configurations like dual hand or triple hand mode. The triple hand mode and configuration is for forming a ‘T’ in digits and letters:
Using a random generator creates unique pictures every time:
RGB light level can be automatically adjusted using the ambient light sensor. This makes it really comfortable to read data at night:
I have integrated a Adafruit BLE SPI Friend (see “How to Add Bluetooth Low Energy (BLE) Connection to ARM Cortex-M“). With this and the Adafruit app on the smart phone I can control and configure the boards, for example picking a color:
The ‘control pad’ is used interact with the system (e.g. selecting a scene or to move the hands):
For the engineers of the world: it includes a wireless UART command line interface which is used for configuration and scripting:
PCBs have been populated with a OpenPnP (see some of the boards in Retrofitting a Charmhigh CHM-T36VA Machine with OpenPnP).
I have to say that capturing the result in images and videos is not easy: Everyone tells me that it looks way cooler in reality :-).
The hardware is running very well after having sorted out a few issues. I’m planning to continue working on the firmware, having some cool ideas in mind. Already thinking about building a second one which I could hang into my office: I probably consider a re-spin of the PCB’s to make assembly easier and to reduce the amount of 3D printed parts.
If you like this project or have any feedback: let me know and post a comment.
Happy Making 🙂
PS: Another project name considered was “Phoenix”.