SC20260E Deployment error

Hi Forum members,

We need a hand with some bricked boards.

We have two SC20260E boards on which deployment of the application failed and bricked our SoM: no USB detection and no application runs.

We are running Visual Studio Community 2022 (64bit) Version 17.7.4.
TinyCLR NuGet versions are v2.2.0.500
The hardware we are using is our own and we have developed our application with no issues. We have been using this hardware setup for the past 24 months, so no issues on this side. We have no Dev Boards, never needed those.

I have already tried pulling low the special pins LDR, NRST, APP.
MOD pin is pulled high for USB debugging interface.
Still the boards are bricked with no USB detection on Windows, so I cannot use TinyCLR Config software.

The error we got is the following:

Looking for a device on transport 'USB'.
Found device port 'USB' with ID 'e0f4fb1d-d7e1-4944-96d7-595b678a01ab' for transport 'Usb'.
Starting device deployment.
Attempting to connect to device 'USB:SC20260': iteration 0.
Opening port '\\?\usb#vid_1b9f&pid_5010#5&eef6dba&0&1#{c13bcfe9-5e84-4187-9baa-45597ffcbb6f}'.
Attaching debugger engine.
Debugger engine attached.
Generating device specific assemblies.
	- DashLoader v4.0.0.0 with size 11,028 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\DashLoader.pe'.
	- DashCore v4.0.0.8 with size 120,436 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\DashCore.pe'.
	- DashUtils v4.0.0.0 with size 64,640 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\DashUtils.pe'.
	- mscorlib v2.2.0.5000 with size 72,560 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\mscorlib.pe'.
	- GHIElectronics.TinyCLR.Cryptography v2.2.0.5000 with size 7,948 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\GHIElectronics.TinyCLR.Cryptography.pe'.
	- GHIElectronics.TinyCLR.Devices.Gpio v2.2.0.5000 with size 4,880 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\GHIElectronics.TinyCLR.Devices.Gpio.pe'.
	- GHIElectronics.TinyCLR.Devices.Network v2.2.0.5000 with size 19,076 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\GHIElectronics.TinyCLR.Devices.Network.pe'.
	- GHIElectronics.TinyCLR.Devices.Rtc v2.2.0.5000 with size 3,316 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\GHIElectronics.TinyCLR.Devices.Rtc.pe'.
	- GHIElectronics.TinyCLR.Devices.SecureStorage v2.2.0.5000 with size 1,228 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\GHIElectronics.TinyCLR.Devices.SecureStorage.pe'.
	- GHIElectronics.TinyCLR.Devices.Spi v2.2.0.5000 with size 6,284 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\GHIElectronics.TinyCLR.Devices.Spi.pe'.
	- GHIElectronics.TinyCLR.Devices.Uart v2.2.0.5000 with size 8,012 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\GHIElectronics.TinyCLR.Devices.Uart.pe'.
	- GHIElectronics.TinyCLR.Devices.Watchdog v2.2.0.5000 with size 1,652 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\GHIElectronics.TinyCLR.Devices.Watchdog.pe'.
	- GHIElectronics.TinyCLR.Native v2.2.0.5000 with size 6,200 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\GHIElectronics.TinyCLR.Native.pe'.
	- GHIElectronics.TinyCLR.Networking v2.2.0.5000 with size 12,600 bytes at 'C:\Repos\Dash Firmware\Dash v4\Code\DashLoader\bin\Release\pe\GHIElectronics.TinyCLR.Networking.pe'.
Total deployment size is 339,860 bytes.
Incrementally deploying assemblies to the device:
Allocating assemblies:
	- Address: 0x08140000 => DashCore 
	- Address: 0x0815D674 => mscorlib 
	- Address: 0x0816F1E4 => DashUtils 
	- Address: 0x0817EE64 => GHIElectronics.TinyCLR.Devices.Network 
	- Address: 0x081838E8 => GHIElectronics.TinyCLR.Networking 
	- Address: 0x08186A20 => DashLoader 
	- Address: 0x08189534 => GHIElectronics.TinyCLR.Devices.Uart 
	- Address: 0x0818B480 => GHIElectronics.TinyCLR.Cryptography 
	- Address: 0x0818D38C => GHIElectronics.TinyCLR.Devices.Spi 
	- Address: 0x0818EC18 => GHIElectronics.TinyCLR.Native 
	- Address: 0x08190450 => GHIElectronics.TinyCLR.Devices.Gpio 
	- Address: 0x08191760 => GHIElectronics.TinyCLR.Devices.Rtc 
	- Address: 0x08192454 => GHIElectronics.TinyCLR.Devices.Watchdog 
	- Address: 0x08192AC8 => GHIElectronics.TinyCLR.Devices.SecureStorage 
Deploying assemblies:
	- Erasing sector 1 (131,072 bytes).
	- Writing sector 1 (131,072 bytes).
FAILED to write device memory @0x08140000 with Length=00020000
Assemblies not successfully deployed to the device.
Deployment to the device was not successful.

​Any idea on how to recover these boards?

Thanks

It should be impossible to completely brick the board when deploying. The recovery happens by placing the board in loader mode. Then you do eraser all. From there, you have a complete blank chip and then you can reload everything.

1 Like

There are two more options you can try, after tried what Gus’s suggestion,

  • Deploy a simple application.
  • Update latest firmware/SDK
1 Like

Thanks for the replies.

Managed to get the board into bootloader mode and recovered both boards.

Seems one of the pads we placed near the LDR pin was peeling off the PCB and we had some missing contacts. Seems like these two boards came faulty. This is why I was not able to detect the board through USB, loader mode was never being activated when I ran a cable from the LDR pad to GND. Soldered some cables directly from the SoM LDR pin to GND and loader mode was detected by tinyclr config. Did an Erase All and board is now working as new.

This issue is now solved.

1 Like