If you happened to get one of those $7 SDR radio dongles from ebay and need to put it to work... here's one thing I tried...

Tune in with the R820T... (Using HDSDR)


This is both radios running on one channel.  They are out of tune enough that the channels don't even overlap!

Now I switch them into beacon mode and tune to 925.000 MHz...


Now I tune them up by adjusting the EZRADIOPRO_OSC_CAP_VALUE to get this...


Through the magic of special effects, I can overlay them...


Below are the before and after pics of normal transmissions (non-beacon mode)...



Settings used...


Here are the actual results I measured (warming up and final calibration)...

Ground = +7.3 khz @ OV 204 (cold)
Ground = +6.5 khz @ OV 204 (warm)
Ground = +6.1 khz @ OV 204 (hot)
Ground = +0.1 khz @ OV 208 (warm)

Air = -6.5 khz @ OV 204 (cold)
Air = -6.2 khz @ OV 204 (warm)
Air = -7.1 khz @ OV 204 (warmer)
Air = +0.6 khz @ OV 199 (warmerer)

All the pictures in this post are to the same scale.  The FSK signals (wider pictures) are on a different frequency than the beacon signals.

Make any predictions on expected range improvement below...  

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Developer

    very nice piece of work.

    I wonder if we could auto-learn EZRADIOPRO_OSC_CAP_VALUE live in the radios?

  • Excellent hacking, thank you for sharing

  • I'll have the source up soon.  All credit goes to Michael Smith and Andrew Tridgell.

    I just kluged in some code into the at.c file to make the needed changes.  It's ugly, but it does the job and wasn't meant to be flight firmware. 

  • I'm running 208 (+4) on one and 199 (-5) on the other.  One was high and the other low.  

    You certainly can just tune one or the other radio.  Luckily for me, as you can see above, my radios were on opposite sides of being correct.  Therefore I just tuned them each closer to 925.000. 

    To calibrate the SDR I simply tuned to a few FM stations in my area, used the AFC to find their center and adjusted the PPM correction that way.

    If you notice the settings I have turned the air rate all the way down.  I did that to see the transmissions better on the waterfall display.  As the air speed goes up the channels get wider.  So any higher of an air rate and they do overlap.  So perhaps this tune is not very significant.  It was only about 12.7 kHz total.

    Then again I can pretty much guarantee that the radios will tolerate a slightly higher temperature difference because they're now tuned closer to start with.

  • 3D Robotics

    Super impressive. Do you think each radio needs to be tuned individually, or the values you found should be made the default for all?

  • Here is the link...


    Tools and firmware for the Si1000. Contribute to jakestew/SiK development by creating an account on GitHub.
  • I just posted some firmware for anyone to try AT THEIR OWN RISK.

    Works fine with my old 915 MHz v1 3DR radios.  Otherwise YMMV.

    The test firmware is only for testing purposes.  It's poorly written and it is very easy to just grab the right firmware once you find your calibration values with it.

    The test firmware is SiK v1.9 with four extra AT commands added to control the radio and make it behave like in my screenshots.

    Once you find the right OSC value, just load the corresponding number firmware. 

  • Admin

    Hi Jake,

    Nice project and tutorial!

    No wonder my 3DR 915MHz radios are so inconsistent in relation to their transmission/reception ranges.



This reply was deleted.