As most of the Arduino tinkering makers, I have some NeoPixels LEDs in my drawers. Especially the 8x8 NeoMatrix is a beautiful piece of illumination. But till now, I didn’t have any good use for it yet. Time to make it a bit more useful!
Before you continue reading, I want you to know that none of the linked or mentioned products in this post are sponsored. But by know, I really think it’s time some of the brands send me some free stuff … ;)
Image courtesy of Adafruit.
The 8x8 NeoMatrix board features 64 independently addressable RGB LED’s. Of course, you need to control them using a micro controller, like an Arduino or an ESP8266. Which usually results in some breadboards and wires littering your desk.
Of course, a nice 3D printed case could easily solve this. Let’s built the NeoDisplay!
With the use of Autodesk Fusion 360 I managed to design a case that holds the NeoPixel PCB in a perfect angle.
As the micro controller controller, I have chosen the ESP8266 powered Wemos D1 Mini. It’s more powerful than an Arduino. It has on board Wifi. With less $4,- it’s dirt cheap and most important: I can fit it in the casing with the USB port pointing to the back of the casing.
The case is designed to be printed without any supports (when the front of the case is resting on your build plate). It has some steep overhangs, but since these are inside of the case, the end result of your NeoDisplay looks beautiful. I used ColorFabb’s XT Co Polyester on my Lulzbot Mini for a beautiful gloss and an extremely strong case.
The NeoDisplay contains a 5mm heigh grid that prevents the light from blending together and it diffuses the light by a piece of 3mm thick frosted glass or (in my case) 3mm clear acrylic glass with 2 pieces of greaseproof paper.
Since the Wemos doesn’t contain any mounting holes, it is kept in place by a slot that prevents it from moving. (Especially when the back plate is mounted.)
Of course, the NeoDisplay needs some wiring! But besides that I need to connect the NeoPixels to the Wemos, I wanted to add a light sensor to the back of the case. This way the NeoDisplay can be automatically dimmed whenever it is operating in a dark environment. As a sensor, I use a photo transistor. Which looks a lot like a LED.
In the above schematics, You can see how everything is connected. The 330Ohm resistor and 1000uF capacitor are there as suggested by Adafruit.
The phototransistor and 22K resistor are connected like a voltage divider, although strictly it’s not since the phototransistor is not a resistor. If you want to know more about this, checkout this video by Gaven MacDonald.
The 22K resistor is chosen after a bit of experimentation. The higher the resistance, the more sensitive it gets for low light conditions. Check out this video to see how I tested it.
The 10uF capacitor is added after some trail and error. Adding this capacitor resulted in more stable readings.
I added all the necessary parts to a piece of strip board, with some male header pins.
The Wemos was fitted with a few female header pins. This way, my PCB could be stacked on top of the Wemos as a “shield”.
As hoped, it all fits into the case!
The back of the case is mounted using four M2x6 countersunk self tapping screws. Since the LEDs can generate quite a bit of heat, I added some venting slots to the back cover. The Wemos’ USB connector can be connected thru the back plate, and feeds the NeoDisplay the required 5 volts. (Note: at maximum brightness, the NeoDisplay can draw 2,5 Amps. Keep that in mind when you select a USB power supply.)
The end result is a sleek looking 64 pixel led display which looks pretty cool on your desk, coffee table or nightstand. What you can do with it depends on your creativity and programming skills. But with its integrated ESP8266, the possibilities are endless.
Check out the following video to see the effect of the light sensor.
Note that the video doesn’t show the venting slots on the back. I added those after I shot this video … :)
Want to make this NeoDisplay yourself? Download the STL files on Thingiverse and don’t forget to let me know what you have developed using the ESP8266!