Arduino 33 IOT + nrf24l01 doesnt work (ordinary Nano works)

Hello there,

Im a beginner when it comes to electronics and coding. Im currently working on a project where its necessary to transfer data between an Arduino Nano and an Arduino Nano 33 Iot using the nrf24l01. It worked for a few days an then suddenly it stopped working. I thought I might have damaged the 33 IoT and ordered a new one (still doesnt work). If i connect two normal Arduino Nano it works flawlessly. Does anybody know what could cause this sudden failure. To my knowledge there shouldnt be a problem with the code because besides the 33 IoT running on 3,3V the 33 Iot has there same pinlayout and if I use a normale Nano with the same code it works. On both devices I use a 50V 10µF capacitor. Both nrf24 modules are powered by the onboard 3,3V power (which previously worked fine (still working when using two standard Nanos). As already said if Im literally swapping the Arduino Nano to an 33 Iot on the breadboard, both running the same code, it wont work :frowning:
If somebody has an idea I would be thankful for every answer!

CE --> Pin 6
CSN --> Pin 7
(on both boards)

Thank you
Hannes

Welcome to the forum.

The Arduino Nano and the Nano 33 IoT have very little on common except the name. They use different architectures and peripherals.

What libraries are you using? Maybe one of them uses some code that was not ported.

If you want some more advice, I recommend you share some more details. e.g., post your code, schematics, provide links to libraries you are using, did you do any measurements, look at signals ...?

1 Like

Hi @hannesbaba,

I used the following connections to connect a nrf24I01 to a Nano 33 IOT
Nano > nrf
D9 --> CE
D10 --> CSN
D11 --> MOSI
D12 --> MISO
D13 --> SCK
3.3V --> VCC *
GND --> GND *

*100uf 16v capacitor soldered across VCC & GND pins of the nrf24I01

Below is the simple Tx sketch used to test -

/*
*
* Nano 33 IOT nrf20I01 simple Tx test
*
*/

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

RF24 radio(9, 10); // CE, CSN

const byte address[6] = "00003";

void setup() {
  // Initialise NRF24L01 2.4Ghz Radio
  radio.begin();
  radio.setDataRate(RF24_2MBPS); // Set the speed of the transmission to the quickest available
  radio.setChannel(123);  // Use a channel unlikely to be used by Wifi, Microwave ovens etc
  radio.setPALevel(RF24_PA_MAX); // Set Tx power to MAX
  radio.openWritingPipe(address);
  radio.stopListening();
}

void loop() {

 const char text[] = "Hello World";
 radio.write(&text, sizeof(text));
  
  delay(3000);
}

Rx code run on a Leonard -

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

RF24 radio(6, 5); // CE, CSN

const byte address[6] = "00003";

void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MAX);
  radio.startListening();
}

void loop() {
  if (radio.available()) {
    char text[32] = "";
    radio.read(&text, sizeof(text));
    Serial.println(text);
  }
}

HTH?

Here are a few things you can try:

  • set the I/O pins to input and output explicitly in case the library does not do this properly.
  • use a logic analyzer or oscilloscope to check the signals
  • look at the nRF library header files, do any of the functions you use return values e.g., status, print them and see if they can give you a hint
  • try different pins for CS and CE

Hello,
first of all thank you for the reply!

Didnt have alot of time in the last few weeks thats why my responds took so long but now I found some time to try out your suggestions.

Up front - I´m using 25v 100uF but as far as I understand shouldnt make a difference. Before that (when it was still working) I was using 50v 10uF which worked fine.

I am using the library RF24 by TMRh20 (Version 1.4.6) I guess you are using the same.

I wired up both Arduinos on breadboards (pictures below) if you want to doublecheck the wiring, but as far as im concerned it should be right.

I used the exact code you sent me in your reply didn´t change anything. I uploaded the TX code on the Nano Iot and the RX onto the normal Nano.

I tried using new Arduino and NRF modules with no change. The Nano IoT is plugged into an USB Hub (if that makes a difference by any chance - interference?!). The normal Arduino is directly plugged into the IO ports of my computer.

Thank you in advance!
Hannes

Picture 1 Ordinary Arduino Nano running the RX code

Picture 2 Arduino Nano 33 IoT running the TX code

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.