Arduino Nano 33 BLE Sense Rev2 Support?

The Arduino Nano 33 firmware doesn’t seem to work properly with the most recent Rev 2 board. The firmware uploads, and the microphone works, but the inertial sensors don’t. I didn’t try the environmental sensors. The inertial sensors worked on the Rev 1 board.

Is there something I might be doing wrong?

Hi @robertgallup,

Thank you for the information. I’ve filed an issue with our embedded team to take a look at the Rev 2.


Hi @robertgallup ,
as you can see in the Arduino store , rev2 has new sensors:

There has been some changes in the sensor between both revisions:

  • Replacement of IMU from LSM9DS1 (9 axis) for a combination of two IMUs (BMI270 - 6 axis IMU and BMM150 - 3 axis IMU).
  • Replacement of temperature and humidity sensor from HTS221 for HS3003.
  • Replacement of microphone from MP34DT05 to MP34DT06JTR.

We are going to integrate rev2 soon.



Thx for the reply. Yes. I thought as much about the sensors. I’ll look forward to an update that supports the Rev 2. :slight_smile:

1 Like

I saw your post. Have you seen an update for the Arduino Nano 33 BLE Sense Rev2 yet? I ran into the same issue in a Coursera Course. I’m stuck in the course and have to complete it somehow.

@ei_francesco is there an eta for the fix? Not trying to rush things, just need to complete the Shawn’s course. Thanks.

@dmiyoshi1 I haven’t seen anything about an update for rev2. Luckily, I still have a rev1 I can use for examples. But, a possible workaround for the course may be to use a data forwarder rather than the default daemon to acquire data, at least.

Here’s a link to documentation: Data forwarder - Edge Impulse Documentation.

I just tried the sketch provided in the docs by replacing the LS9DS1.h library with one for the accelerometer on the Rev2 board. You have to add the Arduino_BMI270_BMM150 library using the library manager in the Arduino IDE, then compile and upload this sketch to the Rev2 board rather than flashing the default firmware. Finally, you would have to run edge-impulse-data-forwarder rather than edge-impulse-daemon to collect data, I think. I believe similar library changes would also have to be made in the generated library to actually run inference.

I haven’t tested the entire workflow, but it looks like it might work (famous last words! :slight_smile: ).

Anyway, here’s the updated data forwarder:

#include <Arduino_BMI270_BMM150.h>

#define CONVERT_G_TO_MS2    9.80665f
#define FREQUENCY_HZ        50
#define INTERVAL_MS         (1000 / (FREQUENCY_HZ + 1))

static unsigned long last_interval_ms = 0;

void setup() {

    if (!IMU.begin()) {
        Serial.println("Failed to initialize IMU!");
        while (1);

void loop() {
    float x, y, z;

    if (millis() > last_interval_ms + INTERVAL_MS) {
        last_interval_ms = millis();

        IMU.readAcceleration(x, y, z);

        Serial.print(x * CONVERT_G_TO_MS2);
        Serial.print(y * CONVERT_G_TO_MS2);
        Serial.println(z * CONVERT_G_TO_MS2);

Hello @dmiyoshi1 ,

Indeed the rev2 hardware is not yet compatible with our default firmware.
Our embedded team is working on the integration.

In the meantime using the data forwarder as @robertgallup mentioned is a good workaround for non-audio projects. For audio project the sampling frequency might be too high to work properly with the data-forwarder.



Thanks Robert. I’ll give that a try.

Thanks Louis. I’ll give it a try.

Hi Louis,
I have a Rev2 - which is not working even with “wake word” setup. I followed Jan Jonboom’s video and the error I get is in the last “training” stage" Error text - Creating job…Failed to create job: Transfer learning requires a spectrogram input. …Job failed (see above).
I did add the spectogram in the in impulse creation step. Could you help? I have four Rev2 devices that I need to configure at least for the “wake word” capability.

Hello @odsouza,

Could you share your project ID please? I’ll check if it is an issue on our side or a misconfiguration of the impulse.



Sorry @louis UniversalFusionSensor - Dashboard - Edge Impulse
I have done this successfully before - but using the origical Sense - this Rev2 is giving me many headaches - I was not told when they sold it to me that it changed so much - it appeared like an improvement!
Thank you for your help in advance.

Sorry the ID 124369 - I think the link is active.

Hello @odsouza,

I just checked your “create impulse” page and you are using the Transfer Learning (audio) learning block.

This block only works with an Audio (MFE) block with default parameters and a window size of 1000ms at 16000Hz, or with an Audio (Syntiant) block with default parameters and a window size of 968ms at 16000Hz.

On your impulse you have several DSP blocks, try removing them and only use the MFE with the parameters mentioned above.

This should fix your issue.



Thanks @louis for your advice - I will try it.

@louis I need some help on sending this “event” (HelpMe) to an output or through bluetooth (wireless)

@robertgallup @louis Thank you both for your help. The data forwarder works great.

Hello @odsouza,

You can have a look at this code sample:

It is not on the Arduino Nano 33 BLE rev2 but the logic should be somehow similar.

Let me know if that works.



i think this is my problem as i am getting a consistent error message with this board: LSE
ERR: Frequency is 44100 but can not be higher then 16000Hz

is there a solution?

Honestly, I counted a lot on this board lol. I purchased the board to implement an ML-based model based on inertial sensors for a part of my thesis project. Unfortunately, this phase of my project has stopped for more than 20 days. I am still hopeful to receive good news about it from the team.