Electronics 7-segment LED Clock

Discussion in 'Modding' started by Explicit, 27 Sep 2004.

  1. flymustang

    flymustang What's a Dremel?

    Joined:
    5 Feb 2006
    Posts:
    5
    Likes Received:
    0
    Please do that.
    Thanks for the great clock.
    Mail me for more details on your nixie clocks.
    Claus
     
  2. Richard

    Richard What's a Dremel?

    Joined:
    7 Jun 2005
    Posts:
    13
    Likes Received:
    0
    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 !! :clap:

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

    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 :

    [​IMG]
     
    Last edited: 10 Feb 2006
  3. Richard

    Richard What's a Dremel?

    Joined:
    7 Jun 2005
    Posts:
    13
    Likes Received:
    0
    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.

    [​IMG]
     
  4. Richard

    Richard What's a Dremel?

    Joined:
    7 Jun 2005
    Posts:
    13
    Likes Received:
    0
    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. :D

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

    [​IMG]
     
  5. Richard

    Richard What's a Dremel?

    Joined:
    7 Jun 2005
    Posts:
    13
    Likes Received:
    0
    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.. :duh: 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.

    [​IMG]
     
  6. Richard

    Richard What's a Dremel?

    Joined:
    7 Jun 2005
    Posts:
    13
    Likes Received:
    0
    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..

    [​IMG]
     
  7. Richard

    Richard What's a Dremel?

    Joined:
    7 Jun 2005
    Posts:
    13
    Likes Received:
    0
    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...

    [​IMG]
     
    Last edited: 11 Feb 2006
  8. Richard

    Richard What's a Dremel?

    Joined:
    7 Jun 2005
    Posts:
    13
    Likes Received:
    0
    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 :naughty:

    [​IMG]

    I'll post some pictures of the electronics later........... :thumb:
     
  9. mattthegamer463

    mattthegamer463 What's a Dremel?

    Joined:
    26 Nov 2004
    Posts:
    2,804
    Likes Received:
    1
    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.
     
  10. flymustang

    flymustang What's a Dremel?

    Joined:
    5 Feb 2006
    Posts:
    5
    Likes Received:
    0
    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
     
  11. Richard

    Richard What's a Dremel?

    Joined:
    7 Jun 2005
    Posts:
    13
    Likes Received:
    0
    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 :

    [​IMG]

    [​IMG]

    [​IMG]

    I do look forward to seeing your clock - good luck :)
     
  12. Turbokeu

    Turbokeu Minimodder

    Joined:
    30 Jul 2002
    Posts:
    347
    Likes Received:
    2
    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 :)
     
  13. Turbokeu

    Turbokeu Minimodder

    Joined:
    30 Jul 2002
    Posts:
    347
    Likes Received:
    2
    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.

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    CD :)
     
  14. flymustang

    flymustang What's a Dremel?

    Joined:
    5 Feb 2006
    Posts:
    5
    Likes Received:
    0
  15. Turbokeu

    Turbokeu Minimodder

    Joined:
    30 Jul 2002
    Posts:
    347
    Likes Received:
    2
    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
     
  16. Mike K8LH

    Mike K8LH What's a Dremel?

    Joined:
    17 Nov 2005
    Posts:
    36
    Likes Received:
    0
    Richard,

    A very nice enclosure design and implementation... Bravo Sir!!!

    Chris,

    That power supply turned out beautifully...

    Take care guys... Kind regards, Mike
     
  17. Mike K8LH

    Mike K8LH What's a Dremel?

    Joined:
    17 Nov 2005
    Posts:
    36
    Likes Received:
    0
    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
     
  18. Turbokeu

    Turbokeu Minimodder

    Joined:
    30 Jul 2002
    Posts:
    347
    Likes Received:
    2
    We are perfectly well, thanks.
    I can not say the same about my financial situation... :waah:

    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 :)
     
  19. Mike K8LH

    Mike K8LH What's a Dremel?

    Joined:
    17 Nov 2005
    Posts:
    36
    Likes Received:
    0
    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
    
     
  20. SideWeaver

    SideWeaver What's a Dremel?

    Joined:
    14 Feb 2006
    Posts:
    17
    Likes Received:
    0
    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. :confused:

    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
     

Share This Page