Last fall I posted some data that described how the RX/TX frequency drifted with temperature. At that time I used the internal RFM69 temp sensor. What I didn't realize at that time was that the chips temperature changes dozens of degrees depending on what the chip is doing. Since the frequency is derived from an external crystal and not the chip, I couldn't rely on the internal sensor.
In November I added an 18B20 to track the ambient temperature and correct for frequency drift. The results have been outstanding. I have a Moteino about 1200 ft from my house setting in a snow covered field. RXBW set to 12KHz.
It has worked flawless from -12F to 65F degrees.
I just added 18b20s to a couple more Moteinos. This time I used a little heat sink compound and arranged the sensor to be in contact with the crystal. The close coupling allows for even better compensation.
In the attachment you can see that an uncorrected Moteino drifts more than 14,000 Hz over -5C to 60C degrees. With compensation less than 488Hz, usually within +/-122Hz. Blue is uncorrected measurement data, Black is the error equation(curve fit), and Red is the corrected measurement results.
To apply this technique to your Moteino take the polynomial on the graph and put it in your sketch. 'x' is the temperature you get from your sensor in Celsius and 'y' is the resultant error in Hz.
So, Freq(corrected) = Freq(wanted) - y; Then set Moteino to Freq(corrected).
Bottom Line: You should only care about this if you want to change BR, Deviation, and RXBW to small values that increase the radio's sensitivity. Say for long distance experimentation. Or if you have two or more Moteinos in vastly different environments where the temperatures don't track.
Cheers,
john