But beyond this I think you need to be clear about what you're trying to do, which could be one of two things:I trimmed the quote a bit.
1. Collect solar & UV data for your own purposes (and maybe upload this data to weatherlink.com);
2. Also upload the data to other online networks like WU or CWOP
John is referring to my "relay device". This is a Moteino board (an Arduino and a Hope RFM transceiver on the same board - I used the USB version (https://lowpowerlab.com/shop/product/100) for convenience).This sounds interesting, and right up my alley, a new Arduino project for me.
This is a Moteino board (an Arduino and a Hope RFM transceiver on the same board - I used the USB version (https://lowpowerlab.com/shop/product/100) for convenience).Which transceiver is the right/best one, they list 6 options?
I just use the 69CW, I don't need the higher power version as the board and console are well within the range of the standard RFM unit. The HCW also needs a minor code change. I have no idea about the LoRa versions.This is a Moteino board (an Arduino and a Hope RFM transceiver on the same board - I used the USB version (https://lowpowerlab.com/shop/product/100) for convenience).Which transceiver is the right/best one, they list 6 options?
// station id associated with each payload
// Zero relative = Davis ID -1
static PayloadStation payloadStations = {
0, 0, 1, 0, 1, 1 // wind, uv, rain, solar, temp, hum
};
The initial sync to the transmitters can take a little while, but should be complete within 5 minutes.
// station id associated with each payload
// Zero relative = Davis ID -1
static PayloadStation payloadStations = {
1, 0, 0, 0, 0, 0 // wind, uv, rain, solar, temp, hum
};
// Stations to receive from
// id, type, active
static Station stations[NUM_RX_STATIONS] = {
{0, STYPE_ISS, true}, // The 'real' ISS
{1, STYPE_ISS, true} // Anemometer txmr in my case
};
I also added the HighPower entry at the end of the Sketch definitions, I hope this is the right place.#define CONFIG_VERSION "rt2" // ID of the settings block
#define CONFIG_START 32 // Where to store the config data in EEPROM
#define IS_RFM69HW_HCW radio.setHighPower();
Now I've started playing with the q-350, 400, 450 options in the serial console, and am now seeing entries come in that look right so far. Looks like I'm headed in the right direction.
The console radio screen has a field which shows the frequency correction applied to lock on to the transmitter - adjust the correction to get that bouncing around zero. (mine is normally between +/- 1) Without the frequency adjustment it was up in the 20's.
Um, which field is that?
So how does the "q" frequency adjustment setting correspond to what I am seeing on the diagnostic screen on the VP2 Console?I can answer that one now. The goal is to get the Correction Factor as close to 0 as possible. For mine setting q-430 is pretty close, and will bounce between 1, 0, and -1. q-400 looks to be a pretty good starting point to work from, for the ones from LowPowerLab at least.
i.e. The frequency correction factor (#5) on the console is showing "44".
#define FREQ_CORR 0 // Frequency correction factor for RFM69 = (Required correction Hz) / 61
// E.g. 20kHz = 20000/61 = 328, should use RF_FSTEP, but 61 is close enough
// My Moteino's #1 = -450, #2 = -340
static PayloadStation payloadStations = {
0, 0, 0, 0, 0, 0 // wind, uv, rain, solar, temp, hum
};
static PayloadStation payloadStations = {
0, 0, 2, 0, 2, 2 // wind, uv, rain, solar, temp, hum
};
// Stations to receive from
// id, type, active
static Station stations[NUM_RX_STATIONS] = {
{0, STYPE_ISS, true}, // Anemometer txmr in my case
{2, STYPE_ISS, true} // The 'real' ISS
The output in the serial monitor look a bit different now18:09:27.776 -> 1346998456 R E2-00-00-4F-01-00-CE-11-FF-FF 3 1174495488/2164261120/186145793/92.1 35 -63 0 2691128 ok - - rain 79 18:09:27.880 -> 1347122080 R A0-01-5D-00-03-00-52-97-FF-FF 1 0/496/14/97.3 43 -58 -2 2565964 ok 1 131 hum - 18:09:30.063 -> 1349308536 T E1-01-5D-4F-03-00-4C-BB-FF-FF 2 -/---/--/---- 3 - - 2625076 ok 1 131 rain 79 18:09:30.442 -> 1349688064 R 80-01-5D-FF-C3-00-BE-A8-FF-FF 1 0/497/14/97.3 44 -52 -2 2565984 ok 1 131 temp - 18:09:32.700 -> 1351933508 T 51-01-5D-FE-73-00-76-81-FF-FF 2 -/---/--/---- 4 - - 2624972 ok 1 131 r_secs 1022 18:09:33.012 -> 1352254040 R E0-01-5D-80-03-00-03-DD-FF-FF 1 0/498/14/97.3 45 -86 -1 2565976 ok 1 131 rain - 18:09:33.115 -> 1352380644 R 62-00-00-FF-C5-00-F2-9A-FF-FF 3 1174495488/2164261120/186145793/92.1 37 -59 0 126604 ok - - solar - 18:09:35.327 -> 1354558560 T A1-01-5D-89-3B-00-3E-C0-FF-FF 2 ----------/----------/---------/---- 5 - - 2625052 ok 1 131 hum 90.5 18:09:35.566 -> 1354820032 R 50-01-5D-FF-73-00-04-11-FF-FF 1 0/499/14/97.3 46 -49 0 2565992 ok 1 131 r_secs - 18:09:35.846 -> 1355071748 R 82-00-00-18-19-00-C0-8D-FF-FF 3 1174495488/2164261120/421003264/83.7 38 -68 0 2691104 ok - - temp 38.5 (3.6) 18:09:37.937 -> 1357183564 T 81-01-5D-18-1B-00-42-27-FF-FF 2 ----------/----------/---------/---- 6 - - 2625004 ok 1 131 temp 38.5 (3.6) 18:09:38.144 -> 1357385988 R 60-02-5D-00-01-00-02-75-FF-FF 1 0/500/14/97.3 47 -67 -1 2565956 ok 2 131 solar 0 18:09:38.525 -> 1357762848 R E2-00-00-4F-01-00-CE-11-FF-FF 3 1560436992/2164261120/454581505/82.6 39 -74 -1 2691100 ok - - rain 79 18:09:40.573 -> 1359808612 T E1-02-5D-4F-03-00-A2-69-FF-FF 2 ----------/----------/---------/---- 7 - - 2625048 ok 2 131 rain 79 18:09:40.678 -> 1359951964 R 80-02-5D-FF-C3-00-50-7A-FF-FF 1 0/501/14/97.3 48 -50 -1 2565976 ok 2 131 temp - 18:09:41.201 -> 1360453960 R 52-00-00-FE-71-00-F4-2B-FF-FF 3 1560436992/2164261120/454581505/82.6 40 -62 -1 2691112 ok - - r_secs 1022 18:09:43.178 -> 1362433620 T 51-02-5D-FE-73-00-98-53-FF-FF 2 ----------/----------/---------/---- 8 - - 2625008 ok 2 131 r_secs 1022 18:09:43.283 -> 1362517944 R E0-02-5D-80-03-00-ED-0F-FF-FF 1 0/502/14/97.3 49 -56 -1 2565980 ok 2 131 rain - 18:09:43.869 -> 1363145072 R 42-00-00-FF-C5-00-C7-92-FF-FF 3 1560436992/2164261120/454581505/82.6 41 -73 0 2691112 ok - - uv - 18:09:45.772 -> 1365058640 T 61-02-5D-00-03-00-47-D5-FF-FF 2 ----------/----------/---------/---- 9 - - 2625020 ok 2 131 solar 0 18:09:45.839 -> 1365083956 R 50-02-5D-FF-72-00-D9-F2-FF-FF 1 0/503/14/97.3 50 -56 -1 2566012 ok 2 131 r_secs - 18:09:46.566 -> 1365836196 R 82-00-00-18-09-00-C3-FE-FF-FF 3 1560436992/2164261632/152567808/93.4 42 -59 0 2691124 ok - - temp 38.4 (3.6) 18:09:48.375 -> 1367649908 R 40-01-5D-FF-C1-00-00-98-FF-FF 1 0/504/14/97.3 0 -52 -1 2565952 ok 1 131 uv - 18:09:48.408 -> 1367683716 T 81-01-5D-18-0B-00-41-54-FF-FF 2 -/---/--/---- 10 - - 2625076 ok 1 131 temp 38.4 (3.6) 18:09:49.280 -> 1368527480 R E2-00-00-4F-01-00-CE-11-FF-FF 3 1560436992/2164261632/186146049/92.1 43 -66 -1 2691284 ok - - rain 79 18:09:50.946 -> 1370215880 R 80-01-5D-FF-C3-00-BE-A8-FF-FF 1 0/505/14/97.3 1 -46 0 2565972 ok 1 131 temp - 18:09:51.049 -> 1370308768 T E1-01-5D-4F-03-00-4C-BB-FF-FF 2 -/---/--/---- 11 - - 2625052 ok 1 131 rain 79 18:09:51.951 -> 1371218392 R 52-00-00-FE-71-00-F4-2B-FF-FF 3 1560436992/2164261632/186146049/92.1 44 -70 -1 2690912 ok - - r_secs 1022 |
#define TX_ID 2
For high power, you just need 2 entries;#define IS_RFM69HW_HCW //uncomment only for RFM69HW/HCW! Leave out if you have RFM69W/CW!
2. The entry in void setup, after the initialize statement;void setup() {
Serial.begin(SERIAL_BAUD);
// Get the default values for the config
loadConfig();
radio.setStations(stations, NUM_RX_STATIONS);
radio.initialize(FREQ_BAND_US);
radio.setBandwidth(RF69_DAVIS_BW_NARROW);
radio.setTimerCalibation(storage.timer);
radio.setFrequencyCalibation(storage.frequency);
#ifdef IS_RFM69HW_HCW
radio.setHighPower(); //must include this only for RFM69HW/HCW!
#endif
If you have both entries, then you are running high power. You should set the moteino, console, and transmitters a few feet apart for better reception.#define NUM_RX_STATIONS 2 // Number of stations we are going to listen for
What relative station ID's the sensor's are on "Davis ID -1";static PayloadStation payloadStations = {
1, 1, 0, 1, 0, 0 // wind, uv, rain, solar, temp, hum
};
and update the section just after it to match your ID's;static Station stations[NUM_RX_STATIONS] = {
{1, STYPE_ISS, true}, // Anemometer txmr in my case
{0, STYPE_ISS, true} // The 'real' ISS
};
That should be everything, then if you are running q somewhere around 400, you should start seeing more useful data.time Rx/Tx raw_packet_data id packet_counts chan rssi fei delta_t batt wind dir sensor value
99925944 R 52-00-00-FF-71-00-C3-1B-FF-FF 3 16907888/3926025217/2466393097/187.2 1 -84 5 0 ok - - r_secs -
102615748 R 62-00-00-07-41-00-A3-F1-FF-FF 3 168492656/3926025224/2466393097/187.2 2 -88 5 2689804 ok - - solar 51
102807404 T 56-00-00-FF-71-00-09-7E-FF-FF 7 ---------/----------/----------/---- 34 - - 2937012 ok - - r_secs -
105744436 T A6-00-00-00-01-00-5F-F8-FF-FF 7 ---------/----------/----------/---- 35 - - 2937032 ok - - hum -
107995380 R E2-00-00-35-01-00-D1-D8-FF-FF 3 168492656/3926025225/2466393097/187.2 4 -86 4 5379632 ok - - rain 53
108681540 T 86-00-00-FF-C1-00-B3-C7-FF-FF 7 ---------/----------/----------/---- 36 - - 2937104 ok - - temp -
110685192 R 52-00-00-FF-71-00-C3-1B-FF-FF 3 168492656/3926025225/2466393097/187.2 5 -86 5 2689812 ok - - r_secs -
111618520 T E6-00-00-35-01-00-1B-BD-FF-FF 7 ---------/----------/----------/---- 37 - - 2936980 ok - - rain 53
113375020 R 42-00-00-00-01-00-1E-A5-FF-FF 3 168492656/3926025225/2466393097/187.2 6 -88 5 2689828 ok - - uv 0.0
114555540 T 56-00-00-FF-71-00-09-7E-FF-FF 7 ---------/----------/----------/---- 38 - - 2937020 ok - - r_secs -
116064820 R 82-00-00-26-C9-00-0B-0E-FF-FF 3 168492656/3926025225/2466393097/187.2 7 -85 5 2689800 ok - - temp 62.0 (16.7)
117492632 T 66-00-00-07-41-00-69-94-FF-FF 7 ---------/----------/----------/---- 39 - - 2937092 ok - - solar 51
120429708 T 86-00-00-26-C9-00-C1-6B-FF-FF 7 ---------/----------/----------/---- 40 - - 2937076 ok - - temp 62.0 (16.7)
123366708 T E6-00-00-35-01-00-1B-BD-FF-FF 7 ---------/----------/----------/---- 41 - - 2937000 ok - - rain 53
124134272 R 92-00-00-00-05-00-BA-11-FF-FF 3 168492656/3926025225/2466393097/187.2 2 -86 5 8069452 ok - - gust -
126303688 T 56-00-00-FF-71-00-09-7E-FF-FF 7 ---------/----------/----------/---- 42 - - 2936980 ok - - r_secs -
129240708 T 46-00-00-00-01-00-D4-C0-FF-FF 7 ---------/----------/----------/---- 43 - - 2937020 ok - - uv 0.0
132177692 T 86-00-00-26-C9-00-C1-6B-FF-FF 7 ---------/----------/----------/---- 44 - - 2936984 ok - - temp 62.0 (16.7)
135114716 T E6-00-00-35-01-00-1B-BD-FF-FF 7 ---------/----------/----------/---- 45 - - 2937024 ok - - rain 53
138051744 T 56-00-00-FF-71-00-09-7E-FF-FF 7 ---------/----------/----------/---- 46 - - 2937028 ok - - r_secs -
140988724 T 96-00-00-00-01-00-70-74-FF-FF 7 ---------/----------/----------/---- 47 - - 2936980 ok - - gust -
143925720 T 86-00-00-26-C9-00-C1-6B-FF-FF 7 ---------/----------/----------/---- 48 - - 2936996 ok - - temp 62.0 (16.7)
146862748 T E6-00-00-35-01-00-1B-BD-FF-FF 7 ---------/----------/----------/---- 49 - - 2937028 ok - - rain 53
149799748 T 56-00-00-FF-71-00-09-7E-FF-FF 7 ---------/----------/----------/---- 50 - - 2937000 ok - - r_secs -
152736776 T 66-00-00-07-41-00-69-94-FF-FF 7 ---------/----------/----------/---- 0 - - 2937028 ok - - solar 51
The "standard" interval according to Davis is...
(41 + TX_ID) * 1000.0 / 16.0)
Where TX_ID is the zero relative transmitter Id.
You can set the timer correction the same as the frequency adjustment, via the serial port...
t0.99987 - Would set the timer adjustment to 0.9987
q-430 -Would set your frequency adjustment.
The advantage of using the serial interface is you can tweak things on the fly and see the effect. All settings are stored in the non-volatile RAM so they survive power cycles, and even re-flashing, so long as you don't update the version number.
Just to note, you get RSSI values below -80 which is not much higher than the default of the sketch IIRC, which is -90. I think you might want to try lowering the RSSI threshold to catch more packets.Now that may have been a setting I missed. Is there a block in the sketch that covers that?
DavisRFM69::setRssiThreshold()
It should be:Doesn't look like that was included in the sketch by default.Code: [Select]DavisRFM69::setRssiThreshold()
// DavisRFM69 radio base class;
DavisRFM69 radio;
DavisRFM69::setRssiThreshold();
It should be:Doesn't look like that was included in the sketch by default.Code: [Select]DavisRFM69::setRssiThreshold()
Am I correct in assuming I should put it in this section?;Code: [Select]// DavisRFM69 radio base class;
DavisRFM69 radio;
DavisRFM69::setRssiThreshold();
It is in the DavisRFM69.h file