Few days ago mobilenet for image classification was working but now it is not working it is givving error of esp_nn.h file is not available. i was building file as arduino method.
C:\Users\hp\Documents\Arduino\libraries\project1_96_0.1_imgsize96_inferencing\src\edge-impulse-sdk\tensorflow\lite\micro\kernels\add.cpp:530:20: fatal error: esp_nn.h: No such file or directory
exit status 1
Error compiling for board AI Thinker ESP32-CAM.
Can you please try building using ESP-IDF? We do have a firmware repository for Arduino/ESP32, but as there is no hardware acceleration available on the Arduino IDE esp32 board definition, we strongly suggest to use ESP-IDF. You can find our latest ESP32/ESP-IDF firmware here: https://github.com/edgeimpulse/firmware-espressif-esp32
As suggested by Jenny, you should use ESP-IDF as it is the official package we support and it has hardware acceleration.
The error under Arduino is probably due to a mixed definition between Espressif and Arduino, see the following thread that may help: Multple definition of funtion
Hi, I have the same problem as @amanglarus, only in my project, I use M5Stack Core-2. A month ago, my classifier was working fine, I updated my project adding a new sensor, and it stopped working because I couldn’t find the esp_nn.h file. I looked for it in the library that Edgeimpulse compiles for Arduino, and it’s there. I have tried several ways to make it find it but without success. The only solution I’ve found is to modify the libraries, i.e. paste the new compiled model into the old one and then modify the code, such as the number of classes, class names, etc. The solution proposed by @jenny, as far as I can see, is only for these development systems: ESP-EYE (ESP32) and FireBeetle Board (ESP32).
Is there any solution for other boards than ESP-EYE (ESP32) and FireBeetle Board (ESP32)?
Hi, @aurel thanks for replying; unfortunately, the solution in the post you recommended didn’t work for me. I still get the same error even though I made the modification; however, modifying EI_PORTING_ESPRESSIF solved the problem in the recommended post. Apparently, the only solution I have found so far is to compile my project for Arduino and then compile it as a C++ library. Once this is done, I replace the edge-impulse-sdk, model-parameters and tflite-model, from the Arduino library with the ones that were compiled for C++. Once replaced, I modify EI_PORTING_ESPRESSIF, and then the error disappears.
Hi @IoBytes , I think Edge Impulse has fixed the problem because I was making a video to show the steps I had done, and when I compiled it, I didn’t get that error. I did it with all the projects I currently have with Edge Impulse, and they all work. I recommend you to recompile your project and try again…
I compiled it for M5 and ESP32C3, and my projects were compiled without errors.