nRF24L01+ Only working when you touch finger to module. Using particle-rf24 Library

@Backpacker87 That’s the PA/LNA model I’m using. In the picture it’s replaced with a pcb antenna model so I can work. I just wanted to show (brag!) that I use them a lot. To move on from the frustration I will not try to fix the problem anymore. :slight_smile: I did put a bit of foil around them using cling wrap first, and I tried removing it too. That’s one of the ‘hidden’ with the foil (and my first remote I keep by the window for when I smoke a cig). NodeMCU + NRF with the NRF powered by the NodeMCU 3.3V. No problem there. The MP3 player is even worse since it’s buried in a sea of cables and wires and still no problem. So I’m done investigating. I will try the power module out of curiosity but for the rest, I will work with a non-PA/LNA model on that breadboard. Everything else is working too well to insist on finding a solution.

I’ve just run into the same problem using a ProMini, nRF24 and E-ink display. Pullups, pulldowns and capacitors didn’t work, but once I touched the CE pin on the ProMini with my finger or a DMM lead, the receiver would start working and continue to do so without my finger until I cycled the power. In the sketch I’d used the default 7 and 8 pins for CE, CSN respectively. But if I changed to use pins 5 and 6 instead the problem went away. No theories as to why that is, but it’s worked for me.

1 Like

Hi Guys,
I have the same problem. But since I am hardware engineer, I have more infos but also no solution because I do not have an oscilloscope for 2.4GHz. It is not the CE pin!!! If you move your finger 1-2 mm close to the antenna without touching it, it also starts sending. The same you can do with your finge above the PCB 1-2mm but not touching it, it starts sending. So, this hase something to do with grounding or a suboptimal connection to the SMA antenna (reflections). A small capacitive load through air changes the behaviour. Then, I placed a 1mm metal plate below the antenna (again not touching the antenna), no finger of the metal plate, metal plate is isolated (no ground). Module starts sending. It is definitely an antenna coupling problem or a bad ground of the PA!
Harald

1 Like

Some more info:
I have decoupling capacitors very close to VDD and GND, one 10µF/25V X7R (low ESR) and one 100nF X7R. In some posts, I have read that putting an 8.2pF also in parallel to those 2 increases the transmission range (distance) by a factor 2-5. Have not yet tried it, because the wire distance from PA to the connector and from there to my decoupling caps is far too long that such high frequencies filtered by 8.2pF will pass through (the longer the wire/PCB track, the higher is the impendance, especially at 2.4GHz).
And I have found one more interessting thing:
I have several modules with PA and SMA antenna (sorry for the mistyping before!). There is a diference on the modules which are working without finger :slight_smile: and with finger only.
If you have the module in front of you, SMA antenna to the right, 8 pin connector on the left. The left square chip is the nRF24L01+, the right square chip is the PA. Below the PA (closer to you) are 2 capacitors (Version A) or 3 capacitors (Version B). Version A is always (!!!) working without finger, all (!!!) Version B are working only with finger!
I must find out what these capacitors are doing, but it is a min. 4 Layer PCB with the tracks in the middle layers. Not so easy. I’ll put the modules under the microscope, hope I can read the values (seems to be 0805 or 0603 size). My eyes are not very good.

1 Like

@Harald, welcome to the forum. Nice work, I’m interested to see your findings.

Mave looked onto the PCBs more in detail, these are not capacitors but resistors, so on Version A modules 2 resistors and on Version B modues 3 resistors.
Version A:
PA is RFAXIS X2401C AB1246
Resistors are both 102, so 1KOhms

Version B:
PA is RFAXIS X2402C AB1210
Resistors from left to right:
102 (1KOhms) 102 (1KOhms) 103 (10KOhms)

Harald

Hi Backpacker87
have not seen your response earlier because I was typing. Greetings back to you and all others here.
Harald

Have downloaded both datasheets (X2401C and X2401C). The 10K0 resistor is connected to a pin DET on X2402C which is an analog output proportional to the TX power. Did not yet find any details about it, only that it should be connected to GND via 10KOhms and goest to the transceiver. This pin was NC (not connected) on X2401C. The other 2 resistors (1K0) are also o.k. and are series resistors to the TXEN(able) and RXEN(able) pins of the transceiver chip. Try to find out more about the DET pin. But if it is a crosstalk from other tracks (especially the tracks to the antenna) or a bad layout (impedance/coupling 50Ohms) tot he antenna, I believe that I can not find it and must purchase othere modules from a different supplier and then hope the best.
Harald

@Harald,

Take a look at these modules and see what you think.

Wire Antenna

PCB Antenna

Have taken a look, thank you. The PCB antenna version can not be used in my project, I need the version with antenna. I also looked at the site (https://www.nicerf.com/). They are in Bao An (Shen Zhen). I have worked there long time and I can ask our engineer in China (Dong Guan) to buy them. With approvals, it is much better. Up to now, I have never had problems with my current modules, I have a lot of them (50+). Only the last 10 pcs sent by our engineer there have the problem. I did not yet find the reason. Today, I unfortunately have no time. Tomorrow, I continue on that problem. Sorry for the late response, I am in Germany and stopped working after writing my last comment.

I am getting closer to a solution:

Touching (or nearby without touching it) the antenna may have 2 consequences: The signal may get better, my finger works like an antenna, or (higher probability) signal may get worse, my finger is shielding the RF signal. To check consequence 2, I changed the code for the TX Power:
Command 0x26 is write command to register 0x06:

NRFCmdData(ucModule,0x26, 0x06); //TX Mode, sending at 1MBps at 0dBm
//-----xx- ‘00’ : -18dBm 0x00
//-----xx- ‘01’ : -12dBm 0x02
//-----xx- ‘10’ : -6dBm 0x04
//-----xx- ‘11’ : 0dBm 0x06

Sending at max. Power (0dBm) did work on my module 1 (2 resistors, X2401C) but only sometimes on my module 2 (3 resistors, X2402C). Then changed to less power, with -6dBm 0x04 it became better, with -12dBm 0x02 all packets transmitted without a single packet lost!

My finger is a kind of shield or better an attenuator, reducing the output power and therefore also possible reflections. Maybe, the X2402C can output much higher power than the X2401C. So, reducing its input power also should reduce the output power.

Either the output power of the nRF24L01+ is too high for the input of the X2402C (low probability) or the output power is too high for my receivers to decode the signal (overdriven)(could be checked by increasing the distance) or the high output of the X2402C causes reflections in the antenna path (highest probability).

Give that a try! It seems logical to me.

But I will do more tests, because reducing the output power should also decrease tranmission distance. But I already have an idea: I have 100s of transceivers in the room with small nRF24L01+ modules with PCB antenna and one single central unit with the nRF24L01+ modules with PA and SMA antenna. My central can send packets to my 100 transceivers and they respond (or not) and the central can try values 0x06 for the ones far aways and 0x04 for nearby units and 0x02 for very close units.

This even can be done if the units are moving around like in my case. A higher protocol layer can adjst the output power dynamically.

Since all my units are 100% synchronous (+/-1 microsecond), I even can transmit 0x06,0x04,0x02 packets one after each other (every 500usec one packet). If my central would like to talk to a specific unit, it already knows at which power to send.

Harald