Thingy91 (nRF52840) detected as MCUBOOT but unusable – broken USB descriptor

Hi, all!
I'm currently facing an issue with upgrading the nRF52840 firmware on a Thingy91 and would greatly appreciate your guidance. I'm following the official  instructions  from DevZone for this process.
Current procedure:
1. Connect Thingy91 to PC via USB.
2. Press and hold SW4 to enter MCUBOOT mode.
3. Power on the device while holding SW4.
4. Launch nRF Connect Programmer (v4.7.3) and check device detection.
Problem description:
1. Programmer detects MCUBOOT, but it is descripted as “unusable device”.
2.  Programmer displays following error message which indicates that USB descriptor and CDC UART implementations are broken.  Because of this, flashing via Programmer is not possible. There is no information about this error on the linked page (only firmware packages are available there).

3.While using Visual Studio Code with nRF Connect Extension (nRF Connect SDK V.2.7.0, nRF Connect SDK Toolchain v2.7.0), running 'west flash -d xxxx --dev-id .01' command reports errors related to SeggerBackend.
Observations: It seems that the USB interface or bootloader on the nRF52840 might be corrupted. Unfortunately, the history of this device or its current memory layout are unknown.
Question: Have you encountered a similar issue? What is the recommended recovery procedure for a Thingy:91 (nRF52840) in this state (MCUBOOT detected but unusable)?
Is it possible to recover the nRF52840 on Thingy:91 without using an external debug probe (e.g., only via USB), or is a J-Link/Nordic DK strictly required in this case?

Thank you in advance for your help

Parents
  • Hello, what version of the Thingy:91 are you using? If the programmer app is not able to detect the device i.e. described as an “unusable device”, then most likely you must use an external debug probe e.g. nRF9160DK.

    I'm following the official  instructions  from DevZone for this process.

    As stated in the blog post, this is an outdated instruction and not official document to use. Please see our docs.nordicsemi.com and specfically:

    Updating the Thingy:91 firmware using nRF Connect for Desktop apps

    Programming Nordic Thingy:91 firmware

    Programming Nordic Thingy prototyping platforms

    Kind regards,
    Øyvind

  • Thank you for your quick reply!  

    I followed the official instructions and successfully: 

    1.Flashed the Connectivity Bridge firmware to the nRF52840 on Thingy:91 via nrf9160dk (as stated in the instruction Programming Nordic Thingy prototyping platforms in “Updating nRF52840 SoC firmware” section). 

    2.When Thingy91 is connected via USB, it appears correctly as “Thiny:91 UART”. SWD switch is set to nRF52. 

    1. I am also able to enter MCUBOOTmode.

    So the initial setup seems to be working as expected. 

    However, I am encountering new issues when trying to upload my custom firmware (for tests I’m using simple code for blinky from zephyr official repositorium on github zephyr/samples/basic/blinky/src/main.c at main · zephyrproject-rtos/zephyr ) 

    Problem description – Cannot upload  and run custom firmware on Thingy91 

    - When device is connected via SWD while uploading my firmware, it seems that the uploading has been finished correctly (using Erase & Write button). However, the application doesn’t seem to run – the LED does not change its state. I observe the same issue with other custom firmware as well, including BLE beacon advertising samples.  

    - When I connect Thingy91 via USB directly to the computer and make the device enter MCUBOOT, the Programmer tool reports the following error - “No operation is possible.” Moreover, the family of the device is unknown. This preventt me from uploading or reading firmware thorugh USB. 


    Observations: 

    From my perspective, the Connectivity Bridge works correctly, but custom firmware doesn’t run through SWD and it’s not possible to upload custom firmware with MCUBOOT. 

     

    Question:  

    Is it possible to run custom firmware on Thingy91 (nrf52840) when flashing via SWD? What is the recommended procedure for flashing a Thingy:91 with custom firmware in this state (Unknown family, No operations possible)?  

     

  • awisniewska317 said:
    Flashed the Connectivity Bridge firmware to the nRF52840 on Thingy:91 via nrf9160dk

    Did you use the Programmer app to program the nRF52840? If so, what .hex file did you program? Did you try with  from the precompiled firmware package found under the Thingy:91 download page?

    I.e. img_fota_dfu_bin/thingy91_nrf52_connectivity_bridge_2024-11-18_a2386bfc.bin 

    Folder contents:
    img_app_bl/
    - Full application images including bootloader.
    - These files can be used with:
    - nRF Connect Programmer (only with SEGGER J-Link or another debug probe)
    - nrfjprog CLI

    awisniewska317 said:
    Is it possible to run custom firmware on Thingy91 (nrf52840) when flashing via SWD?

    No, the Connectivity bridge FW is what allows SWD flashing. 

    If you already have the nRF9160DK why not program both MCU using this? What is the use-case you are trying to achieve?

    Kind regards,
    Øyvind

Reply
  • awisniewska317 said:
    Flashed the Connectivity Bridge firmware to the nRF52840 on Thingy:91 via nrf9160dk

    Did you use the Programmer app to program the nRF52840? If so, what .hex file did you program? Did you try with  from the precompiled firmware package found under the Thingy:91 download page?

    I.e. img_fota_dfu_bin/thingy91_nrf52_connectivity_bridge_2024-11-18_a2386bfc.bin 

    Folder contents:
    img_app_bl/
    - Full application images including bootloader.
    - These files can be used with:
    - nRF Connect Programmer (only with SEGGER J-Link or another debug probe)
    - nrfjprog CLI

    awisniewska317 said:
    Is it possible to run custom firmware on Thingy91 (nrf52840) when flashing via SWD?

    No, the Connectivity bridge FW is what allows SWD flashing. 

    If you already have the nRF9160DK why not program both MCU using this? What is the use-case you are trying to achieve?

    Kind regards,
    Øyvind

Children
No Data
Related