Re-doing what others have done in this and the other thread in weewx-user, I can conclude that the Golang rtldavis frequencies are most likely wrong. If we take the original SPI-sniffed Davis frequency values as a standard, the rtldavis frequencies are off by -26,3 kHz or -28,75 ppm on average, with almost negligible deviation. Thus I think the original author forgot to offset-correct the frequencies in the source. They are probably spot on with his own SDR stick, though.
On Saturday, March 16, 2019 at 5:21:28 PM UTC+1, kobuki wrote: > > A typo fix: ... This is about *20 times *the used carrier bandwidth ... > > On Saturday, March 16, 2019 at 5:20:21 PM UTC+1, kobuki wrote: >> >> 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 >>>> >>>> >>>> >>>>
