WatchUSeek Watch Forums banner

1 - 20 of 73 Posts

·
Registered
Joined
·
39 Posts
Discussion Starter · #1 ·
Hi everyone,

I think some people might be interested in my latest project. Its still ongoing development, but hardware-side everything is set and maybe someone will point out issues I had not thought of yet.

I wanted to source a HAQ movement for a unique watch assembly, but like many others just could not get my hands on one. Watch manufacturers seem to think this (really not very complicated) technology should be some holy knowledge. Welp, time to get the soldering iron out I guess.

The goal is to fit an existing quartz movement with new electronics that include thermocompensation that can be calibrated to 10 spy or better. The heart of the new circuit board is a low-power microcontroller, in this case a Texas Instruments MSP432 that comes with a 16-bit ADC for accurate temperature readings and is based on a Cortex M4 core which I have some experience with. Temperature is sensed with external platinum RTDs. Although sensitivity is not the best, their excellent long term stability really doesn't leave me any choice here.

"Host" movement is an ETA 955.612, since I need 3V Lithium.

With the choice of the µC comes one problem: available packages are rather large (except the 0.5 mm pitch BGA - but good luck finding an affordable PCB supplier for that). My first intention was, to replace the existing circuit board in the movement, but there is just not enough space to fit everything without sacrifices. Also resoldering the coil is a something I decided I want to avoid. So the solution is a second board mounted between the circuit and the battery holder. Only modification to the original circuit is cutting the coil traces and soldering two tiny wires instead to connect to the addon board. This adds a total of about 2mm to the movement height, but since I like divers and similar bulky cases this doesnt bother me so much.

Right now I am waiting for my PCBs to arrive from the manufacturer to solder everything and start the software development.

Below some images of the addon board and a connector board to easily program the µC and provide a low-jitter pps signal for calibration either with an adafruit GPS module or any other external source via SMA or BNC connector.

board_gerber_preview.png
conn_board.png

And a measurement of the stepper motor signal from the original ETA 955.612. Seems to be pretty standard PWM with 50% duty cycle that should be replicable no problemo. The coil current is measured over a 330 Ohm resistor in series.

voltage.jpg current.jpg

From my rough calculations a CR2016 battery should last for 3+ years which can be doubled if a CR2032 fits into the final casing.

Feedback and Criticism is welcome ;)
 

·
Registered
Joined
·
1,604 Posts
Great project.
Funny how you've got the motivation. "I don't need your permission to buy, I can make this myself"

We're all getting too lazy just buying ready made stuff.

Tell me how the temperature correction will flow from the MSP432 to the ETA board. Don't you need to know the internals of the ETA for that?
 

·
Registered
Joined
·
39 Posts
Discussion Starter · #6 ·
Tell me how the temperature correction will flow from the MSP432 to the ETA board. Don't you need to know the internals of the ETA for that?
No, the ETA board is completely disconnected and unused. Only the coil must be somehow connected to the new board, and that works best by cutting two traces on the ETA board and connecting two high-current GPIOs from the MSP432 there. Everything from clock generation to thermocompensation and stepper motor control is done on the new board.
 

·
Registered
Joined
·
1,604 Posts
No, the ETA board is completely disconnected and unused. Only the coil must be somehow connected to the new board, and that works best by cutting two traces on the ETA board and connecting two high-current GPIOs from the MSP432 there. Everything from clock generation to thermocompensation and stepper motor control is done on the new board.
That makes sense. Hence the PWM tests.
I should have picked that up.

Any plans for asservicement?
I have no idea how much one can save with that. All of them seem to be doing it.
 

·
Registered
Joined
·
39 Posts
Discussion Starter · #8 ·
Very interesting link, thank you. I actually thought about step detection, but did not pursue this further. Reason is, that the microcontroller would have to stay in active mode a lot longer drawing a lot of current. Even without this issue, the power budget is roughly divided like this: 1 microamp for the stepper motor, 1.2 microamp for the clock generation and 0.5 - 1 microamp for the TC measurements and calculations. So even if the motor current could be cut in half, the overall effect would not be so huge.
In addition the step detection would probably need a lot of work to reach the required reliability, since even one wrong detection per million steps would decreasy accuracy to 20 spy. Maybe I will think about it again if I do another version. Do you know how the detection is usually implemented?
 

·
Registered
Joined
·
1,604 Posts
Very interesting link, thank you. I actually thought about step detection, but did not pursue this further. Reason is, that the microcontroller would have to stay in active mode a lot longer drawing a lot of current. Even without this issue, the power budget is roughly divided like this: 1 microamp for the stepper motor, 1.2 microamp for the clock generation and 0.5 - 1 microamp for the TC measurements and calculations. So even if the motor current could be cut in half, the overall effect would not be so huge.
In addition the step detection would probably need a lot of work to reach the required reliability, since even one wrong detection per million steps would decreasy accuracy to 20 spy. Maybe I will think about it again if I do another version. Do you know how the detection is usually implemented?
The Witschi document glances over it a bit.

There are other additional(?) methods being used to check the position of the hands.

Those corrections on missed steps are quite frequent. They gave me a headache since I use them for rate calculation.

Screenshot_20180818_212415.png
 

Attachments

·
Registered
Joined
·
39 Posts
Discussion Starter · #10 ·
I see, thanks for sharing. This might actually be no too hard to implement, although not immidiately possible with my current board layout. On the other hand I think my next step would be to include an energy harvesting mechanism, probably solar, before working on fine tunings like this. Overall the battery performance would improve by 20% best case - definitly worth a look, but also not the most important thing on the list.
 

·
Registered
Joined
·
1,604 Posts
I see, thanks for sharing. This might actually be no too hard to implement, although not immidiately possible with my current board layout. On the other hand I think my next step would be to include an energy harvesting mechanism, probably solar, before working on fine tunings like this. Overall the battery performance would improve by 20% best case - definitly worth a look, but also not the most important thing on the list.
Makes perfect sense. You don't need all the fancy stuff straight away.

How do you plan to measure the temperature effects?

This project measured a few data points and deduced the model from it.

It gets you going quickly. I can't remember if the model was an accurate description.
 

·
Registered
Joined
·
39 Posts
Discussion Starter · #12 ·
Makes perfect sense. You don't need all the fancy stuff straight away.

How do you plan to measure the temperature effects?

This project measured a few data points and deduced the model from it.

It gets you going quickly. I can't remember if the model was an accurate description.
The plan is to provide a stable "pulse per second" singnal from any external source, set the device to calibration mode and then just cool/heat it. Should take a few days at most to reach desired accuracy. The phase drift between internal and external clock is monitored and a lookup table with a few hundred datapoints is generated. Maybe instead of a lookup table one could also fit a quadratic curve to the datapoints. The uC has special registers for correction values for the RTC that will be updated according to current temperature every few seconds.
The ezChronos method is of course easier to do, but I'm impatient and also happen to have a GPS synched clock generator around ;)
 

·
Registered
Joined
·
1,604 Posts
The plan is to provide a stable "pulse per second" singnal from any external source, set the device to calibration mode and then just cool/heat it. Should take a few days at most to reach desired accuracy. The phase drift between internal and external clock is monitored and a lookup table with a few hundred datapoints is generated. Maybe instead of a lookup table one could also fit a quadratic curve to the datapoints. The uC has special registers for correction values for the RTC that will be updated according to current temperature every few seconds.
The ezChronos method is of course easier to do, but I'm impatient and also happen to have a GPS synched clock generator around ;)
You'll be a busy person. I guess you're writing the code for the calibration.
I hope the MSP432 is close enough to 'real time'.
 

·
Registered
Joined
·
87 Posts
Very interesting thread, thanks for sharing!

I suppose that if you get the thermocompensation working well, the biggest limiting factor to long term accuracy for such a project may be crystal ageing.

That is unless you are able to model this accurately somehow or you have inherently low PPM/year drift in the crystal you are using - any thoughts on how you will handle this aspect?
 

·
Registered
Joined
·
39 Posts
Discussion Starter · #15 ·
Very interesting thread, thanks for sharing!

I suppose that if you get the thermocompensation working well, the biggest limiting factor to long term accuracy for such a project may be crystal ageing.

That is unless you are able to model this accurately somehow or you have inherently low PPM/year drift in the crystal you are using - any thoughts on how you will handle this aspect?
Thats a tough one. I think I'll fast-age the quartz by running it at 80°C for a week or two while observing the frequency drift. I think from this data its possible to determine if a correction is even possible, and how big the impact is.

I started programming today on a breadboard prototype and promptly discovered a mistake in the design: I thought the reference inputs of the ADC would be differential as well - they're not. Adios ratiometric measurement :(( Looks like i need to add a opamp if the temperature measurement turns out too noisy.
 

·
Registered
Joined
·
288 Posts
Thats a tough one. I think I'll fast-age the quartz by running it at 80°C for a week or two while observing the frequency drift. I think from this data its possible to determine if a correction is even possible, and how big the impact is.
Thermal compensation method sounds spot-on.
As for age-drift it would be interesting to repeat the procedure after a year and see by how much the temperature-compensation-curve has changed.
A simple test-oven with temperature-variation and reference-oscillator could allow complete auto-re-calibration of the system when required.

My suspicion is that better than 10spy (with a high degree of confidence) over a 20C temperature-range using a 'tuning fork' crystal needs the kind of individual compensation-curve measurement that you describe.
 

·
Registered
Joined
·
87 Posts
Thats a tough one. I think I'll fast-age the quartz by running it at 80°C for a week or two while observing the frequency drift. I think from this data its possible to determine if a correction is even possible, and how big the impact is.
Sounds like a good idea to pre-age the reference and move the drift to a hopefully more linear part of the ageing curve. That is assuming it has not already undergone an accelerated factory burn-in I suppose.

I started programming today on a breadboard prototype and promptly discovered a mistake in the design: I thought the reference inputs of the ADC would be differential as well - they're not. Adios ratiometric measurement :(( Looks like i need to add a opamp if the temperature measurement turns out too noisy.
Just a thought here - are you sure that a high accuracy thermistor would not be a suitable alternative for temperature sensing? Bit more fiddly to characterise perhaps, being a non-linear device but may be easier to interface to ADC without a differential op-amp setup.
 

·
Registered
Joined
·
39 Posts
Discussion Starter · #19 ·
Just a thought here - are you sure that a high accuracy thermistor would not be a suitable alternative for temperature sensing? Bit more fiddly to characterise perhaps, being a non-linear device but may be easier to interface to ADC without a differential op-amp setup.
Great suggestion! I originally chose platinum because of the supposedly better long-term stability, but after reading up on this I think the 1-2 millikelvin drift per year in thermistors would be totally acceptable. If the compensation is done with a lookup table of ADC-reading vs frequency correction, it would even be not necessary to have calibrated temperature readings, so the nonlinear curve would not matter. Its the opposite for quadratic fitting though, and before I haven't settled on one method here, I will stay with the linear platinums. With 64x oversampling I have a noise free resolution of about 0.1°C at the moment, which should be more than enough.
 
1 - 20 of 73 Posts
Top