Memory issues on B-L475E-IOT01A


I’m experimenting with keyword spotting on the B-L475E-IOT01A board and struggling with ‘out of memory’ issues. I’ve created a simple project in EdgeImpulse (260035) and used the portal to build B-L475E-IOT01A firmware, deployed it to the board and it is able to capture and classify audio successfully.

I then tried to take the b-l475e-iot01a-audio-mbed project and add my model to it via the portable C++ library option. When i deploy this to the board it dies when it fails to allocate memory for one of the matrices after calling run_classifier.

To check I was building the MBED project properly I tried the example-standalone-inferencing-mbed project with my model. This runs successfully on my board with raw data copied from one of my samples.

I’ve also built a sample project in STM32CubeIDE, linked in the EdgeImpulse C++ library and get the same memory issues.

So, how does the EdgeImpulse-built firmware run ok but not the audio classification project (b-l475e-iot01a-audio-mbed)? I’ve seen posts that say to change the heap size… but i’ve also seen posts that say the heap is dynamically sized at run time and you can’t change it. Confused…

Can anyone provide some guidance on getting this working?

Many Thanks,

Hello @prossington,

Can you try GitHub - edgeimpulse/firmware-st-b-l475e-iot01a: Edge Impulse firmware for the ST B-L475E-IOT01A development board and see if you have the same issue?
The other repo you referenced is an old repo.



Hi @louis,

yes, that project works fine with the builtin model and also with my own model. Do you know what this app is doing differently?