OK, I finally have my relay code working reliably. I thought I had it working last week, but I found a difference in reception requirements between the console firmware versions I am running.
The code worked fine on my 'backup' console which is running ancient firmware - Nov 13 2004 - but when I tried to connect my 'production' console (v3.12) it failed to lock on the transmissions (well it did one time I tried then I couldn't repeat it). It turns out that the later firmware requires an additional 0xff byte to be transmitted after the data. Once I implemented this both consoles will now lock on to the first packet they see - result! - and I get all but 100% reception stats, the odd dropped packets are probably 3G phone interference as I'm sharing a band with them (sshhh!
).
So to sum up I'm receiving data from a Davis ISS transmitter (2) and anemometer (1) and rebroadcasting as a single ISS (3). This allows me to move my solar and UV from the 'real' ISS to the anemometer.
My little Moteino project is based on a fork of Kobuki's excellent
VPtools to which I have made a few tweaks.
- Added the ability to adjust the packet timer - the Moteinos were running faster than the observed Davis intervals. Despite being a small correction this made quite a bit impact to the reception stats on my 'backup' console.
- Added the ability to adjust the RFM69 frequencies. My two Moteinos were broadcasting approximately 22 & 28 kHz higher than the Davis devices
- Added the option to flash the Moteino LED on receive and/or transmit
- Made the first detection of a transmitter much more robust, the Moteino now locks on after seeing the first packet
My fork of
VPtools is here - I'll make a pull request back to Kobuki if he wishes to incorporate the changes.