Project

General

Profile

What is necessary to adapt RF12 sketches to RF69 ?

Added by mimue 10 months ago

Hi all,

would that be as simple as adding #define RF69_COMPAT 1 to the .ino ?

I would love to run some of the example sketches on my JeeLink v3c, especially the rf12mon if at all possible.

Any advice appreciated,

mimue


Replies (10)

RE: What is necessary to adapt RF12 sketches to RF69 ? - Added by JohnO 10 months ago

It should indeed be that simple, putting

#define RF69_COMPAT 1

before

#include JeeLib.h 

causes the RFM69 library to be compiled and linked. There may be further issues that come to light since a large number of sketches were never compiled or tested with the RFM69CW hardware. If you find any odd ones please bring them up in the forum and someone will take a look.

RE: What is necessary to adapt RF12 sketches to RF69 ? - Added by mimue 10 months ago

Thank you JohnO,

I tried compiling the RF12mon with RFM69 support, it succeeded and uploaded OK, I can connect to the JeeLink with nrfmon.exe but I don't seem to get any reception.

Falling back to the RF12demo.12 I don't seem to receive anything either. I follow the advice from

 JeeLabs Café - RF12demo - #4 

under "A first test":

"If you only have a single node ... there is a limited test available for the receiver section only - 
select quiet mode OFF with the 'q' command."

The other settings are

[RF12demo.12] _ i31 g0 @ 868 MHz x2

Since I have quite some eQ3 HomeMatic and MAX! equipment working at this location, there should be some 868 MHz traffic to be picked up. Not to mention a few enOcean brightness and Temp/Hum sensors.

What am I missing here ?

mimue

RE: What is necessary to adapt RF12 sketches to RF69 ? - Added by JohnO 10 months ago

You could try the command 0q into rf12demo. Otherwise it could be that your other 868Mhz devices use different sync patterns.

RE: What is necessary to adapt RF12 sketches to RF69 ? - Added by mimue 10 months ago

Thank you JohnO,

I actually am using 'q' or '0 q' with RF12 demo.

As far as I understood (which isn't very) setting group to 0, q to 0 and node ID to 31 should let everything through that happens on the set frequency.

So I was really expecting a flood of more or less meaningless data pouring out of the JeeLink with these settings.

Again: What am I missing here ?

RE: What is necessary to adapt RF12 sketches to RF69 ? - Added by mimue 10 months ago

Addenda:

I managed to get some output by writing a shell script that increases the frequency offset in steps of ten every ten minutes.

The thing starts off at 100o = 860,5000 MHz and iterates its way up to 3900o = 879,5000 MHz. So far it has reached 590o = 862,9500 and reported some datagrams.

860,5 MHz: 1; 860,55 MHz: 2; 860,65 MHz: 1; 860,7 MHz: 1; 860,75 MHz: 5; 860,8 MHz: 4; 860,85 MHz: 3; 861,05 MHz: 8;
861,1 MHz: 3; 861,15 MHz: 7; 862,05 MHz: 2; 862,2 MHz: 4; 862,25 MHz: 3; 862,3 MHz: 3; 862,35 MHz: 2; 862,55 MHz: 4;
862,6 MHz: 7; 862,8 MHz:1;

There are two more questions popping up:

The "JeeLabs Cafè - RF12demo - #4" document states under "q - Enable or disable quiet mode" : "These reports are not very useful, as the radio's AGC will even make it accept noise if nothing else comes in for a while."

What is "a while" in JeeLabs lingo ? Shouldn't AGC increase sensitivity within a 10min silence ? Can AGC be programmatially be influenced ?

Also, although I have compiled the sketch with #define DATAFLASH 16 and set collect mode to on (1c), entering d (dump all replay log markers) achieves nothing, while simply entering r (replay) comes up with "r: page 0 7935; DF E 7935 1 3417393"

mimue

RE: What is necessary to adapt RF12 sketches to RF69 ? - Added by martynj 10 months ago

@mimue,

There are several layers to be aware of here. Have a look here which touches on channels and groups.
In brief channel is basically physical - what carrier frequency am I looking at? In reality this is a band of frequencies since the carrier is modulated.
Then within that channel, what pattern of modulation is seen at the front of the packet? This defines the group.
Then deeper in the packet, you can have a field that defines node ID - this is purely a software convention when decoding the packet.

The Rx is set up to receive a particular group pattern - in a noise free channel, decoding would never even start if the group pattern does not match.
In real world channels, there is always noise, sometimes above the Rx detection threshold; this gets detected as a random bit stream - sooner or later some part of the stream will match the group pattern and decoding of noise will start. This of course will fail the CRC check, but can still be displayed for debugging by utiiities like RF12demo marked as bad CRC.

Similarly other transmitters may behave like a noise stream and display packets from time to time with chance matches. You can't get much further without knowing the packet structure of those transmitters which may of course be quite different from the JeeLabs packet layout convention. Indeed, many transmitters in the band do not even use FSK modulation, but a lower implementation cost OOK.

If you scan the weblog with some of these keywords you will find entries on packet structure, modulation methods and even detective work on decoding non-JeeLabs packets.
Another mine of information is over at SevenW's site

RE: What is necessary to adapt RF12 sketches to RF69 ? - Added by JohnO 9 months ago

Also, although I have compiled the sketch with #define DATAFLASH 16 and set collect mode to on (1c), entering d (dump all replay log markers) achieves nothing, while simply entering r (replay) comes up with "r: page 0

Are you loading your code onto a Jeelink or something else?

If you are interested in seeing more of the radio activity you might try RFxConsole.ino compiled using the https://github.com/jcw/jeelib/tree/RFxConsole-RSSI branch. This hacked about version of RF12demo is able to alert on any radio activity over the RSSI threshold. It can only decode Jee style traffic but you will know that other things are on the airwaves. Please use "15v" and play with the RSSI threshold "220R" for instance will trigger a restart when any radio traffic is present below -110dB (louder than). There should be lots...

RE: What is necessary to adapt RF12 sketches to RF69 ? - Added by mimue 9 months ago

@JohnO

Are you loading your code onto a Jeelink or something else?

Yes, I am (JeeLink v3c). I set "1c" mainly to prevent the JeeLink from sending ACK, but I think there should get something into the data flash. Or will it collect only "good" datagrams, wjich I have none presently ?

If you are interested in seeing more of the radio activity you might try RFxConsole.ino compiled using the https://github.com/jcw/jeelib/tree/RFxConsole-RSSI branch. This hacked about version of RF12demo is able to alert on any radio activity over the RSSI threshold. It can only decode Jee style traffic but you will know that other things are on the airwaves. Please use "15v" and play with the RSSI threshold "220R" for instance will trigger a restart when any radio traffic is present below -110dB (louder than). There should be lots...

Thanks for the hint, presently I am still "scanning" all offsets in the 868 MHz band, listening 30min on every setting, increasing "o" by ten every step. This will take a while...

martynj

Thanks for the hints, especially the SevenW site looks interesting.

mimue

RE: What is necessary to adapt RF12 sketches to RF69 ? - Added by JohnO 9 months ago

The recording to eeprom appears to work.

1d
OK 19 0 0 201 23 138 1 1 251 23 166 8 136 (74dB)
r: page 0 523
R 14 455 19 0 0 204 41 138 1 1 68 24 165 8 136
R 14 466 49 144 216 209 32 16 0 0 0 152 8 244 1 158 7 2 10 221 12 158 10 154 18 48 17
R 14 470 19 0 0 205 43 138 1 1 112 24 166 8 136
R 14 486 19 0 0 206 37 138 1 1 56 24 166 8 136
R 14 501 19 0 0 207 44 138 1 1 110 24 166 8 136
R 14 517 19 0 0 192 36 138 1 1 107 24 167 8 136
R 14 527 49 144 216 225 32 16 0 0 0 152 8 244 1 158 7 2 10 221 12 158 10 160 18 48 17
R 14 527 209
R 14 532 19 0 0 193 37 138 1 1 106 24 167 8 136
R 14 548 19 0 0 194 34 138 1 1 91 24 166 8 136
R 14 563 19 0 0 195 34 138 1 1 106 24 166 8 136
R 14 579 19 0 0 196 37 138 1 1 105 24 167 8 136
R 14 588 49 144 216 241 32 16 0 0 0 152 8 244 1 158 7 2 10 221 12 158 10 148 18 48 17
R 14 588 209
R 14 594 19 0 0 197 36 138 1 1 66 24 166 8 136
DF R 517 14 455
R 14 610 19 0 0 198 37 138 1 1 63 24 167 8 136
R 14 625 19 0 0 199 40 138 1 1 105 24 168 8 136
R 14 641 19 0 0 200 36 138 1 1 71 24 167 8 136
R 14 649 49 144 216 1 32 16 0 0 0 152 8 244 1 158 7 2 10 221 12 158 10 160 18 48 17
R 14 649 209
R 14 656 19 0 0 201 34 138 1 1 118 24 167 8 136
R 14 672 19 0 0 202 42 138 1 1 69 24 168 8 136
R 14 687 19 0 0 203 39 138 1 1 107 24 169 8 136
R 14 703 19 0 0 204 44 138 1 1 88 24 169 8 136
R 14 710 49 144 216 17 32 16 0 0 0 152 8 244 1 158 7 2 10 221 12 158 10 154 18 48 17
R 14 710 209
R 14 718 19 0 0 205 37 138 1 1 74 24 168 8 136
R 14 734 19 0 0 206 35 138 1 1 71 24 168 8 136
R 14 749 19 0 0 207 40 138 1 1 72 24 168 8 136
R 14 765 19 0 0 192 46 138 1 1 119 24 168 8 136
DF R 518 14 610
R 14 771 49 144 216 33 32 16 0 0 0 152 8 244 1 158 7 2 10 221 12 152 10 148 18 48 17
R 14 771 209
R 14 780 19 0 0 193 39 138 1 1 102 24 168 8 136
R 14 796 19 0 0 194 32 138 1 1 64 24 168 8 136
R 14 811 19 0 0 195 32 138 1 1 64 24 168 8 136
R 14 827 19 0 0 196 43 138 1 1 114 24 168 8 136
R 14 832 49 144 216 49 32 16 0 0 0 152 8 244 1 158 7 2 10 221 12 146 10 142 18 48 17
R 14 832 209
R 14 842 19 0 0 197 35 138 1 1 107 24 169 8 136
R 14 858 19 0 0 198 40 138 1 1 90 24 168 8 136
R 14 873 19 0 0 199 38 138 1 1 71 24 169 8 136
R 14 889 19 0 0 200 36 138 1 1 93 24 169 8 136
R 14 893 49 144 216 65 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 140 10 142 18 48 17
R 14 893 209
R 14 905 19 0 0 201 36 138 1 1 60 24 168 8 136
R 14 920 19 0 0 202 38 138 1 1 68 24 169 8 136
DF R 519 14 771
R 14 936 19 0 0 203 36 138 1 1 77 24 171 8 136
R 14 951 19 0 0 204 34 138 1 1 102 24 170 8 136
R 14 954 49 144 216 81 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 140 10 142 18 48 17
R 14 954 209
R 14 967 19 0 0 205 35 138 1 1 110 24 170 8 136
R 14 982 19 0 0 206 37 138 1 1 68 24 171 8 136
R 14 998 19 0 0 207 34 138 1 1 103 24 171 8 136
R 14 1004 49 144 152 97 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 140 10 148 18 48 17
R 14 1004 209
R 14 1013 19 0 0 192 34 138 1 1 56 24 170 8 136
R 14 1029 19 0 0 193 33 138 1 1 106 24 170 8 136
R 14 1044 19 0 0 194 33 138 1 1 46 24 170 8 136
R 14 1060 19 0 0 195 28 138 1 1 39 24 170 8 136
R 14 1065 49 144 216 113 32 16 0 0 0 152 8 244 1 158 7 252 9 215 12 140 10 148 18 48 17
R 14 1065 209
R 14 1075 19 0 0 196 33 138 1 1 78 24 170 8 136
DF R 520 14 936
R 14 1091 19 0 0 197 30 138 1 1 78 24 169 8 136
R 14 1106 19 0 0 198 30 138 1 1 54 24 169 8 136
R 14 1122 19 0 0 199 29 138 1 1 69 24 170 8 136
R 14 1126 49 144 216 129 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 140 10 148 18 48 17
R 14 1126 209
R 14 1137 19 0 0 200 29 138 1 1 23 24 168 8 136
R 14 1145 213
R 14 1145 213
R 14 1153 19 0 0 201 26 138 1 1 56 24 169 8 136
R 14 1167 207
R 14 1168 19 0 0 202 24 138 1 1 40 24 168 8 136
R 14 1184 19 0 0 203 28 138 1 1 8 24 168 8 136
R 14 1187 49 144 216 145 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 140 10 142 18 48 17
R 14 1187 209
R 14 1199 19 0 0 204 28 138 1 1 47 24 168 8 136
R 14 1207 213
R 14 1215 19 0 0 205 26 138 1 1 1 24 167 8 136
R 14 1230 19 0 0 206 22 138 1 1 8 24 167 8 136
R 14 1246 19 0 0 207 27 138 1 1 46 24 167 8 136
DF R 521 14 1091
R 14 1248 49 144 216 161 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
R 14 1248 49 144 216 162 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
R 14 1248 49 144 216 163 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
R 14 1249 49 144 216 164 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
R 14 1249 49 144 216 165 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
R 14 1249 49 144 216 166 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
R 14 1249 49 144 216 167 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
R 14 1249 49 144 216 168 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
R 14 1250 49 144 216 169 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
DF R 522 14 1248
R 14 1250 49 144 216 170 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
R 14 1250 49 144 216 171 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
R 14 1250 49 144 216 172 32 16 0 0 0 152 8 244 1 158 7 252 9 221 12 133 10 142 18 48 17
R 14 1250 209
R 14 1261 19 0 0 192 20 138 1 1 19 24 166 8 136
R 14 1275 213
R 14 1277 19 0 0 193 25 138 1 1 36 24 167 8 136
R 14 1292 19 0 0 194 22 138 1 1 49 24 166 8 136
R 14 1308 19 0 0 195 22 138 1 1 254 23 167 8 136
R 14 1308 49 144 216 177 32 16 0 0 0 152 8 244 1 158 7 252 9 215 12 127 10 173 18 48 17
R 14 1308 209
R 14 1323 19 0 0 196 18 138 1 1 0 24 166 8 136
R 14 1339 19 0 0 197 20 138 1 1 244 23 166 8 136
R 14 1354 19 0 0 198 18 138 1 1 43 24 166 8 136
DF R 523 14 1250
DF E 523 15 1413074

RE: What is necessary to adapt RF12 sketches to RF69 ? - Added by JohnO 9 months ago

I believe that it only records valid Jee packets.

    (1-10/10)