Nrf24 with sma and pa

I swapped my modified nrf24L01 radios with a couple of sma/pa ones with antennas and the sketches stop working. They Initialize but no data is transmitted. Any idea what could be the fault? Swapping the old ones back restores the data transmission.

Here is the code I'm using:

r.ino (3.84 KB)

t.ino (1.94 KB)

Receiver overload. Run at minimum power and orient antennas orthogonal to each other.

Thank you.

I got both on RF24_PA_LOW and nada. The transmitter logs packets sent but the receiver sits idle.

Both antennas are pointed up. Close range, maybe 12 inches. Range increase didn't help.

This Simple nRF24L01+ Tutorial may help.

Maybe try the examples with two nRF24s with PCB antennas and when that works swap to the high-power versions.

I don't have any high-power versions so I have no experience to guide you on minimum range.

...R

If you are using aa try increasing the delay between transmit retries, this worked for me when i upgraded to stronger modules. I assume you use rf24 library as that is the most common, i hardly ever use it any more but this is from rf24.h so i think you just need to add radio.setRetries(5, 10); in setup try a few different delays and see if it will work for ya (this needs to be on the transmitter side)

  • Set the number and delay of retries upon failed submit
  • @param delay How long to wait between each retry, in multiples of 250us,
  • max is 15. 0 means 250us, 15 means 4000us.
  • @param count How many retries before giving up, max 15
    */
    void setRetries(uint8_t delay, uint8_t count);

This for example will set the retry delay to 250+(250*5)=1500us and 10 retries
radio.setRetries(5, 10);

Also if you haven't done it already make sure the power to the nrf are good enough and that you have sufficient caps(100uf+).

I have a 10uF cap on my transmitter and I lowered the PA to LOW. I also set the retries a bit further apart and still nothing.

Here is my configuration:

[ Receiver ] initializing...
[ Bluetooth ] already setup.
[ NRF24 ] initializing...

STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0x3130303030 0xc2c2c2c2c2
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xe7e7e7e7e7
RX_PW_P0-6 = 0x20 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x6c
RF_SETUP = 0x03
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_LOW

[ NRF24 ] listening...

[ Transmitter ] Initializing...

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 = 0x00 0x00 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x6c
RF_SETUP = 0x07
CONFIG = 0x0e
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_MAX

Sent: Hello World 1
Sent: Hello World 2
Sent: Hello World 3
...

Try setting both TX and RX power to 'RF24_PA_MIN'.

Done that.

To reduce coupling, tilt the two antennas so they are perpendicular to each other. Try swapping units to see if the problem moves to the other side. Replace one PA version with a low power version one at a time.

When the receiver first starts up I get 3 delivered packets on the transmitter, but no sign of life on the receiver. The receiver sits idle after the listening serial write.

How I know they were delivered is cause the transmitter reads the status code of the radio.write().

I am using my old radios.

Edit. Now my receiver is rebooting after radio.available () at the first sign of a Serial.println() for serial debugging. But the transmitter is getting 100% success rate.

Further edit. Buffer overrun reading received text into char array of size smaller than actual buffer. Thank you.

I'm not familiar with the older versions but Robin2 may have some info.

Have you tried swapping various radios around in your hardware setup?

PS
Do your radios have 8 or 10 pin connectors?

Arctic_Eddie:
but Robin2 may have some info.

My only experience is with the nRF24L01+ modules with PCB antennas.

The obsolete nRF24L01 modules are significantly different and if @dhtmldude has those he needs to study the Nordic datasheets carefully. The nRF24L01+ datasheet mentions interaction with the older chips but I did not study that as it was not relevant for me.

...R

The older boards may also require an earlier version of the library.

I would abandon the older ones and try the latest with examples to get something running correctly.