Trouble with nRF24l01 with Nano -- Help me

Hello, I am using nRF24l01 module to send signal. When I am using UNO, it is perfectly sending signal and when Nano, it is failing to send signal. Pin numbers are same for all board.
I am using "Getting Started" code with pin 9(CE) and 10 (CSN) with baud rate 9600 in Uno as well as Nano.

I am using PCB and is powered with 12V source. Schematic is uploaded.

A steady voltage of 3.45V is available at nRF terminals

Schematic_2022-08-28.pdf (55.9 KB)

I decommented "for debugging info" to get details debugging which seems fine. Results are given below for Nano.

13:04:28.002 -> RF24/examples/GettingStarted
13:04:28.002 -> Which radio is this? Enter '0' or '1'. Defaults to '0'
13:04:50.921 -> radioNumber = 0
13:04:50.921 -> *** PRESS 'T' to begin transmitting to the other node
13:04:50.968 -> SPI Speedz	= 10 Mhz
13:04:50.968 -> STATUS		= 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
13:04:51.061 -> RX_ADDR_P0-1	= 0x65646f4e31 0x65646f4e32
13:04:51.108 -> RX_ADDR_P2-5	= 0xc3 0xc4 0xc5 0xc6
13:04:51.155 -> TX_ADDR		= 0x65646f4e31
13:04:51.202 -> RX_PW_P0-6	= 0x04 0x04 0x04 0x04 0x04 0x04
13:04:51.202 -> EN_AA		= 0x3f
13:04:51.202 -> EN_RXADDR	= 0x02
13:04:51.249 -> RF_CH		= 0x4c
13:04:51.249 -> RF_SETUP	= 0x03
13:04:51.296 -> CONFIG		= 0x0f
13:04:51.296 -> DYNPD/FEATURE	= 0x00 0x00
13:04:51.296 -> Data Rate	= 1 MBPS
13:04:51.343 -> Model		= nRF24L01+
13:04:51.390 -> CRC Length	= 16 bits
13:04:51.390 -> PA Power	= PA_LOW
13:04:51.436 -> ARC		= 15
13:04:51.436 -> SPI Frequency		= 10 Mhz
13:04:51.436 -> Channel			= 76 (~ 2476 MHz)
13:04:51.483 -> Model			= nRF24L01+
13:04:51.483 -> RF Data Rate		= 1 MBPS
13:04:51.530 -> RF Power Amplifier	= PA_LOW
13:04:51.530 -> RF Low Noise Amplifier	= Enabled
13:04:51.577 -> CRC Length		= 16 bits
13:04:51.624 -> Address Length		= 5 bytes
13:04:51.624 -> Static Payload Length	= 4 bytes
13:04:51.671 -> Auto Retry Delay	= 1500 microseconds
13:04:51.718 -> Auto Retry Attempts	= 15 maximum
13:04:51.765 -> Packets lost on
13:04:51.765 ->     current channel	= 0
13:04:51.765 -> Retry attempts made for
13:04:51.811 ->     last transmission	= 15
13:04:51.858 -> Multicast		= Disabled
13:04:51.858 -> Custom ACK Payload	= Disabled
13:04:51.905 -> Dynamic Payloads	= Disabled
13:04:51.952 -> Auto Acknowledgment	= Enabled
13:04:51.952 -> Primary Mode		= RX
13:04:51.999 -> TX address		= 0x65646f4e31
13:04:51.999 -> pipe 0 (closed) bound	= 0x65646f4e31
13:04:52.046 -> pipe 1 ( open ) bound	= 0x65646f4e32
13:04:52.093 -> pipe 2 (closed) bound	= 0xc3
13:04:52.093 -> pipe 3 (closed) bound	= 0xc4
13:04:52.140 -> pipe 4 (closed) bound	= 0xc5
13:04:52.186 -> pipe 5 (closed) bound	= 0xc6

The AMS1117-3.3S regulator has no ground connection shown on the schematic.

The 1N4148 https://www.vishay.com/docs/81857/1n4148.pdf in the power path is a small signal diode. Try shorting it out to see if the situation improves.

You also have a 1n4007 diode in series with the 3.3v output of the regulator. This will reduce the effective voltage to about 2.6 volts. Schottky diodes are more usual for polarity protection.

Which pins on the nRF are the 'terminals' ?

+V and GRND

"The AMS1117-3.3S regulator has no ground connection shown on the schematic."
Grounded through jumper wire.

"1N4148"
I am using 12V power source so voltage has no issue. "Removed it"

"1N4007"
Shortened it. Now voltage across +V and GRND of nRF24L01 is 3.3V.
Still no improvement. "Transmission failed or timed out"

But your feeding those pins with a 3.3V regulator.

I also connected with alternate power source of 12V . As per guidance from "6v6gt", I bypassed 1N4007 and grounded AM1117 regulator. Now along with power source (12V), voltage across +V and grnd of nRF is 3.3V.

Schematic_2022-08-28.pdf (55.9 KB)

I uploaded modified schematic.

I request forum to help me. In order to remove doubts I replaced old PCB with new PCB but no luck.

PLEASE HELP ME Please help me

@Robin2
I need your help. I am using below code to test. Tx is failing continuously. To test connection, I am using another code, given below

// SimpleTx - the master or the transmitter

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>


#define CE_PIN   9
#define CSN_PIN 10

const byte slaveAddress[5] = {'R', 'x', 'A', 'A', 'A'};


RF24 radio(CE_PIN, CSN_PIN); // Create a Radio

char dataToSend[10] = "'Hello 0'";
char txNum = '0';


unsigned long currentMillis;
unsigned long prevMillis;
unsigned long txIntervalMillis = 500; // send once per second


void setup() {

  Serial.begin(9600);

  Serial.println("SimpleTx Starting");

  radio.begin();
  radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_MAX);
  radio.setAutoAck(true);
  radio.setRetries(3, 5); // delay, count
  radio.openWritingPipe(slaveAddress);
}

//====================

void loop() {
  currentMillis = millis();
  if (currentMillis - prevMillis >= txIntervalMillis) {
    send();
    prevMillis = millis();
  }
}

//====================

void send() {

  bool rslt;
  rslt = radio.write( &dataToSend, sizeof(dataToSend) );
  // Always use sizeof() as it gives the size as the number of bytes.
  // For example if dataToSend was an int sizeof() would correctly return 2

  Serial.print("Data to be Sent ");
  Serial.print(dataToSend);
  if (rslt) {
    Serial.println("  Acknowledge received");
    updateMessage();
  }
  else {
    Serial.println("  Tx failed");
  }
}

//================

void updateMessage() {
  // so you can see that new data is being sent
  txNum += 1;
  if (txNum > '9') {
    txNum = '0';
  }
  dataToSend[8] = txNum;
}
```// 18 Mar 2018 - simple program to verify connection between Arduino
//      and nRF24L01+
//  This program does NOT attempt any communication with another nRF24

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#include <printf.h>

#define CE_PIN   9
#define CSN_PIN 10

const byte thisSlaveAddress[6] = {'R', 'x', 'A', 'A', 'A'};

RF24 radio(CE_PIN, CSN_PIN);

char dataReceived[10]; // this must match dataToSend in the TX
bool newData = false;


void setup() {
  Serial.begin(9600);

  printf_begin();

  Serial.println("CheckConnection Starting");
  Serial.println();
  Serial.println("FIRST WITH THE DEFAULT ADDRESSES after power on");
  Serial.println("  Note that RF24 does NOT reset when Arduino resets - only when power is removed");
  Serial.println("  If the numbers are mostly 0x00 or 0xff it means that the Arduino is not");
  Serial.println("     communicating with the nRF24");
  Serial.println();
  radio.begin();

  radio.printDetails();
  radio.printPrettyDetails();
  Serial.println();
  Serial.println();
  Serial.println("AND NOW WITH ADDRESS AAAxR  0x41 41 41 78 52   ON P1");
  Serial.println(" and 250KBPS data rate");
  Serial.println();
  radio.setCRCLength(RF24_CRC_16);
  radio.setDataRate(RF24_250KBPS);
  radio.setChannel(35);
  radio.setPALevel(RF24_PA_MAX);
  radio.openReadingPipe(1, thisSlaveAddress);
  radio.powerUp();
  radio.printDetails();
  radio.printPrettyDetails();
  Serial.println();
  Serial.println();
}


void loop() {

}

type or paste code here

type or paste code here

The problem is there is NOT enough current available when the NRF is transmitting.

Robin is no longer active on the forum so chances are slim that he will reply.

Post the serial monitor output from the connection test sketch, please.

Please find
Doc.pdf (89.6 KB)

Hello Paul,
as per earlier guidance I corrected circuit and now I am receiving a study voltage of 3.30V at NRF. I hope this would have solved current issue.
I need your guidance in solving this puzzle.

It's a lot easier for everybody if you just copy and paste the content of the serial monitor in a post using code tags.

Please find

14:48:54.405 -> FIRST WITH THE DEFAULT ADDRESSES after power on
14:48:54.499 ->   Note that RF24 does NOT reset when Arduino resets - only when power is removed
14:48:54.546 ->   If the numbers are mostly 0x00 or 0xff it means that the Arduino is not
14:48:54.640 ->      communicating with the nRF24
14:48:54.687 -> 
14:48:54.687 -> SPI Speedz	= 10 Mhz
14:48:54.733 -> STATUS		= 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
14:48:54.780 -> RX_ADDR_P0-1	= 0x4141417852 0xf0f0f0f0d2
14:48:54.827 -> RX_ADDR_P2-5	= 0xc3 0xc4 0xc5 0xc6
14:48:54.827 -> TX_ADDR		= 0x4141417852
14:48:54.874 -> RX_PW_P0-6	= 0x20 0x20 0x20 0x20 0x20 0x20
14:48:54.921 -> EN_AA		= 0x3f
14:48:54.968 -> EN_RXADDR	= 0x03
14:48:54.968 -> RF_CH		= 0x4c
14:48:54.968 -> RF_SETUP	= 0x07
14:48:54.968 -> CONFIG		= 0x0e
14:48:55.015 -> DYNPD/FEATURE	= 0x00 0x00
14:48:55.015 -> Data Rate	= 1 MBPS
14:48:55.061 -> Model		= nRF24L01+
14:48:55.061 -> CRC Length	= 16 bits
14:48:55.061 -> PA Power	= PA_MAX
14:48:55.108 -> ARC		= 5
14:48:55.108 -> SPI Frequency		= 10 Mhz
14:48:55.155 -> Channel			= 76 (~ 2476 MHz)
14:48:55.202 -> RF Data Rate		= 1 MBPS
14:48:55.202 -> RF Power Amplifier	= PA_MAX
14:48:55.249 -> RF Low Noise Amplifier	= Enabled
14:48:55.296 -> CRC Length		= 16 bits
14:48:55.296 -> Address Length		= 5 bytes
14:48:55.296 -> Static Payload Length	= 32 bytes
14:48:55.343 -> Auto Retry Delay	= 1500 microseconds
14:48:55.390 -> Auto Retry Attempts	= 15 maximum
14:48:55.436 -> Packets lost on
14:48:55.436 ->     current channel	= 0
14:48:55.486 -> Retry attempts made for
14:48:55.533 ->     last transmission	= 5
14:48:55.533 -> Multicast		= Disabled
14:48:55.533 -> Custom ACK Payload	= Disabled
14:48:55.580 -> Dynamic Payloads	= Disabled
14:48:55.626 -> Auto Acknowledgment	= Enabled
14:48:55.626 -> Primary Mode		= TX
14:48:55.673 -> TX address		= 0x4141417852
14:48:55.720 -> pipe 0 ( open ) bound	= 0x4141417852
14:48:55.767 -> pipe 1 ( open ) bound	= 0xf0f0f0f0d2
14:48:55.767 -> pipe 2 (closed) bound	= 0xc3
14:48:55.814 -> pipe 3 (closed) bound	= 0xc4
14:48:55.861 -> pipe 4 (closed) bound	= 0xc5
14:48:55.861 -> pipe 5 (closed) bound	= 0xc6
14:48:55.908 -> 
14:48:55.908 -> 
14:48:55.908 -> AND NOW WITH ADDRESS AAAxR  0x41 41 41 78 52   ON P1
14:48:55.955 ->  and 250KBPS data rate
14:48:56.001 -> 
14:48:56.001 -> SPI Speedz	= 10 Mhz
14:48:56.001 -> STATUS		= 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
14:48:56.095 -> RX_ADDR_P0-1	= 0x4141417852 0x4141417852
14:48:56.095 -> RX_ADDR_P2-5	= 0xc3 0xc4 0xc5 0xc6
14:48:56.142 -> TX_ADDR		= 0x4141417852
14:48:56.189 -> RX_PW_P0-6	= 0x20 0x20 0x20 0x20 0x20 0x20
14:48:56.189 -> EN_AA		= 0x3f
14:48:56.236 -> EN_RXADDR	= 0x03
14:48:56.236 -> RF_CH		= 0x4c
14:48:56.283 -> RF_SETUP	= 0x27
14:48:56.283 -> CONFIG		= 0x0e
14:48:56.330 -> DYNPD/FEATURE	= 0x00 0x00
14:48:56.330 -> Data Rate	= 250 KBPS
14:48:56.330 -> Model		= nRF24L01+
14:48:56.376 -> CRC Length	= 16 bits
14:48:56.423 -> PA Power	= PA_MAX
14:48:56.423 -> ARC		= 5
14:48:56.423 -> SPI Frequency		= 10 Mhz
14:48:56.423 -> Channel			= 76 (~ 2476 MHz)
14:48:56.470 -> RF Data Rate		= 250 KBPS
14:48:56.517 -> RF Power Amplifier	= PA_MAX
14:48:56.564 -> RF Low Noise Amplifier	= Enabled
14:48:56.564 -> CRC Length		= 16 bits
14:48:56.611 -> Address Length		= 5 bytes
14:48:56.658 -> Static Payload Length	= 32 bytes
14:48:56.658 -> Auto Retry Delay	= 1500 microseconds
14:48:56.705 -> Auto Retry Attempts	= 15 maximum
14:48:56.751 -> Packets lost on
14:48:56.751 ->     current channel	= 0
14:48:56.798 -> Retry attempts made for
14:48:56.798 ->     last transmission	= 5
14:48:56.845 -> Multicast		= Disabled
14:48:56.892 -> Custom ACK Payload	= Disabled
14:48:56.892 -> Dynamic Payloads	= Disabled
14:48:56.892 -> Auto Acknowledgment	= Enabled
14:48:56.939 -> Primary Mode		= TX
14:48:56.986 -> TX address		= 0x4141417852
14:48:57.033 -> pipe 0 ( open ) bound	= 0x4141417852
14:48:57.033 -> pipe 1 ( open ) bound	= 0x4141417852
14:48:57.080 -> pipe 2 (closed) bound	= 0xc3
14:48:57.126 -> pipe 3 (closed) bound	= 0xc4
14:48:57.126 -> pipe 4 (closed) bound	= 0xc5
14:48:57.173 -> pipe 5 (closed) bound	= 0xc6

@Paul_KD7HB @sterretje @groundFungus
Please help me. It works with one nano but doesn't work with another. Same code same sketch same power source even added upto 40uF capacitor across nRF supply.
I am using helloworld_tx to test.

Does it work with the third Nano?