Major updates - A much better enclosure for this clock has been designed - check out



Last month I wanted to build a special gift for my beautiful wife, Megan.  She has a teaching background in English, so what better present to make for her than a clock that uses language to tell the time for her desk at work. 


The original project that I created used a Microchip PIC microcontroller (16F877), because that's what I had in the garage.  Since I published it (https://www.instructables.com/id/A-Word-Clock/), quite a few people, including my next door neighbor (Thanks Mikal) have asked me why I didn't use an Arduino.  Having never used one, my automatic reaction to Mikal was 'Whats a one of those??"  So, I did some research and found out what an Arduino was.  Wow - they are so cool - so simple to develop for, and the barrier to entry is so low!.  I ordered one from eBay, and re-designed the clock to use the Arduino Duemilanove as the controller.

I have to admit right from the start that the Arduino is a beautifully engineered piece of work - While I am used to the PICs, because I have been playing with them for years, I do admit that there is a certain level of 'unreachability' for the beginner because of the requirement that specialised programmers be purchased or built.  The Arduino is equally powerful, comes on it's own little self contained board, and best of all is self programmable using a USB cable.


I have also listened to people who have constructed the original clock, and done away with the need to run off AC power. This clock simply uses a DC supply of 12 Volts, so you can run it off a wall wart, or off a set of batteries.  If you are using batteries, may I suggest 'D' cells, as they run forever, or a couple of 6V 'Lantern' batteries. 


Finally, I have designed the controller board so that you can construct the project with your Arduino Duemilanove board just by plugging it in.  But, if you want to recover your Arduino for something else, you can install the optional support components along with an appropriately programmed ATMega168 and a handful of support components and your project will still operate.  People on eBay will sell you a ATMega168 with a boot loader that you can simply pop back into your Arduino board.

So, here it is - The word clock - constructed using an Arduino!

I am now able to sell all sorts of components, ranging from complete clocks, through to kits, through to individual modules and components.  Please visit my web site www.dougswordclock.com for further information.

Step 1: The New Hardware - Controller Board Schematic


My original clock used discrete transistors to drive the array of LEDs.  I have realised that while that approach works fine for a project that I have built for myself, it makes it more complex for others to build, so this new clock uses ULN2003A Driver ICs.  The ULN2003A contains a set of darlington transistors in a convenient DIP package, so there is MUCH less soldering to do. 


I have also re-designed the PCB to make construction much simpler - The Arduino controller simply plugs into the new PCB.  If you want, once you have constructed the clock, you can recover your Arduino board by purchasing an ATMega168 with a boot loader, and populate the PCB with just the new Microcontroller and a crystal.


In the spirit of Arduino development, it would be fair to say that the controller board was a 24 output LED (or relay) driver shield.  It is just as happy to turn on a big set of 24, 12 volt relay coils as it is turning on a bank of LEDs.

Below you will find the new schematic diagram for the controller board as a PDF file. 

Note that you should look at step 4 to understand what resistors to use.  Don't simply use 360R and 36R with supply voltages above 10v.  You will need to use 680R and 270R instead.

Would this work for both the ribbon cable and the header? I could cut the male end off and solder it to all of the LEDs and connect the header to the board and attach it to the circuit?<br>https://www.amazon.com/gp/aw/d/B00OERE7PE/ref=mp_s_a_1_1?ie=UTF8&amp;qid=1472234973&amp;sr=8-1&amp;pi=SY200_QL40&amp;keywords=26+way+header&amp;dpPl=1&amp;dpID=41U2yt7tUyL&amp;ref=plSrch
Whoops I meant female end
<p>Hi Doug.</p><p>I am thinking of building this clock. I have an Arduino Uno with an ATMega328 chip onboard.</p><p>Can u advise if this is compatable or can the 328 be used in place of the 168.</p><p>Cheers Terry</p>
<p>meh but 3 stars</p>
<p>Hi,</p><p>I'm having trouble getting my word clock to work. Might the problem be that I have used ULN2003 drivers instead of ULN2003A drivers. I'm new with this stuff so I really have no clue what I'm doing wrong.</p><p>Thanks!</p>
<p>Hmm- that's odd - it should not worry about that.</p><p>One of the best ways of debugging this, is to unplug the 4094 chips, and using a jumper wire between +5v and each ULN2003 input, verify that the led lights.</p>
<p>hello sir , </p><p>Could you please send me an Eagle file of the pcb? Thanks in Advance !!</p><p>The project is just awesome!! I am trying to explore projects and would appreciate if you could suggest some more projects . Thank You !!</p><p>- Lay</p>
Hi Lay,<br><br>Thanks so much for your message. <br><br>My project is not for use commercially, so I have not provided Gerbers or source files that could be used. Having said that, I completely support people learning and am very happy to send you a commercially made PCB that I use in my clocks if you would like to make it and are unable to use Toner Transfer.<br><br>Just by the way, I use KiCad, as it is open source. Eagle CAD is commercial, and not available for free to hobbyists.. Any use over a very small size requires a commercial licence. You may enjoy experimenting with KiCad.<br><br>Kindest regards,<br><br>Doug <br><br>
<p>I would certainly try KiCad . Can you ship your PCB all the way to India?</p>
<p>It's work</p>
<p>Hi Doug,</p><p>I've been trying to debug this for a couple months now. I might be really silly about this but is it possible to get rid of the ATMega if just using an Arduino Uno? I'm just a college student and having my first run at electronics projects. Thanks so much for all the help</p>
<p>Hi Doug,</p><p>For the PCB board: can I use a simple copper plate or do I need a special plate?</p><p>Sorry for my English </p><p>Thanks in advance!</p>
<p>Hi Doug,<br>I think your clock is great and I have been working on a similar project, inspired by yours, but then I made a thermometer (so I used a temperature sensor). Now, I have the problem that as soon as I plug in the 12V wall adapter, all my LEDs start to give light, however I uploaded a program to my arduino which should turn of certain LEDs. Do you have any idea what the problem might be here?<br>Thanks in advance! :)</p>
Hi,<br><br>Its great to hear that you are making a thermometer project.<br><br>The first thing to check is whether your software is actually driving the pins of the microprocessor in the way that you are expecting. Are you able to share the circuit diagram with me and I will see what I can identify.<br><br>Doug<br>
<p>Hi Doug,<br><br>Thanks for your reply! I think I found the problem, I might have mounted my drivers (uln2003a) in the opposite direction (so the input is where the output should be and vice versa). A really stupid mistake you could miss easily when checking the system. I will try and find out whether this was the problem, and let you know.<br>Mo</p>
<p>Made it an year back! sharing the photos now...Yay!</p><p>thanks Doug! Nice instructable</p>
<p>Coolest clock I have ever seen, Thanks for sharing!</p>
Why not a 34 bit constant current serial driver M5450?...
<p>Something worth trying....</p><p>Really Very Innovative....</p><p>Looking forward to make one.....!!!</p>
Wat an awesome project can't wait to make it
<p>cool on the rev 3 version of the circuit you connected the ULN2003A common lines to the connector so I can be tied to the supply line and protect the ULN2003A if it is used to drive inductive loads.</p>
<p>based on the layout of the words five of the LEDs are not connected. Since they are behind the mask why would you populate them?</p>
<p>If you use the board as a relay driver you should connect the common on the UL2003A to ground to provide a fly back diode as relays are an inductive load and you can damage the ULN2003A if the the diode is not included.</p>
<p>hello Doug and thanks for your awesome project. I have made the clock but cant figure out how to stop the test funksjon and make the clock show the actual time, do i need to edit the code ?</p>
The test function is entered when the controller believes that the buttons have been held down during startup.<br><br>Make sure that the buttons are not shorted.<br><br>There was a hardware change at one stage, with the original hardware connecting the buttons to +5V, and the current hardware connecting them to ground - If you are using the updated firmware, then there is a $define early in the code to allow the use of old hardware. simply remove the comment and it will work.
<p>Good day sir ., i would like to ask what if i use Arduino uno, i would like to know the schematic of it., i'm doing this college project hope you could help me with this., </p>
The Arduino UNO should just work - Exactly the same as the duemilanove.
thanks a lot sir., i did it well :) <br>
it will work.<br>
<p>Beauty :)</p>
<p>This is amazing. it should be in the shops.</p>
Thanks for that - I have actually made a small business that sells these.<br><br>www.dougswordclocks.com It is fairly successful :-)<br>
<p>Great Project just Love it. .. Thank you.. </p><p>Shyam</p>
<p>Great Project just Love it. .. Thank you.. </p><p>Shyam</p>
<p>Great Project just Love it. .. Thank you.. </p><p>Shyam</p>
<p>Great Project just Love it. .. Thank you.. </p><p>Shyam</p>
<p>Great Project just Love it. .. Thank you.. </p><p>Shyam</p>
<p>Great Project just Love it. .. Thank you.. </p><p>Shyam</p>
<p>Great Project just Love it. .. Thank you.. </p><p>Shyam</p>
<p>Great Project just Love it. .. Thank you.. </p><p>Shyam</p>
<p>Great Project just Love it. .. Thank you.. </p><p>Shyam</p>
<p>hi, could i maybe get the eagle file? </p><p>it would be awesome :)</p><p>thank you,</p><p>max</p>
<p>Hello good sir! I am doing this project for my capstone at highschool and I gotta ask: what is the schematic for the control board? I'm temporarily housing a bread board with the IC chips and other components, but I would love to know what the actual schematic for the control board is so I know what connects to what. Thanks and keep us the good work!</p>
<p>Hi, Sorry for missing this comment - If it isn't too late, I can email you a schematic as well as the board layout so you can etch one yourself.</p><p>Doug</p>
<p>I cannot do programming . Can you help me ,please ?</p>
Of course I can. I can send you a pre-programmed chip if you like, or even a complete kit.<br><br>My website is www.dougswordclocks.com<br><br>Doug<br>
<p>SO COOL!!!! Better than an ordinary clock :)</p>
<p>thank you so much for your instructions. my wife has seen the qlocktwo in a store, and fel in love with it, but it was waaay out of our budget. after learning how to work wit an arduino and electronics it was an interesting learning project. with as result a beautifull clock (in dutch) and a happy wife :-) .</p>

About This Instructable




Bio: I have a background in digital electronics, and am very interested in computers. I love things that blink, and am in awe of the physics ... More »
More by drj113:A Grey Hat A Programming Jig for our DougsWordClock.com DeskClock Boards The Wordclock Grew Up! 
Add instructable to: