Software apps and online services
Hand tools and fabrication machines
Around 6 months ago I built a Tiny Word Clock using a 60mm x 60mm LED matrix. It was based on a word clock by gfwilliams. He used a 30x30mm LED matrix with a printed label to define the letters. I was skeptical at the time whether an ink printed label was going to be dark enough to prevent light bleeding into adjacent letters. Hence the reason to 3D print the letters and subsequently this meant using the larger LED matrix.
Recently I saw that Mirko Pavleski had built a similar clock with a ink printed label. His video showed very little light bleeding into adjacent letters. So I decided to give the ink printed label concept a go.
The schematic, board layout, case design and software is heavily leveraged off my Cube Clock.Setting the time
Word based matrix style clocks are generally only accurate to 5 minutes owing to the lack of words they can show. The time held in the clock still needs to be accurate to at least one minute.
By pressing the SET button, the letter A flashes in the top left corner of the display to denote that the hours are being set. The hour value is shown as two 7-segment digits. The UP and DOWN button will change the hour value from 0 to 23.
When the SET button is pressed again, the letter D flashes in the top right corner of the display to denote that the minutes are being set. The minute value is shown as two 7-segment digits. The UP and DOWN button will change the minute value from 0 to 59. Holding the UP or DOWN button down will increment or decrement the value automatically.
Pressing the SET button again will set the time and return the display to the Word Clock face.
While the Word Clock face is being displayed, pressing the DOWN button will scroll the current time as text. The time shown has a resolution of 1 minute.DemonstrationSchematic
The circuit is designed around a ATtiny1614 microprocessor. It uses a DS1307 Real Time Clock to maintain the time even when the power has been disconnected. The 8x8 LED matrix is controlled by a MAX7219 LED driver.
There are many variants of MAX7219 8x8 LED Matrix modules. While they all perform in an identical manner, their pinouts differ considerably.
The PCB was designed to be used with the middle layout.3D printing
The STL files are included. Either take these to a 3D print shop or if you have your own printer, run them through your slicing software. I used a 0.2mm layer height with no supports.The PCB
To minimize the space required, the board has been designed to use Surface Mount Devices (SMD) where possible.
The Eagle files have been included should you wish to have the board commercially made or you can do as I did and make it yourself. I used the Toner method.Assembly - Step 1
Start by adding the SMD components. I find it easier to use solder paste rather than use solder from a reel when soldering SMD components.
Add the UPDI programming pin header and two Veroboard pins that the battery will be mounted on.
Add the 32768Hz watch crystal to the top-side of the board
Print and cut out the letter array. I printed it on a laser printed loaded with standard white A4 paper. Fold the top and left sides and place it on the LED matrix. Fold the right and bottom sides to make a tight fit on the display. Push the "Word3 - Front.stl" over the display to hold everything in place.
Glue the button tops to the buttons ensuring the glue doesn't run down the shaft and into the switch. Once dry, solder the switches to the copper side of the board. Do the middle switch first and then the outside ones.
Solder the assembly onto the LED matrix module.
Glue some packing to the bottom of the SMD battery holder. Cut the Veroboard pins to the correct height and solder on the battery holder.
You will need to cut the pins short on the DC panel socket before soldering the wires to it and fixing it to the case. There are two SMD pads on the board to solder the other end of the wires to. Make sure you get the polarity correct.
Install the front. If it is too loose, add some blue painters tap around the inside of the case to make it a tighter fit.
The ATtiny1614 is part of the new breed of ATtiny microprocessors. Unlike the earlier series such as the ATtiny85, the new breed use the RESET pin to program the CPU. To program it you need a UPDI programmer. I made one using a Arduino Nano. You can find complete build instructions at Create Your Own UPDI Programmer. It also contains the instructions for adding the megaTinyCore boards to your IDE.
Connect the UPDI programmer
Once the board has been installed in the IDE, select it from the Tools menu.
Select board, chip (ATtiny1614), clock speed (16MHz) and the COM port that the Arduino Nano is connected to.
The Programmer needs to be set to jtag2updi (megaTinyCore).
Open the sketch and upload it to the ATtiny1614.Conclusion
It would be nice if it was powered by a battery so that it was self-contained. However while the microprocessor can run on 3.7V, the DS1307 and MAX7219 have a minimum rating of 4.5V. Still the result looks the part and it was a fun build.