Go Down

Topic: Problem using nrf24l01+ modules. Print details seem ok. Only work when touching. (Read 2489 times) previous topic - next topic

07cap

Hi,

I recently got my hands on a couple the nrf24l01+ modules. I have spend two weeks searching google trying to diagnose the problem.
I'm using the maniacbug library and setup. I tried to use the pingpair example from the library, which did not work at all. I only got 1 payload per 100 sent or the like. After researching a bit I found one guy whose nrf24l01+ only appear to work when he sat the data rate to 2mbps. So i did and everything worked like a charm. Tested it to 10 metres range without any significant loss, in a normal house with wifi and such.
I then tried the led_remote example, also from the library. It gets the very first reading and from then don't work at all. At least that's till I'm touching the crystal (only the crystal, apparently) on the board. While I'm holding a finger on the board it works as it should.

Pingpair Transmitter (working):
Code: [Select]
RF24/examples/pingpair/
ROLE: Ping out
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xf0f0f0f0e1 0xf0f0f0f0d2
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xf0f0f0f0e1
RX_PW_P0-6 = 0x08 0x08 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x0f
CONFIG = 0x0f
DYNPD/FEATURE = 0x00 0x00
Data Rate = 2MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_HIGH
Now sending 87...ok...Got response 87, round-trip delay: 24
Now sending 1112...ok...Got response 1112, round-trip delay: 26
Now sending 2139...ok...Got response 2139, round-trip delay: 39
Now sending 3178...ok...Got response 3178, round-trip delay: 27
Now sending 4205...ok...Got response 4205, round-trip delay: 22
Now sending 5228...ok...Got response 5228, round-trip delay: 22
Now sending 6250...ok...Got response 6250, round-trip delay: 31


Pingpair Receiver (working):
Code: [Select]
RF24/examples/pingpair/
ROLE: Pong back
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xf0f0f0f0d2 0xf0f0f0f0e1
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xf0f0f0f0d2
RX_PW_P0-6 = 0x08 0x08 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x0f
CONFIG = 0x0f
DYNPD/FEATURE = 0x00 0x00
Data Rate = 2MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_HIGH
Got payload 47046...Sent response.
Got payload 48068...Sent response.
Got payload 49091...Sent response.
Got payload 50114...Sent response.
Got payload 51141...Sent response.
Got payload 52164...Sent response.
Got payload 53191...Sent response.


Led_remote test Transmitter (not working). The second half is where I'm placing my finger on the board:
Code: [Select]
RF24/examples/led_remote/
ROLE: Remote
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xe8e8f0f0e1 0xf0f0f0f0d2
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe8e8f0f0e1
RX_PW_P0-6 = 0x20 0x08 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x0f
CONFIG = 0x0f
DYNPD/FEATURE = 0x00 0x00
Data Rate = 2MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_HIGH
Now sending...ok
Now sending...failed
Now sending...failed
Now sending...failed
Now sending...failed
Now sending...failed
Now sending...ok
Now sending...ok
Now sending...ok
Now sending...ok
Now sending...ok
Now sending...ok


Led_remote test Receiver (not working):
Code: [Select]
RF24/examples/led_remote/
ROLE: LED Board
STATUS           = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1     = 0xf0f0f0f0e1 0xe8e8f0f0e1
RX_ADDR_P2-5     = 0xc3 0xc4 0xc5 0xc6
TX_ADDR          = 0xf0f0f0f0e1
RX_PW_P0-6       = 0x08 0x20 0x00 0x00 0x00 0x00
EN_AA            = 0x3f
EN_RXADDR        = 0x03
RF_CH            = 0x4c
RF_SETUP         = 0x0f
CONFIG           = 0x0f
DYNPD/FEATURE    = 0x00 0x00
Data Rate        = 2MBPS
Model            = nRF24L01+
CRC Length       = 16 bits
PA Power         = PA_HIGH
Got buttons
Got buttons
Got buttons
Got buttons
Got buttons
Got buttons
Got buttons


An Arduino Uno is used for the transmitter and a Arduino Nano as the receiver.

I'm planning on using it for basic sensor reading with a lan "base".

Any ideas or suggestion appreciated.

PaulS

Quote
I'm touching the crystal (only the crystal, apparently) on the board.

On which board? On the Arduino? Or on the radio? If it's on the radio, I'm guessing you have a defective solder joint on the radio, and that pressing on the crystal makes the connection secure enough.
The art of getting good answers lies in asking good questions.

07cap

Quote
On which board? On the Arduino? Or on the radio? If it's on the radio, I'm guessing you have a defective solder joint on the radio, and that pressing on the crystal makes the connection secure enough.


Thanks for your reply

It's the crystal on the radio. I have tried firmly pressing it down with a non conductive object like a ballpen which did'nt work.

PaulS

Quote
It's the crystal on the radio. I have tried firmly pressing it down with a non conductive object like a ballpen which did'nt work.

Then, it would seem that your finger is the antenna.
The art of getting good answers lies in asking good questions.

reaganr


ESSEF

Which NRFs are you using, presumably the cheaper version without the PA+LNA+SMA antenna you can expect interference/signal boost when in close proximity to these radios.

How are they connected ? flying leads will induce interference also.

Separate the tx/rx as much as possibly then  load the pingpairdyn sketch from the rf24 examples folder and wire as required, now sit back and once stabilised you,ll get an idea of your signal/data transfer quality.

Essef  :smiley-cool:
ps When initially tested i found the cheaper nrfs atrocious and hence purchased the aforementioned radios.

ESSEF

Following link explains possible cause,s

http://arduino.cc/en/Tutorial/DigitalPins

Essef  :smiley-cool:

oroboss

maybe a little 100nF capacitor between gnd & vcc on nRF chip will solve your problem

FigZ

I have been struggling with the same problem
I finally found that the socket for the nrf24l01 was giving bad connection
i think i will start to solder them directly to my pcb

also - experiment with different caps directly on the nrf module, between 3.3v and gnd
I think the boards have a decoupling cap on the board, but I did get better results with either a 4.7UF or 10UF capacitor (depends on the board which works best)

also - take a look at tmrh20 's fork of the maniacbug library, it is more recent, solves some bugs, and is actively maintained.

Go Up