Hello everyone, I finally found 10 minutes to plug everything in and upload the recommended code.
This is what I got from the wiring test program on Robin2's tutorial:
The transmitter circuit:
CheckConnection Starting
FIRST WITH THE DEFAULT ADDRESSES after power on
Note that RF24 does NOT reset when Arduino resets - only when power is removed
If the numbers are mostly 0x00 or 0xff it means that the Arduino is not
communicating with the nRF24
SPI Speedz = 10 Mhz
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xe7e7e7e7e7 0x4141417852
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1 MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
ARC = 0
AND NOW WITH ADDRESS AAAxR 0x41 41 41 78 52 ON P1
and 250KBPS data rate
SPI Speedz = 10 Mhz
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xe7e7e7e7e7 0x4141417852
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x27
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 250 KBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
ARC = 0
The receiver module:
For the
CheckConnection Starting
FIRST WITH THE DEFAULT ADDRESSES after power on
Note that RF24 does NOT reset when Arduino resets - only when power is removed
If the numbers are mostly 0x00 or 0xff it means that the Arduino is not
communicating with the nRF24
SPI Speedz = 10 Mhz
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xc2c2c2c2c2
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1 MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
ARC = 0
AND NOW WITH ADDRESS AAAxR 0x41 41 41 78 52 ON P1
and 250KBPS data rate
SPI Speedz = 10 Mhz
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xe7e7e7e7e7 0x4141417852
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6 = 0x20 0x20 0x20 0x20 0x20 0x20
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x27
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 250 KBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX
ARC = 0
That all looks perfectly fine to me (if anyone wants to confirm or disagree with that, please do), so I uploaded Steveiboy's code and got this at the output of the receiver:
RX RECEIVING:3
RX RECEIVING:4
RX RECEIVING:5
RX RECEIVING:6
RX RECEIVING:7
RX RECEIVING:8
RX RECEIVING:9
RX RECEIVING:10
RX RECEIVING:11
RX RECEIVING:12
RX RECEIVING:13
RX RECEIVING:14
RX RECEIVING:15
RX RECEIVING:16
RX RECEIVING:17
RX RECEIVING:18
RX RECEIVING:19
RX RECEIVING:20
RX RECEIVING:21
RX RECEIVING:22
RX RECEIVING:23
RX RECEIVING:24
RX RECEIVING:25
RX RECEIVING:26
RX RECEIVING:27
Ignoring the initial discrepancy as caused by the time difference between the code uploading to the transmitter and receiver and me opening the terminal, this looks perfectly fine to me.
I then uploaded my own code, with no changes except reordering a couple of the radio setup commands and setting the data rate to 250KBPS (I should explain that this is fundamentally the test code from Robin2's tutorial but with a different message and some additional functionality that not being used).
I get this from the receiver:
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Go forward
Which is perfect.
And this from the transmitter:
1 Go forward
0 Go forward
0 Go forward
1 Go forward
0 Go forward
0 Go forward
0 Go forward
0 Go forward
0 Go forward
0 Go forward
0 Go forward
0 Go forward
0 Go forward
0 Go forward
0 Go forward
0 Go forward
0 Go forward
1 Go forward
1 Go forward
0 Go forward
1 Go forward
0 Go forward
0 Go forward
1 Go forward
1 Go forward
1 Go forward
1 Go forward
0 Go forward
Again, any discrepancy in the number of lines can be ignored. As you can see the acknowledge bit is still a bit temperamental, but the I can confirm the data is being received correctly.
Obviously there is still an issue somewhere, but fundamentally it is working. I have no idea why this is, I have changed absolutely nothing in the last few days, but there you are.
Thanks everyone.