Hi guys,
I have just joined this great forum
I am trying to get two Picos working toguether using nrf24l01
I am getting some odd behaviour
Yes, these are some nrf24l01 from ebay that came in a packet of 10, however, I do not think the problem lies there because I have set them up on two Arduino nanos and they seem to communicate quite happily, and though many walls up to over 20 meters away
I have tried to switch a number of those nrf24l01 modules from those 10 onto the Picos a few times and the behaviour is always the same, so again it does not feel that these modules are at fault, otherwise I would suspect that the behaviour would change with different bad module?
I do take onboard the comments in this forum about buying good quality ones, and if that is what I need to do to resolve issues, I will do that.
Whatever I transmit, only a fraction of what I send get through.
Often I notice that a character is received, but the sender says the transmission has failed implying that it did not get the acknowledgement back ( I tried to change the timeout from 500 to 5000 in nrf24l01.py, but that made no difference)
I am using the nrf24l01.py library and the sample code from Kevin McAleer
I have tweaked the code a bit so that it does not stop when it gets a send error so as to allow it to continue running
https://github.com/kevinmcaleer/nRF24L0 ... in/main.py
I believe the nrf24l01 library is a copy of the Peter Hinch and it does seem so looking at both
I start the receiver and then start the transmitter
I have added 10 Microfarad capacitors on both receiver and transmitter as without those, no messages get through at all to the receiver (perhaps an indication that these module are poor as Peter suggested in his post)
I am powering the nrf24l01 module on both pico by their own separate 3.3 volt power supply with common ground as I have noted in various forums that the Picos might not have enough power on the 3.3 v pin for these modules. Also I will want to add a wifi module as some of my Picos will be used as a WiFi MQTT bridge between my local wifi net and rf net
I have tried lowering the transmit power from 3 to 1 as I have read that when close together these modules might not work well together at high power
I have tried to introduce wait statements in various places to hopefully give time for the modules to settle between transmission,
Nothing I have done so far has helped cured the issue
Hopefully someone here will identify what the issue could be
Many thanks for any help on this
To give you some idea of the pattern, I issued teh following commands in the python script
send(nrf, "a1")
sleep(3)
send(nrf, "b2")
sleep(3)
send(nrf, "c3")
sleep(3)
send(nrf, "d4")
sleep(3)
I get the following on the receive side
Initialising the nRF24L0+ Module
We have received data
a
We have received data
b
We have received data
c
We have received data
d
We have received data
a
We have received data
1
We have received data
b
We have received data
2
We have received data
c
We have received data
d
We have received data
a
We have received data
b
We have received data
c
We have received data
3
We have received data
d
I get the following on the transmit side
Note that the extra _ character is what I append to each message being sent as an eol character
Initialising the nRF24L0+ Module
sending message (incl eol) - a1_
send sending character a
send Sorry message not sent
send sending character 1
send Sorry message not sent
send sending character _
send Sorry message not sent
sending message (incl eol) - b2_
send sending character b
send Sorry message not sent
send sending character 2
send Sorry message not sent
send sending character _
send Sorry message not sent
sending message (incl eol) - c3_
send sending character c
send Sorry message not sent
send sending character 3
send message 3 sent
send sending character _
send message _ sent
sending message (incl eol) - d4_
send sending character d
send Sorry message not sent
send sending character 4
send message 4 sent
send sending character _
send message _ sent
sending message (incl eol) - a1_
send sending character a
send message a sent
send sending character 1
send message 1 sent
send sending character _
send Sorry message not sent
sending message (incl eol) - b2_
send sending character b
send message b sent
send sending character 2
send message 2 sent
send sending character _
send Sorry message not sent
sending message (incl eol) - c3_
send sending character c
send Sorry message not sent
send sending character 3
send Sorry message not sent
send sending character _
send message _ sent
sending message (incl eol) - d4_
send sending character d
send Sorry message not sent
send sending character 4
send message 4 sent
send sending character _
send message _ sent
sending message (incl eol) - a1_
send sending character a
send Sorry message not sent
send sending character 1
send message 1 sent
send sending character _
send message _ sent
sending message (incl eol) - b2_
send sending character b
send Sorry message not sent
send sending character 2
send message 2 sent
send sending character _
send message _ sent
sending message (incl eol) - c3_
send sending character c
send message c sent
send sending character 3
send message 3 sent
send sending character _
send message _ sent
sending message (incl eol) - d4_
send sending character d
send Sorry message not sent
send sending character 4
send Sorry message not sent
send sending character _
send Sorry message not sent