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



  1. I had purchased pin compatible chips on boards with the SAME pinouts as the Nordic Semi NRF chips
  2. 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


  1.  The local transmitter connected to a zero vault switch (relay control line normally open and closed when heat pump needs to send a signal)
  2. 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
Note that Pin 1 is VCC


  1. Vcc (1.8-3.6V) This is the pin on the TOP LEFT of the photo above!
  2. Gnd
  3. CE
  4. CSN
  5. SCK
  6. MOSI
  7. MISO
  8. IRQ

I found this code on the Arduino forums https://forum.arduino.cc/index.php?topic=292153.0

  1. Download the zip file
  2. 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"
  3. Open the folder and open "se8r01_rx_tx_2Mps.ino" with the Arduino IDE
  4. Connect the pinout from the wireless board to the Arduino in line with the se8r01.h file (below)
  5. Connect Arduino 1 as the transmitter (no code change)
  6. Connect Arduino 2 as the receiver (change the code on line 16 replace the t with and r. 
  7. 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
//*********************************************