Stabilising Crystal Oscillators 

The "X-Locker" Project


October/November 2010



Crystal oscillators are stable - aren't they ???? After all, that is what the crystal does - controls the frequency.... and doesn't shift frequency regardless...   Everyone seems to assume that they are "rock-solid" - but are they really "stable" ???   In my experience, definitely no. In many other's experiences, a definite no also. Just for now, let's assume that what we are referring to is frequency drift rather than a shift in RF output level. 


Crystals (and crystal oscillators ) do drift in frequency depending on temperature, voltage, vibration, thermal attributes and, of course, time. Basically every crystal oscillator will shift frequency to some extent based on the above factors. 


How much drift - or frequency error - is allowable ? The magic number is determined solely by the application. If it is the reference oscillator in an accurate frequency counter then  NONE would be the best answer because what we measure with a counter really needs to be correct. Reality bites a bit here though. 


If we are measuring frequencies in the GHz range ( thousands of MHz ) and our reference oscillator is at, for example, 10 MHz then  even a small error at 10 MHz becomes significant at 1 GHz or 10 GHz... For instance if the oscillator error is just 1 Hz out at 10 MHz then the error at 1GHz is 100 Hz and 10GHz is 1 KHz. Not much of an error really !! Wrong..


That error at 10 MHz is more likely to be 10 Hz, or maybe even 100 Hz, so that 1 KHz at 10 GHz suddenly becomes 10 to 100 KHz. Now you can start to see the magnitude of the problem.


The next contemplation is that the frequency of that crystal oscillator at 10 MHz is likely to drift up - or down - as it warms up. That means that the frequency error is not constant. The problem becomes even more obvious when the oscillator crystal operates at, for example, around 100 MHz. It is even more prone to drift with temperature and the "age-ing" of the crystal means that it may never actually "find" it's correct/stable frequency until it has been powered on for weeks or months, usually continuously, undergoing a "burn-in" (or more correctly-named "age-ing ) effect. 


Ok, how do you stabilise a crystal oscillator ??? 


Some try to use crystal ovens/heaters, in one form or another, to provide a constant temperature environment for the crystal itself thus removing any side effects due to changes in ambient temperature. These "heaters" typically warm the crystal up to the 50 degrees Centigrade point and maintain that temperature fairly closely.  Yes, it works to some extent but drift is still evident over time and during warm-up periods. You might also realise that components other than just the crystal affect the frequency (eg the capacitors ) so all of the componentry that comprises the oscillator should be temperature stabilised along with the crystal. That is usually difficult from a mechanical viewpoint but is certainly desirable.


Is there a drift-free oscillator available ??? No, though some come close. Probably the most common of these is the TCXO ( Temperature Controlled Crystal Oscillator ) and if they are powered on continuously and adjusted to frequency, they do maintain it fairly closely after they have aged.


There is one "free" resource that does provide a 'drift-free' oscillator - and it is described elsewhere on this web site under the title GPSDO ( GPS Disciplined Oscillator ). In brief, the signals from the satellites that provide us with GPS access (for our mapping, and use in our cars and handheld units ) can be utilised to "lock" the frequency of an integrated  10.000000MHz oscillator within 1 part in 1011 or better. That represents 0.01 Hz error at 1 GHz, or 0.1 Hz at 10 GHz.


Yet another page on this web site deals with my experimentation with a PLL (Phase Lock Loop) circuit to replace crystal oscillators in my UHF transverters to get control over the inherent frequency drift. Using full synthesisers does have one drawback - a term we call "phase noise". The VCO in a PLL circuit typically will generate more phase noise than a crystal oscillator at the same frequency. This noise can reduce the effective sensitivity of a receiver and broaden the transmitted bandwidth of the device it is used in.


One semi-obvious solution would be to try to phase-lock the crystal oscillators in these devices - but can it be done easily ???  If we use a good TCXO or a GPSDO to provide a very stable reference frequency, we can "Phase Lock" our crystal oscillator to it and thus achieve the same drift results as the TCXO or GPSDO itself would give at the same frequency.


This topic came up recently in regard to the 106.5 MHz crystal oscillator in another amateur's DB6NT/Kuhne series G2 10GHz transverter. Apparently it just wouldn't stop drifting in frequency. I was asked if I would I be able to "create a circuit" that could be added to it to solve the drift problem ?  That is to "lock the oscillator" to an external frequency reference source


A visit to the Kuhne web site indicated that the new versions of this 10 GHz transverter did have a locking circuit built-in and that the old ones could be stabilised by a completely external unit - at a unit cost of probably $AUD250 each.  Using the concepts from my PLL web page, I thought I should be able to obtain the same no-drift effect for quite a bit lower $$$.  


I realised early in the piece that this PCB had to be pretty small so that it could be fitted inside the 10GHz transverter box assembly and a few hours of using PCB Express gave me a single-sided layout that was just 40mm long and 16mm wide and contained all of the SMD parts required to "phase-lock" the oscillator in this 'contraption', using a varicap to be connected to the crystal oscillator. 


I decided to give the project a name, "X-Locker", just for a change, because I have never nicknamed my projects before. I do get a lot of enquiries from visitors to the web site and it would make it easier to know what they enquired about if they quoted X-Locker.




This is the PCB layout, V1, produced in about 3 hours. All capacitors and resistors are 0603 SMD style. Both IC's are SOIC and the FET is a SOT23. Finest trace is just 0.25mm.


And the initial schematic of V1, subject to change once it has been powered up.


Large view schematic 


Of course, neither the PCB layout or the schematic will help you if you want to build one of these - because the whole device relies on the "firmware" in the PICAXE-08M.


This first one, my prototype, took less than an hour to build up once I had the board produced. It has yet to be made to work - but I'm hopeful.


The theory of operation is quite simple. The PICAXE is used to program the PLL chip, which references against a stable external 10.00000 MHz source/oscillator. The phase detector feeds into a lag filter and then into a varicap diode which, in turn, is connected to the crystal oscillator in the G2  transverter. The output frequency from the oscillator in the G2 is sampled and buffered by a FET input stage to feed back to the PLL chip. If the frequency of the crystal oscillator in the G2 drifts, a correcting DC voltage is derived and applied to the varicap thus altering it's capacitance and drawing the frequency back to the correct value.


The PICAXE/PLL combination has to be programmed so that the final operating frequency is preset accurately, (eg 106.5000000 MHz, rather than 106.500022 MHz ) and that is fairly easily achieved with a final frequency which is a multiple of 100 KHz.  Continuing with the example 106.5 MHz, if the 10 MHz reference signal is divided down to 50.000 KHz, then a total internal divide ratio of 2130 is required from the 106.5 to give the 'variable' input frequency to the PLL chip. 


If the 10 MHz reference is just 1 Hz in error then the 106.5 MHz oscillator is actually 10.65 Hz off frequency. The 10GHz transverter uses a x96 multiplication so that error becomes 1022.4 Hz at 10 GHz. Maybe around 1 KHz at 10 GHz doesn't seem like much of an error - but in reality it is...... Compare that to the numbers quoted above for the GPSDO disciplined/referenced oscillator :  0.001 Hz error at 1 GHz, or 0.01 Hz at 10 GHz.


That is how it works in theory. How about in practice ???





I made up the crystal oscillator circuit used in all of the Kuhne/DB6NT projects (as per above schematic ) and included the buffer amplifier stage. I did note that this circuit will not oscillate unless the drain tuned circuit is truly at resonance so makes it a bit critical to adjust correctly. Beyond that, I "stole" the 96.000 Mhz crystal destined for a 1296 kit and used it as the basis for my testing.  Note that this is a new, non-aged crystal as if it is going to drift, it will do it from the start. It is actually a 40 degree C version, and in my test rig, it will be operating at room temperature.


The output of the buffer stage was monitored on a frequency counter also Tee'd to the spectrum analyser, reading around 96.000 BUT the frequency varied by up to about 0.5 KHz either side of the nominal 96.000 as the drain coil was tuned. The output level also changed considerably too. A little too far in or out with the tuning slug - no oscillation !  At least I had a benchmark of how it worked before adding the X-Locker board.


The X-Locker board requires +5V, ground, a 10.000 MHz reference input, and a sample of the local oscillator signal - in my case I took this directly off the drain of the oscillator FET. The output from the varicap was taken directly to the source connection of the same FET - see above connection lines in RED on the schematic.


The PICAXE-08M was programmed with the latest modification of my control software and I was underway on my evaluation.


Pins 6 and 10 of the TBB206G have been set in the software/firmware to provide a "sample" of the input signals at the phase detector rate. With the 1 MHz reference applied, the pin 6 output was 50.000 KHz on the counter. If the RF signal sample is of sufficient level and frequency, the output at pin 10 should also be 50.000 KHz on a counter IF the oscillator is still running.  This last point is a major point to note : when the X-Locker PCB was attached to the drain connection, the oscillator stopped. I had to wind the tuning slug out to compensate for the extra capacitances introduced by the addition of the board before it would oscillate again.


The voltage on the PD output pin, pin 12, was monitored by a DMM and initially it showed around 5.0V with the RF level peaked on the analyser. By winding out the slug a little, it started to drop showing that the voltage to the varicap was now in control. I adjusted the slug until the voltage was about +0.8V and monitored the frequency on the counter as I "warmed" up the crystal from the 24 degree ambient by gripping it tightly. By rights it should have reached around 38 degrees.


The voltage rose to around +3.2V but the frequency displayed on the counter didn't change. Taking my fingers off the crystal and letting it cool made the voltage drop back to around the +0.8V mark again. I gave the crystal a quick spray with some "freeze" and the voltage went to about -2V but the frequency still didn't change. Letting it warm back up, still no frequency change.


The next test was supply voltage. I was using a variable power supply originally set to +8.0V so I wound out the output voltage to +10V and then up to +13V. The varicap control voltage shifted slightly more positive but the displayed frequency didn't budge.



Three hours after setting the supply back to +8V : the counter still hasn't changed it's reading - not that I would expect it to - as it runs off an external GPSDO-derived timebase.


Notes : I did change the 10pF varicap output coupling to 100pF to obtain a wider frequency control range. The 33nF lag filter component has been reduced to speed up the lock time and an additional 1 megohm resistor has been added as well.  The PCB layout has been updated to allow the fitting "on-board" of a 78L05 TO92 style regulator, if required, as well as the changes noted above and an option to use the -4V rail generated by the PLL chip to be connected to the anode end of the varicap.



From the Kuhne 1.3GHz transverter kit docs : "The proven Colpitts oscillator for 96 MHz uses the FET SST310 in a grounded gate circuit. The frequency is adjusted by the ferrite tuning screw of the coil. The precision crystal heater QH40A mounted on the 40° C thermostat crystal stabilizes the crystal's temperature and keeps the frequency drift in limits. Extra pads are provided for fitting additional capacitors which can be selected for temperature compensation. For normal operations in a restricted temperature change environment the stability is sufficient. But for more serious work an external OCXO (1mW) or the PLL-stabilized oscillator MKU XO 1PLL with 96.000 MHz is required. This external signal can be fed in at the source of the SST310, as indicated in the circuit diagram. In this case the crystal and the heater have to be replaced by an additional SMA female connector."


My solution uses the original on-board crystal oscillator and an external 10 MHz reference to set the frequency stability. If the reference signal is missing, the L.O. usually still works - but is off frequency.  The PCB is small enough to be fitted inside the case of most transverters ( with luck !) and just requires the fitting of an extra SMA coax socket for the 10MHz reference input.


Each X-Locker PCB can be pre-programmed for two different oscillator/crystal frequencies, the one actually being active determined by the presence (or absence) of a jumper on pin 4 of the PICAXE 08M. 


My next task is to build up a couple more "final" version X-Lockers  to fit to a 1296 transverter plus the 10GHz one that started the project.  I'll be back to document those results shortly.......


The X-Locker could also be used to frequency stabilise the likes of the Minikits L.O. boards, which do seem to have a drift issue (from my experience anyway).


My contemplation is that, in due course, I will "market" these fully built and tested X-Locker PCB's as add-ons to those who require an optional drift-stabiliser for their transverter/transceiver. They will be available to suit various common frequencies but can be custom programmed (before shipping) to almost any specific frequency within the X-Locker's frequency range { 1 MHz to 119 MHz }.   The output from a high stability oscillator at (typically) 10.0000 MHz will be required to 'lock' the  X-Locker.  They will not be end-user programmable nor will they be available as a kit of separate parts.


Note that they can also be used to stabilise a stand-alone LC-style oscillator to a single specified frequency. { To prove the point, the 0.22uH RFC + the 96 MHz crystal were replaced by a 5-65pF trimmer in series with a coil of 4 turns closewound, 5mm diameter, and the trimmer adjusted such that the "VCO" was running around 96MHz. It immediately locked !!! }


If you are interested in eventually obtaining one of these built-up PCB's, drop me a line using the "Contact Me" from the LHS menu ( or use this link here ) with the subject X-Locker.  Mention the desired frequency/use so I can gauge where they are needed.....

Addendums :

16 November 2010 

I have been queried about the upper frequency limit of the X-Locker. As standard, it is approximately 119 MHz. It appears that the 5.7 GHz Kuhne G2 transverter kits run a 117 MHz crystal oscillator (or there-abouts) so the basic unit may not work with this. A small "daughterboard" containing just a TBB202G prescaler chip plus a few capacitors has been laid out - and that will go up to around 1GHz - thus allowing the X-Locker to sample from a subsequent frequency multiplier stage or stabilise a high frequency oscillator ( > 120MHz). Note that you can still use the prescaler board option down to around 30 MHz, if necessary, although the PD frequency becomes very low - and the lag filter isn't optimised for that.



This shows the relative board sizes against an Aussie 5 cent coin. The X-locker board layout in this photo is V2a.0



The prescaler layout : RF in at bottom right, +5V power at centre right, prescaler out at top right, modulus divider ratio control at centre left. The earth "plane" must be looped down to the X-Locker PCB, preferably near bottom right and bottom left.


This daughterboard concept has been implemented so that the basic X-Locker board still remains around the 40mm x 16mm size - so will fit in the available space in most transverters.  The daughterboard is then solder-wire-linked down to the main X-Locker PCB and sits above & fixed to the TBB206G chip, increasing the total height by about 3mm.


17 November 2010 :


Today's new version 2b PCB layout revises the 5V regulator from a TO92 style as per the photo above to the SMD style LM78L05D to reduce the vertical "overhead". The PICAXE chip has been moved such that the regulator has been placed in the space created in the top left segment. The TBB202G prescaler has also been added and the FET buffer deleted. I contemplated adding a bit more length to allow the fitting of an MMIC input amplifier - maybe that might happen on V2c.



The board's external dimensions are only 1 mm wider and 1mm longer than the original..


Update : 28 November 2010


The X-Locker version 2b with on-board prescaler has been tried on the Kuhne series of J-FET oscillators without too much success - until today. I have been try to just "add-on" to the original oscillator circuit to obtain frequency control and it hasn't worked out well for me.


If you examine the basic Kuhne circuit, there is no frequency netting adjustment provided so whatever frequency the oscillator operates at - depending on the tuning of the drain tank circuit - determines the overall LO frequency. If it  is 1 KHz high at the LO frequency (eg 106.501000) then the actual LO would be 96 KHz high (eg in a 10GHz transverter - X96 multiplication). 


The oscillator circuit is basically a Colpitts style with a split-C to determine the feedback ratio ( typically set around 4 to 5 : 1) and the crystal is the feedback path. Hence it oscillates - provided the LC tank resonance is very close to the crystal frequency. If the LC tank is detuned too far - no oscillation occurs.


The above means that somehow a method of netting to frequency is required - typically achieved by using a variable trimmer capacitor. Placing it across either side of the crystal does shift the frequency a bit - but if across the split-C feedback then the value is already in parallel with a substantially higher value - and the feedback ratio changes as the trimmer is adjusted. Across the other end of the crystal is the source connection and a 220 ohm resistor to set DC bias plus AC act as a relatively low impedance at the crystal frequency. A variable capacitance across a low-Z point like this is largely ineffective.


Ultimately, I decided that I had to modify the oscillator circuit and put in an element that would make the frequency shift. That was going to have to be a series capacitor - but - it would also mean modifying the PCB.  True, it was only to be one track to be cut but the transverter isn't actually mine so I had to be at least a little circumspect.


The track of interest was between the "hot" end of the crystal and the split-C feedback capacitors and the parts around the varicap section of the X-Locker changed slightly to result in the outcome in the diagram below. Note that the 220nH choke was removed from across the crystal as I didn't want to introduce any strange resonances.




Note : The BB208-03 varicap in the above schematic has been replaced with a higher capacitance dual-varicap diode assembly in this crystal-based application. This improves the oscillator's frequency control range and makes it possible to "lock" quicker as the crystal "drifts" into lock range as it heats up under the influence of the crystal heater.   { The BB208-03 works well for LC-based oscillators. }


What we now have is a variable series capacitance consisting of a varicap diode plus a 4.7pF fixed capacitance - this latter component is to make sure there is enough minimum capacity for the oscillator to still run with the varicap at maximum voltage - i.e. at it's minimum capacitance. The 47K resistor to ground is the DC return for the varicap while providing a high impedance at RF.


The added 3-12pF trimmer is operating at a relatively high impedance point so now actually allows a reasonable amount of frequency trimming.


The BB208-03 varicap is fed a DC voltage between about +0.5V and +5.0V so results in a capacitance around 24pF and 8pF respectively. The final setup is done such that the DC voltage fed to the varicap is between +1 and +2V ( so a C of between 20 and 15pF) and the two adjustments utilised are the new trimmer (above) and the LC tank.


The "gimmick" capacitor on the diagram is simply two lengths of wire-wrap wire twisted together for about 10-12mm so is of unknown capacitance. The aim here is to minimise loading on the collector of the buffer transistor to prevent detuning yet provide enough of an RF sample for the prescaler chip to operate reliably.  I know that the output of this stage feeds a BPF at 3X (ie 319.5 MHz) but I found that the X-Locker worked better with the prescaler device set for 2X (ie 213.000). Obviously there is more second harmonic there because the 3rd harmonic energy is being coupled out to the next multiplier stage.


Well, it works. The oscillator locked at 106.500000 and stayed there. I tried 3 different 10 MHz reference sources - my GPSDO and 2 different TCXO boxes - and all worked and all kept the oscillator locked to frequency.


I was fairly confident that the issue was the Kuhne oscillator. Very simple circuit - but not necessarily the best. Why was I confident ?? The same board worked and locked immediately on 106.500 when tested on my test jig - which uses an LC oscillator..... No worrying about whether crystals are "on" or "off" frequency !!


I have adjusted the parts layout slightly to make it easier to configure for this connection mode ( eg for Kuhne oscillators), named it "version 2c", with only other minor changes implemented to make it easier to have either the prescaler chip installed -or - not implemented for "low" frequency versions. The PCB is slightly larger but only by a few millimetres.


See also the pages on this site about the implementation of an X-Locker PCB into a 10 GHz / 3cm Kuhne transverter and also a 1296 MHz / 23cm Kuhne transverter.