Picture of DIY TiX Clock
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.

Remove these adsRemove these ads by Signing Up

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.
robkirk1 month ago
(removed by author or community request)
gweeds (author)  robkirk1 month ago
Hmmm, maybe I got the JTAG fuse bit around the other way. Change the JTAG fuse bit, reprogram and see what you get.
robkirk gweeds2 days ago

one last thing is id love for it to be 3 second instead of 5 :/ :)

gweeds (author)  robkirkyesterday

Hi Rob? 3 seconds instead of five for the change time? is that what you mean?

Yes gweeds i thought that 3 seconds would be about the optimum time for changing the leds in time. one and five seconds is still a good option so if you could just add three seconds as an option it would be awesome. When you have time of course no rush :) (if you even want to do it that is haha). Btw i deleted a lot of posts that won't help future people as i kind of spammed here whilst being a noob :).

robkirk gweeds1 month ago
(removed by author or community request)
robkirk robkirk1 month ago
(removed by author or community request)
gweeds (author)  robkirk29 days ago

Oh don't give up hope, it does work I have one here that works fine. I also have someone else who built one and has it working.

repei gweeds18 days ago

About the need to disable jtag I understand, but what is necessary to change the pin 4 to pin 25 have Mr. gweeds, thank him for that, it works out ok

gweeds (author)  robkirk29 days ago

nope, those bits look like that on mine too.

robkirk gweeds1 month ago

just to confirm jtag refers to the jtagen setting

gweeds (author)  robkirk29 days ago

Hi again Rob, ok, so I downloaded the same hex file of my web site, and programmed it to my Tix clock using your program and programmer and using the fuse bits I suggested and it works as it should. Before I programmed it, I read the fuse bits and mine were set to 84 and 51. However the difference doesn't refer to anything that might affect operation. I will double check the diagram I have listed here with the board I have in my hand here a little later. Be good to get everything correct eh! :)

robkirk gweeds29 days ago
(removed by author or community request)
gweeds (author)  robkirk28 days ago

There you go, updated schematic uploaded.

robkirk gweeds29 days ago
(removed by author or community request)
gweeds (author)  robkirk28 days ago

Right, so I have had a good look, yes the diagram on here is an old version compared to the code, I shall fix that. The differences are:

Pin 2 of IC3 should go to Pin 25 of the AVR (this drives the last column)

S1 (set) goes to pin 2 of the AVR

S2 (Up) goes to Pin 3 of the AVR

That should get you going...

robkirk made it!2 days ago

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.


gweeds (author)  robkirkyesterday

Looking good Rob!

robkirk made it!28 days ago

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.

Photo on 25-03-2014 at 17.20.jpg
gweeds (author)  robkirk27 days ago

All good, glad it is going!, I hope the new schematic is a bit easier to follow as well.

robkirk robkirk28 days ago

nope its working fine actually from a different 5v wall charger :)

robkirk28 days ago

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!

gweeds (author)  robkirk27 days ago
Ah yes, I did that trick too!
repei1 month ago

работает все,кроме порта PB3 pin4. AVR

gweeds (author)  repei28 days ago

Hi there, I have uploaded a updated schematic, that with the current code and JTAG disabled should work.

gweeds (author)  repei1 month ago

Hi there, make sure you have disabled the JTAG interface.

Привет там, убедитесь, что у вас есть интерфейс JTAG отключена

repei gweeds1 month ago

Благодарю за быстрый отклик!Да jtag отключен,иначе не выключался нижний ряд led -3,6,9,12 ....27.Программирую PoniProg через ICSP.У PoniProg переключение FUSE обратное для AVR.На PIN 4 нет логической 0 или 1 ,состояние неопределено,но ЕСЛИ в исходном коде ПОМЕНЯТЬ строку DDRB = & B00000000 на DDRB = & B00001111, то на PIN-4 появляется логическая 1, и столбец led 25,26,27 светит постоянно.Собрано на отладочной плате.- Foto в привязанность.Один резистор для драйвера pin4 не видно ,он внизу платы.

jtag off pony.JPGled jtag off.JPGled jtag on.JPGcode.JPG
gweeds (author)  repei1 month ago

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.

repei gweeds1 month ago

Великолепный проект!Благодарю от всего сердца за подробную и быструю техническую поддержку!Это я должен извиниться за беспокойство.всё работает отлично!Но я пока искал причину зашил до смерти один AVR.но не жалко,теперь есть некоторый опыт благодаря Вам!Неплохо было поправить файл для тех кто еще захочет повторить и не имеет достаточного опыта в AVR .А Google лучше переводить оригинальный текст,иначе вообще ничего не понятно .Спасибо!

robkirk1 month ago

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.

gweeds (author)  robkirk1 month ago

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. :)

robkirk1 month ago

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.

gweeds (author)  robkirk1 month ago
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
gweeds (author) 1 month ago

Hi Rob, so you need to set the fuse bits as follows, click on the "Configure AVR Clock" button and set as per image 1;

Calibrated Internal RC oscillator

8 MHz

Start-up Time from Power Down (The first recommended option)

NO Options

Then OK that, click on the "Bit Details" for the High Fuse option and UN program the JTAG fuse.

You should see C4 and D9 in low and high fuse respectively.

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.

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.

And the transistor array can be bought from:

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.

robkirk1 month ago

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>:

robkirk1 month ago
(removed by author or community request)
gweeds (author)  robkirk1 month ago
Hi there, the code on the site is correct, read some of the other comments I only got one of the connections wrong (pin 25 should be on 4 or vice versa) and you MUST turn off JTAG. this interferes otherwise. You could use some transistors instead of the array, not sure what type to use but look up the spec of the array and match something discrete. But yes, make sure you set the clock bits right on the fuse settings, otherwise you may brick your mega. If you have a screen shot of the software's fuse setting screen, I might be able to help you select the right ones.
Neph1x1 year ago
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!
gweeds (author)  Neph1x1 year ago
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 "Delayvalue". The code sets it to a default of 5 just after all the Pattern definitions.

Get More Out of Instructables

Already have an Account?


PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!