This instructable will show you how to make your own arduino based watch that tells time using a matrix of LEDs. This is my first instructable, so if something is unclear leave me a comment or send a message!

I was inspired by all the cool LED watches that I saw on this website:

They have a lot of different designs that let you tell the time in very unique ways. So, I thought I'd try my hand at making my own LED watch using an arduino.

My watch design is very basic, but can be easily modified to create different LED layouts and different programming schemes. I am fairly new to arduino programming so for this instructable I will be using a modified code that I got from the Makerbot Watch project:

I had big issues with the battery life of my first watch design, but with the modified Makerbot code and a larger battery, the watch will tell the time for at least 12 hours on a single charge. I am working on modifying the code to allow the watch to only display the time when you press one of the buttons. This should greatly increase the battery life. I will post it as soon as its finished.

***3D PRINTED ENCLOSURE***************************************
I designed an enclosure and uploaded the stl files to thingiverse. You can find all the files here:


Follow the instructions in the thing summary. Happy Printing!


This instructable requires the soldering of very small surface mount components. If you are new to soldering, or have never handled surface mount parts before, I will try to explain as best I can how to successfully solder this project together.

Step 1: LED Matrix

This watch will tell time using a total of 28 (output) LEDs, and be controlled by 3 (input) tact switches. Obviously, an ATmega328p does not have that many programmable I/O pins so some manipulation needs to be done to individually control all those LEDs. The buttons will be controlled by 3 individual pins. 

To do this, we will use a technique called charlieplexing, or display multiplexing. Basically, this method will allow us to use X number of pins to control X*(X-1) number of LEDs. For example, we can control 6 LEDs with only 3 output pins. This is possible by utilizing the tri-state logic properties of microcontrollers and the forward bias of LEDs. In other words, each pin can be set in 1 of 3 states: High (5 or 3.3V), Low (GND), or Not Connected (a high impedance state that disconnects the pin from the circuit).  Also, an LED will only light up and pass current to the rest of the circuit in one direction (from anode to cathode). The first four images will give an example of how charlieplexing works using 3 pins and 6 LED's.

Now, by expanding this basic layout we can create a matrix of 28 LED's that can be controlled by a total of 11 output pins. 

This is a relatively simple explanation of a complex process. If you would like more information, I found this instructable to be more comprehensive, and very well written. 

<p>I like your led watch very much.<br>I was inspired to see, if there is a smaller solution.</p><p>I am not familiar with electronics, but I can use Excel quite well.<br>I designed a 5x5 clock in excel, look at the 1st picture.<br>And I managed to get it working to. So if you like to see it live working, I will send you the excel<br><br>How to read:<br>The green dots are bi-color leds (green/red)<br>They represent the hours in a square.<br>The top row represents 11, 12 and 1 o'clock, the most right column 2, 3 and 4 o'clock<br>The bottom row from right to left 5, 6 and 7 o'clock and the most left column from down to up 8, 9 and 10 o'clock<br>The actual hour is red coloured, the rest stays green<br><br>The corner dots are white leds<br>The represent the 10 minute blocks<br>None of them active means that it is between 00 en 10 minutes past<br>When the upper left corner is active, it tells you that it is from 10 to 19 minutes past<br>When the upper right corner is active, it tells you that it is from 20 to 29 minutes past<br>When the lower left corner is active, it tells you that it is from 30 to 39 minutes past<br>When the lower right corner is active, it tells you that it is from 40 to 49 minutes past<br>When all corners are lit, it tells you that it is from 50 to 59 minutes past<br><br>The middle section of dots are orange leds<br>They represent the additional minutes from 0 to 9 in a die format<br>See the example pictures</p><p>I have put the time under the matrices, but they are not part of the watch</p><p>If you manage to make such a watchI would like to have one.....;-)</p><p>greetings </p><p>Marcel Maatman (the Netherlands)</p>
<p>A 7x7 matrix would also be nice, maybe better.........</p>
<p>don't have a 3D printer:( how much would this cost to make? Would I need a 3D printer?</p>
<p>You don't need a 3D printer to make this. I actually made this watch long before I got my 3D printer. The main challenge is making the circuit board. The cost really depends on how you make the board. If you have the supplies (blank pcb, etchant, small drill bits, etc.) the board is practically free and you just need to buy the components. The components are less than $10. If you want to outsource the boards, you can have 10 of them made for a little over $10. The cost of the watch case will vary depending on how you want to make it. Just follow my instructable and you should be fine :)</p>
<p>Really nice guide! Well explained and easy to follow. I was wondering myself about SeedStudio and after seeing the PCBs that they send you I am quite convinced of order from them.</p>
<p>I started this about a year ago and got the bootloader uploaded but after problems with the chip and crystal resulting in resoldering and lifted pads, the project died. Two weeks ago I picked it up again and got everything working, the project was done, and then it just stopped. Nothing I could do would fix it and the final nail was put in it when I accidentally hooked up the power backwards. Today, another set of parts arrived and I used my final board from OSH Park. I soldered everything in 3 hours and finally finished the project (I am so paranoid it will just stop at any moment) I just need to 3D print a case for it now.</p>
<p>Hey, glad to hear that you stuck with the project! The final result looks great. Its always hard to tell if and when an electronics project will suddenly fail. My best suggestion is to build a watch case that fully protects the PCB and battery. I actually stepped away from this project for a while to build my 3D printer. I just recently created my first 3D printed watch case and strap. Take a look and let me know what you think. I'll probably be posting the .stl files soon. </p>
<p>Awesome! I'm definitely making this. A few questions though--is there any reason you decided not to use a smaller lithium coin cell battery? How long does the battery last? I was going to use an RTC for accuracy and so that I wouldn't have to reset the time whenever the ATMega lost power... how did you deal with that? </p><p>Thanks!</p>
<p>Hey, glad to hear you're planning on making it! I initially tried a coin cell battery but found that it only lasted a couple of hours. I decided to use a lithium polymer battery instead, and included a battery charger in the circuit. On a full charge, the battery lasts about 10 hours. As far as an RTC, I ruled it out because I would have needed to add more board space to make it fit. I wanted to keep the watch as compact as possible, and it keeps pretty accurate time without it. If you end up adding one, let me know how it works out!</p>
<p>Great project, simple and useful. One note on soldering those SMD parts: you don't have to do it by hand and it's pretty easy to do too. I've been reflowing SMD parts since the day I started making PCB designs and never looked back. That allows for a slightly smaller design as well, should one choose to do that. I've been pondering this myself byt other projects have gotten in the way unfortunately ...</p>
So I got the bootloader burned but when I added the LED's and resistors, something must have happened as can't upload anything, I get the avrdude: stk500_getsync(): not in sync: resp=0x00 error. I checked all my connections and tried switching TX and RX as well as the other common methods for fixing not in sync errors. anyone else get this error?
Make sure that you have the right board selected on the Arduino IDE <br>Go to Tools-&gt; Board-&gt; and select Arduino Duemilanove or Nano w/ Atmega328 <br>I got the same error when I forgot to switch my board. <br>If that doesn't work you might need to double check all your soldering for shorts or bad connections.
I only have options for Duemilanove and Nano w/ ATmega328 as separate options and I have tried both along with the other board types. Should I use pre Arduino 1.x.x to upload so I can use the old codes? I have not foumd any shorts on my board yet
Yes I would try an earlier version of arduino. It should have the option for duemilanive or nano.
this is awesome. <br>maybe using alumunium/brass chasing would be more amazing. love it. <br>i really like the propeller clock/ pov clock with hand clock size, it will great. <br>:D
Oh, I don't have a steady hand. What do I do?
I would suggest getting fine tipped tweezers with large handles for easier use. Also, I found it easier to use double sided tape to secure the bottom of the board to my work table. This keeps the board secure while you work on the top side components. If you tape it near the corner of your work table, you can use the table edges to rest your forearms and better steady your hands. I hope this helps
I have been soldering through hole for a while and am very good about it and SMD doesn't sound too hard, the problem that I am worried about is some of the resistors and capacitors are .5mm wide, how hard is it to solder those components?
Its not that hard but will require some patience. Once you solder your first resistor, you'll find that it gets easier with each component. You will need a pair of fine tipped tweezers, a fine tip soldering iron, and soldering paste. After that just follow my images in Step 4 to solder the smaller components.
Hi <br>Great project, thank you for sharing. <br>Concerning the problem of compilation, it is simple to pay, simply replace the call Wiring. pm in the library Arduino.H
The Bill Of Materials spreadsheet (Watch BOM.xlsx) transmits as a .tmp file ,which I can't seem to open. Is there another link?
Right click and open with excel <br>
The .cam file doesn't seem to download properly. Surely you could just let us download the completed .zip to be sent off to seeedstudio?
Try the .brd and .sch files on the previous page!
Thanks, I'll look into fixing the file. But, if you go here:<br>http://www.sparkfun.com/tutorials/109<br>they have the same file and a really good tutorial on how to install it. <br><br>I can't really give you a .zip file to send to seeedstudio because you first need to place an order with them for the boards then place your order number on the board's silk screen layer. So if I made the gerbers here for download, they would be missing the order numbers. Sorry about that<br><br>
I don't seem to see the Hand-Made pcb image on here? Can you maybe point it out if there is? This project is amazing! I am making one right now with pin outs.
Thanks for the comment! The handmade PCB image is the last one on Step 13. Its only of the top layer, and its fitted into my watch case. Let me know if you need some more details
Thank You! That is a great looking board! :)
Hey buddy!Thank you first,It's a great project.But when i trying to do this.I found one problem that the program told me :MakerBotWatch has not been declared.<br>That's a big problem to me.So ,how can I fix this problem?!<br>Thanks!
Make sure that you have the MakerBotWatch.cpp and MakerBotWatch.h files in your arduino library. The file names are case sensitive so make sure they are named properly. If that doesn't work, try downloading the latest version of arduino. If that still doesn't work, try downloading the watch code again and try running it. <br><br>Once you fix this error, you may also get an error when the compiler reaches the &quot;boolean&quot; line. To fix this, you need to download the arduino Frequency Timer 2 library. I've used this library on past projects so I forgot to mention it in the instructable. I will add it soon, but you can google it if you want. <br><br>Let me know if this works. And thanks for the comment, I would love to see how your watch turns out. Please post some pics!<br><br>
Thanks buddy!I found that the files name is so important in this project.Now I finish the programing.It wat lights up right now!It looks very beautiful!<br> I'll show you some pics later!What's your mail?What's your name?Where are you from?I just want to be a good friend with you!<br> I from HongKong! My name is Lawrence!
Glad to hear you have it working, I can't wait to see the final product!
Thanks buddy!I'm coming to show you the pics!
Wow that looks great! The board looks really nice in blue! What are your plans for the watch case? After seeing yours, I think I'm going to have my next batch made up in blue :)
Ok,My friends.I thik I'd like use the glass for the case.But I think it's so hard to do that!How about you think?
Well, I made my case entirely by hand, and it did take a long time to do. From your pictures, I notice that the corner mounting holes are missing. It would be hard to make it the way I did without the holes. But it should not be too hard to add them later on if you wanted. <br>If you look through my instructable, you'll see that I made the case piece by piece. But, I'm basically just making a box. So if you can find a plastic or metal box that can house the PCB (and still looks good to be on your wrist) you can just cut the holes for the buttons and watch band. Then, glue a piece of clear acrylic as the box top so you can see the LEDs. That's just one idea...
Did you did the project all by your hands?I found that's to much hard for me.I did the project used 38 hours!
Have you thought of any other features you could add to this watch? I love the concept but you have so much more power that is wasted in just telling time that my $10 watch does.
Thanks for the comment! I am working on more features to add to the watch, this is really just a starting point. Since it's basically an arduino, I'm planning on incorporating some sensors in a future design, such as temperature, humidity, and possibly pulse rate. Ultimately though, I would like to have it set up to where the watch becomes a portable arduino that you could easily plug into your computer, plug in some sensors, and upload a sketch, all while its still on your wrist. In the mean time, I think telling time with LEDs is pretty cool, and you could easily write some code to make the LEDs light up in different patterns if you wanted.
I agree it is a cool watch look forward to some sensors. I have also thought of doing one with a digital display myself, I wanted a few sensors that would help at work.
you will start selling those will you?
I would like to sell them eventually. I'm working on different LED arrangements that tell the time differently. And it takes a while to make the watch case by hand so I'm looking into faster methods.
This is a beautiful project and the fact that these boards look so professional really makes it. <br><br>Fab.
WOW. GREAT JOB!!!!!!!! <br>Way beyond my skill level. <br>looking at the band glue joint in the photo, it just doesn't look very strong to me and i don't know if the circuitry could take the drop if the band broke.. <br>I wonder if keeping the band as one piece that either ran thru the watch or below it, with the watch being rivited thru the back, would hold up a little better? <br>would take some thought to deal with any clearance issues but it may be worth the effort since its clear you have plans to get this into production? <br>just a thought. <br>really nice work. <br>you've got my vote. <br>
Thanks! I actually tried running the watch band through the case as one single piece, but I had to make the case wider for everything to fit. I wanted a thin profile, so I nixed the idea for now. <br><br>The glue joint that I describe for the band has been working out pretty well so far. I have been wearing my watch mostly everyday for weeks now and so far so good. But you're right, the joint could eventually wear out. I'm playing around with different options. I was thinking of splitting the end of the strap inside the case and then gluing the flaps to the inner wall. Or, maybe crimping something to the end (like a staple) so that it can't be pulled out. These could work, but I am open to any ideas....
This is an amazing project! It must have taken many hours!
Dude!<br><br>Freakin' awesome instructable. Excellent details. <br><br>I have a half done design for an arduino watch with EXACTLY the same layout of hour LEDs, but your overall design incorporating the LiPo charger is just so much better overall I'm going to just stop working on mine and use yours - thanks for posting the design files!<br><br>Anyone interested in a group buy? I don't really need 10 copies...
An amazing porject and 'ible, Well done .

About This Instructable




More by carjo3000:Arduino LED Watch 
Add instructable to: