I cant use nrf24l01

Hello everyone, I need to use nrf24l01 for a project, but I couldn't manage to use it. I use it with an adapter. I'm using it normally about 1 week ago. It broke until 3 days ago.

Try the examples at Simple nRF24L01+ 2.4GHz transceiver demo and follow the advice in the topic

this is not working no data is coming from my card

Which Arduino boards are you using ?
How are they connected to the nrf24 modules ?
Have yo tried the example sketches from the link that I posted ?
Run CheckConnection.ino from that topic and post the output here

I'm using arduino uno and arduino nano, I checked a few times, the cards are connected correctly, I'm sending the outputs.

arduino nano =
<
SPI Speedz = 10 Mhz
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xe7e7e7e7e7 0x4141417852
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1 MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
ARC = 0

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

SPI Speedz = 10 Mhz
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xe7e7e7e7e7 0x4141417852
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x27
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 250 KBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
ARC = 0

arduino uno =
<
SPI Speedz = 10 Mhz
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0x000000000e 0xc2c2c2c252
RX_ADDR_P2-5 = 0x0e 0xc4 0x0e 0xc6
TX_ADDR = 0x000000000e
RX_PW_P0-6 = 0x20 0x0e 0x20 0x0e 0x20 0x0e
EN_AA = 0x3f
EN_RXADDR = 0x0e
RF_CH = 0x4c
RF_SETUP = 0x0e
CONFIG = 0x0e
DYNPD/FEATURE = 0x0e 0x00
Data Rate = 2 MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
ARC = 14

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

SPI Speedz = 10 Mhz
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0x000000000e 0xc2c2c2c252
RX_ADDR_P2-5 = 0x0e 0xc4 0x0e 0xc6
TX_ADDR = 0x000000000e
RX_PW_P0-6 = 0x20 0x0e 0x20 0x0e 0x20 0x0e
EN_AA = 0x3f
EN_RXADDR = 0x0e
RF_CH = 0x4c
RF_SETUP = 0x0e
CONFIG = 0x0e
DYNPD/FEATURE = 0x0e 0x00
Data Rate = 2 MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
ARC = 14

Seems the code is not writen for an Uno or classic Nano,
because they defualt to 4MHz, and may do 8MHz, but can never do 10MHz.
A 16Mhz Uno/Nano can only do an SPI speed of a division of that 16Mhz. 8,4,2,etc.

Post a picture of the setup.
Start simple (post#2).
Leo..

This is no longer correct for the "standard" NRF24L01 library:

from: https://github.com/nRF24/RF24/blob/master/COMMON_ISSUES.md

.

The output from CheckConnection on the UNO doesn't look right. Data rate doesn't change.

Hi,

Can you please post your codes, using code tags?
Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?
Hand drawn and photographed is perfectly acceptable.
Please include ALL hardware, power supplies, component names and pin labels.

Thanks.. Tom.. :smiley: :+1: :coffee: :australia: :santa:

How can I fix

arduino uno

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"   

int mesaj[1];

RF24 alici(9,10);

const int kanal = 111;
int led = 2;


void setup(){
  
  alici.begin();
  alici.openReadingPipe(1,kanal);
  alici.startListening();
  pinMode(led, OUTPUT);
}

void loop(){
  if (alici.available())
  {
    bool done = false;    
    while (!done){
      
      done = alici.read(&mesaj, sizeof(mesaj));      
      if (mesaj[0] == 50){
        delay(10);
        digitalWrite(led, HIGH);
      }
      else {
        digitalWrite(led, LOW);
      }
      delay(10);
    }
  }
}

arduino nano

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"


int mesaj[1];

RF24 verici(9, 10);  // CE CSN

const int kanal = 111;
int buton = 7;


void setup() {
  Serial.begin(9600);
  verici.begin();
  verici.openWritingPipe(kanal);
}


void loop() {
  if (digitalRead(buton) == HIGH) {
    Serial.println("g");
    mesaj[0] = 50;
    verici.write(&mesaj, sizeof(mesaj));
  }
}

I don't quite understand how to make the picture.

So… one or both are broken. There is no coding around that issue.

Do you have the sketches that worked until 3 days ago, can you go back to that and try?

a7

@wingenter you need to follow the tutorial that @UKHeliBob linked to back in post #2. It details exactly how to connect up the nRF24L01 modules. Run the CheckConnection sketch from post #30 in that tutorial/discussion. You need that to work correctly before attempting any of the other examples. Once you have CheckConnection working, go back to post #2 in that tutorial/discussion and try SimpleTx and SimpleRx.

That code has been proven to work for 100's of users who are experimenting with nRF24L01 modules.

hey bro I did all what you said but it didn't work I think the problem is that the arduino uno is not connected to the nrf24 because although I can change the data rate in the arduino nano, I could not do it in the uno.

Which nRF24L01 library are you using and where did you get it from?

I doubt you have read and tried the code in the tutorial linked to by @UKHeliBob . Your code shows the address as:

I very much doubt that is going to work. The address should be a 64 bit value:

Either something like:
const byte kanal[5] = {'R','x','A','A','A'};
as in the linked tutorial 

or

const uint64_t kanal = 0xE8E8F0F0E1LL;

1 Like

Thank you very much to everyone who replied, I solved the problem to the ICSP pins of the nrf4

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.