This time I was spending the holidays as usual away from the city, further improving my smarthome. This time I was installing a bunch of devices with nRF24L01+ radios. When I was running out of spare nRF24L01+ modules, I noticed that I was left with a bunch of weird modules that kind of work, but really crappy. They feature huge packet losses, but whenever you touch the PCB antenna, it goes away. I decided to look into the problem and document my findings.
A quick googling found out that a problem is well known. There are a dozen or even more threads on the arduino forums and others. Here are some of them:
- nRF24L01+ only working when I place my finger on it
- NRF24L01 failing. Placing finger on aerial fixes it!
- Problem using nrf24l01+ modules. Print details seem ok. Only work when touching.
And the list goes on. All recommendations were down to “throw those into the garbage bin and order from a different seller” и “Needz moar ceramic capacitors on the power rails“.
As expected, a ton of capacitors of various kinds, shapes and sizes didn’t help much, oscilloscope showed no issues with the power. So, what’s so magical about my finger?
So, I scratched my head and ran a quick estimate on the delivery times from China. The result was pretty much upsetting. I looked again on those bunch of zombie modules and remembered the old story how the Chineese like to optimize the nRF24L01+ BOM costs. I had a hunch that I was dealing with something very similar this time.
What happens when we touch the antenna? First of all, we become an antenna ourselves (yup). Second, we change the capacitance of the antenna trace. So I covered the PCB antenna with kapton tape and repeated the experiment. All the same!
Now, let’s dive into the reference schematics in the datasheet. See that C6 I circled in RED?
C6 is missing from all my nRF24L01+ modules. Like every single one of them, even those working with no problems! I marked the place on the next photo where it should theoretically be.
Success! And what happens if we solder it?
Magic happens, the modules flashed and worked with no big issues, just as if my finger was placed on them.
Tests with mysensors revealed that they offered worse signal than those that worked perfectly fine with no caps added, so there was something bad with them after all. Perhaps half-killed with static? Anyways, these should last until the new batch arrives. Further tests revealed that adding this cap also improves a little bit the signal quality of other modules, especially when running at 250Kbps speed.