I've made a small spreadsheet using the original RFM69 US frequency table. It can be observed that the 51 hopping frequencies are about 502 kHz apart when sorted in increasing order. This is about 2 times the used carrier bandwidth. There are only sub-kHz fluctuations in the differences between neighboring frequencies. These frequencies have been collected from the SPI bus of the radio receiver IC in a console configured for the US band, and then converted to literal frequencies, then into a data array required for programming the RFM69 chips. They're not perfectly uniform because the firmware of the console applies a small correction when tuning onto them - however, these very small errors should be handled in any receiver and pose no problem at all. I'm still of the opinion that one can just use the table in the RFM69 code without frequency testing and scanning. All errors are most likely attributable to the frequency error and temperature skew of cheaper SDR sticks which are not properly calibrated or at least manually offset corrected to a certain degree.
The sheet: https://docs.google.com/spreadsheets/d/1SyNKF-ynoYvKEiOfr7CcZSvaKDU49rJLbNvfN0avzbQ/edit?usp=sharing On Saturday, March 16, 2019 at 4:51:07 PM UTC+1, kobuki wrote: > > Looking at your log, I see some frequency errors that are quite large at > 25-30 kHz (more than the required FSK bandwidth for original equipment), > and a lot of the errors are larger than 10kHz, while the bulk of them are > way under 10kHz. The packets with high offset errors are most likely > neighboring frequencies catched while tuned to another neighbor. Or the > chosen reception bandwidth is too wide to catch the desired frequency and > the receiver auto-corrects to some degree while reporting a false > frequency. I think the reception bandwidth should be narrower for the test > to work. The original receivers use 25 kHz bandwidth. I think the testing > frequency sweep should be taking this into consideration. > > On Saturday, March 16, 2019 at 4:32:40 PM UTC+1, Paul Anderson wrote: >> >> Hi Luc and Rich, >>> >>> Been following your work and ran the test program on my U.S, Davis >> Vantage Pro 2. >> Used a RTL-SDR.com dongle RTL2832 dongle has <1 PPM temperature >> compensated oscillator (TCXO) >> After 5 min warm up rtl_test -p showed cumulative PPM: 0 >> Here are the results for the US band 902 - 928 MHz test: >> Looks like 68 frequencies were captured? Some must be bad as I think we >> only want 51? >> $GOPATH/bin/rtldavis -tr 1 -tf US -startfreq 902000000 -endfreq 928000000 >> -stepfreq 40000 >> >> >> 12:05:12.931583 TESTFREQ 24: Frequency 902920000 (freqError=-1089): OK, >> msg.data: 800000738500B115 >> 12:05:41.118438 TESTFREQ 25: Frequency 902960000 (freqError=1906): OK, >> msg.data: A00000328500AE80 >> 12:58:51.477901 TESTFREQ 49: Frequency 903920000 (freqError=29606): OK, >> msg.data: 80000070C500E589 >> 13:22:08.049315 TESTFREQ 60: Frequency 904360000 (freqError=12748): OK, >> msg.data: E000006505000456 >> 14:17:00.904831 TESTFREQ 85: Frequency 905360000 (freqError=-715): OK, >> msg.data: 500000FF7500485B >> 14:22:36.596902 TESTFREQ 88: Frequency 905480000 (freqError=-855): OK, >> msg.data: E000006505000456 >> 15:09:50.719534 TESTFREQ 110: Frequency 906360000 (freqError=26478): OK, >> msg.data: 9000000005003151 >> 15:13:38.781187 TESTFREQ 112: Frequency 906440000 (freqError=3062): OK, >> msg.data: 8000006A85006CE7 >> 15:15:28.968434 TESTFREQ 113: Frequency 906480000 (freqError=-5089): OK, >> msg.data: 600000FFC50079DA >> 16:02:58.523355 TESTFREQ 135: Frequency 907360000 (freqError=-1728): OK, >> msg.data: C00000047500955C >> 16:02:58.525352 TESTFREQ 136: Frequency 907400000 (freqError=6929): OK, >> msg.data: C00000047500955C >> 16:04:17.965477 TESTFREQ 137: Frequency 907440000 (freqError=6929): OK, >> msg.data: 500000FF7500485B >> 16:06:03.030503 TESTFREQ 138: Frequency 907480000 (freqError=-1742): OK, >> msg.data: 400000FFC5004CD2 >> 16:57:25.756451 TESTFREQ 162: Frequency 908440000 (freqError=-1525): OK, >> msg.data: 500000FF7500485B >> 16:57:41.131232 TESTFREQ 163: Frequency 908480000 (freqError=875): OK, >> msg.data: 8000006BC500561B >> 17:49:06.408230 TESTFREQ 187: Frequency 909440000 (freqError=28537): OK, >> msg.data: 8000006DC500E4BB >> 18:00:51.103917 TESTFREQ 193: Frequency 909680000 (freqError=11774): OK, >> msg.data: C00000047500955C >> 18:11:11.237742 TESTFREQ 198: Frequency 909880000 (freqError=-2301): OK, >> msg.data: E000006505000456 >> 18:40:57.322258 TESTFREQ 212: Frequency 910440000 (freqError=-5508): OK, >> msg.data: 500000FF7500485B >> 18:52:34.331178 TESTFREQ 218: Frequency 910680000 (freqError=7340): OK, >> msg.data: 500000FF7500485B >> 19:02:13.462738 TESTFREQ 223: Frequency 910880000 (freqError=736): OK, >> msg.data: 8000007245009071 >> 19:02:13.464493 TESTFREQ 224: Frequency 910920000 (freqError=-2353): OK, >> msg.data: 8000007245009071 >> 19:55:16.035833 TESTFREQ 248: Frequency 911880000 (freqError=26039): OK, >> msg.data: 500000FF7500485B >> 19:57:01.096119 TESTFREQ 249: Frequency 911920000 (freqError=593): OK, >> msg.data: C00000047500955C >> 19:58:51.284135 TESTFREQ 250: Frequency 911960000 (freqError=27251): OK, >> msg.data: 500000FF7500485B >> 19:59:11.782803 TESTFREQ 251: Frequency 912000000 (freqError=-6736): OK, >> msg.data: 500000FF7500485B >> 20:46:36.307858 TESTFREQ 273: Frequency 912880000 (freqError=-3067): OK, >> msg.data: 8000007745007B81 >> 20:47:50.621221 TESTFREQ 274: Frequency 912920000 (freqError=4663): OK, >> msg.data: E000006505000456 >> 20:49:43.372121 TESTFREQ 275: Frequency 912960000 (freqError=17203): OK, >> msg.data: E000006505000456 >> 20:50:01.309265 TESTFREQ 276: Frequency 913000000 (freqError=-3303): OK, >> msg.data: 80000077C5006019 >> 21:43:14.231848 TESTFREQ 300: Frequency 913960000 (freqError=-2635): OK, >> msg.data: 500000FF7500485B >> 21:44:43.921493 TESTFREQ 301: Frequency 914000000 (freqError=45): OK, >> msg.data: E000006505000456 >> 21:51:15.987745 TESTFREQ 304: Frequency 914120000 (freqError=24336): OK, >> msg.data: 500000FF7500485B >> 22:35:46.157460 TESTFREQ 325: Frequency 914960000 (freqError=1673): OK, >> msg.data: 8000007AC5002248 >> 22:59:12.992657 TESTFREQ 336: Frequency 915400000 (freqError=9315): OK, >> msg.data: E000007805000564 >> 23:28:33.459265 TESTFREQ 350: Frequency 915960000 (freqError=4902): OK, >> msg.data: 8000007C45008B70 >> 23:52:46.393871 TESTFREQ 361: Frequency 916400000 (freqError=17857): OK, >> msg.data: C00000047500955C >> 00:46:35.230736 TESTFREQ 386: Frequency 917400000 (freqError=-619): OK, >> msg.data: C00000047500955C >> 00:49:24.360163 TESTFREQ 388: Frequency 917480000 (freqError=637): OK, >> msg.data: E000007D0500EE94 >> 00:50:10.486491 TESTFREQ 389: Frequency 917520000 (freqError=-7660): OK, >> msg.data: A00000F775007046 >> 01:37:34.897589 TESTFREQ 411: Frequency 918400000 (freqError=-3584): OK, >> msg.data: E000007D0500EE94 >> 01:41:02.463375 TESTFREQ 413: Frequency 918480000 (freqError=3373): OK, >> msg.data: 500000FF7500485B >> 01:42:39.840615 TESTFREQ 414: Frequency 918520000 (freqError=-3730): OK, >> msg.data: 8000007CC50090E8 >> 02:31:13.454254 TESTFREQ 436: Frequency 919400000 (freqError=-697): OK, >> msg.data: E000007D0500EE94 >> 02:34:12.833575 TESTFREQ 438: Frequency 919480000 (freqError=6030): OK, >> msg.data: C00000047500955C >> 02:34:35.896333 TESTFREQ 439: Frequency 919520000 (freqError=-856): OK, >> msg.data: 800000854500F6B3 >> 02:41:07.966804 TESTFREQ 442: Frequency 919640000 (freqError=22278): OK, >> msg.data: E000007D0500EE94 >> 03:25:40.663092 TESTFREQ 463: Frequency 920480000 (freqError=-275): OK, >> msg.data: 80000088C500AF7A >> 03:26:39.599498 TESTFREQ 464: Frequency 920520000 (freqError=1975): OK, >> msg.data: 600000FFC50079DA >> 03:48:26.559736 TESTFREQ 474: Frequency 920920000 (freqError=27548): OK, >> msg.data: E000007D0500EE94 >> 04:18:17.783966 TESTFREQ 488: Frequency 921480000 (freqError=-8099): OK, >> msg.data: 8000008C050065EE >> 04:29:49.673752 TESTFREQ 494: Frequency 921720000 (freqError=5216): OK, >> msg.data: 500000FF7500485B >> 04:39:28.815406 TESTFREQ 499: Frequency 921920000 (freqError=-2355): OK, >> msg.data: 8000008A8500CCD6 >> 05:23:02.638014 TESTFREQ 519: Frequency 922720000 (freqError=-430): OK, >> msg.data: 8000008A4500DA82 >> 05:33:25.340112 TESTFREQ 524: Frequency 922920000 (freqError=1704): OK, >> msg.data: 9000000005003151 >> 05:38:43.098795 TESTFREQ 527: Frequency 923040000 (freqError=-564): OK, >> msg.data: C00000047500955C >> 06:27:19.258381 TESTFREQ 549: Frequency 923920000 (freqError=27268): OK, >> msg.data: E000007D0500EE94 >> 06:28:13.076492 TESTFREQ 550: Frequency 923960000 (freqError=2164): OK, >> msg.data: 500000FF7500485B >> 06:30:03.274780 TESTFREQ 551: Frequency 924000000 (freqError=29429): OK, >> msg.data: E000007D0500EE94 >> 06:30:23.777042 TESTFREQ 552: Frequency 924040000 (freqError=-5957): OK, >> msg.data: E000007D0500EE94 >> 07:18:36.941811 TESTFREQ 574: Frequency 924920000 (freqError=-1264): OK, >> msg.data: 500000FF7500485B >> 07:18:36.943822 TESTFREQ 575: Frequency 924960000 (freqError=5393): OK, >> msg.data: 500000FF7500485B >> 07:19:35.879817 TESTFREQ 576: Frequency 925000000 (freqError=5398): OK, >> msg.data: E000007D0500EE94 >> 07:21:36.319616 TESTFREQ 577: Frequency 925040000 (freqError=-2662): OK, >> msg.data: 80000090050053EC >> 08:13:04.197004 TESTFREQ 601: Frequency 926000000 (freqError=-1132): OK, >> msg.data: E000007D0500EE94 >> 08:14:21.072311 TESTFREQ 602: Frequency 926040000 (freqError=2596): OK, >> msg.data: A0000078850074EC >> 09:05:54.058956 TESTFREQ 626: Frequency 927000000 (freqError=28377): OK, >> msg.data: 500000FF7500485B >> 09:17:31.048838 TESTFREQ 632: Frequency 927240000 (freqError=-9307): OK, >> msg.data: 500000FF7500485B >> >> Thanks >> Paul >> >> >> >>
