Skip to content

Latest commit

 

History

History
26 lines (21 loc) · 1.62 KB

README.md

File metadata and controls

26 lines (21 loc) · 1.62 KB

ChiNRF

Arduino library for NRF24L01+ clones: RFM73, RFM75, LCX24G, XN297

This library is an attempt to make the NRF24L01+ and its clones understand each other.

Simple example: buttons and LEDs

3 different radio modules connected to 3 Arduinos. You press a button on any of them, and the pin13 LED of the other 2 will light up. You release the button, and the LEDs will turn off.
https://github.com/roboremo/ChiNRF/tree/master/ChiNRF%20v1.0/Examples

Interesting facts

LCX24G and XN297/KSL297 seem to be identical
It seems that RFM73 is not produced anymore, and was replaced by RFM75
I have a RFM73 that works if initialized with register values from the RFM75 datasheet, but not with those from RFM73 datasheet.

Limitations

In order to be able to communicate with each other, the radio modules are set to fixed payload size, no CRC, no ACK. Some chips use preamble [0x55], others use [0x71 0x0F 0x55]. In order to understand each other, the chips that use [0x55] have set the TX address to [0x00 0x00 0x00 0x00 0x00] and are emulating the 3-Byte preamble by writing it (and the actual TX address) at the beginning of the data message, so the maximum message length gets smaller.
Tested only with 5-Byte address.
There are still many things to test.

Credits:

Big thanks to the guys from www.deviationtx.com/forum for revealing the scrambling algorithm of the XN297.
https://www.deviationtx.com/forum/protocol-development/3368-jd-395-cx-10?screenMode=none&start=180

Things used for developing this library:

https://github.com/roboremo/NRF24-total-control
https://github.com/roboremo/NRF24-demodulator