Question/Issue:
I am using the nRF Connect SDK to develop an application on a nrf52840 based board. I wanted to take advantage of the Edge Impulse integration of the SDK to use an impulse. When I manually download the zip file from my Edge Impulse project and specify its location using the CONFIG_EDGE_IMPULSE_URI it works fine.
I now want to be able to download my Edge Impulse private project automatically, which seems possible according to the documentation (https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/external_comp/edge_impulse.html#downloading_from_a_private_project), but I cannot get it to work.
I follow the documentation’s steps regarding CONFIG_EDGE_IMPULSE_URI, and I build my application with west build -b my_board -p=always my_app – -DEI_API_KEY_HEADER=“x-api-key:my_key”, but I get the following error:
[243/333] Performing download step (download, verify and extract) for ‘edge_impulse_project’
FAILED: edge_impulse/src/edge_impulse_project-stamp/edge_impulse_project-download C:/Users/nicol/Documents/xiao-ble-lsm6dsv16x/xiao-ble-lsm6dsv16x.git/build/edge_impulse/src/edge_impulse_project-stamp/edge_impulse_project-download
C:\WINDOWS\system32\cmd.exe /C “cd /D C:\Users\nicol\Documents\xiao-ble-lsm6dsv16x\xiao-ble-lsm6dsv16x.git\build\edge_impulse\src && “C:\Program Files\CMake\bin\cmake.exe” -P C:/Users/nicol/Documents/xiao-ble-lsm6dsv16x/xiao-ble-lsm6dsv16x.git/build/edge_impulse/src/edge_impulse_project-stamp/download-edge_impulse_project.cmake && “C:\Program Files\CMake\bin\cmake.exe” -P C:/Users/nicol/Documents/xiao-ble-lsm6dsv16x/xiao-ble-lsm6dsv16x.git/build/edge_impulse/src/edge_impulse_project-stamp/verify-edge_impulse_project.cmake && “C:\Program Files\CMake\bin\cmake.exe” -P C:/Users/nicol/Documents/xiao-ble-lsm6dsv16x/xiao-ble-lsm6dsv16x.git/build/edge_impulse/src/edge_impulse_project-stamp/extract-edge_impulse_project.cmake && “C:\Program Files\CMake\bin\cmake.exe” -E touch C:/Users/nicol/Documents/xiao-ble-lsm6dsv16x/xiao-ble-lsm6dsv16x.git/build/edge_impulse/src/edge_impulse_project-stamp/edge_impulse_project-download”
– Downloading…
dst=‘C:/Users/nicol/Documents/xiao-ble-lsm6dsv16x/xiao-ble-lsm6dsv16x.git/build/edge_impulse/src/edge_impulse_src.zip’
timeout=‘none’
inactivity timeout=‘none’
– Using src=‘studio.edgeimpulse com/v1/api/510245/deployment/download?type=zip’
CMake Error at edge_impulse_project-stamp/download-edge_impulse_project.cmake:163 (message):
Each download failed!
error: downloading 'https://studio.edgeimpulse.com/v1/api/510245/deployment/download?type=zip' failed
status_code: 22
status_string: "HTTP response code said error"
log:
--- LOG BEGIN ---
timeout on name lookup is not supported
Host studio.edgeimpulse com:443 was resolved.
IPv6: (none)
IPv4: 18.244.28.46, 18.244.28.102, 18.244.28.106, 18.244.28.88
Trying 18.244.28.46:443...
Connected to studio.edgeimpulse com (18.244.28.46) port 443
schannel: disabled automatic use of client certificate
ALPN: curl offers h2,http/1.1
schannel: connection hostname (studio edgeimpulse com) validated against
certificate name (*.edgeimpulse com)
ALPN: server accepted h2
using HTTP/2
[HTTP/2] [1] OPENED stream for
studio edgeimpulse com/v1/api/510245/deployment/download?type=zip
[HTTP/2] [1] [:method: GET]
[HTTP/2] [1] [:scheme: https]
[HTTP/2] [1] [:authority: studio edgeimpulse com]
[HTTP/2] [1] [:path: /v1/api/510245/deployment/download?type=zip]
[HTTP/2] [1] [user-agent: curl/8.6.0]
[HTTP/2] [1] [accept: application/zip]
GET /v1/api/510245/deployment/download?type=zip HTTP/2
Host: studio edgeimpulse com
User-Agent: curl/8.6.0
Accept: application/zip
schannel: remote party requests renegotiation
schannel: renegotiating SSL/TLS connection
schannel: connection hostname (studio edgeimpulse com) validated against
certificate name (*.edgeimpulse.com)
schannel: SSL/TLS connection renegotiated
HTTP/2 401
content-type: application/json; charset=utf-8
date: Sat, 05 Oct 2024 12:46:11 GMT
set-cookie: x-xsrf-token=VFCnmKdE%2BnKUbvMFthbFRw%3D%3D; Path=/; HttpOnly;
Secure; SameSite=Strict
set-cookie:
connect.sid=s%3A0_HrjCo5fJILXd7JBDWr_AAYRr6wtqMo.%2FlzkEnnajXnmfoBtzJ6VLSbEyCUTXhhLIIU6veR6AgQ;
Path=/; HttpOnly; Secure
access-control-allow-origin: *
content-security-policy: default-src ‘self’ blob: edgeimpulse com
*.edgeimpulse com ; img-src ‘self’ ‘unsafe-inline’ edgeimpulse com
*.edgeimpulse com *.google-analytics com *.googletagmanager com data:
usercdn edgeimpulse com ; media-src ‘self’ edgeimpulse com
*.edgeimpulse com blob: data: mediastream://studio.edgeimpulse com;
script-src ‘self’ ‘nonce-s9H2VSC8ygpLBJfSnpzwSQ==’ edgeimpulse com
*.edgeimpulse.com *.hsforms.net *.hsforms.com *.google-analytics com
fonts googleapis com youtube com *.youtube com browser.sentry-cdn com
js.sentry-cdn com *.sentry.io *.googletagmanager.com d3js org blob:;
connect-src ‘self’ edgeimpulse com *.edgeimpulse.com *.google-analytics com
*.hsforms.net *.hsforms.com *.amazonaws.com *.googleapis com
fonts googleapis com sentry io *.sentry.io youtube com *.youtube com
*.doubleclick.net *.amplitude.com localhost:4800 localhost:4810
host.docker.internal:4810 host.docker.internal:9001
wss://studio.edgeimpulse.com wss://remote-mgmt.edgeimpulse.com ; style-src
‘self’ ‘unsafe-inline’ edgeimpulse com *.edgeimpulse com
fonts googleapis com; base-uri ‘self’ edgeimpulse com *.edgeimpulse.com;
frame-ancestors ‘self’ edgeimpulse com *.edgeimpulse.com; form-action
‘self’ edgeimpulse com *.edgeimpulse com; frame-src ‘self’ edgeimpulse com
*.edgeimpulse.com youtube com *.youtube com *.googletagmanager.com
localhost:4820; font-src ‘self’ edgeimpulse com *.edgeimpulse.com
fonts gstatic com; report-uri
o333795 ingest sentry io/api/1887001/security/?sentry_key=3ad6405147234fac8ab65061c25d2334;
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 1; mode=block
referrer-policy: strict-origin
cache-control: s-maxage=0,public,no-cache,no-store,must-revalidate
strict-transport-security: max-age=63072000
x-cache: Error from cloudfront
via: 1.1 dbc7e30405074db3df74774e77df3fde.cloudfront net (CloudFront)
x-amz-cf-pop: CDG52-P5
x-amz-cf-id: FYyz237m6C8jZ1eVRJKgTvtvtMiBhN7SVhO0E40CfXxnWXC2UNwBjg==
The requested URL returned error: 401
Connection #0 to host studio.edgeimpulse com left intact
--- LOG END ---
[252/333] Building C object zephyr/drivers/serial/CMakeFiles/drivers__serial.dir/uart_nrfx_uarte.c.obj
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: ‘C:\Program Files\CMake\bin\cmake.EXE’ --build ‘C:\Users\nicol\Documents\xiao-ble-lsm6dsv16x\xiao-ble-lsm6dsv16x.git\build’
I also tried the individual call using Edge Impulse’s documentation: https://docs.edgeimpulse.com/reference/edge-impulse-api/deployment/download
After clicking on “Test it”, if I add my project ID, and add a header with key x-api-key and value my_key, the request successfully completes.
I contacted Nordic’s support, redirecting me here. Do you have an idea on what I can do to solve the issue please ?
Best regards,
Nicolas Goualard
Environment:
- Platform: Seeed Studio Xiao BLE
- Build Environment Details: ncs v2.7.0
- OS Version: Windows 10