Skip to main content
Associate II
April 9, 2026
Solved

ST67W611M1 QConn_Flash failure

  • April 9, 2026
  • 3 replies
  • 263 views

Dear all,

I have designed a custom board using the STM32H563ZIT6 as the host MCU and the ST67W611M1 as the NCP.

As part of the initial bring-up, I am attempting to flash the ST67W611M1 using the QConn_Flash_Cmd-ubuntu tool in standalone mode. For this, I have connected a USB-to-TTL converter directly to the NCP UART interface.

The BOOT and CHIP_EN pins of the ST67 are controlled by the host MCU, which toggles them in the required sequence to place the NCP into UART (flash) mode (see below code). I use the same sequence given in the NCP_Loader Example.

if (flash)
 {
 LL_GPIO_SetOutputPin(BOOT_GPIO_Port, BOOT_Pin);
 }
 else
 {
 LL_GPIO_ResetOutputPin(BOOT_GPIO_Port, BOOT_Pin);
 }

 /* RESET NCP CHIP */
 LL_GPIO_ResetOutputPin(CHIP_EN_GPIO_Port, CHIP_EN_Pin);
 HAL_Delay(100);
 LL_GPIO_SetOutputPin(CHIP_EN_GPIO_Port, CHIP_EN_Pin);

 if (flash)
 {
 /* CLEAR BOOT */
 HAL_Delay(100);
 LL_GPIO_ResetOutputPin(BOOT_GPIO_Port, BOOT_Pin);
 }

I verified the BOOT and CHIP_EN signals on an oscilloscope, and they appear to follow the expected sequence. However, when I run the QConn_Flash_Cmd-ubuntu tool to flash the Mission 1 or 2 binary, the process fails during the handshake phase with the NCP. The tool reports the following output:

❯ ./QConn_Flash/QConn_Flash_Cmd-ubuntu --port /dev/ttyUSB0 --config ./NCP_Binaries/mission_t02_flash_prog_cfg.ini --efuse NCP_Binaries/efusedata.bin
[17:46:22.644] - Serial port is /dev/ttyUSB0
[17:46:22.644] - ==================================================
[17:46:22.645] - FW get address from partiton file /home/gandhi/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-ST67W61/1.2.0/Projects/ST67W6X_Scripts/Binaries/NCP_Binaries/./partition.bin
[17:46:22.645] - Address=0x10000
[17:46:22.645] - FW get size from partiton file /home/gandhi/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-ST67W61/1.2.0/Projects/ST67W6X_Scripts/Binaries/NCP_Binaries/./partition.bin
[17:46:22.645] - Size=1785856
[17:46:22.646] - Program Start
[17:46:22.646] - ========= eflash loader cmd arguments =========
[17:46:22.647] - serial port is /dev/ttyUSB0
[17:46:22.647] - cpu_reset=False
[17:46:22.854] - com speed: 2000000
[17:46:22.854] - ========= Interface is uart =========
[17:46:22.855] - Bootrom load
[17:46:22.855] - ========= get_boot_info =========
[17:46:22.855] - ========= image get bootinfo =========
[17:46:23.108] - tx rx and power off, press the machine!
[17:46:23.108] - cutoff time is 0.05
[17:46:23.158] - power on tx and rx
[17:46:24.063] - reset cnt: 0, reset hold: 0.05, shake hand delay: 0.1
[17:46:24.063] - clean buf
[17:46:24.064] - send sync
[17:46:24.165] - ack is b''
[17:46:24.165] - retry
[17:46:24.416] - tx rx and power off, press the machine!
[17:46:24.416] - cutoff time is 0.05
[17:46:24.467] - power on tx and rx
[17:46:25.372] - reset cnt: 0, reset hold: 0.05, shake hand delay: 0.1
[17:46:25.372] - clean buf
[17:46:25.372] - send sync
[17:46:25.473] - ack is b''
[17:46:25.474] - retry
[17:46:25.725] - tx rx and power off, press the machine!
[17:46:25.725] - cutoff time is 0.05
[17:46:25.775] - power on tx and rx
[17:46:26.680] - reset cnt: 0, reset hold: 0.05, shake hand delay: 0.1
[17:46:26.680] - clean buf
[17:46:26.680] - send sync
[17:46:26.781] - ack is b''
[17:46:26.781] - retry
[17:46:26.781] - shake hand fail
[17:46:26.781] - shake hand fail
[17:46:26.782] - ========= ChipID: =========
[17:46:26.782] - Get bootinfo time cost(ms): 3927.554443359375
[17:46:26.782] - {"ErrorCode": "0050","ErrorMsg":"CHIP IMG LOAD SHAKEHAND FAIL"}
[17:46:26.782] - Burn Retry
[17:46:26.782] - Burn return with retry fail

Any help is greatly appreciated!

Thanks a lot!

Best answer by SlawekN

We faced similar problems; it turned out that USB/TTL converter matters. Have you tried a different one?
It looks like the UART interface in this module is very "fussy" in this regard (timing issues?).
We tested a few models; some were unstable (50/50), some didn't work at all.
We ended up using the FTDI FT232RL, which works reliably.

3 replies

Andrew Neil
Super User
April 9, 2026
A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
SlawekNBest answer
Associate
April 24, 2026

We faced similar problems; it turned out that USB/TTL converter matters. Have you tried a different one?
It looks like the UART interface in this module is very "fussy" in this regard (timing issues?).
We tested a few models; some were unstable (50/50), some didn't work at all.
We ended up using the FTDI FT232RL, which works reliably.

Visitor
August 28, 2026

Hi 

Can you say in detail about the connection of FTDI FT232RL. I am also used USB-TTL connection but it’s not working. My handshake mechanism is success but I am getting error in configuration with 2Mbps transfer and i am getting following errors.  I hope you can help me to solve this problem. 

[11:24:26.546] - Serial port is COM5
[11:24:26.546] - ==================================================
[11:24:26.546] - FW get address from partiton file C:\Users\estheru rani\Downloads\x-cube-st67w61\Projects\ST67W6X_Scripts\Binaries\NCP_Binaries\./partition.bin
[11:24:26.546] - Address=0x10000
[11:24:26.546] - FW get size from partiton file C:\Users\estheru rani\Downloads\x-cube-st67w61\Projects\ST67W6X_Scripts\Binaries\NCP_Binaries\./partition.bin
[11:24:26.546] - Size=1785856
[11:24:26.555] - Program Start
[11:24:26.555] - ========= eflash loader cmd arguments =========
[11:24:26.566] - serial port is COM5
[11:24:26.566] - cpu_reset=False
[11:24:27.206] - com speed: 2000000
[11:24:27.206] - ========= Interface is uart =========
[11:24:27.206] - Bootrom load
[11:24:27.206] - ========= get_boot_info =========
[11:24:27.206] - ========= image get bootinfo =========
[11:24:27.618] - tx rx and power off, press the machine!
[11:24:27.618] - cutoff time is 0.05
[11:24:27.680] - power on tx and rx
[11:24:28.681] - reset cnt: 0, reset hold: 0.05, shake hand delay: 0.1
[11:24:28.681] - clean buf
[11:24:28.685] - send sync
[11:24:28.898] - ack is b'4f4b'
[11:24:28.901] - shake hand success
[11:24:29.408] - data read is b'0200160601000100a7128201ce7f037b824019008f75809077955c69'
[11:24:29.408] - ========= ChipID: 40827b037fce =========
[11:24:29.408] - Get bootinfo time cost(ms): 2201.139892578125
[11:24:29.408] - change bdrate: 2000000
[11:24:29.408] - Clock PLL set
[11:24:29.408] - Set clock time cost(ms): 0.0
[11:24:29.549] - flash set para
[11:24:29.549] - get flash pin cfg from bootinfo: 0x08
[11:24:29.549] - set flash cfg: 1014108
[11:24:29.549] - Set flash config
[11:24:31.562] - ack is b''
[11:24:31.562] - Retry
[11:24:33.574] - ack is b''
[11:24:33.574] - Retry
[11:24:35.582] - ack is b''
[11:24:35.582] - Retry
[11:24:37.597] - ack is b''
[11:24:37.597] - {"ErrorCode": "003B","ErrorMsg":"CHIP FLASH SET PARA FAIL"}
[11:24:37.599] - Burn Retry
[11:24:37.599] - Burn return with retry fail

Regards,

Estheru Rani