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.
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.
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! ).
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() {
Serial.begin(115200);
Serial.println("Started");
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('\t');
Serial.print(y * CONVERT_G_TO_MS2);
Serial.print('\t');
Serial.println(z * CONVERT_G_TO_MS2);
}
}
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.
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.
Thanks
Sorry @louisUniversalFusionSensor - 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.
Regards
Ollencio
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.
Hi,
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.