The WWVB signal is broadcast as a 60 kHz carrier that is AM modulated with a time code frame that is updated once per minute. The data rate is one bit per second. Along with time code information, the data frame also contains synchronization bits, calendar data, UT1 correction, leap year, and leap second data. The clock design presented here only decodes the time data and daylight savings correction data. The software could easily be modified to include decoding of the other information bits, if desired. The low frequency WWVB signal strength is weak and reception can be problematic. Signal acquisition time is variable, depending on location and atmospheric conditions. Reception is usually best at night between 8pm - 4am. To use the clock, just apply power and wait for reception of the WWVB signal. When the clock receives a complete error-free frame of data, it will automatically reset the display to show the correct time. After the initial time correction, the clock will maintain time even if WWVB reception is lost. As shown in the schematic (pdf format), the heart of the clock is a PIC 16F628 microcontroller running at 4 MHz. Decoded time data is sequentially output from the microcontroller (RA0 - RA3) to the 7-segment decoder/drivers on a 4-bit data bus. The data is output sequentially as seconds, 10s of seconds, minutes, 10s of minutes, hours, and 10s of hours. The microcontroller outputs (RB1, RB2, RB3) route a 10 uSec strobe pulse from RB4 out to each of the 7-segment decoder/drivers at the proper time to latch the data bus values. Seconds and 10s of seconds display values are updated once per second. Minutes, 10s of minutes, hours, and 10s of hours are updated once per minute. The display consists of 1" red-orange LED 7-segment displays. The decimal points on the displays are used to form colons to separate the seconds, minutes, and hours. The 10s of seconds and 10s of minutes displays are mounted upside down to form the upper colon dots. The WWVB receiver is a C-MAX model CMMR-6 and is available from Digi-Key (www.digikey.com) as part # 561-1014-ND complete with loopstick antenna. Data output from the receiver is sampled by the microcontroller on RB0.
Construction
Two versions of this clock have been constructed: one utilizing point-to-point wiring and another using a printed circuit board (PCB). Both configurations demonstrate reliable performance. It is essential to position the receiver away from noise sources and to keep wire or trace lengths short to minimize inductance. The receiver is sensitive to magnetic fields generated by power supplies, which can interfere with its operation. A 9V, 200 mA wall adapter was employed instead of an internal power supply to mitigate this issue.
The PCB was designed using Free PCB software (www.freepcb.com). The layout integrates both the main board and the display board into a single design, reducing the cost associated with producing two separate boards. The PCB was manufactured by sending the Gerber files to www.4pcb.com, utilizing their "bare-bones" process, which excludes solder mask and silk-screen printing. The display board can be detached from the main board and mounted at a right angle, with connections made using the provided pads.
This clock receives time broadcasts from the WWVB transmitter located in Fort Collins, CO, and automatically synchronizes its internal time with the WWVB time. It maintains local time even when the WWVB signal is lost. This specific version is configured for Pacific Standard Time and automatically detects and corrects for Daylight Saving Time. The time is displayed in a 12-hour format using a 6-digit display comprised of 1" seven-segment LED displays. An indicator for WWVB synchronization is also included. The core of the system is the PIC 16F628 microcontroller, with software written in C. All necessary tools, including schematic editors, C compilers, PCB layout software, and PIC programmers, are freely available for download online.The WWVB signal is broadcast as a 60 kHz carrier that is AM modulated with a time code frame that is updated once per minute. The data rate is one bit per second. Along with time code information, the data frame also contains synchronization bits, calendar data, UT1 correction, leap year, and leap second data.
The clock design presented here only decodes the time data and daylight savings correction data. The software could easily be modified to include decoding of the other information bits, if desired. The the low frequency WWVB signal strength is weak and reception can be problematic. Signal acquisition time is variable, depending on location and atmospheric conditions. Reception is usually best at night between 8pm - 4am. To use the clock, just apply power and wait for reception of the WWVB signal. When the clock receives a complete error-free frame of data, it will automatically reset the display to show the correct time. After the initial time correction, the clock will maintain time even if WWVB reception is lost. As shown in the schematic (pdf format), the heart of the clock is a PIC 16F628 microcontroller running at 4 MHz. Decoded time data is sequentially output from the microcontroller (RA0 - RA3) to the 7-segment decoder/drivers on a 4-bit data bus.
The data is output sequentially as seconds, 10s of seconds, minutes, 10s of minutes, hours, and 10s of hours. The microcontroller outputs (RB1, RB2, RB3) route a 10 uSec stroble pulse from RB4 out to each of the 7-segment decoder/drivers at the proper time to latch the data bus values.
Seconds and 10s of seconds display values are updated once per second. Minutes, 10s of minutes, hours, and 10s of hours are updated once per minute. The display consists of 1" red-orange LED 7-segment displays. The decimal points on the displays are used to form colons to separate the seconds, minutes, and hours. The 10s of seconds and 10s of minutes displays are mounted upside down to form the upper colon dots. The WWVB receiver is a C-MAX model CMMR-6 and is available from Digi-Key (www.digikey.com) as part # 561-1014-ND complete with loopstick antenna.
Data output from the receiver is sampled by the microcontroller on RB0. Construction
I have built two of these clocks, one using point-to-point wiring and one using a pcb. Both versions perform well. Just keep the receiver away from noise sources and the wire / trace lengths short to minimize inductance.
I found that the receiver is also sensitive to magnetic fields produced by power supplies. I used a 9V, 200 mA "wall-wart" instead of an internal power supply to eliminate this problem. My pcb was designed using Free PCB software www.freepcb.com. The artwork contains both the main board and the display board on a single layout to save the cost of two separate boards. I purchased the pcb from www.4pcb.com by sending them the gerber files and using their "bare-bones" process.
The "bare-bones" process does not include solder mask nor silk-screen. Just cut off the display board from the main board and mount it at a right angle to the main board and wire them together using the pads provided. Receives time broadcast from WWVB, Fort Collins, CO
Auto synchronizes internal time with WWVB time
Maintains local time when WWVB signal is lost
This version is for Pacific Standard Time, and auto detects/corrects for Daylignt Savings Time
6-digit display of hours, minutes, seconds using 1" seven-segment LED displays
WWVB sync indicator
Time display is in 12-hour format
PIC 16F628 microcontroller
Software written in C
All tools (schematic editor, C compiler, PCB layout software, PIC programmer are free and available for download on the web.
This is a voltage controller oscillator that was designed as a wide range oscillator to generate clock pulses for a stepper motor drive system. It does however have some interesting features. The original application used a stepper motor for...
A matrix keypad is a highly useful and user-friendly component in the design of applications such as calculators and telephones. It consists of push-button switches arranged in rows and columns. For instance, interfacing a 4x4 (16 keys) matrix keypad...
Building a serial voltage meter to measure from 0 to 5 volts DC is straightforward. Utilizing MeLabs PicBasic and Microsoft Visual Basic Version 5 Pro is essential, as the MSComm control required for communication is not available in the Visual...
The previous version of this device used pulse width modulation (PWM) to control the power from the five solar panels to charge the battery bank. Under full sun conditions, the MOSFETs got a bit warm and the whole unit...
I found some similar circuits but aren't good enough for me. Some circuits measure the water's resistance to determine the level. That is dangerous for drinking water (contamination) or explosive liquids because electricity is in contact with water. The...
This is the first electronic circuit designed from scratch, marking the initial experience with programming a microcontroller (MCU), the first application written in assembly language, and the second homemade printed circuit board (PCB). While it is common for individuals...
Warning: include(partials/cookie-banner.php): Failed to open stream: Permission denied in /var/www/html/nextgr/view-circuit.php on line 713
Warning: include(): Failed opening 'partials/cookie-banner.php' for inclusion (include_path='.:/usr/share/php') in /var/www/html/nextgr/view-circuit.php on line 713