I am developing a simple suite of PCB-based devices in order to manage some home automation functions, i.e. 443 mhz radio control and electrical sockets management (on / off). Such devices are based on Atmega328P-PU and NRF24L01 (without PA-LNA). Attached the Eagle drawings for schematic and board views. The devices are queried via NRF24L01 by a gateway which is based on Raspberry PI 3 model B.
The issue I am facing is that, even though both devices are based on the same design, the radio device is working correctly while the socket device does not work: there does not seem to be any NRF24L01 transmission in response to the raspberry discovery message. The issue is the same also on other PCBs performing other functions (consumption monitoring, presence detection, lighting management ...) and having in common the fact of being based on HLK-PM01. Similarly, the problem does not occur on another device based on USB power (temperature monitoring).
Therefore, a first possibility of error has been the power supply through HLK-PM01 (I indeed read other discussions related to radio interferences that these components can create); unfortunately after a first troubleshooting attempt on the component I discarded this possibility by removing the component from the PCB and by starting to feed it through the 5v pin of Arduino Uno board. The components was well-powered but the behavior was the same.
The second possibility of error has been the incorrect connections of NRF24L01 pins or the Atmega power supply (i.e. an error in the trace drawing on the PCB, which could have been "propagated" in the transition from USB power supply to HLK-PM01 power supply) . A check on the connections did not revealed any difference.
The third possibility of error has been the Atmega configuration or the code loaded on the PCB. I tried to mount the same Atmega with the same code first on the radio PCB, then on the line PCB, but the result was the same (working radio device, no response from socket device).
A fourth possibility has been the thickness of the power and signal lines on the PCBs. Maybe a difference in thickness could have blocked current flow in line device. Unfortunately, a check on Eagle drawings revealed that traces on both devices are of the same thickness (0.254) and depth (1 oz).
Now, apparently I have been discarding these possibilities of error, so I do not know any longer what to think ...
For sake of completeness (since the same code on the same atmega generates the same behavior, I tend to exclude issues related to the code, but you never know ...) I attach firmware codes which has been loaded on Atmega for Radio device, code for socket device, and Python code for gateway on Raspberry.
Any troubleshooting suggestion would be very appreciated.
Thank you for reading!
radio.txt (1.56 KB)
line.txt (3.62 KB)
gateway.txt (2.37 KB)