Skip to main content
Associate II
Apr 9, 2026 12:55 PM UTC
Solved

ST67W611M1 QConn_Flash failure

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!

SlawekNBest answer
Associate
Apr 24, 2026 7:54 AM UTC

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
Apr 9, 2026 2:22 PM UTC
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
Apr 24, 2026 7:54 AM UTC

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.

Associate
Aug 28, 2026 6:10 AM UTC

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