Problem with nRF24L01

Good day,

I am trying to communicate using 2 nRF24L01, but the data is not being sent.

I follow the guideline posted at https://forum.arduino.cc/index.php?topic=421081.15 by Robin2.

There are 2 module, I shall refer it as RF1 and RF2.

RF1 is configured as a Master while RF2 is configured as a Slave.

RF1 with CheckConnection.ino

CheckConnection Starting

FIRST WITH THE DEFAULT ADDRESSES after power on
  Note that RF24 does NOT reset when Arduino resets - only when power is removed
  If the numbers are mostly 0x00 or 0xff it means that the Arduino is not
     communicating with the nRF24

SPI Speedz = 10 Mhz
STATUS = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1 = 0xe3e3e3e3e3 0x0000003800
RX_ADDR_P2-5 = 0xc1 0xc0 0xc0 0xc2
TX_ADDR = 0xe3e3e3e3e3
RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x1f
EN_RXADDR = 0x01
RF_CH = 0x04
RF_SETUP = 0x00
CONFIG = 0x02
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01
CRC Length = 8 bits
PA Power = PA_MIN


AND NOW WITH ADDRESS AAAxR  0x41 41 41 78 52   ON P1
 and 250KBPS data rate

SPI Speedz = 10 Mhz
STATUS = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1 = 0xe3e3e3e3e3 0x0000003800
RX_ADDR_P2-5 = 0xc1 0xc0 0xc0 0xc2
TX_ADDR = 0xe3e3e3e3e3
RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x1f
EN_RXADDR = 0x01
RF_CH = 0x04
RF_SETUP = 0x00
CONFIG = 0x02
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01
CRC Length = 8 bits
PA Power = PA_MIN

RF2 with CheckConnection.ino

CheckConnection Starting

FIRST WITH THE DEFAULT ADDRESSES after power on
  Note that RF24 does NOT reset when Arduino resets - only when power is removed
  If the numbers are mostly 0x00 or 0xff it means that the Arduino is not
     communicating with the nRF24

SPI Speedz = 10 Mhz
STATUS = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1 = 0xe3e3e3e3e3 0x0000003800
RX_ADDR_P2-5 = 0xc1 0xc0 0xc0 0xc2
TX_ADDR = 0xe3e3e3e3e3
RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x1f
EN_RXADDR = 0x01
RF_CH = 0x04
RF_SETUP = 0x00
CONFIG = 0x02
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01
CRC Length = 8 bits
PA Power = PA_MIN


AND NOW WITH ADDRESS AAAxR  0x41 41 41 78 52   ON P1
 and 250KBPS data rate

SPI Speedz = 10 Mhz
STATUS = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1 = 0xe3e3e3e3e3 0x0000003800
RX_ADDR_P2-5 = 0xc1 0xc0 0xc0 0xc2
TX_ADDR = 0xe3e3e3e3e3
RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x1f
EN_RXADDR = 0x01
RF_CH = 0x04
RF_SETUP = 0x00
CONFIG = 0x02
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01
CRC Length = 8 bits
PA Power = PA_MIN

I have connected 15V 10microF capacitors for both RF1 and RF2.

The following is the message when I attempt to send and receive data. Run using SimpleTx.ino and SimpleRx.ino.

RF1

[code] f~⸮⸮fx⸮⸮⸮fx⸮⸮f⸮xff⸮SimpleTx Starting Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed Data Sent Message 0  Tx failed [/code]

RF2

Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received 
Data received

Neither of your connection tests is working properly so there is no point trying anything else. The most likely cause of the problem is wrong connections or a loose connection.

What Arduino boards are you using?

...R

I am using a clone type Arduino Uno call Maker Uno. https://my.cytron.io/p-maker-uno-simplifying-arduino-for-education?search=maker%20uno&description=1&src=search.list

I used this for all my projects and it works well.

I have bought the nRF24L01 module from online, shipped from China. Not sure if that affects anything. It comes in packs of 5, and I have tested every one, it gives the same thing.

I have taken everything out and reconnecting it. Serial monitor prints out:

CheckConnection Starting

FIRST WITH THE DEFAULT ADDRESSES after power on
  Note that RF24 does NOT reset when Arduino resets - only when power is removed
  If the numbers are mostly 0x00 or 0xff it means that the Arduino is not
     communicating with the nRF24

SPI Speedz   = 10 Mhz
STATUS       = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1     = 0x0000003800 0x0000003800
RX_ADDR_P2-5     = 0xc1 0xc0 0xc0 0xc2
TX_ADDR      = 0x0000003800
RX_PW_P0-6   = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA        = 0x00
EN_RXADDR    = 0x01
RF_CH        = 0x04
RF_SETUP     = 0x00
CONFIG       = 0x00
DYNPD/FEATURE    = 0x00 0x00
Data Rate    = 1MBPS
Model        = nRF24L01
CRC Length   = Disabled
PA Power     = PA_MIN


AND NOW WITH ADDRESS AAAxR  0x41 41 41 78 52   ON P1
 and 250KBPS data rate

SPI Speedz   = 10 Mhz
STATUS       = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1     = 0x0000003800 0x0000003800
RX_ADDR_P2-5     = 0xc1 0xc0 0xc0 0xc2
TX_ADDR      = 0x0000003800
RX_PW_P0-6   = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA        = 0x00
EN_RXADDR    = 0x01
RF_CH        = 0x04
RF_SETUP     = 0x00
CONFIG       = 0x00
DYNPD/FEATURE    = 0x00 0x00
Data Rate    = 1MBPS
Model        = nRF24L01
CRC Length   = Disabled
PA Power     = PA_MIN

And the other:

CheckConnection Starting

FIRST WITH THE DEFAULT ADDRESSES after power on
  Note that RF24 does NOT reset when Arduino resets - only when power is removed
  If the numbers are mostly 0x00 or 0xff it means that the Arduino is not
     communicating with the nRF24

SPI Speedz   = 10 Mhz
STATUS       = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1     = 0xe3e3e3e3e3 0x0000003800
RX_ADDR_P2-5     = 0xc1 0xc0 0xc0 0xc2
TX_ADDR      = 0xe3e3e3e3e3
RX_PW_P0-6   = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA        = 0x1f
EN_RXADDR    = 0x00
RF_CH        = 0x04
RF_SETUP     = 0x00
CONFIG       = 0x00
DYNPD/FEATURE    = 0x00 0x00
Data Rate    = 1MBPS
Model        = nRF24L01
CRC Length   = 8 bits
PA Power     = PA_MIN


AND NOW WITH ADDRESS AAAxR  0x41 41 41 78 52   ON P1
 and 250KBPS data rate

SPI Speedz   = 10 Mhz
STATUS       = 0x06 RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=3 TX_FULL=0
RX_ADDR_P0-1     = 0xe3e3e3e3e3 0x0000003800
RX_ADDR_P2-5     = 0xc1 0xc0 0xc0 0xc2
TX_ADDR      = 0xe3e3e3e3e3
RX_PW_P0-6   = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA        = 0x1f
EN_RXADDR    = 0x00
RF_CH        = 0x04
RF_SETUP     = 0x00
CONFIG       = 0x00
DYNPD/FEATURE    = 0x00 0x00
Data Rate    = 1MBPS
Model        = nRF24L01
CRC Length   = 8 bits
PA Power     = PA_MIN

Please have a quick glace in case I am blind and messed up the connection and failed to recognise.


WhatsApp Image 2020-08-19 at 6.41.05 PM (1).png

Please make your images visible in your Posts. See this Simple Image Posting Guide

The reason you could not upload all the images in one Post is because they are too big. Smaller image files (640 x 480 should be fine) are kinder to those of us with slow or expensive internet connections.

...R

I do apologies on that. Relatively new to Arduino Forum. Thanks for the guidance.

I have edited the post to allow pictures to show as icon. I am still now sure how can I make the file size even smaller, I just cropped the unwanted part.

I appreciate the trouble you have taken but pictures of the hardware are not a reliable way of showing how things are connected. Just make a simple pencil drawing showing the connections with suitable labels and post a photo of the drawing. Artistic skill is not required.

...R

My bad, I was thinking that another set of eyes might be beneficial. I connected according to your diagram on the other post.

Recheck the wires and it seems to be connecting the correct way, but still cant get it to work.

steve_lim: Recheck the wires and it seems to be connecting the correct way, but still cant get it to work.

If the connection test does not give the correct response then it is most likely that the wiring is not correct. If you make a drawing like I suggested I will have a look at it but without seeing the drawing I can't help.

It's possible that you have a faulty nRF24 but it seems unlikely that they will all be faulty. Maybe get a few more from a different supplier?

...R

I am ordering another 2 from another supplier.

This is my connection, I use the same code as yours, exactly the same, even with the pin number.

Pins are out of the page, antenna to the right.

Pin connection.png

I have just found another Arduino Uno and Arduino Mega and connected them with the module. It works. It seems like the other clone was not working.

Thanks for the help

steve_lim: Pins are out of the page, antenna to the right.

For the future that diagram is not helpful because it does not identify the roles of each of the nRF24 pins.

Glad to hear you are making progress.

...R

Do you suggest that I identify each pins on the module and what it is, then identify connect to what board, PIN number, and the function of the pin?

I am very new to asking for help on forum, any advice is welcome.

I have seen on your thread, you mention that the RF module might not be updated to the latest program, sometimes we have to power off and power on it. Is there a particular reason why this occur?

steve_lim:
Do you suggest that I identify each pins on the module and what it is, then identify connect to what board, PIN number, and the function of the pin?

The way your diagram is presented I would have to look up somewhere to find out what each of the nRF24 pins does in order to know whether each of them is connected to the correct Arduino pin.

I have seen on your thread, you mention that the RF module might not be updated to the latest program, sometimes we have to power off and power on it. Is there a particular reason why this occur?

The nRF24 is never updated with a new program - only the Arduino. However the nRF24 has no reset feature (unlike the Arduino) and the only way to reset it is to disconnect the power from it. You may or may not find that it is necessary to reset the nRF24.

…R

Understood.

For future reference, my opinion for not working on the other board is the current drawn. The board known as Maker Uno has a LED light as indicator in each pin, as such the current will be significantly reduced, hence not enough current to drive nRF24L01. I have tried to power it with battery, still no working but that’s just a first try, will try and solve it in a day or two, waiting for a 3.3V voltage regulator to arrive

I have added a 10 micoFarad capacitor but that isn’t enough.