cancel
Showing results for 
Search instead for 
Did you mean: 

STM32N6570-DK – Deployment stops when ST-LINK is not connected; manual hex works but display shows completely black

Vic_Ch
Visitor

Dear ST

Environment

Item Version / Details
BoardSTM32N6570-DK
OSUbuntu 24.04 LTS
PythonConda, Python 3.10
STM32AI Model Zoostm32ai-modelzoo-services/object_detection
Operation modedeployment
Modelyolov8n_256_quant_pc_uf_od_coco-person-st.tflite
STM32CubeIDE1.19.0
ST Edge AI Core / STM32CubeAI10.2.0
Local tool/opt/ST/STEdgeAI/2.2/Utilities/linux/stedgeai

Description

I am using the STM32AI Model Zoo deployment workflow on Linux to deploy a YOLOv8 object detection model to the STM32N6570-DK.

The deployment pipeline reaches the final flashing stage and aborts because no ST-LINK device is connected, even though all previous steps (Neural-Art, code generation, project patching) completed successfully.


Console log excerpt

 

 
building.. Debug flashing.. Debug STM32N6570-DK board programming is SKIPPED! -> No valid STM32 development board is connected (ST-LINK/swd port).. ... raise STMAICToolsError('Board programming failed!') E400: Board programming failed!

 

 

Expected behavior

Even when the board is not connected, deployment should still:

  • Finish building the STM32CubeIDE project

  • Export the final firmware (network_data.hex / *.bin)
    This is necessary for CI pipelines and automated batch deployments.


Actual behavior

Because board programming fails due to no ST-LINK detected, the deployment pipeline terminates with an error, and no network_data.hex is produced, even though the Neural-Art and code-gen outputs are valid.

C-project patching is confirmed to be correct:

 

 
network.c network_ecblobs.h network_atonbuf.xSPI2.raw AI_Runtime/

 

 

→ Deployment stops right before final firmware generation.


Current workaround

I manually generate a hex file from network_atonbuf.xSPI2.raw:

 

 
arm-none-eabi-objcopy \ -I binary network_atonbuf.xSPI2.raw \ --change-addresses 0x70380000 \ -O ihex network_data.hex
 

Flashing the resulting hex succeeds, but the display stays completely black (no UI, no bounding boxes, no inference output).
This suggests the manual hex only contains the model blob, not the complete firmware built by the deployment process.


Hypothesis

Deployment performs more than just packing network_atonbuf.xSPI2.raw:

Component Required for successful firmware?
AToN compiled blob
application C patching
app_config.h update
complete CubeIDE project rebuild
UI overlay + inference loop
ST-LINK programmingshould be optional

Since the deployment aborts before the final firmware build, only the raw model blob is flashed, resulting in a black screen.


Questions for ST

  1. How can we complete the deployment and generate the final firmware (.hex/.bin) without connecting the STM32N6570-DK?

  2. Is there a configuration flag available, e.g.:

    • skip_flasher: true

    • build_only: true

    • generate_hex_without_flashing: true

  3. If the current toolchain does not support this yet, what is the recommended CI-friendly workflow for offline firmware generation?

  4. If the intended solution is “build manually in CubeIDE”, could ST provide documentation on how to:

    • update the project after Neural-Art output

    • trigger a full firmware rebuild

    • avoid black-screen output after flashing

0 REPLIES 0