Nitrokey 3A NFC firmware update failed - device bricked

Hi,

I’ve updated today 2 of my Nitrokey 3 devices (NK3 mini + NK3A) from firmware version 1.7.0 to 1.7.1 via NitrokeyApp2 2.3.0.

The first one (mini) went smooth but the second one failed at 58% and is since that dead. From the application log I see at the bottom the following messages:

124221    DEBUG libusbsio.hidapi.dev HID device 123540642930272 writing[60]: 0x0200380099e81e1bf5f78041e9fd7336e2878ed703daef0b61d423bbe59ae6ac881ab693afd058f8e09bf8cf16a62077312122f4f94bb89651073d44
124222    DEBUG libusbsio.hidapi.dev HID device 123540642930272 wrote 60 bytes
124222    DEBUG spsdk.mboot.protocol.bulk_protocol OUT[60]: 02, 00, 38, 00, 26, E2, 43, C7, 8D, C7, 5B, D1, 3D, 70, FE, 1C, E6, 7A, 73, AD, A4, 65, EC, B6, 15, BC, A2, F1, 44, CC, 1C, FC, C3, 1E, 1B, AD, D7, E2, 97, 98, A3, 2F, 5E, F8, DE, 0D, 69, 18, 75, 0B, 79, 52, 25, 52, 23, 9E, EA, BD, 4C, 56
124223    DEBUG libusbsio.hidapi.dev HID device 123540642930272 writing[60]: 0x0200380026e243c78dc75bd13d70fe1ce67a73ada465ecb615bca2f144cc1cfcc31e1badd7e29798a32f5ef8de0d6918750b79522552239eeabd4c56
129305    DEBUG libusbsio.hidapi.dev HID device 123540642930272 wrote -1 bytes
129305    ERROR spsdk.mboot.mcuboot RX: SPSDK: Invalid size of written bytes has been detected: -1 != 60
131307    DEBUG libusbsio.hidapi.dev HID device 123540642930272 read[0]: None
131308    ERROR spsdk.utils.interfaces.device.usb_device Cannot read from HID device, error=0
131308     INFO spsdk.mboot.mcuboot Closing: identifier='usb', device=MCU HID GENERIC DEVICE (0x20A0, 0x42DD)path=b'/dev/hidraw6' sn=''
131308    DEBUG spsdk.utils.interfaces.device.usb_device Closing the Interface: MCU HID GENERIC DEVICE (0x20A0, 0x42DD)path=b'/dev/hidraw6' sn=''
131308     INFO libusbsio.hidapi.dev HID device 123540642930272 closed
131308     INFO nitrokeyapp.device_data Nitrokey 3 failed to update - Failed to perform firmware update

144401     INFO nitrokeyapp.update path: /dev/hidraw5
144402   WARNING pynitrokey.trussed.device No CTAPHID device at path /dev/hidraw5
Traceback (most recent call last):
  File "pynitrokey/trussed/device.py", line 107, in open
  File "fido2/hid/__init__.py", line 269, in open_device
  File "fido2/hid/linux.py", line 55, in get_descriptor
FileNotFoundError: [Errno 2] No such file or directory: '/dev/hidraw5'
144405     INFO  libusbsio HID enumeration[123540641401120]: initialized
144405    DEBUG  libusbsio HID enumeration[123540641401120]: device #0: MCU HID GENERIC DEVICE
144405     INFO  libusbsio HID enumeration[123540641401120]: finished, total 1 devices
144405   WARNING pynitrokey.trussed.bootloader.lpc55 No HID device at /dev/hidraw5
144413     INFO nitrokeyapp.device_data Nitrokey 3 failed to update - Failed to open Nitrokey 3 device at /dev/hidraw5
153411     INFO nitrokeyapp.gui device removed event
153412     INFO  libusbsio HID enumeration[45439344]: initialized
153412     INFO  libusbsio HID enumeration[45439344]: finished, total 0 devices
153420     INFO nitrokeyapp.gui nk3 disconnected: [<nitrokeyapp.device_data.DeviceData object at 0x705c5fbdfc70>]
153421     INFO nitrokeyapp.gui device removed event
153422     INFO  libusbsio HID enumeration[45879648]: initialized
153422     INFO  libusbsio HID enumeration[45879648]: finished, total 0 devices
153429     INFO nitrokeyapp.gui failed removing device

Anyone having a similar issue and is there any option to unbrick the device? When I insert the device, it’s not recognized by the Linux system I’m running. I did carefully open the case but there seems no button to boot into some bootloader or something.

Unfortunately this is the 2nd time one of my NK3 devices didn’t survive a firmware update and I’m getting the impression either I’m extremely pursued by misfortune or the devices are rather fragile.

Are you using any extension cable or USB Hub?

Seems like during the update the new firmware could not be written completely to the device. During reboot, the firmware was corrupt and could not get detected again. I think at this point you can only flash the device as it is done during manufacturing using an external programmer. This is not something an end user should do and would also break the case open and requires special hardware and knowledge.

I guess you need to contact support via email to ask for a replacement.

Nope, the device was directly attached to the laptop’s USB port.

Yes happened to me too on Ubuntu.
Pretty pissed off. Why can’t they make their update software as smooth as the Trezor bitcoin hardware wallet.