Bricked device

Hello,

after an attemp to switch to UF2 Bootloader from Open Bootloader my Makedriary nRF52840 MDK USB Dongle stopped working (now shows only the green led always on) and it doesn't get recognized by my pc. I noticed this guide (wiki.makerdiary.com/.../) to unbrick it but it requires a second makerdiary dongle. My question is: is it possible to use the original Nordic nrf52840 dongle that I already own to do the same?

Thanks

  • Hi,

    Yes, it should be fine to use the nRF52840 Dongle as programmer for your Makedriary nRF52840 MDK USB Dongle.

    -Priyanka

  • Hi, did you manage to flash the nRF52840 MDK with a Nordic nRF52840 Dongle ? I also have the green led permanently on. I can access the chip with openocd via a raspberry pi. I can also erase it and flash another hex/bin and verify the flashed image, but it just stays the same. The green light won't go out, is always on and device is not even recognised in windows or debian.

    Open On-Chip Debugger 0.12.0+dev-00699-ge09bb72da (2024-08-27-18:42)
    Licensed under GNU GPL v2
    For bug reports, read
    	http://openocd.org/doc/doxygen/bugs.html
    Info : BCM2835 GPIO JTAG/SWD bitbang driver
    Info : clock speed 999 kHz
    Info : SWD DPIDR 0x2ba01477
    Info : [nrf52840.cpu] Cortex-M4 r0p1 processor detected
    Info : [nrf52840.cpu] target has 6 breakpoints, 4 watchpoints
    Info : [nrf52840.cpu] Examination succeed
    Info : [nrf52840.cpu] starting gdb server on 3333
    Info : Listening on port 3333 for gdb connections
    [nrf52840.cpu] halted due to breakpoint, current mode: Thread 
    xPSR: 00000000 pc: 0x213c0a0a msp: 0x0a0a0a08
    Info : Listening on port 6666 for tcl connections
    Info : Listening on port 4444 for telnet connections
    Info : accepting 'telnet' connection on tcp/4444
    Info : nRF52840-QI/CAAA(build code: D0) 1024kB Flash, 256kB RAM
    Info : Mass erase completed.
    [nrf52840.cpu] halted due to breakpoint, current mode: Thread 
    xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
    ** Programming Started **
    Info : Padding image section 0 at 0x0004aaa1 with 3 bytes (bank write end alignment)
    Warn : Adding extra erase range, 0x0004aaa4 .. 0x0004afff
    ** Programming Finished **
    ** Verify Started **
    ** Verified OK **
    [nrf52840.cpu] halted due to breakpoint, current mode: Thread 
    xPSR: 00000000 pc: 0x213c0a0a msp: 0x0a0a0a08
    ** Programming Started **
    Info : Padding image section 0 at 0x0004aaa1 with 3 bytes (bank write end alignment)
    Warn : Adding extra erase range, 0x0004aaa4 .. 0x0004afff
    ** Programming Finished **
    

    I would like to try the DAP method you linked to but am struggling to connect the right pins on the Nordic nRF52840 Dongle which is the DAPLINK

    Any guidance would be appreciated, seems to me the Nordic nRF52840 Dongle does not have a RESET pin to connect ?

  • Hi  ,

    I have connected my dongles as shown here just the left dongle is a nordic in my case ; in dmesg I see that the Nordic dongle is recognised correctly. I also get the DAPLINK drive to place the files on for flashing.

    However, when I put a hex on it, for example uf2_bootloader-nrf52840_mdk_usb_dongle-0.7.1-s140_6.1.1.hex then it seems to copy it on but then the DAPLINK drive disappears and I get strange output in dmesg :

    [188919.077229] usb 1-2: new full-speed USB device number 62 using xhci_hcd
    [188919.220160] usb 1-2: New USB device found, idVendor=1915, idProduct=5200, bcdDevice=10.00
    [188919.220178] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [188919.220186] usb 1-2: Product: NRF52840 CMSIS-DAP
    [188919.220192] usb 1-2: Manufacturer: Arm
    [188919.220197] usb 1-2: SerialNumber: 9952360200052840b626ae29d1a50f5c000000006e052840
    [188919.225473] usb-storage 1-2:1.0: USB Mass Storage device detected
    [188919.226193] scsi host1: usb-storage 1-2:1.0
    [188919.226962] cdc_acm 1-2:1.1: ttyACM0: USB ACM device
    [188919.228744] hid-generic 0003:1915:5200.0015: hiddev0,hidraw1: USB HID v1.00 Device [Arm NRF52840 CMSIS-DAP] on usb-0000:00:14.0-2/input3
    [188920.231930] scsi 1:0:0:0: Direct-Access     MBED     VFS              0.1  PQ: 0 ANSI: 2
    [188920.232741] sd 1:0:0:0: Attached scsi generic sg1 type 0
    [188920.236798] sd 1:0:0:0: [sdb] 131200 512-byte logical blocks: (67.2 MB/64.1 MiB)
    [188920.237074] sd 1:0:0:0: [sdb] Write Protect is off
    [188920.237083] sd 1:0:0:0: [sdb] Mode Sense: 03 00 00 00
    [188920.237398] sd 1:0:0:0: [sdb] No Caching mode page found
    [188920.237410] sd 1:0:0:0: [sdb] Assuming drive cache: write through
    [188920.250268]  sdb:
    [188920.250304] sd 1:0:0:0: [sdb] Attached SCSI removable disk
    [188931.088423] usb 1-2: USB disconnect, device number 62
    [188931.103700] device offline error, dev sdb, sector 149 op 0x1:(WRITE) flags 0x800 phys_seg 25 prio class 0
    [188931.103914] device offline error, dev sdb, sector 1 op 0x1:(WRITE) flags 0x0 phys_seg 1 prio class 0
    [188931.103934] Buffer I/O error on dev sdb, logical block 1, lost async page write
    [188931.104023] device offline error, dev sdb, sector 66 op 0x1:(WRITE) flags 0x100000 phys_seg 1 prio class 0
    [188931.104048] Buffer I/O error on dev sdb, logical block 66, lost async page write
    [188931.104094] device offline error, dev sdb, sector 131 op 0x1:(WRITE) flags 0x0 phys_seg 1 prio class 0
    [188931.104111] Buffer I/O error on dev sdb, logical block 131, lost async page write
    [188931.207093] bio_check_eod: 13 callbacks suppressed
    [188931.207096] pool-caja: attempt to access beyond end of device
                    sdb: rw=0, sector=0, nr_sectors = 1 limit=0
    [188931.207101] FAT-fs (sdb): unable to read boot sector to mark fs as dirty
    [188932.617174] usb 1-2: new full-speed USB device number 63 using xhci_hcd
    [188932.767052] usb 1-2: New USB device found, idVendor=1915, idProduct=5200, bcdDevice=10.00
    [188932.767070] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [188932.767078] usb 1-2: Product: NRF52840 CMSIS-DAP
    [188932.767084] usb 1-2: Manufacturer: Arm
    [188932.767089] usb 1-2: SerialNumber: 9952360200052840b626ae29d1a50f5c000000006e052840
    [188932.774288] usb-storage 1-2:1.0: USB Mass Storage device detected
    [188932.775166] scsi host1: usb-storage 1-2:1.0
    [188932.776845] cdc_acm 1-2:1.1: ttyACM0: USB ACM device
    [188932.780241] hid-generic 0003:1915:5200.0016: hiddev0,hidraw1: USB HID v1.00 Device [Arm NRF52840 CMSIS-DAP] on usb-0000:00:14.0-2/input3
    [188933.777947] scsi 1:0:0:0: Direct-Access     MBED     VFS              0.1  PQ: 0 ANSI: 2
    [188933.778645] sd 1:0:0:0: Attached scsi generic sg1 type 0
    [188933.782323] sd 1:0:0:0: [sdb] 131200 512-byte logical blocks: (67.2 MB/64.1 MiB)
    [188933.782819] sd 1:0:0:0: [sdb] Write Protect is off
    [188933.782827] sd 1:0:0:0: [sdb] Mode Sense: 03 00 00 00
    [188933.783211] sd 1:0:0:0: [sdb] No Caching mode page found
    [188933.783222] sd 1:0:0:0: [sdb] Assuming drive cache: write through
    [188933.795883]  sdb:
    [188933.795917] sd 1:0:0:0: [sdb] Attached SCSI removable disk

    Have you any ideas maybe ? Can I literally wire them like this ? The hardware diagram for the MDK is clear, but i cannot seem to find a similar diagram for the nordic except these ?

    What is also strange is what I wrote below, I can use my raspberry as swd bitbang and connect to the chip with openocd. But flashing there also does not seem to work.

    I'm a bit lost here


    UPDATE

    Sometimes after putting the hex on the drive, after the adapter resets and the DAPLINK drive is remounted, there is a new file on the drive named assert.txt with contents :

    Assert
    File: ../../../source/daplink/HardFault_Handler.c
    Line: 67
    Source: Application
    Hexdumps
    fffffffd
    200004c8
    20007ec8
    00000000
    200004e8
    00006107
    007a1200
    20000000
    40000000
    00000100
    00000000
    00000000
    00000000
    e000ed38

    Pyocd also does not seem to recognise the target correct ?

    └──╼ $pyocd list
      #   Probe/Board              Unique ID                                          Target           
    ---------------------------------------------------------------------------------------------------
      0   Arm NRF52840 CMSIS-DAP   9952360200052840b626ae29d1a50f5c000000006e052840   ✖︎ nrf52840_xxaa  
          Makerdiary               nRF52840-MDK-USB-Dongle  
          
    └──╼ $pyocd gdbserver
    0000400 C Target type nrf52840_xxaa not recognized. Use 'pyocd list --targets' to see currently available target types. See <https://pyocd.io/docs/target_support.html> for how to install additional target support. [__main__]
    

Related