Author Topic: Modifying an Inexpensive Clock I like to be more accurate  (Read 3920 times)

0 Members and 1 Guest are viewing this topic.

Offline MikeK

  • Super Contributor
  • ***
  • Posts: 1314
  • Country: us
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #25 on: September 04, 2022, 05:57:48 pm »
You may wind up replacing one 10pF with a 15 or 22pF and a variable in place of the other.  A pair of 10pF seems much too low for a watch crystal.  Note that the frequency and capacitance are inversely related...In order to lower the frequency you increase the capacitance.  I usually wind up with a pair of 22pF for a watch crystal.

CL = (C1 x C2) / (C1 + C2)   +  CSTRAY
 
The following users thanked this post: RubyRhod

Offline RubyRhodTopic starter

  • Contributor
  • Posts: 22
  • Country: us
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #26 on: September 04, 2022, 06:47:29 pm »
Thanks Mike!  I will replace one with a variables as you suggest and roger that on the inverse relationship.  I wonder if trimmers are "NPO" or not?

Something odd about the current limiting resistors on the alphanumeric displays.  Some of my undiagnosed dyslexia on display when I read the color code and also with respect to the resistors I ordered.  The resistors were actually 75 ohms, for some strange reason I ordered 47 ohms, and the nomenclature on the PCB for the 40 resistors read 33 ohms.  As predicted by some of the folks trying to help me out, there was no change in the relative brightness of the columns and rows of LEDs.
 

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 11258
  • Country: us
    • Personal site
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #27 on: September 04, 2022, 10:32:43 pm »
How can you say that it is low when there is literally zero information on the design of that oscillator? It may have some intrinsic capacitors. It is not even documented to work with 32 kHz crystal with two capacitors. The only documented configuration for 32 kHz is one 10 pF capacitor.
Alex
 

Offline MikeK

  • Super Contributor
  • ***
  • Posts: 1314
  • Country: us
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #28 on: September 04, 2022, 11:43:30 pm »
How can you say that it is low when there is literally zero information on the design of that oscillator? It may have some intrinsic capacitors. It is not even documented to work with 32 kHz crystal with two capacitors. The only documented configuration for 32 kHz is one 10 pF capacitor.

All of the watch crystals I have ever used were spec'd for a load capacitance of about 10 to 12pF (if I remember right).  A quick check of 32.768kHz crystals online show a spec'd load capacitance of 12.5pF.  This results in C1 and C2 being about 22pF.  So that's how it seems low to me.  I wasn't declaring from the mountaintop that "I sayeth it be too low."
« Last Edit: September 04, 2022, 11:58:06 pm by MikeK »
 

Offline MikeK

  • Super Contributor
  • ***
  • Posts: 1314
  • Country: us
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #29 on: September 05, 2022, 12:03:34 am »
By the way, keeping one 10pF and using a 22pF variable only gets you to a CL of about 7pF.  A 15pF and a 22pF gets you to about 9pF.  So stick the variable in there and don't be surprised if you max it out and have to replace the 10pF with a fixed 15pF or 22pF.
 

Offline RubyRhodTopic starter

  • Contributor
  • Posts: 22
  • Country: us
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #30 on: September 13, 2022, 02:09:22 pm »
I replaced C2 with a 4-27pf variable.  I set the variable to mid-range and let the clock run for a couple of days and noticed little to no change in the frequency of the oscillator.  Maybe I got lucky in setting the variable to the value of the fixed or maybe it's really going to be a challenge pulling the crystal's frequency.  Your thoughts?
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 6202
  • Country: ro
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #31 on: September 13, 2022, 02:20:07 pm »
Put the variable C in parallel with the Quartz, and the clock will run slightly slower.

The two small C to ground are there mostly to have a reliable and fast starting of the oscillator, they don't affect the frequency that much.
 
The following users thanked this post: RubyRhod

Offline RubyRhodTopic starter

  • Contributor
  • Posts: 22
  • Country: us
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #32 on: September 13, 2022, 02:36:26 pm »
Put the variable C in parallel with the Quartz, and the clock will run slightly slower.

The two small C to ground are there mostly to have a reliable and fast starting of the oscillator, they don't affect the frequency that much.

Many thanks for the point out!  I'll give it a shot!
 

Offline RubyRhodTopic starter

  • Contributor
  • Posts: 22
  • Country: us
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #33 on: September 27, 2022, 02:43:46 pm »
I got a low value (2pf to 18pf) trimmer capacitor and replace c2 with the variable.  Little to no change in the timing of the clock regardless of the setting of the cap.  I then put the cap in parallel with the crystal and was able to get the clock to slow down but way to slow even at the 2pf minimum setting.   I decided to order several 1 pf NPO multi-layer ceramic caps from Mouser and start playing with paralleling the crystal with a capacitance value of my own making.  One (1) pf was still too much capacitance as the clock still ran slow.  I than configured a 0.5 pf cap and that got me close although the clock ran a second or so fast in three days.

I finally found a vendor that manufactures multi-turn trimmer capacitors with sapphire dielectric material in the proper range I was looking for, in this case I ordered a nine turn  0.3 to 1.3 pf SMD trimmer from Digikey to put across the crystal.  I should be able to tweak to my hearts content but need to make sure the clock is in a temperature-controlled environment from here on out  :horse:
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 6202
  • Country: ro
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #34 on: September 27, 2022, 06:32:47 pm »
You can get a smaller capacitance by connecting them in series.  Cfinal = (C1*C2)/(C1+C2).

For example:  2.2pF series with 2.2pf series with 2...18pF = 0.709...1.365pF

Another advantage of putting more capacitors in series, aside from being cheaper to procure a bigger trimmer and getting a finer adjustment, would be that you may find different types of capacitors, some with positive and some with negative temperature coefficients, so to lower the overall thermal coefficient when connecting them in series.

However, even a Rubidium disciplined clock will have drift, so you may want to look for some other clock that can self adjust their error, either by the help of time broadcasting radio towers, or GPS, or maybe over NTP if Internet is available.  Running a solution that synchronizes from outside would be cheaper and guaranteed more accurate than running an ovenized 32768 tuning fork.

Meanwhile, while you are waiting for the newly ordered parts to arrive, why don't you try to wound two wires together as I described earlier, I remember it was working pretty well once trimmed.  It takes nothing to coil two wires together.

Either way, good luck getting the perfect clock, but remember there is a reason for why the guys into precision clock are called "time nuts", or why there are sayings like "A man with a watch knows what time it is. A man with two watches is never sure."  ;D

By the way, there's a great documentary about the need of accurate timing and the struggle of how to get this right for the very first time, and how it all started when a big prize was set for it:

Nova Lost At Sea The Search For Longitude PBS Documentary
 
The following users thanked this post: RubyRhod

Offline RubyRhodTopic starter

  • Contributor
  • Posts: 22
  • Country: us
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #35 on: September 27, 2022, 08:31:09 pm »
Hi RoGeorge.  I will try your idea of the two wires for fun and yes, you are right, even the best clocks drift.  Thanks again for the reply!
 

Online artag

  • Super Contributor
  • ***
  • Posts: 1070
  • Country: gb
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #36 on: September 27, 2022, 11:49:11 pm »
An alternate idea... replace the Holtek with an Arduino or a Wifi capable MCU module ..

That would be the ideal solution without a doubt but one that is way out of my league skill-wise.  I admire those of you who have the skill to pull off a modification like that!


Another option would be to leave the original microcontroller in place and add an ESP32 or similar. You should be able to find existing example code which will obtain accurate time from the internet and provide an event in the code that occurs once per second.

You can then set up a timer to generate a signal close to 32768Hz  but slightly variable above or below. You can then switch between speeds to generate 32768 pulses every second. If there is a small error, you can accumulate it until large enough to correct with a swing the other way. The only requirement is that the long-term average is exactly 32768.

This signal is then fed to the xtal input in the same way as  your tcxo. The result is better than a tcxo for long-term drift but using existing or borrowed code (in the old micro and the new esp32) rathervthan having to write the whole thing from scratch.

It may also be possible to source a 32768Hz output from a GPS-disciplined oscillator - I can't see an appropriate divider in the picdiv range (http://www.leapsecond.com/pic/picdiv.htm) but I know some exist that aren't listed on that page - you'd want 'pd30'.

 
« Last Edit: September 28, 2022, 12:10:07 am by artag »
 
The following users thanked this post: RubyRhod

Online artag

  • Super Contributor
  • ***
  • Posts: 1070
  • Country: gb
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #37 on: September 28, 2022, 12:00:36 am »
The matrix brightness is because of the matrix design, such that the current limiting resistor is shared across the whole column, so the lit LEDs within a column are essentially in parallel. The more LEDs lit, the less current per LED. I’ve seen the exact same thing on eBay/Aliexpress clock kits I’ve built.

Ideally, you would put all the necessary resistance in the row circuit and none in the column circuit. Then the column drive is made strong enough to supply all possible leds in the column. They may in fact have done this, but have used poor drivers (perhaps just microcontroller pins) that can't provide enough current. You can add an extra transistor per  column to improve the situation.

You might think that because the brightness varies even at lower settings, where the column driver is less stressed, that this isn't the problem. But the brightness setting is probably not done by changing the current, but by changing the width of the multiplex signal. This means that even at low brightness settings the current peak is as large - it's just narrower, so it still results in column drive voltage drop.

 
The following users thanked this post: tooki, RubyRhod

Offline ledtester

  • Super Contributor
  • ***
  • Posts: 3036
  • Country: us
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #38 on: September 28, 2022, 01:27:18 am »
I have one of these clocks. I picked it up from a thrift store a while ago and it's been sitting around waiting for me to play with.

Here's what I've found out so far...

- The "vertical" wire jumper closest to the coin cell holder is ground (see pic below)
- The wire jumpers next to the "8550" transistors are directly connected to GPIO pins of the HT48R mcu
- The left ends of the 1K resistors next to the "1300" transistors also are directly connected to GPIO pins

Here is a pic of how I probed some of the GPIO lines:



And here is a scope trace of those probes:

1601782-1

I also probed the wire jumpers next to the "8550" transistors, but their waveforms were a little funnier looking.

The point is this... one way to measure the effect of your crystal tweaking is to probe the signal at the base of the 1300 transistors. If you have a scope or frequency counter with high enough resolution you can get more immediate feedback on the effect you're having on the crystal.

From the scope trace I took it is quite likely that the frequency at the base of the 1300 transistors is designed to be exactly 64 Hz when the crystal frequency is 32.768 KHz.

The scope trace shows the enable signals for two different rows (or maybe columns) and you can tell that they have the same period but are staggered in time.

Update: If you don't have a frequency counter or scope you can use an Arduino to time the period of the 1300 signals.
« Last Edit: September 28, 2022, 01:50:20 am by ledtester »
 
The following users thanked this post: RubyRhod

Offline ledtester

  • Super Contributor
  • ***
  • Posts: 3036
  • Country: us
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #39 on: September 28, 2022, 01:37:29 am »
And, fwiw, here is a close-up of the oscillator section on my board:

 
The following users thanked this post: RubyRhod

Offline RubyRhodTopic starter

  • Contributor
  • Posts: 22
  • Country: us
Re: Modifying an Inexpensive Clock I like to be more accurate
« Reply #40 on: October 01, 2022, 07:54:17 pm »
And, fwiw, here is a close-up of the oscillator section on my board:

(Attachment Link)

Thanks for that.  Is your clock set up as a 12hr or 24hr clock?  Mine is 12hr with a resistor installed in the "10mm" jumper section that is not populated on your board.

Regarding the timing, I connected two 1pf NPOs in series (0.5pf total) across the crystal and the clock is hovering around +/- 0.25 seconds in a week's time.

I have a .3pf to 1.3pf Johanson Giga-Trim multi-turn trimmer that I will probably install over the next couple of days.

I appreciate all the other suggestions about how to replace the crystal with other timing sources but writing and implementing code is a little beyond my current skill set.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf