Nicla voice - Sensor selection not supported in Edge Impulse

**Question/Issue: Nicla voice - Sensor selection not supported is mentionned in Edge Impulse data collection section. Installation was conducted according to installation docs.

**Project ID: 234277

**Context/Use case: Despite the fact remote management of Nicla Voice is OK, “Sensor selection not supported” is indicated in the data collection section. Flash of device was done without error message and serial connection with edge-impulse-daemon is also OK. Same result either via arduino web application or via Edge Impulse application.

Hi @LPoget

which firmware you flashed on the board ? For IMU or microphone ?
Did you flashed the model?

fv

Hi, thanks for reaching out Francesco. By mistake, I have flashed for the microphone and also for the IMU. Then I just flashed for the microphone. Now, I can see the microphone but after asking start sampling the program is “waiting to start” and then return “Timeout when waiting for > (timeout: 2000)”. I have not flashed the model, is it required?

Yes you need to flash the model too.
So I guess you downloaded the zip from here Arduino Nicla Voice - Edge Impulse Documentation
Then to have a fresh start would be good to launch the flash script for your os and then launch the script that flash everything (firmware and external flash) for your OS.

If you still can’t start sampling, please paste here the output you get from the flashing procedure and the output to the serial console when you connect the board.

fv

I am afraid I don’t have a script that flashes everything in once:

I am in Windows and flash simply by clicking on .bat files:

  1. install_lib_win.bat
  2. flash_windows.bat (is it the one you mean doing everything?)
  3. flash_windows_model.bat (according to your suggestion)
  4. format_windows_ext_flash.bat (according to your suggestion)
  5. flash_windows_mcu.bat (not used so far)

C:\Users\poget>edge-impulse-daemon
Edge Impulse serial daemon v1.18.1
Endpoints:
Websocket: wss://remote-mgmt.edgeimpulse.com
API: https://studio.edgeimpulse.com
Ingestion: https://ingestion.edgeimpulse.com

[SER] Connecting to COM5
[SER] Serial is connected, trying to read config…
[SER] Unhandled configuration option management ws //remote-mgmt.edgeimpulse.com
[SER] Retrieved configuration
[SER] Device is running AT command version 1.7.0

Setting upload host in device… OK
Configuring remote management settings… OK
[SER] Unhandled configuration option management ws //remote-mgmt.edgeimpulse.com
[SER] Unhandled configuration option management ws //remote-mgmt.edgeimpulse.com
[SER] Device is not connected to remote management API, will use daemon
[WS ] Connecting to wss://remote-mgmt.edgeimpulse.com
[WS ] Connected to wss://remote-mgmt.edgeimpulse.com
[WS ] Device “Nicla_1” is now connected to project “Syntiant-RC-Go-Stop”. To connect to another project, run edge-impulse-daemon --clean.
[WS ] Go to Login - Edge Impulse to build your machine learning model!

[WS ] Incoming sampling request {
path: ‘/api/training/data’,
label: ‘Voice’,
length: 1000,
interval: 0.0625,
hmacKey: ‘d290861ec6d4e444f3f7d0bf0d9e0d72’,
sensor: ‘Microphone’
}
[SER] Configured upload settings
[WS ] Failed to sample data Timeout when waiting for > (timeout: 40000) AT+SAMPLESTART=Microphone


Flashing Arduino firmware…
Open On-Chip Debugger 0.11.0+dev-gab95bac57-dirty (2021-05-11-10:45)
Licensed under GNU GPL v2
For bug reports, read
OpenOCD: Bug Reporting
debug_level: 0

adapter speed: 1000 kHz

target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00006654 msp: 0x20010000
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00006654 msp: 0x20010000
** Programming Started **
** Programming Finished **
shutdown command invoked
Appuyez sur une touche pour continuer…
Please wait target to reboot

Attendre 0 secondes, appuyez sur CTRL+C pour quitter …
Finding Nicla Voice…
Writing synpkg to flash, skipping if present…
Welcome to ei uploader
Port to use: COM5
Board found!
synpkg found!
synpkg found!
synpkg found!
synpkg found!
Found dsp_firmware_v91.synpkg
synpkg found!
Found ei_model.synpkg
Need to flash mcu_fw
Force update ei_model.synpkg
Ready to update file

.\syntiant-uploader-win.exe send -m “Y” -w “Y” -p COM5 mcu_fw_120_v91.synpkg
2023/06/01 19:51:14 main.go:78: Didn’t get a nak when expected
Sending 22636 bytes
blocks : 23

Ready to update file

.\syntiant-uploader-win.exe send -m “Y” -w “Y” -p COM5 ei_model.synpkg
2023/06/01 19:52:48 main.go:81: ei_model.synpkg sent successful
Sending 545476 bytes
blocks : 533

Nothing to flash
End of uploader script
Writing NN model OK
Appuyez sur une touche pour continuer…


Welcome to ei uploader
Port to use: COM5
Board found!
synpkg found!
synpkg found!
synpkg found!
synpkg found!
Found dsp_firmware_v91.synpkg
synpkg found!
Found ei_model.synpkg
Need to flash mcu_fw
Force update ei_model.synpkg
Ready to update file

.\syntiant-uploader-win.exe send -m “Y” -w “Y” -p COM5 mcu_fw_120_v91.synpkg
2023/06/01 19:54:05 main.go:81: mcu_fw_120_v91.synpkg sent successful
Sending 22636 bytes
blocks : 23

Ready to update file

.\syntiant-uploader-win.exe send -m “Y” -w “Y” -p COM5 ei_model.synpkg
2023/06/01 19:55:36 main.go:81: ei_model.synpkg sent successful
Sending 545476 bytes
blocks : 533

Nothing to flash
End of uploader script
Writing NN model OK

Format external flash
Finding Nicla Voice…
Formatting external memory
Welcome to ei uploader
Port to use: COM5
Board found!
Formatting…
Done
End of uploader script
Format OK

Yes in your case you should be using flash_windows.bat.


Also, I would update the Arduino CLI. Download the latest and install it over your existing install.

I have 3 different Ardy CLIs in 4 different locations. So you need to check what CLI is being used probably based on your $PATH.

  • “C:\Program Files\Arduino CLI\arduino-cli.exe” version

    • Version: 0.33.0
  • “C:\Program Files\Arduino IDE\resources\app\node_modules\arduino-ide-extension\build\arduino-cli.exe” version

    • Version: 0.33.0
  • “C:\Users\myuser.vscode\extensions\vsciot-vscode.vscode-arduino-0.6.0-win32-x64\assets\platform\win32-x64\arduino-cli\arduino-cli.exe” version

    • Version: 0.32.2
  • “C:\Users\myuser\Desktop\arduino-ide_2.0.4_Windows_64bit\resources\app\node_modules\arduino-ide-extension\build\arduino-cli.exe” version

    • Version: 0.31.0

Hi MMarcial,
Thank you for your comments and suggestions.
My Arduino-CLI is in a path environment variable. I have tried many versions from 0.28.x to 0.33.x.

Just a simple question, have you tried recording sounds with Nicla Voice with Edge Impulse, and more importantly, did you succed? If feasabilty is confirmed I will find my way, but without any clear confirmation, I would probably keep it on hold till more information is available from both Arduino and Edge Impulse.

Hi @LPoget

I suggest you to:

  • format the external flash using format_windows_ext_flash.bat.
  • Flash the board using flash_windows.bat, it flashes the firmware and the required synpkg for the NDP120 into the eternal memory.

Then you can try to run the edge-impulse-daemon and collect audio samples.
If you get timeout, can you please use the Arduino serial monitor and paste here the output when you connect the board?

1 Like

Hi,
I have flashed the device and this action didn’t improve the device functioning. Then, I have installed Arduino IDE 2 for monitoring the output. Interestingly, after this action,the Edge Impulse data collection has started working perfectly. So, thank you very much for your help, even if I don’t understand what influenced the functioning of my device. Anyway I consider this problem as solved.
Just a question, is it possible to monitor the output of the device if the port is already used for a connection to Edge Impulse? I was not really clear about the type of monitoring you expected.

Hi @LPoget

if you connect to board to the edge impulse daemon you can’t open another serial monitor to the board.
My suggestion is just connect to the board using a serial monitor. The Nicla Voice is intended to run inference continuously, so is not mandatory to connect using the edge impulse CLI.

regards,
fv