Working with Arduino Nano 33 BLE


I wanted to inquire about using the firmware file provided for the Nano 33 BLE Sense board with the Nano 33 BLE board that I have. Would it be compatible with my board, or would I need a different firmware file for collect the data to edge impulse from port?

The firmware file provided by the Edge Impulse is compatible with the Nano 33 BLE Sense board. here I am attaching the link through which you can download and then install it on your device.

( Arduino Nano 33 BLE Sense - Edge Impulse Documentation )

Hi, You got me wrong. The board I posses is just Nano 33 BLE, not Nano 33 BLE Sense. I just need the confirmation if the same firmware is also compatible with Nano 33 BLE.

See the list of boards that are compatible with Edge impulse.
( Overview - Edge Impulse Documentation )

I want to work with Nano 33 BLE. Is it possible to build a tinyML model using edge impulse; since they both have same processor?

I guess it will work
initialize the work you will eventually see if it’s working or not.

Yes, you can build tiny ML models using edge impulse The only difference is that there are no sensors on the board.


So, that means I can upload the same firmware as given for the Nano 33 BLE Sense board?

The Arduino Nano 33 BLE has only an IMU on board, if I am correct. What I propose is to give it a try. It is maybe possible that you can collect data from the IMU. Otherwise, you can write your data-forward firmware. Check this: Data forwarder. On the page, you will find an example using the IMU LSM9DS1. Of course, if you are building something with other types of sensors, you need to connect these sensors to the board and write some firmware to collect the data from these boards. You can start with the IMU on board and add to other sensors once this works.

Once you have collected data, you can start building an ML model. If you finally have a model, you can deploy the model to the Arduino Nano 33 BLE.


I want to collect the data from the analog pins (externally connected gas sensors). So, Do I need to make the changes in the firmware of data forwarder? How to write one. I’m unable to follow the instructions in the page. Could you please help me out?

Hello @wattttheheck,

Also note that if you choose to go with the Arduino Nano 33 BLE Sense, Arduino release a REV2 which is not yet fully compatible with the default firmware.
That being said, you can still use that board to collect data using the data forwarder (or any other method) and then apply the same sampling strategy to feed your inference buffer.



Hello @wattttheheck

In your use case, you need to read the data from the gas sensors. So you need to modify the code below, where you read the gas sensors instead of the IMU (IMU.readAcceleration).

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);

Maybe this helps you to start with the implementation:
Gas Sensor with Arduino nano

You can look at Data Collection with Custom Sensor. This video shows how to save the data in CSV files; these CSV files can be uploaded to edge impulse.

I hope it gives you a starting point for the implementation.

1 Like

Another excellent example from @shawn_edgeimpulse: How to Make an AI-powered Artificial Nose. Can, maybe, be used as starting point for your use case and MCU board.