Aluminium Profile Pictures For 4" LED DCF-77 Wall Clock Firstly, a HUGE thanks to Chris (turbokeu), without who, it would never have been possible to realise the design of this wonderful clock. - 8 months of work, but it has been worth every minute !! As requested, here are a few photos of various sections of the finished alumimium profile / frame, as assembled and fixed to my 4" DCF-77 LED wall clock. I would have liked to just internaly mitred the whole length and 'fold' it as one piece, around the complete display - but confidence eluded me The overall size of the complete clock is 30.5" (78cm)L x 6.5" (17cm)H x 1.25" (3cm)D Starting with the top left-hand corner :
Plain 10mm x 10mm lengths of angled aluminium were firstly attached to all sides of the rear of main display PCB, forming a simple frame to which the profile could be attached. This shows one of the four countersuck screws which fix the outer finished aluminium profile to the display PCB frame. There are 2 screws fixing the profile at the top of the frame & a further 2 fixing the bottom.
This picture shows the left-hand side of the clock - the gaps in the profile at the corners are visible in this close-up photo.... however, they are not visible from a reasonable distance. I may mix up some epoxy & silver paint to fill the cracks. The 'neutral' 901 acrylic/perspex sheet acts as a contrast filter and was cut fractionally larger than the display PCB dimensions. The 4 lengths of profile were the bonded to the front edge of the acrylic. Internal strengthening, or 'bracing' corners, were added later (see other pictures).
This picture shows the center two 4" high digits & 4 x 10mm colons of the 6-digit display, 'hours' or 'months', depending on which mode the clock is running in.. I decided to place a small gap between adjacent digits and increase the spacing more than usual between pairs of digits, to allow for extra large colon LED's. It also makes the clock much easier to read. The acrylic is actually quite dark, but this picture was taken in strong daylight.
Right-hand side of the clock this time, also showing the LDR for auto display dimming & the 4 status LED's : Blue - Seconds 'beat' indicator, Yellow - 'free-running' mode indicator, Green - DCF-77 frame OK, RED - 'error'. Each LED cluster was made from two 5mm x 5mm squares LED's bonded together..
Corners..... You can see in this photo how the corner sections of the aluminium profile are 'braced' together. Although no absolutley nescessary, it makes the whole external frame very strong. The lengths or profile are already glued to the stiff acrylic sheet and also screwed to the smaller 10mm x 10mm 'L' frame which is fixed directly to the display PCB. I used 1mm thick aluminium to make the 4 corner pieces - these were then fixed into each corner using epoxy resin. The brass wall support post is made from PC M/B spacers - there are 4 of these, one in each corner...
Lastly, for now, a photo of one of the 2 hanging brackets for the clock. Made from mild steel, they are attached to the clock, using 2 of the 7 screws which hold the 10mm x 10mm frame to the display PCB, along the top edge. They can be bent to tilt the clock forward slightly, preventing any reflections on the display (ie from flourescent 'strip' lighting). Although the external profile is not connected to anything electrically, I decided to place a small piece of insulation tape under the bracket, anyway I'll post some pictures of the electronics later...........
Richard... you don't have to post each and every pic in a new post, you can do it all in one big one. Nice clock though, I want one of those.
Richard, thanks a lot for the pictures. I will be making my case during next week. I wonder that you use neutral perspex and not blue or darkended. Does this perspex take away enough of the inactive segments of the LED display? I will try different colours next week and post some pictures of my clock. Thanks again to Chris for this beutiful clock. Claus http://www.nixieclocks.de
The display looks very different depending on many factors : ambient light level, viewing angle and the brightness of the auto-dimming feature. The acrylic/Perspex I used for this is 'Neutral 911' , which is transparent grey. As you can see from these pictures, taken by the same camera, you can clearly make out the inactive segments on the first 2, but the segments can hardly be seen on the last picture : I do look forward to seeing your clock - good luck
Beautiful job on the clock case Richard! I would I had one myself like this. I found local resellers for anodized aluminum profiles and Perspex, no more excuses to not build cases for all my LED clocks now... CD
I managed to build a regulated 22V power supply for the 4.0" LED Clock this weekend. It's based on the well known and cheap LM317T voltage regulator. The transformer, a surplus Eratrans 2x9V-2x1.66Amp that I bought for 3.75 Euro, is much too powerfull but it's low profile and fits very well into the plastic housing. The output connector is a standard RJ11 phone connector, therefore I can use easy to hide thin flat phone cabling to feed the clock. The ground of the PSU is connected to earth for reliable DCF77 reception. CD
Look what I found at www.pollin.de: http://www.pollin.de/shop/shop.php?cf=detail.php&pg=NQ==&a=NzQ1OTQ2OTk= This power suplly might work with the clock. I have ordered one and will test it. Claus
Hello Claus! I saw that one too, but I'm afraid that DCF77 reception will be erratic if the PSU ground is not earthed. At the moment I use a bench supply with the ground plug connected to earth, no DCF reception issues. If I remove the earth connection I get erratic DCF77 behaviour (as I experience too on my nixie clocks). Anyway, at that price it's worth trying... BTW, your nixie clock kits and updated PICs arrived well on friday morning. Thanks again! Chris
Richard, A very nice enclosure design and implementation... Bravo Sir!!! Chris, That power supply turned out beautifully... Take care guys... Kind regards, Mike
Hi Chris, I trust you and family are well Sir? May I impose to ask you about your clock code please? I've been writing code in my spare time this last week for my clock and I suspect I'm probably about 75% done, not including special effects stuff... What elegant routine did you come up with to increment the Calendar when the clock transitions from 23:59:59 to 00:00:00? And, what format are you using for clock and calendar data? I'm using 3-byte packed BCD buffers for CLK, ALM, and TMR (hours, minutes, seconds), a 3-byte packed BCD buffer for CAL (days, months, and year low), and another 3-byte packed BCD buffer for the SET mode which is used to edit a 'copy' of one of the other active buffers... TIA... Kind regards, Mike
We are perfectly well, thanks. I can not say the same about my financial situation... About the clock code: It's a very simple and effective 24H clock routine with calendar and leap year correction till 2099 from a finnish guy named Jaakko Ala-Paavola. Usable with several clock frequencies but unfortunately the clock/calendar registers are binary. Therefore I have to use BIN to BCD and BCD to BIN conversion routines for display multiplexing and DCF77 decoding. URL: http://users.tkk.fi/~jalapaav/Electronics/Pic/Clock CD
Chris, The economy and our personal financial situation is troubling too... I sincerely hope we can both look forward to better times... Thank you for the reference... Some very good information there which helped me clean up my Calendar code... Code: ; ; increment packed-bcd Calendar data in CALDAY, CALMON, and CALYRL ; after a transition from 23:59:59 to 00:00:00 ; ISR_CAL incf CALDAY,f ; increment day [01..??] |B0 movf CALDAY,W ; |B0 addlw h'06' ; lo nybble < 10? |B0 skpndc ; yes, skip |B0 movwf CALDAY ; else update |B0 call DayData ; get days-in-month BCD data |B0 xorwf CALDAY,W ; rollover to new month? |B0 bnz ISR_ALM ; no, branch |B0 movlw h'01' ; else, |B0 movwf CALDAY ; reset day to '01' and |B0 incf CALMON,f ; increment month [01..12] |B0 movf CALMON,W ; |B0 addlw h'06' ; lo nybble < 10? |B0 skpndc ; yes, skip |B0 movwf CALMON ; else update |B0 xorlw h'13'+6 ; rollover to new year? |B0 bnz ISR_ALM ; no, branch |B0 movlw h'01' ; else, |B0 movwf CALMON ; reset month to '01' and |B0 incf CALYRL,f ; increment year [00..99] |B0 ; Code: DayData movlw high DayTable ; |B0 movwf PCLATH ; |B0 movlw low DayTable ; |B0 addwf CALMON,W ; add month [01..12] |B0 skpnc ; |B0 incf PCLATH,f ; |B0 movwf PCL ; |B0 DayTable dt h'30' ; February . 29 Leap Year dt h'32' ; January .. 31 dt h'29' ; February . 28 dt h'32' ; March .... 31 dt h'31' ; April .... 30 dt h'32' ; May ...... 31 dt h'31' ; June ..... 30 dt h'32' ; July ..... 31 dt h'32' ; August ... 31 dt h'31' ; September 30 dt h'32' ; October .. 31 dt h'31' ; November . 30 dt h'32' ; December . 31 I decided to use packed BCD data despite the small front-end overhead because it provided a very clean method for stuffing the LED segment data buffers without intermediate bin-to-dec or bin-to-bcd routines (example below) but it seems this format is going to mess me up on my leap year calculations... I'd like to simply test the lower two bits of my CALYRL variable for leap year but with the packed BCD format year h'12' (b'00010010'), year h'16' (b'00010110'), and others, don't have zeros in the lower two bits (darn!)... So I'm still working on it... Thanks again... Kind regards, Mike Code: ; ; update the Column 1 through Column 5 LED segment data buffers ; using data from the CLK, ALM, TMR, CAL, or SET data buffers ; ISR_Refresh movwf FSR ; setup indirect access |B0 swapf INDF,W ; get hi nybble (HRS/DAY) |B0 call SegData ; get hi nybble segment data |B0 movwf LEDBUF+0 ; HRS/DAY x 10 digit (Column 1) |B0 movf INDF,W ; get lo nybble (HRS/DAY) |B0 call SegData ; get lo nybble segment data |B0 movwf LEDBUF+1 ; HRS/DAY x 01 digit (Column 2) |B0 incf FSR,f ; setup indirect access |B0 swapf INDF,W ; get hi nybble (MIN/MON) |B0 call SegData ; get hi nybble segment data |B0 movwf LEDBUF+2 ; MIN/MON x 10 digit (Column 3) |B0 movf INDF,W ; get lo nybble (MIN/MON) |B0 call SegData ; get lo nybble segment data |B0 movwf LEDBUF+3 ; MIN/MON x 01 digit (Column 4) |B0 incf FSR,f ; setup indirect access |B0 swapf INDF,W ; get hi nybble (SEC/YRL) |B0 call SegData ; get hi nybble segment data |B0 movwf LEDBUF+4 ; SEC/YRL x 10 digit (Column 5) |B0 movf INDF,W ; get lo nybble (SEC/YRL) |B0 call SegData ; get lo nybble segment data |B0 movwf LEDBUF+5 ; SEC/YRL x 01 digit (Column 6) |B0 ; Code: SegData andlw b'00001111' ; |B0 movwf TEMP ; |B0 movlw high SegTable ; |B0 movwf PCLATH ; |B0 movlw low SegTable ; |B0 addwf TEMP,W ; |B0 skpnc ; |B0 incf PCLATH,f ; |B0 movwf PCL ; |B0 SegTable dt b'00111111' ; "0" -|F|E|D|C|B|A dt b'00000110' ; "1" -|-|-|-|C|B|- dt b'01011011' ; "2" G|-|E|D|-|B|A dt b'01001111' ; "3" G|-|-|D|C|B|A dt b'01100110' ; "4" G|F|-|-|C|B|- dt b'01101101' ; "5" G|F|-|D|C|-|A dt b'01111101' ; "6" G|F|E|D|C|-|A dt b'00000111' ; "7" -|-|-|-|C|B|A dt b'01111111' ; "8" G|F|E|D|C|B|A dt b'01101111' ; "9" G|F|-|D|C|B|A
Hi and looking for help with alarm Clock Hi there guys, been reading through this topic and it is really inspiring. I am a 17 year old College student in the UK and currently proceeding with a PIC Microprocessor Project, where i have decided to build an alarm clock with 4, 7-Segment displays. To adjust the time, i decided to implement a 4x4 matrix keypad, and to use a buzzer as the alarm. The current stage i am at is as follows: The source code i am making is in c format, which will be converted into Assembely at a later point. I believe i have got a good time base set up for the time. I was able to multiplex two 7 segment displays. However, at the moment i am at a stumbling block. The problems i am encountering are, i am not sure how to multiplex all 4 displays, and need to work on this to show the full time. I am also unsure of how to multiplex the keypad to the displays also. Would anybody be able to help me get back on track with this, i know it is vague but ill try to reword it the best i can. Any help would be greatly appreciated. Many thanks Keith