nRF24L01 with the Arduino BLE 33?

i have the Arduino nano BLE 33 and from the specification, it seems to be much faster than the nano. so i want to replace the nano im using with the BLE But i get this error:

Arduino: 1.8.9 (Windows 10), TD: 1.47, Board: "Arduino Nano 33 BLE"

WARNING: library RF24 claims to run on (avr, arm, x86, esp8266, esp32) architecture(s) and may be incompatible with your current board which runs on (mbed) architecture(s).

that seems to come from using the RF24 library that is used for RC.

is it possible to change that? if not than how do i make two Arduino BLEs communicate? haven't be able to find any information about how to do that.

The warning message is generated because the library.properties file for the RF24 library contains the following line:

architectures=avr,arm,x86,esp8266,esp32

That doesn't necessarily mean that it is incompatible with the Nano BLE 33, only that the author of the library doesn't state that it is compatible (and at this point in time it is likely the board didn't exist when the latest version of the library came out). Try compiling a few of the examples and see if you get any other warnings or errors, and if not do some testing to see if it functions properly.

(edit)
There was a discussion dealing with the same library and the Nano Every a few days ago, it was necessary to make a couple of modifications to the code to get it working with megaavr architecture, after which the examples I've tried appear to function properly. See Problem with arduino NANO EVERY and libraries

david_2018:
The warning message is generated because the library.properties file for the RF24 library contains the following line:

architectures=avr,arm,x86,esp8266,esp32

That doesn't necessarily mean that it is incompatible with the Nano BLE 33, only that the author of the library doesn't state that it is compatible (and at this point in time it is likely the board didn't exist when the latest version of the library came out). Try compiling a few of the examples and see if you get any other warnings or errors, and if not do some testing to see if it functions properly.

(edit)
There was a discussion dealing with the same library and the Nano Every a few days ago, it was necessary to make a couple of modifications to the code to get it working with megaavr architecture, after which the examples I've tried appear to function properly. See Problem with arduino NANO EVERY and libraries

when i try to compile, i get alot of errors after a long upload time. here is just a few :

error: 'class arduino::MbedSPI' has no member named 'setBitOrder'

_SPI.setBitOrder(MSBFIRST);

^~~~~~~~~~~

warning: "pgm_read_ptr" redefined

#define pgm_read_ptr(p) (*(p))

error: 'class arduino::MbedSPI' has no member named 'setClockDivider'

_SPI.setClockDivider(SPI_CLOCK_DIV2);

^~~~~~~~~~~~~~~

error: 'SPI_CLOCK_DIV2' was not declared in this scope

_SPI.setClockDivider(SPI_CLOCK_DIV2);

^~~~~~~~~~~~~~

note: suggested alternative: 'NRF_CLOCK_Type'

_SPI.setClockDivider(SPI_CLOCK_DIV2);

^~~~~~~~~~~~~~

NRF_CLOCK_Typ

exit status 1
Error compiling for board Arduino Nano 33 BLE.

there atleast 5 more warnings and errors. this is just trying to upload the "getting started" RF24 example.

it is unclear what you try to do, but for the built in BLE use the ArduinoBLE library

Juraj:
it is unclear what you try to do, but for the built in BLE use the ArduinoBLE library

what im trying to do is swap my Nano that is plugged in my setup with a BLE 33. the only problem with the swap is that the setup uses the RF24. i can easily swap the RF24 with the a bluetooth module hc-05 in both code and setup. but neither seem to work with BLE 33. i understand that the BLE has the ability to communicate so it seems like a waste to use an external module to communicate but the reason for the swap is because the BLE is faster and it would be really convenient.

the RF24 code version doesn't compile and the Bluetooth hc-05 code version wouldn't work for some unknown reason. the only difference is that nano itself. same code, same wiring.
Nano would work, BLE 33 wouldn't and i dont know why.

Hi !
I've the same problem here : I want to change my old nano for a BLE 33 SENSE in order to use build-in sensors.
I still want to communicate by the nRF24L01 and not by bluetooth.

Have somebody find a solution ?

a link to the library?

You can find it just there : https://tmrh20.github.io/RF24/, or in the Arduino IDE libraries manager at "RF24"

open an issue on GithHub. Ir should be easy for the library maintainer to make a fix, which you can test then.

the SPI library for Nano 33 BLE supports only a newer way of setting the SPI settings and the RF24 library uses the old way.

Good idea ! I'll will update this feed if I have some news.

any updates?

Same issue here :frowning: , someone found something ?

the maintainer refused to update the library to the new SPI API

Juraj:
the maintainer refused to update the library to the new SPI API

Hello,
Did you manage to make it work by modifing the mentioned line of code? I tried but I wasn't able to establish a communication between a 33 Nano Sense and a Nano.

cynexx:
Hello,
Did you manage to make it work by modifing the mentioned line of code? I tried but I wasn't able to establish a communication between a 33 Nano Sense and a Nano.

it is not only a line

I was also interested in doing this. I followed the instructions suggested by the library developer here: Issue with Arduino 33 BLE - 33 BLE SENSE · Issue #537 · nRF24/RF24 · GitHub

I am now able to transmit from the 33 BLE SENSE successfully.

under_seeg:
I was also interested in doing this. I followed the instructions suggested by the library developer here: Issue with Arduino 33 BLE - 33 BLE SENSE · Issue #537 · nRF24/RF24 · GitHub

I am now able to transmit from the 33 BLE SENSE successfully.

How were you able to do that? Can you please provide the steps to make it usable?
I have tried different combinations of versions for board/module with no luck. Now I did this.

  1. Downloaded the latest version of nRF528x (1.1.4 currently) via Arduino IDE;
  2. Downloaded the latesf RF24 (1.3.4 currently);
  3. edited "RF24_config.h" (from the documents\arduino\rf24 file by changing:
#if defined (SPI_HAS_TRANSACTION) && !defined (SPI_UART) && !defined (SOFTSPI)

with:

#if defined SPI_HAS_TRANSACTION || defined ARDUINO_ARCH_MBED && !defined SPI_UART && !defined SOFTSPI

It compiles fine but if I test the module with:

// 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   8
#define CSN_PIN  9

const byte thisSlaveAddress[5] = {'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);
   while(!Serial);
   delay(1);
   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();
   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.openReadingPipe(1, thisSlaveAddress);
   radio.setDataRate( RF24_250KBPS );
   radio.printDetails();
   Serial.println();
   Serial.println();
}


void loop() {

}

it prints only :

"21:15:07.957 -> CheckConnection Starting
21:15:07.957 ->
21:15:07.957 -> FIRST WITH THE DEFAULT ADDRESSES after power on
21:15:07.957 -> Note that RF24 does NOT reset when Arduino resets - only when power is removed
21:15:07.957 -> If the numbers are mostly 0x00 or 0xff it means that the Arduino is not
21:15:07.957 -> communicating with the nRF24
21:15:07.957 ->
21:15:07.991 ->
21:15:07.991 ->
21:15:07.991 -> AND NOW WITH ADDRESS AAAxR 0x41 41 41 78 52 ON P1
21:15:07.991 -> and 250KBPS data rate
21:15:07.991 ->
21:15:08.024 ->
21:15:08.024 ->
"

On the Arduino Nano, I get numbers even with the module off (0x00). With Sense however I get nothing.

Do I miss something?

Code tags work with [ ] vs < >. Good try.

Hello,
I have successfully sent and received data with a Arduino Nano Sense.
It seems that with or without adapter module, if you want to power the radio from an external source (as I tried), the ground of Arduino, RF24 and external power supply must be linked together.

The only mistery is why printDetails() does not work with Arduino Nano Sense. Any suggestions?