Adding processing blocks to BYO-model and deploy entire pipeline to Arduino Nano 33 BLE Sense Lite

Question/Issue:
I want to deploy a continuous audio classifier to Arduino Nano 33 BLE Sense Lite. For this, audio is processed into spectrograms and then a 2D-CNN is used for the classification task. When defining and training the 2D-CNN directly on the Edge Impulse platform, I could successfully deploy the pipeline to an Arduino Nano 33 BLE Sense Lite:

Now, I would like to train a TF Keras model on my computer and then use the “Bring your own model” feature. I have successfully uploaded my TFLite converted (and quantised) model to the Edge Impulse project.

  1. However, how can I now deploy the preprocessing pipeline (e.g. generating (MFE) spectrograms) as in the previous case? Somehow I couldn’t figure it out. In particular, I cannot select any processing blocks anymore on the platform.

  2. Secondly, is there a way to fine-tune the model on the platform with uploaded data?

Project ID: 502356

Context/Use case:
Deploying BYO-model with processing blocks (e.g. generating (MFE) spectrograms)

Steps Taken:
Successfully deployed entire pipeline when generating and training model on Edge Impulse pipeline.

Expected Outcome:
The possibility to add learning blocks to BYO-models and then deploy the entire pipeline to the Arduino Nano 33 BLE Sense Lite.

Actual Outcome:
Do not find this possibility.

Reproducibility:

  • [x] Always

Environment:

  • **Platform:**Arduino Nano 33 BLE Sense Lite
  • Build Environment Details: Arduino IDE
  • OS Version: MacOS 14.5
  • Edge Impulse Version (Firmware): 1.27.1

Hi @tjpeter

  1. Are you referring to custom blocks? When using BYOM, the view can restrict editing processing blocks. To regain this functionality:
  • Duplicate Project: Consider duplicating your project without the BYOM to configure processing blocks, then reintroduce your model. or using impulse experiments
  1. EON Tuner | Documentation

Best

Eoin

Dear @Eoin

Thanks for your answer.

I was referring to creating for example an Impulse with

  • Time series data
  • A processing block, e.g. Audio (MFE) spectrogram
  • Then defining the MFE parameters to create the features

Instead of defining a classifier model in the next step, I would like to import my own TFLite model with the BOYM functionality. However, it seems to be “either”-“or”.
If a create an Impulse preprocessing pipeline, I do not have the option to BYOM and vice versa. I do not quite see, how duplicating the project with the Impulse preprocessing helps, as I still do not see a way to import my own model to the project.

Thanks for your help.

Best.

Hi @Eoin
I wanted to clarify that I believe my initial questions are still unanswered (or I misunderstood your reply). I hope my recent explanations have made my issues more clear.

Thanks for your further help.

Hello @Eoin ,

as I did not get an answer to my (follow-up) question, I assume it is not possible to integrate a BOY-model directly into an Impulse pipeline. If that is really the case, I would like to suggest that as a future feature. Since it can be useful to train a model separately and then integrate it to an Impulse pipeline which then is deployed to a microcontroller.

Thanks.

Hi @tjpeter

Ah my mistake what you may be looking for is multi-impulse. One impulse as the BYOM and the other as the processing. (not 100% sure how to implement that, but you can speak with our solutions team if this is for an enterprise / production use)

Check the docs here and if this is for an industry use or enterprise you can speak with our solutions / sales teams who work on this level of customization:

Best

Eoin