Here's my instructable for a DIY TiX clock.  It is powered by an AVR microcontroller.  The display is made up using a piece of reflector grid you find covering office lights, some smoked perspex, a diffuser and a bunch of LED's.  The Idea came from the Tix clocks you can buy at various places on the web, but nothing beats making it yourself.  It is a talking point in the lounge and once you are used to reading it, you can tell the time in a jiffy.

Step 1: The Electronics

The first prototype was made using Vero strip board.  The layout on strip board is fairly straight forward.  The Transistors in the top left are row drivers and the IC's on the right are  transistor arrays that are the column drivers (see circuit diagram at the end of instructable for more info).  This allows me to get a bit more current to the LEDs to make them brighter.  The Transistor array IC's can be replaced with transistors if you like.  You will find circuit diagrams and software at the end of this instructable with which I have included an Eagle PCB layout design as well for a single sided board that combines the controller and display board into one.

Note that if you etch your own PCB the LED's are mounted as normal thru hole components but the IC's, links and other components are placed on the copper side of the board.  The LED's and links will need to be mounted first as the AVR covers some of the LED solder points.  Details in the pictures.

Step 2: The Display

The display is made up of a sandwich of the display Board, The square reflector, a diffuser and a smoked perspex window.  You can place a sheet of tinfoil under the LED's to give more reflection, just make sure you cut a hole in tinfoil around a legs of each LED so it doesn't short things out.  I also sanded the lens of each led to distribute the light more.

The first three photos show the strip board version, the remainder the etched PCB version.

Step 3: The Case

For the case, you can use pretty much anything.  I used Rimu, a native timber to New Zealand.  I used a mill to cut out tracks and recesses for the "Sandwich" of the board, reflector, diffuser and window to sit in and the whole assembly slides in from the bottom.  There is also a thin recess for the rear of the clock to sit in, this is made from a thin sheet of plastic.  Buttons to press the switches were turned up on a lathe.

Step 4: The Final Product and Files

here's a video of the clock in action and a zip file containing the Bascom AVR basic code, schematic and PCB. If you click on the schematic you can view it full size.

Here is a link to the Bascom code in HTML format and

Here is a link to the compiled HEX file of that (right click - save as). You should be able to program an AVR Mega16 with that using a programmer of your choice. Note, you'll need to set the fuse bits for 8MHz internal Clock.

Note:- You will need to turn of JTAG debugging on the AVR other wise you will have issues with the first column on the clock not working. Do this using the Fuse Bits as well.

Parts List:
Q1-Q3 BC548
LED1-LED3 5mm High Intensity Blue LED
LED4-LED12 5mm High Intensity Red LED
LED13-LED18 5mm High Intensity Orange LED
LED19-LED27 5mm High Intensity Green LED
R1-R4 100k 1/4w Resistor
Q4 32.768 kHz Crystal
C1 4.7uF 10V Electrolytic Capacitor
C2,C3 10pF Ceramic Capacitor
IC1 ATMEGA16 AVR Microcontroller
IC2,IC3 TD62304 Darlington Transistor Arrays (these could be replaced with standard transistors)
S1-S3 Momentary Push Buttons

Enjoy! and vote for me!

<p>you are a true winner!</p>
<p><iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/VFBzCNd7SIM" width="500"></iframe></p><p>Compact version. When making the led grid, miss the square separating the digits if you want it smaller.</p>
<p>i was just looking at different leds and found a type called straw hat leds that spread the light evenly like a lightbulb instead of in a beam, wish i had known of these before i might even redo them with this type in the future when i get bored as my less are very close to the acrylic and you can see the brightness in the middle even with them lightly sanded :)</p><p>http://electronics.stackexchange.com/questions/2089/what-is-the-advantage-of-a-straw-hat-led</p>
<p>yes they use them for LED christmas and party lighting. you might end up with a darker circle in the middle, as in the opposite of what you have now.</p>
<p>tweeds just a thought but how hard would it be to incorporate a dimming feature either automatic or manual?</p>
<p>I've gone for just diffused standard leds this time, see how they work out i shouldn't have to sand them and they are not high intensity so shouldn't be to bright i hope they are bright enough though. oh and i fixed the 3 dim orange less it was either a solder issue or faulty leds as i replaced them and seems fine now.</p>
<p>Added a few finishing touches today which included blu tak (a form of putty/plasticine) around all the inside grid rows to stop light leakage. Very pleasing to see the squares so crisp now. Also painted the grid black so you can't see it under the smoked acrylic. Added some push buttons on the back by drilling the back piece of acrylic and securing them with lock nuts then soldered onto the main board (my vero board is a mess with jumper wires everywhere and no doubt cold solder joints everywhere and it was 3rd time lucky as I'm no good at soldering). Officially finished and very pleased with it.</p>
<p>oh and i used white baking paper to diffuse in place of the thick tracing paper gweeds suggested and it works very well.</p>
<p>baking paper, now why didn't I think of that. That's what I like about instructables, you see so many different uses for different products! :)</p>
<p>Finally had time to put the enclosure together it looks sweet with the smoked acrylic and instead of egg crate reflective squares which i found hard to source i used 2cm square plastic grid which is actually a Chinese plate dryer rack. didn't go to the trouble of etching a pcb but managed to fit a vero board inside the enclosure which btw is not as good quality as gweeds enclosure. Thanks to gweeds for helping me and anyone who thinks they can't do this because of limited knowledge of micro controllers i say go for it as i was a complete noob at electronics and managed it from scratch just be prepared to wait for different parts and to learn as you go.</p>
<p><iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/hHRUkZMVQes" width="500"></iframe></p>
<p>Looking good Rob! </p>
<p>finally i have a working prototype, now i have this i shouldn't have to bother you anymore tweeds lol :) many thanks for helping me troubleshoot and even redesigning the schematic because of me. one final question is when i plug my 5 volt breadboard supply into the wall charger it goes mad and all the less flicker. is this to do with the hz being messed up by the 50hz wall transformer? when its plugged into my usb 5v laptop it works fine.</p>
<p>All good, glad it is going!, I hope the new schematic is a bit easier to follow as well.</p>
<p>nope its working fine actually from a different 5v wall charger :)</p>
<p>many many thanks i might be speaking to soon but i think i solved it, on that extreme burner program i was not clicking write tick box when programming so the jtag must not have been programmed off!!!! i feel such an idiot! ill post back when i rewire the breadboard again as im only testing that pin atm thanks again gweeds your awesome!</p>
Ah yes, I did that trick too!
<p>работает все,кроме порта PB3 pin4. AVR</p>
<p>Hi there, I have uploaded a updated schematic, that with the current code and JTAG disabled should work.</p>
<p>Hi there, make sure you have disabled the JTAG interface.</p><p>Привет там, убедитесь, что у вас есть интерфейс JTAG отключена</p>
<p>Благодарю за быстрый отклик!Да jtag отключен,иначе не выключался нижний ряд led -3,6,9,12 ....27.Программирую PoniProg через ICSP.У PoniProg переключение FUSE обратное для AVR.На PIN 4 нет логической 0 или 1 ,состояние неопределено,но ЕСЛИ в исходном коде ПОМЕНЯТЬ строку DDRB = &amp; B00000000 на DDRB = &amp; B00001111, то на PIN-4 появляется логическая 1, и столбец led 25,26,27 светит постоянно.Собрано на отладочной плате.-<a href="https://www.olimex.com/Products/AVR/Proto/AVR-P40-8535-8MHz/" rel="nofollow">https://www.olimex.com/Products/AVR/Proto/AVR-P40-...</a> Foto в привязанность.Один резистор для драйвера pin4 не видно ,он внизу платы.</p><p><br></p><p><br></p>
<p>Hi again, sorry google has a bit of problems translating that reply. I think I may have mucked up the code and schematic a bit when I uploaded this instructable. Connect the last column to pin 25 instead of pin 4.</p>
<p>Великолепный проект!Благодарю от всего сердца за подробную и быструю техническую поддержку!Это я должен извиниться за беспокойство.всё работает отлично!Но я пока искал причину зашил до смерти один AVR.но не жалко,теперь есть некоторый опыт благодаря Вам!Неплохо было поправить файл для тех кто еще захочет повторить и не имеет достаточного опыта в AVR .А Google лучше переводить оригинальный текст,иначе вообще ничего не понятно .Спасибо!</p>
<p>ah thankyou so much, to anyone who is reading this I'm using eXtreme burner on windows 7 64 bit and have a usbasp programmer. Ill let you know how i get on and post pics of it. btw did you say the smaller crystal would be ok to use as they are all the same as long as its 32.768 its about half the size of the one on your board and I've used legs 1 and 4 the other legs are not used as i can tell from the datasheet. Thanks again for your kindness and patience at my noob diatribes.</p>
<p>The physical size of the crystal does not matter, it is the frequency that needs to be correct, other wise your clock will run to fast or slow. :)</p>
<p>I've started on the breadboard prototype just one thing, the blue line connecting 7 pins of the atmega to one of the arrays, does that mean connect each pin to each pin separately or link them altogether? thanks.</p>
Hi there, yeah in the diagram it is show as one line for clarity, but they are individual connections from the array to the AVR
<p>Hi Rob, so you need to set the fuse bits as follows, click on the &quot;Configure AVR Clock&quot; button and set as per image 1;</p><p>Calibrated Internal RC oscillator</p><p>8 MHz</p><p>Start-up Time from Power Down (The first recommended option)</p><p>NO Options</p><p>Then OK that, click on the &quot;Bit Details&quot; for the High Fuse option and UN program the JTAG fuse.</p><p>You should see C4 and D9 in low and high fuse respectively.</p><p>The 32.768MHz crystal is for the clock only for the Real time clock. It's 32.768 because that can be divided down to 1 Hz pulses for the clock.</p><p>As for capacitors, as long as the voltage is higher, it doesn't matter, so you can replace a 10uF 16v with a 10uF 35v.</p><p>And the transistor array can be bought from:</p><p><a href="http://www.aliexpress.com/wholesale?SearchText=TD62304P&catId=0&initiative_id=SB_20140320221243" rel="nofollow">http://www.aliexpress.com/wholesale?SearchText=TD6...</a></p><p>take your pick, I have purchased 100's of products from Aliexpress, and only one ever got lost in transit. Those links will also give you some alternative part numbers.</p>
<p>thanks a lot for your help. sorry to be a pain but what is the exact crystal model is it a e571? i have ordered one and its the same frequency but a lot smaller than yours i have soldered 2 leads on it to use but not sure if i need a bigger one. also i have a 4.7 uhf capacitor but its rated 63v and yours states 10v although it looks the same size. finally would these arrays work&gt;: http://www.alldatasheet.com/datasheet-pdf/pdf/230752/STMICROELECTRONICS/ULN2003A.html </p>
Where i can change blinking time, i wanna make it faster...this is a little bit slow for me..which variable you use for that....Thank you!
Hi there, after you set the time there is an option to change the blinking time. it cycles in the setup between 1, 5, 10, 15, 30 and 60 seconds. The actual variable that holds this delay time is &quot;Delayvalue&quot;. The code sets it to a default of 5 just after all the Pattern definitions.
What limits the current through the LEDs? <br>Is this not going to burn out the LEDs and / or the drivers?
Nothing does, to get maximum brightness I drive the LEDs with all the current they can source, but because they are multiplexed, they don't burn out. It is quite common to drive LED matrix displays this way to get more brightness. The clock has been running 24/7 since its inception in 2002, never crashed, never needed repair.
can you please tell me what the JP1 in the schematic is, this is my first time making something so i would appreciate the help
Hi there, JP1 is the main power connector. 5v DC. you can make this a proper DC plug style, or a 2 pin header or just solder the wires to the board.<br>JP2 is the programming connector
thanks, i actually wanted to know how to implement the JP2. for now i have made the connections as specified on the bread board. in place of the JP2 i have simple use the electrically linked vertical column. i hope that will work.
Hi,<br><br>Although I have experience doing this kind of stuff back in college, I don't recall how generally to power the breadboard or your board in this case. Did you use a battery? Or is it plugged into the wall with some AC to DC converter between?
I run everything of 5v, using either a wall plug or in the case of a breadboard, I have chopped up a USB lead and just use the 5v from that supplied by the computer.<br>
You can use both. Find a 5v dc transformer if you want to use the wall or use a battery pack. If I do this I would go with the transformer so I will not have to keep changing batteries but it would also be nice to have batteries for when the power goes out.
really nice<br>this is the first time i see this kind of this clock<br>was it 12:34 then 12:35?<br>did i read it right?
Thanks, yeah the time in the picture and the start of the video is 12:34
Hi, I am having trouble finding the TD62304 Darlington Transistor Arrays IC(I live in Singapore). Do you have any other useful alternatives?
this clock is better than normal digital clocks<br>i will try to make one like it
How big/where can you get reflector? I think this would be awesome to make a big LED sign :)
Hi there, yes it would make a good base for a LED sign, you can get bigger spaced ones too. Just google eggcrate reflector. This is one supplier, but they sell in bulk: http://www.goodmart.com/products/louvers-intl-para-image-plastic-eggcrate-2-x-4-black-styrene-lipl21-24bf.htm<br><br>Building recyclers should have them by the dozen, hey even check the huge bins when they are refurbishing a building, you might get some for free!<br>
Theyre kinda expensive...<br><br>My (possible) attempt will be to cut card-stock in lines and wrap in foil, and make a grid... Will be able to fit more LEDS in a smaller space, and it should work the *same*
oh wait misunderstood the prices.... so <a href="http://www.goodmart.com/products/louvers-intl-para-image-plastic-eggcrate-22-75-x-46-75-silver-styrene-1-2-x-1-2-x-3-8-in-case-10-lipl21-24sf-22-75x46-75.htm">this</a> would have 1/2 by 1/2 in holes, 3/8 in high? So about 44 holes x 44 holes? I need just 24x10 :)
Hi.<br>Very nice clock indeed.<br>I noticed that you only supply the .bas file in the zip.<br>To get the HEX file to program into the AVR, you will need the BASCOM (?) compiler to produce the HEX file.<br><br>Could you also supply the HEX file for the AVR?<br><br>As for the square grids, you prob could use those square led matrixes, sold on eBay or @ Sparkfun.<br><br>Thanks,<br>Stephen
Thanks, in the final step there is a link to the hex file. You should be able to use any AVR programmer to load that into the AVR.
Great project- ive never seen this type of clock before. I might try to make a clock before the contest ends, it all depends on if my hardware gets here in time, but could I add something to the clock that will function like this?

About This Instructable




Bio: self proclaimed geek with more ideas than money
More by gweeds:Jen & Tom's Lego Hair tie /  Rubber band gun Lego Excavator for the kids DIY TiX Clock 
Add instructable to: