Production programming changes from Thingy91 to Thingy91x

We are moving to the Thingy91x after shipping over 1000 thingy91s. We are struggling though with evolving our production tools. Currently for the T91 we have a very slick python/pylink script that...

1) Loads ModemShell with RTT and retrieves device and sim information, generates and stores keys in the modem.

2) Programs our application (merged.hex) to the device.

3) Displays RTT diagnostics to verify operation.

We keep running into the T91x getting in a locked state. Claude gave us some advice to program and unlock, however "nrfutil device write" is only available on window and not on linux/macos and seems essential to unlocking without destroying the loaded programs.

Question:

1) Is there a alternative to "nrfutil device write --address 0x00FF8000 --value 0x50FA50FA" that is cross platform to unlock the devices?

2) Is there a better alternative to programming devices with the new 5 hex file scheme that guarantees unlocked success?

I've attached the nrfutil commands that work reliably (for Windows). I've also attached the current functional script for Thingy91.

Thanks

nrfutil device recover
nrfutil device program --firmware build_2\b0\zephyr\zephyr.hex --options chip_erase_mode=ERASE_ALL,reset=RESET_NONE
nrfutil device program --firmware build_2\signed_by_b0_mcuboot.hex --options chip_erase_mode=ERASE_NONE,reset=RESET_NONE
nrfutil device program --firmware build_2\signed_by_b0_mcuboot_s1_variant.hex --options chip_erase_mode=ERASE_NONE,reset=RESET_NONE
nrfutil device program --firmware build_2\MoShell\zephyr\zephyr.signed.hex --options chip_erase_mode=ERASE_NONE,reset=RESET_NONE
nrfutil device program --firmware build_2\app_provision.hex --options chip_erase_mode=ERASE_NONE,reset=RESET_NONE
nrfutil device write --address 0x00FF8000 --value 0x50FA50FA
nrfutil device write --address 0x00FF802C --value 0x50FA50FA
nrfutil device reset
T91.zip

Parents
  • Hi,

    1) Is there a alternative to "nrfutil device write --address 0x00FF8000 --value 0x50FA50FA" that is cross platform to unlock the devices?

    nrfutil is also supported on Linux and macOS (link). The "device write" command should be able to work fine. I currently am using Ubuntu 24.04 and the "device write" command works just fine... Which OS are you using and what CPU architecture do you have?

    And if you really want to use something else, I think you should be able to use pylink (that you are already using) to write this register.

    2) Is there a better alternative to programming devices with the new 5 hex file scheme that guarantees unlocked success?

    You can set the"SB_CONFIG_MERGED_HEX_FILES=y" sysbuild Kconfig to create a single .hex file that should contain the others .hex. Then programming this single merged file should do the trick.

    Best regards,

    Simon

Reply
  • Hi,

    1) Is there a alternative to "nrfutil device write --address 0x00FF8000 --value 0x50FA50FA" that is cross platform to unlock the devices?

    nrfutil is also supported on Linux and macOS (link). The "device write" command should be able to work fine. I currently am using Ubuntu 24.04 and the "device write" command works just fine... Which OS are you using and what CPU architecture do you have?

    And if you really want to use something else, I think you should be able to use pylink (that you are already using) to write this register.

    2) Is there a better alternative to programming devices with the new 5 hex file scheme that guarantees unlocked success?

    You can set the"SB_CONFIG_MERGED_HEX_FILES=y" sysbuild Kconfig to create a single .hex file that should contain the others .hex. Then programming this single merged file should do the trick.

    Best regards,

    Simon

Children
No Data
Related