The basic concept of the Tetris clock is that falling bricks stick together in the shape of numbers to display the time. In this case, the clock is based on the version created by [Brian Lough] which we featured previously. It relies on an RGB LED matrix as a display.
I had this RGB LED matrix lying around for a while. I used it with a arduino mega (works good but no easy internet connection) and raspberry pi (flexible, but a big overhead and long startup time). So I was looking for a better solution and I found it when I saw this article on hackaday: -minimalist-weather-clock-with-a-unique-display/
Dominic Buchstaller built a neat library for the ESP8266 to drive these RGB LEDs matrices. So connecting to the internet for NTP sync is no problem anymore. It also boots up instantly and can be powered off without shutting the system down before.
I had the idea to build a NTP synced clock and was looking for a creative way to display the time using available colors. After some googling I found a monocrome version of the tetris clock in some china shops. So I decided to build something similar using colors.
In the first version I wasn't very happy with the clearness of the pixels. The matrix isn't flat, because the front plate has thin horizontal ridges the lat the light flow to neighbor pixels.
I took some interest in RGB matrix panels a few years ago and noticed that they had Hats and Bonnets for the Raspberry Pi that allowed you to drive these panels. Adafruit also had a bit of software that allows you to mirror what is displayed on the HDMI port over to the RGB panels. To tell you all the truth, i'm not much of a software engineer, but the good news is that even though this project gets quite complicated, the software side of things is quite easy. So since LTTP is my favorite Zelda game i got the idea of turning Links spin attack animation into an analog clock. Although you can mirror anything on the Raspberry Pi desktop i decided to go oldskool with things and use Flash .swf to create everything. It was the easiest for me so i ran with it. This project can be a bit tricky because it requires a 3D printer with 300x300 dimensions and a nozzle size of .2 mm along with the standard .4mm. The reason for this is that the pixel grid that i created requires very tiny grid lines for this to work. Although, if you decided to take my concept and resize the grid with larger panels that could work too. And the hardest part was indeed the epoxy resin aspect of this project. I went through several grids until i found a way to get most of the bubbles out of the resin. So with that being said lets get into the laundry list of supplies.
PS: I was considering keeping this project private because i indeed am replicating and selling these complete on Etsy, but i was so excited about this idea i made this tutorial anyways. And if you indeed enjoyed my tutorial here's a link to my Paypal if you feel like throwing me a few dollars for coffee. Even if you don't tip, i appreciate you being here anyways
The first step in this project is to 3D print the shell and the inner frame. The reason why the top is split into 4 pieces is to increase the vertical resolution of the final product. The only downside to this is the 4 custom supports use a bit more filament, but in the end it is worth it because you will get the most detail possible. Everything except the pixel grid should be printed with a standard .4mm nozzle the grid requires a .2mm nozzle because the gap between each square should be as thin as possible so that each pixel appears blocky from the outside. There will be some additional files included that i used to create a mold for the epoxy resin. It was kind of an elaborate build just for one pixel grid, but i intend to mass produce as many of these as i can. You might be more comfortable using something as simple as 2 big pieces of silicon and some hotglue to create the mold. I just might have gotten a bit carried away with the grid because i've probably printed 8 grids before i got my technique right. Also, feel free to use any color combination of filament you want. I just went with a silky gold and some yellow filament for the hours on the top. However, if you wanted to you could use some paint on the hours if you were careful enough. Just remember that you need to superglue the hours to the frame at the end of this tutorial
Now the second step once everything is printed will be to remove the support structure for the 4 top pieces. BE AWARE that certain brands of filament can be prone to delamination, so be careful when shaving off that first 2mm of support filament or you'll take some of the bottom Triforces with it! One thing that you could do to remedy this issue would be to print at a slower speed, or tinker with the fan or temperature settings. Having a Dremel sander or clone of one is basically required if you are a hobbiest 3D printer, so this will help shave off the support. Exacto knifes also work great. The back of the top also has support material that needs to be removed. I have highlighted in red everything that counts as a support structure.
This step is where having a 3D pen makes things a bit easier, because once you put the nut and cap on the top of the frame you can weld the plastic together. Although to be fair you could also use superglue if you wanted the inside of the clock to look better. But the inside of the clock isn't visible from the outside so you can make it as messy as you want as long as you protect the outer shell
These panels have little screws on the back that need to be removed, but save them for later because we will be screwing them back again to the internal frame. To my knowledge the formfactor for these should be nearly identical, but please be on the lookout! If the matrix circuit board has capacitors or other electronics in the way, the Raspberry Pi won't fit right in the center. But if you pay attention to what you're buying you should be fine
Since the screw holes are on the small side you might need to poke a needle or a small drill bit down the hole so that the tiny screws will fit. The two screws that go in the center are mostly optional. to be honest i just left those holes empty, but if you wanted you could cut off the tips of the screws so that they would fit the center. Just don't undercut the screws or you might scratch the pixel grid! Make sure you don't put the screws in all the way at first, because the margins in the center can be a bit tight. Once all the screws are placed, then turn them all the way in.
Now here is the part where having a 3D pen is crucial instead of using super glue. We're going to temporarily attach the the hex screws to the frame without the pixel grid so we can align all four corners together. When welding i typically increase the temperature of the pen to 220c and slowly extrude the filament out of the pen so it bonds well with the corners of the frame. Depending on your 3D printers settings, and taking tolerances into consideration, you may need to lightly sand the sides of the frame so everything fits in place. There is about a .1mm tolerance built in, but you may need to lightly sand a bit more.
Same thing as the previous step. Again you might need some light sanding on the corners for everything to fit. Once you complete this step you can unscrew the center frame again since now everything is welded.
After you print the tiny photoresistor mount, just insert the photoresistor into the mount. After that 3D pen weld the mount onto the midframe. I bent the pins out a tad, then welded the two entrance holes so the photoresistor stayed in place. Now there are obviously quicker and dirtier ways of wiring everything together, but to make things slightly neater i used a 2x26 PCB prototyping board, and Dupont connectors. First i crimped two female Dupont connectors to the photoresistor, then used some of the CAT6 ethernet wire to make things cleaner.CAT6 ethernet cables are great because each wire is a single solid piece of copper. This also makes it way easier to make the cable that runs from the photoresistor module to the Bonnet/HAT. Also when you trim the PCB down, if you use power tools like a Dremel to cut through the PCB be aware that you are creating fiberglass dust which can cause health problems. So make sure you limit your exposure to the dust, and you should be fine.
Now this is where the .2 mm printer nozzle comes into play. My goal was to make the grid itself nearly invisible to someone at a distance so i went with one of the smallest nozzles possible. The result is quite beautiful because its nearly a perfect square, and there is next to no light bleeding effects from adjacent squares. Given the fact that the nozzle is so small this is quite a long print. Also you might have to fiddle with your slicer settings a bit in order to get things right. Stringing is devastating to this particular piece, so you might have to print at a slower speed, adjust retraction settings, and or lower the temperature of the extruded filament. The first layer is the most crucial to get right so you may have to monitor it quite a bit. However, if you have a few strings on the first layer that doesn't necessarily mean you have to cancel the print. The first layer sits directly on the PCB of the matrix, while the top layer is the outside visible layer. This means that a few mistakes on the first layer won't matter too much because you won't see it.
Now we get to the interesting part where bubbles of air become the enemy! When i did this resin part i ended up making a rather elaborate mold since i intend on "mass" producing these clocks on a slow basis. Having silicone sheets made this part for me a lot easier since the resin wont stick to it, and sandwiching the grid between two silicone mats with a weight on top might be enough. For my particular mold i nearly doubled the amount of resin required so i could submerge the entire grid. This is to minimize the bubbles. Above is an exploded view of the mold i made so that may give you an idea of what to do.
bcf7231420