Question/Issue:
Custom Edge Impulse model is ignored in Arduino App Lab 0.8.0. The default yolo-x-nano.eim model runs instead of the trained custom model, even after correctly deploying it via the App Lab UI.
Project ID: 1015510
Context/Use case:
Custom object detection model trained in Edge Impulse Studio (YOLO-Pro Small) to detect filament trash (Black, Blue, Red, White, and Complex Flament classes). Deployed to Arduino UNO Q via App Lab 0.8.0 using the integrated Edge Impulse flow.
Steps Taken:
- Trained a custom object detection model in Edge Impulse Studio (Project ID: 1015510)
- Deployed the model to Arduino UNO Q via App Lab: Video Object Detection brick → AI Models → Download
- Selected the custom model in Brick Configuration and saved
- Ran the application from App Lab
- Inspected the running Docker container:
docker inspect <container> | grep -A1 model-file
Expected Outcome:
The custom model (Flament Trash Detection, ei-model-1015510-3) should run and detect filament classes.
Actual Outcome:
The default yolo-x-nano.eim model runs instead. Docker container inspection confirms this:
"--model-file", "/models/ootb/ei/yolo-x-nano.eim"
Root Cause Identified:
There is a variable name mismatch in:
/var/lib/arduino-app-cli/assets/0.10.1/compose/arduino/video_object_detection/brick_compose.yaml
The command in brick_compose.yaml references:
${EI_V_OBJ_DETECTION_MODEL:-/models/ootb/ei/yolo-x-nano.eim}
However, App Lab sets the environment variable as:
EI_OBJ_DETECTION_MODEL
The variable EI_V_OBJ_DETECTION_MODEL (with the extra “V”) is never set by App Lab, so the container always falls back to the default model.
Reproducibility:
- [x] Always
Environment:
- Platform: Arduino UNO Q (aarch64)
- OS Version: Debian Linux (aarch64)
- Arduino App Lab Version: 0.8.0
- ei-models-runner image: Package app-bricks/ei-models-runner · GitHub
- python-apps-base image: Package app-bricks/python-apps-base · GitHub
- Custom Blocks / Impulse Configuration: YOLO-Pro 0.9.11 Small, Object Detection, 300 epochs, LR 0.01
- Project Version: v20
Logs/Attachments:
Docker inspect output:
"--model-file",
"/models/ootb/ei/yolo-x-nano.eim",
"CUSTOM_MODEL_PATH=/home/arduino/.arduino-bricks/models/custom-ei/ei-model-1015510-3",
"EI_OBJ_DETECTION_MODEL=/home/arduino/.arduino-bricks/models/custom-ei/ei-model-1015510-3/model.eim"
Workaround:
Manually running the Docker container with the correct --model-file parameter works:
docker run ... --model-file /home/arduino/.arduino-bricks/models/custom-ei/ei-model-1015510-3/model.eim
Suggested Fix:
Either rename EI_V_OBJ_DETECTION_MODEL to EI_OBJ_DETECTION_MODEL in brick_compose.yaml, or ensure App Lab sets EI_V_OBJ_DETECTION_MODEL correctly when a custom model is selected.
Additional Information:
This issue affects all users trying to deploy custom models via the new integrated App Lab + Edge Impulse flow on App Lab 0.8.0. The root cause is a simple variable name mismatch that requires a one-line fix.