[Back to Home Page]
Simple xtal oven for accurate clocks
A one-transistor xtal oven gives stable xtal temperature for very
Roman Black - 12 Feb 2008
What does it do?
This is a very simple and easy to make temperature controller and heater
to be attached to a xtal (crystal). The xtal is normally used to clock
a microcontroller (PIC or ATMEL etc).
Normally xtals provide an accurate clock to 50 or 100 PPM (parts per million)
making them useful for real-time clocks, like in your wristwatch. However
their frequency output changes with temperature.
This circuit keeps the xtal at a constant temperature - commonly called
a "xtal oven" also called an "Oven Controlled Xtal Oscillator" or "OCXO".
Hence the xtal error is reduced to 1 - 10 PPM and the clock will keep
almost perfect time.
Thsi circuit can be built with very common cheap parts and means you
don't have to find or buy an expensive xtal oven.
Coupled with my 1-sec PIC timer algorithm HERE
you can use ANY value of xtal to build a very high accuracy clock.
How does it work?
Three small resistors are glued to the body of the xtal. These act as
"heater elements" and get warm when current is passed through them
and heat the entire xtal body.
This current is controlled by a little darlington transistor. The
temperature is sensed by a cheap NTC thermistor, which controls the
current; increasing current if too cold, decreasing current if too hot.
Simple negative feedback.
Beacuse the time constant is slow, determined by the thermal mass (mechanical
time constant) the circuit stabilises to a regulated temperature
at about 35'C (about body temp, slightly above room temp) and remains
at that temperature at all times, unless exposed to a temperature extreme
that it cannot cope with. This is designed for indoor use and with the parts
shown has plenty of range to cope with typical indoor temperatures.
Clever Roman Black-style minimum-parts shortcuts; A single transistor
seems a poor choice for a temperature controller as it's performance
changes with temperature! However by including the transistor itself
in the thermal mass, the transistor is now kept at a constant regulated
temperature like the other parts!
To look into this further; the NTC thermistor (and the other resistors)
act to reduce the heater current as temp increases. This is the desired
effect. However the transistor tries to increase the current with temp
increase, the opposite to the desired effect! I was worried that this
may be a problem until I had done enough testing with the actual device,
but there was no problem! It acts like a balance; the thermistor (NTC of I)
tries to do the "right thing" and the transistor (PTC of I) tries to do
the "wrong thing" and because the thermistor has a MUCH greater effect
on operation the whole circuit acts globally as (NTC of I) and it works.
How to make it!
TO-92 (small) NPN darlington transistor (any type, or 2 normal NPN's
wired as darlington)
cheap NTC thermistor (I used DickSmith 100k type, =55k @ 40'C)
0.01 to 0.1uF small capacitor (value not critical!)
3x 39 ohm resistors
araldite (5 minute epoxy)
(for adjustment) 150k resistor, 220k trimpot, multimeter
1. Glue the 3 heater resistors and thermistor to the xtal body with
TINY spots of superglue. Glue the thermistor in good contact with the
xtal body, and touching the 2 heater resistors on that side of the xtal.
Cure the superglue for a few minutes under a warm desk lamp.
2. Glue the transistor (or 2 if you make your own darlington) to the
3. Using pointy pliers gently bend the legs to the right position and
trim to length for neat construction. Put a small spot of solder on
the joins and check with magnifying glass. Above you can see the green
thermistor on the right (between the 2 resistors) and the black
transistor and 1 resistor on the left.
4. Trim the capacitor leads and solder it across the thermistor.
5. Hook up 2 short power wires; the +5v end of the TOP heater resistor
(this is the +5v connection) and the 0v (gnd) is connected to the emitter
of the transistor (see schematic).
6. Connect the 100k and 220k trimpot in series (chain) and connect
them from +5v to the base of the transistor. See schematic.
7. Turn the trimpot to centre and connect REGULATED +5v power through
a 50 mA ammeter (multimeter on 200 mA range will do).
8. (See above photo - testing and adjusting)
Adjust trimpot to about 15mA total current draw. Allow temperature
to stabilise (may take 30 seconds) and adjust the trimpot again if needed.
The trimpot sets the temperature of the xtal, you can measure it
if you have a thermometer (I use an infrared optical thermometer),
otherwise 15mA raises the xtal about 8'C above room temperature
so you can work from that.
9. Now disconnect power and disconnect the trimpot and measure it, then
replace with a fixed resistor to reduce size and make it neater
and more reliable.
10. Test it still works with just the fixed resistor, I chose
220k which regulated at about 35'C. Test that it draws less current when
warmed by a desk lamp, and draws more current when cooled by a fan.
If it all tests ok, shorten all the leads and make it more compact
and neat ready to cover with epoxy.
11. Put a thick layer of araldite (5 minute epoxy) all over the whole
thing but make sure your 2 (or 3) xtal leads and the 2 power leads come out
dry so you can solder to them later! The araldite forms a decent thermal
conductor and makes the entire circuit into one thermal mass.
12. Cure the araldite under a desk lamp (see above) at "warm sun"
temp (50'C) for half an hour or so. Then test it again and hope you
didn't mess it up! You can clearly see above the green thermistor
surrounded by 2 heating resistors.
13. Cover the entire xtal oven with generous layer of styrofoam
insulation. This reduces its power consumption. Seal any air gaps
with more epoxy or silicone etc.
14. Cover with aluminium foil or other RF shield, wrap a ground wire
around that and glue in place (optional).
Note! I haven't covered this one with styrofoam yet until I build the
clock because I want to check size and clearances etc. I did wrap it
in a large loose wad of tissue paper (for testing) and current
consumption dropped a few mA as expected.
Overall, the xtal oven does seem to work really well!
Heating or cooling it performs exactly as expected; the heater
current responds appropriately and my infrared thermometer says it
remains at 35'C at all times. Success!
Uses for the xtal oven
I built mine for a precision real-time clock for my loungeroom. This circuit
will also be handy for anyone building my
Binary Clock Kit or building their own
clock using my 1-sec PIC timer algorithm.
If you are making your own clock, you will need to calibrate
your software to match the new exact xtal frequency. I suggest using a
GPS, these display (and serial output) a time code that is locked to the
atomic clocks on the GPS satelites. Adjust it once a week and if it
gains/loses less than a second a week that will be less than a minute a
year error. With a little effort to calibrate it, your xtal oven clock
should be accurate to a few seconds a year.
You could also retrofit this circuit to an existing clock, or a test
instrument like a frequency meter. Or certain amateur radio (HAM)
equipment that needs a stable frequency. All it requires is a +5v regulated
supply and 0 - 40 mA, (usually less than 20mA).
Adapting my design for SERIOUS USE
If you need more serious temperature control, especially for outdoor use
with large temperature variations, the circuit needs to be improved.
I suggest using more current through the heater resistors (reduce
their resistance), obviously to cope with lower (MIN) temperatures you need
more heater power. Good thermal insulation will help both in performance and
to reduce total current needs.
To cope with higher (MAX) temps you need to run the xtal at a higher
temp than any temp the device will experience. If it is to run in
a car or robot in the hot sun this might be a considerable temperature.
Again this may involve increasing the power to the heater resistors.
Finally you might want to switch to a higher precision temperature
controller, ie use a 8-pin comparator chip instead of a single
transistor! Either way you can expect to do a lot of temperature testing.
It might be easier just to buy a commercial OCXO providing it can handle
your temp range needs.
So why not just BUY a xtal oven??
Where's the fun in that?? :) And anyway, I built this in about an hour
from $1 worth of parts. A commercial OCXO costs a LOT more than that
with postage and would have taken a week or more to get here.
My circuit is also more energy efficient than commercial OCXO products
and only needs a few mA as it was tailored for my needs (ie low power
indoor use within a limited temp range).
And this way I got to pick my own xtal frequency too.
- end -
[Back to Home Page]