cancel
Showing results for 
Search instead for 
Did you mean: 

Production programming of STM32WB, including FUS and CoPro

ChrisLB
Associate III

Trying to figure out the best way of programming CPUs for production.

With other projects, we would normally get the microcontroller programmed before the PCB SMT stage. This service doesnt appear to be available for STM32WB (too new?), so the intention is to use 4x ST-LINK devices in parallel to program 4 boards at a time on the assembly line.

Whilst I'm fairly clear on how to achieve this using the command line tools, I would like to check this is the only / best way of doing it. The time it takes to upgrade FUS (twice? still not clear if that's required as per release notes 0.5.3 -> 1.0.2 -> 1.1.0), then flash the copro with BLE_stack_full.bin, then flash the main image is longer than we would like.

Can we combine any of the steps? Is it possible to generate an elf file that has "everything" in?

Does ST provide programming services? or chips that are already preprogrammed with the ble stack, ready for our application code?

Thanks

22 REPLIES 22
RPowe.9.306
Associate III

Also looking at this on our custom hardware and also failing. I can connect with ST-Link and nSWBOOT0 = 0 and nBOOT0 = 1 and nBOOUT1 = 1.The FUS boxes are all blank. I get the error shown

Remi QUINTIN
ST Employee

​The READ FUS STATE boxes remain empty as this information is not accessible using the SWD port for now.

Now could you send a picture of the option bytes, especially the security ones.

I want to check is the ESE bit is set.

How old is the board?

Remi QUINTIN
ST Employee

The READ FUS STATE boxes remain empty as this information is not accessible using the SWD port.

Now could you send a picture of the option bytes, especially the security ones.

I want to check is the ESE bit is set.

How old is the board?

Hi Remi,

The board is 2 or 3 years old, I got it a 1-day workshop in Bristol when the WB55 was pretty new. See attached, the ESE bit is cleared

Hi Remi,

The custom board was made this year so I assume the chips are very recent. See attached for option bytes. The ESE is set on this chip. If I try to clear it, I get the message "Warning: Option Byte: ESE, does not exist" - very odd

Sorry, see attached

Remi QUINTIN
ST Employee

​ESE = 0 means this board is not a secure one. So Firmware Upgrade Service (FUS) is not available to upload new FUS or new encrypted RF stack.

So hard to commit on any predictable result. No FUS => No info on the FUS => No way to download anything in a secure way.

You can use this board to run your own SW (application + own RF stack) but no way to protect it and this configuration will never be used for production.

Remi QUINTIN
ST Employee

When ESE = 1, it is not possible to modify the value. The error message sounds a bit weird but in the end no way to roll this chip back to an non-secure configuration.​

Remi QUINTIN
ST Employee

SFSA = F4 => The FUS is at least v1.0.2. May even be v1.1.0. For sure no RF stack is intalled on this device.​

Hi Remi,

This is just a Nucleo so it's not for ever going to be for production. I have another Nucleo with an old stack and an old p2p server app. I was just hoping to load this Nucleo with the latest stack (stm32wb5x_BLE_Stack_full_fw.bin) and a new version of the p2p server. Are you saying that is not possible?