Another NRF24 problem - works on one Uno but not others

Hi,

I have been working for a few days with the NRF24L01 modules, and had them working fine for a day. Then next day, powered everything back up, and nothing. After days of mucking around, I think that the Arduino is not communicating with the module properly. I have determined this from using Robin2's 'CheckConnection' sketch as well the 'Scanner' example from the RF24 library.

I have chop and changed all the hardware, even wires, to the point where I can now plug it into one Uno and everything looks fine, then plug it into two different Unos and no good. Conversely I can plug different modules into the working Uno and they are fine.

My basic setup is the NRF24L01+PL+LNA module, plugged into a YL-105 adapter, plugged into an Uno, using 7/8 for CE/CSN and then 11/12/13

The difference between the Uno boards is the one that works has an SMD chip and the others are plug in type.

Any help on what else I can try to get these going would be greatly appreciated.

Cheers

Does the YL-105 provide power for the nRF24 or is the power for it drawn from the Arduino 3.3v pin?

I don't have any experience with Unos with surface-mount 328 chips - I presume the SPI pins are in the same location as on a regular Uno?

...R

Yes the power comes from the YL-105 which has an onboard regulator and the capacitor across the power terminals too.

SPI pins are the same as far as I know. I have had it working, so I don’t think that would be the problem.

One other difference between the boards I’ve found is that the SMD board also has a CH340 chip rather than the ATmega16U2 on the other boards.

Kixx: I have had it working, so I don’t think that would be the problem.

Are you saying that the nRF24 has worked with the SMD Uno and is not now working?

If so I would suspect a bad connection somewhere or else the Uno has got damaged.

I don't see how the CH340 could have any impact on the problem - presumably you have confirmed that the correct program has actually been uploaded?

...R

It currently works only on the SMD board, and not the other two boards I have. But did work on one of them previously.

Yeah definitely the correct program. Upload to the SMD board and it works OK, then I just swap to the other UNO and change the COM port in the Arduino IDE and upload again, and then no longer works.

Maybe something has damaged the other two boards, but they seem fine otherwise.

Kixx: Yes the power comes from the YL-105 which has an onboard regulator and the capacitor across the power terminals too.

You've added a capacitor across the power terminals? or do you mean that the YL-105 includes the capacitor

Kixx: Yeah definitely the correct program. Upload to the SMD board and it works OK, then I just swap to the other UNO and change the COM port in the Arduino IDE and upload again, and then no longer works.

You have not said what program is uploaded to the non-SMD boards.

Presumably you have an Arduino + nRF24 that sends and another Arduino + nRF24 that receives. Which end of the conversation is having the problem? It would make your descriptions easier if you give the Arduinos different names - such as ArduinoA, ArduinoB etc.

...R

Thanks for trying to help, apologies if my descriptions aren't great.

I'll call the working one ArduinoSMD and the other boards ArduinoA and ArduinoB

The capacitor is built into the YL-105, I haven't added anything extra.

The two programs are your 'CheckConnection' sketch from the tutorial post, and also the 'Scanner' from the RF24 examples in the Arduino IDE. So therefore I am not actually trying to communicate between two boards, that's how I've narrowed it down to ArduinoA/B not working. I did have them communicating together, but since that broke down this is how I have narrowed down the problem.

When I run the 'CheckConnection' sketch on ArduinoA/B I get mostly 0s and xs, and also the data rate does not change to 250kpbs as it should. If I runner the scanner example it doesn't find anything. The preamble runs, then nothing.

If I do the same tests with ArduinoSMD I get a mix of numbers letters etc from the CheckConnection sketch, and on the second run through the data rate changes down to 250kbps as it should. Also the scanner example successfully runs through and picks up a heap of data.

These results don't change when I mix the other hardware around. It doesn't matter which NRF24 module I use, the results are dependent on which Arduino it is connected to.

That makes things a lot clearer but I'm afraid I can't think of anything to add to what I said in Reply #3

Can you get a 4th Arduino to experiment with?

...R

Unfortunately I don’t have access to a 4th board, but I might have to consider getting another. Just a case of whether I throw more money at getting it working or try a different route as it seems I’m running out of options.

Thanks for giving it some thought for me anyway.