LowPowerLab Forum

Hardware support => RF - Range - Antennas - RFM69 library => Topic started by: Larry on December 13, 2018, 05:37:27 PM

Title: RF69 vs RTL_433 OOK config - look for signal inversion
Post by: Larry on December 13, 2018, 05:37:27 PM
While expermenting with some RFM69c transceivers I happened on Felix's Github RFM69 library. One of the best parts, the readAllregs routine, let me know the wiring was correct. Then the "fun" began.

While trying to sync lock on an Ambient WH31B (ook NRZ modulation, temp & humidity) sensor, the RFM69 had no success yet the RTL_433 config claimed the constant data was 2DD430hex. Connecting scope directly to the WH31B modulation input, it was indeed 2DD430hex. The next step was puttng the RFM69C into continuous mode and scoping the output. Shock! The receiver has inverted the signal and what I saw usable for the sync was now D22BCFhex. So RTL_433 OOK configs should be complemented to get the working values for the RFM69. I don't know if this also applies to FSK modulation at this point.

Unfortunately, the receiver's pattern recognition had trouble determining if the preamble was A's or 5's and jittered about between the two, resulting in a payload shifted by 1 bit about half the time. I solved this problem by shifting the sync left by one nibble, resulting in 5D22BC for sync, which forced the bit pattern routine of the receiver to get the preamble nibble(5hex) correctly. The lock is rock solid. The WH31B is cheap and has an LCD display of the temp(C or F) & humidity; so you know everything during testing including an indication when it transmits. I plan on using a number of these. Hope this helps save someone some time and hair-pulling. Where can I get that hair-growing cream?

One more thing that puzzles me, is, that If I write more sync words into the SyncValue registers than indicated in the SyncSize register, the sync fails.