How to use the cheap "PIN Compatible" nRF24L01+ clones from AliExpress that are NOT Software compatible with an Arduino

I got some cheap NRF compatible boards from Ali Express
After trying the RF24 libraries and having no luck I hunted around and found a couple of important things
- I had purchased pin compatible chips on boards with the SAME pinouts as the Nordic Semi NRF chips
- The chips though pin compatible were NOT software compatible!! So none of the libraries would work!
I found this great blog post from Ralph (check out his photos to see if you have one of these compatible units) As Ralph explain these use the Semitek SE8R01
There is a copy of the code in this github location
- https://github.com/Sofcom/NRF24Lmodule-SE8R01
I'll next post the first project I made using this part a simple remote controlled relay with
- The local transmitter connected to a zero vault switch (relay control line normally open and closed when heat pump needs to send a signal)
- Thr remote receiver gets a 1 or 0 from the transmitter (first byte of payload) and turns a local relay on/ on off. This relay output controls the control line to a remote heat pump
- Vcc (1.8-3.6V) This is the pin on the TOP LEFT of the photo above!
- Gnd
- CE
- CSN
- SCK
- MOSI
- MISO
- IRQ
I found this code on the Arduino forums https://forum.arduino.cc/index.php?topic=292153.0
- Download the zip file
- In the zip file, you will see a single folder. Unzip this folder and contents. You should have a folder called "se8r01_rx_tx_2Mps"
- Open the folder and open "se8r01_rx_tx_2Mps.ino" with the Arduino IDE
- Connect the pinout from the wireless board to the Arduino in line with the se8r01.h file (below)
- Connect Arduino 1 as the transmitter (no code change)
- Connect Arduino 2 as the receiver (change the code on line 16 replace the t with and r.
- Finnaly Remember to open the serial monitor and set the correct baud rate :)
This is the code in the header that maps the pin on the wireless board to the Arduino Uno Pinouts
//---------------------------------------------
#define CEq 8
// CE_BIT: Digital Input Chip Enable Activates RX or TX mode
#define CSNq 9
// CSN BIT: Digital Input SPI Chip Select
#define SCKq 10
// SCK BIT: Digital Input SPI Clock
#define MOSIq 11
// MOSI BIT: Digital Input SPI Slave Data Input
#define MISOq 12
// MISO BIT: Digital Output SPI Slave Data Output, with tri-state option
#define IRQq 13
// IRQ BIT: Digital Output Maskable interrupt pin
//*********************************************