Introduction: VERBIS - Desktop 8x8 RGB LED Matrix Word Clock
Motto: In Verbis Virtus...(There is power in words)
There are many other Word Clock projects here on Instructables and elsewhere on the Internet so it is rather difficult to choose only one project as a source of inspiration because each of them offered me useful ideas. But if I must choose one, it's going to be the one that started all, the beautiful project created by Doug Jackson, presented on Wikifab. Also, I must mention two projects from here, namely: Design and 3D Print an RGB Word Clock by .A. and IKEA Ribba Word Clock by WhiteClockCompany, who influenced my project a lot too.
It's hard to bring something new with any future design, but hopefully my project will grab your attention with the fresh and cool ideas inside.
What are the pros of my project?
- very affordable, cheap electronics and other parts;
- opensource web server for easy management;
- accurate time from ntp server;
- it is possible to have multiple languages;
- minute by minute time indication (not by 5 minutes like standard word clocks), dynamic time display and amazing flexibility for future ideas...
The idea behind this Word Clock is to have all the words necessary for telling the time and to place these words in an 8x8 letters layout as in a word search puzzle. In this way, with a small number of leds we can tell the time minute by minute. Because the words are placed randomly you can tell the time by reading the flashing words each after another (the words are already displayed on the clock face). I started with using only one color, red, also green 8x8 matrix led arrays. You can see how my first clocks are working...
I have published also an application that you can download from Google Play Puzzle WordClock.
Sadly, the electronics were a little bit complicated when using the MAX7219 led driver and the ESP12 module of ESP8266 microcontroller, the wiring was tedious and prone to errors. But with the WS2812 RGB Led Matrix things became much easier (and cheaper ...). The schematics are simple, there is no need for the esp12 board, an ESP-01 module can be used. Also the flashing words are gone, I used color change to accentuate the words for telling the time (using many colors was a big deal).
So I restarted the project with a new look and new electronics, see the renderings above of how I wanted the new word clock to look.
If you find my project interesting and useful, please take your time and vote for it in the REMIX CONTEST.
Step 1: The Enclosure
- wooden photo frame (80x80mm interior): wide frame (2cm), thin frame (1cm);
- 3mm plexiglass support;
- 80x80mm 3mm grey smoked transparent display plexiglass sheet;
- 3D printed 80x80mm 8x8 plastic grid;
- letter layout 80x80mm Printed Paper Sheet;
- 3d printed plastic box for electronics;
- 2mm diameter 10mm length screws.
Wooden photo frame
You can make your own frame, there are a dozen of articles about this, even here on Instructables. But a simpler solution would be finding a framing company where you can order a personalized frame with your required dimensions and you can choose from many frame types. This is exactly what I did. I ordered my frames with a specific dimension: the framed photo, in my case object (display) is 80x80mm. I also asked for an accurate dimension, I didn't want the frame to be too big for the 3D printed plastic grid.
The plexiglass support can be also be made DIY but for an amateur it is not very easy to cut and blend plexiglass. So I ordered several supports from an advertising company that makes all kinds of plexiglass objects. The dimensions I used are: width - 120mm, first part length - 180mm, second part length - 50mm, 15° bending angle.
Display plexiglass sheet
The 3mm grey smoked plexiglass sheet can be cut from a bigger sheet, obtaining the required 80x80mm dimension.
The STL file for 3D printing can be downloaded from Tinkercad
Display Printed Paper Sheet
The SVG file for the Printed Paper Sheet is attached, and it can be edited with Inkscape. You can make your own display layout based on this SVG file, I used Word Search Construction Kit software to generate a words layout for the time display. You can print the file repeatedly on the same sheet of paper to achieve a good, opaque, black background. I got very good results with a cheap inkjet printer and standard white copier paper. I cut off the layout with a pair of scissors.
Plastic box for electronics
The files that you can 3d print are also on Tinkercad. I used some already purchased jewelry boxes, I only designed a new box base because the boxes were too tall. The files on Tinkercad are based on this type of boxes.
Detailed instructions (follow the images above)
- choose (and mark) a side of the frame to be the top of the clock, clean the smoked plexiglass sheet, put it in the frame;
- place the printed paper sheet and the 3D printed grid;
- drill with 2 mm diameter bit through the plastic grid to make room for the screws in the frame;
- screw the plastic grid;
- mark on the frame the place for holes and lock the frame to the plexiglass support;
- drill the holes with a 2mm diameter bit (enlarge the holes in the support with a 3mm diameter bit, make the coining with a 10mm diameter bit) and screw it all together.
The last two images shows an almost finished enclosure.
Step 2: The Electronics
- ESP-01 Board;
- 5v to 3.3v stabilizer module;
- 80x80mm RGB 8x8 LedMatrix;
- 3pin 2.54mm Pitch XH Pin Header+Connector;
- Female DC Conector cable 5.5mmx2.1mm(2.5mm);
- 5v/1.5A Power supply with 5.5mmx2.1mm(2.5mm) Male connector.
Cheap and versatile microcontroller module with WiFi capability, if you don't know about it read this good instructable by TonesB ESP8266 WiFi Module for Dummies.
3.3v stabilizer module
The ESP-01 requires to be powered with 3.3v, I used here a 4pin module.
Led Matrix 64led RGB Matrix with WS8212 IC
You can read more in Getting Started With NeoPixel / WS2812 RGB LED by Open Green Energy.
3 Pin Header and connector
I used this connector because it permits easy assembly-disassembly of the enclosure.
DC connector and DC power supply
The power supply is 5v and 1.5A maximum, it is rather enough because not all leds are lightened up at full brightness and full white. Also I opted for a separate DC connector because it is simple to replace a defective power supply.
Schematics - Very simple, made with Fritzing, see the image above.
- solder the 3pin connector to the LED Matrix;
- change the order of the red and black wire in the header (it is good to respect some rules for colors used in wirings, so a red color wire for 5v and a black color wire for ground);
- drill a hole in the plexiglass support where the 3pin connector is located and enlarge the hole (with a Dremel for example) to accommodate the 3pin connector;
- make the modules soldering like in images;
- place in the box the modules, the power and the XH wire ends in the plastic box;
- twist and solder together the wire ends; isolate and strengthen the twisted wire ends with 2mm interior heat shrink tubing;
- fix the Led Matrix to the 3D printed plastic grid (with a hot melt glue gun);
- assemble all :)
Step 3: The Software and Programming the ESP-01 Board
There are several ways for programming the ESP-01 board, take a look if you want to find more information and read instructables, such as:
- Getting Started With the ESP8266 ESP-01 - by JayconSystems;
- Definitive Guide to Setting Up Your New ESP01 Module - by ZiyueP;
- ESP8266 As a Microcontroller - by JayconSystems.
My way for flashing the ESP-01 is using an adapter with a PL2303 chip (USB to Serial converter), depicted in this instructable too Getting Started With Esp 8266 Esp-01 With Arduino IDE (by electronicGURU). Also to make the programming easier, I used a breadboard adapter like this and I connected it to the USB to Serial converter. You can see in the images the wiring between these two modules: 3.3v-RED, Ground-BLACK, RX from the converter to TX on adapter-PURPLE, TX from the converter to RX on adapter-GREY. On the adapter I soldered a switch (PROG) between GPIO0 and GND pins and a switch (RESET) between RST and GND pins.
Step by step instructions:
- download and install the Arduino IDE;
- download the source for the Verbis word clock;
- install in Arduino IDE the ESP support libraries - more here;
- insert the ESP-01 Board in the breadboard adapter and connect the USB to Serial converter to an USB port of the computer;
- open in Files-Examples-ESP8266 the CheckFlashConfig sketch and then make the configuration options in TOOLS like in the image (you will have another COM port eventually);
- open a serial monitor (TOOLS - SERIAL MONITOR), make the configs (Both NL&CR, 115200 baud) and push the RESET switch on the breadboard adapter;
- you will see something like in the image above with the 'ready' word on the last line, it means the ESP Board is working and you can find on your phone a new WiFi Access Point;
- to put the ESP board in programming mode, gently push the PROG switch and keep pushing, then push and release the RESET switch, THEN(!) release the PROGRAM switch, in the SERIAL MONITOR you must see a garbled line after the ready line (see image);
- click the UPLOAD button in the Arduino IDE, wait for the sketch to be compiled and uploaded, then verify the SERIAL MONITOR again, if you have a line with 'Flash Chip configuration ok' then the programming options in the Arduino IDE are good. If no, make the necessary changes;
- unzip the sources and open, with the Arduino IDE, the VerbisMain.ino file, put the ESP board in programming mode and upload the program, if everything is good you will see in the SERIAL MONITOR the word clock's initial configuration and a WiFi Access Point on your phone.
The programming of the ESP-01 board can be made before you solder any wire to the module (see step 2 - The Electronics) but can also be made when the soldering is already made (everything assembled in the electronics box). In this case remove the RED wire between the converter and the adapter (very important !!!) because you will use 3.3v from the stabilizer module, not from the USB to Serial Converter (see image).
Step 4: Configuring and Using the Clock
After correctly flashing the ESP-01 module, start the clock. On the display you will see an animation like bellow.
You will find a new WiFi Access Point on your phone called VERBIS and a serial (a bunch of numbers). You can connect to this Access Point, with no password, open a browser (Chrome is preferred) and go to http://192.168.4.1 page. (When the ESP-01 is in Access Point mode it will always have the IP 192.168.4.1 This IP is hardwired in the microcontroller's firmware).
You will see now the word clock's main menu. Go to the 'NETWORK CONFIGURATION' submenu and wait for the search for the surrounding routers to finish. Select your router's name from the list (in my case the 'mi' router), the name will be copied to the 'SSID' textbox, enter the password and push the 'SAVE' button. Wait a little bit and try to reconnect to the clock on the same IP (192.168.4.1). Select 'NETWORK INFORMATION' where you can find what IP the clock has gotten. Restart the clock (unplug and plug the power adapter) and you will see a pattern like bellow on the display.
The clock is trying to connect to the router and the ntp server. If there is connection with the ntp server, the word clock's internal time will synchronize with the NTP server's time and the corresponding words will appear on the display. If there is no connection, the pattern will continue to show. The clock will try to reconnect to the NTP server each minute until a successful connection.
If you have no router you can access the 'MANUAL TIME SETTING' submenu and enter the time in the corresponding text boxes. Also if the clock is connected to a router but it doesn't have a connection to the ntp server, you can use this submenu to set the time until a time synchronization. In this case, when the connection to the ntp server will occur, the time will synchronize automatically in the background.
The 'NTP SETTING' submenu options are pretty explanatory, I don't have too much to say about them...
If you access the 'DISPLAY SETTINGS' submenu you can change the two colors between which the transition occurs when the words are displayed. Also, you can change if the words 'IT IS' are displayed or not at the beginning of the time telling.
Step 5: Final Thoughts
An alternate enclosure can be made using a wide wooden photo frame, you can see a rendering and an actual image above. The 15° tilt is made with a small plexiglass support.
The electronics can be drastically simplified by using a WS2812 RGB LED Controller Module (in the image with the wide photo frame the clock is made with such a module). The box used in this case is also on Thinkercad. Of course, you will need an ESP-01 module for this approach.
If you have access to a laser cutter you can make your paper sheet by laser cutting a black sheet, use stencil fonts in this case.
You can make a VERBIS word clock also in other languages. I have made the letter layout and the programming for german, hungarian and romanian. Change in the first line of the source code the language (DE_clock, RO_clock or HU_clock). The printable layouts are attached too.
But why stop here? Print a paper sheet (empty sheet in the image above) and you can make a digital clock, very similar to this Full Binary Clock; you can make a Fibonacci clock like in the instructable The Fibonacci Clock but also a digital clock (with the hours and minutes colors changing alternatively similar to VERBIS word clock).
Also this very cute clock Amazing Binary Clock in a LED Matrix deserves a try.
Of course you need to modify the ESP-01 firmware but I think it is not so difficult if you already have a template you can rely on.
But many many other projects are possible with this cheap and easy to build design.
Runner Up in the