Firmware update and default pin

After my first debacle with the user and admin pin I am kind of weary.
I see there is a “Change Firmware Password” option in the NK App.
But what is the default password?
Do I need it or can I use the admin pin to update the Firmware?

Found it under FAQ…
Now I have to understand how to install the Firmware because the instruction is minimal for someone that is not all knowledgeable with a Terminal use.

I managed to install dfu-programmer.
I downloaded the new Firmware 0.49.0 hex file
But sorry the items 4 - 7 I feel not confident with available info…
Could you explain more detailed…?


1.Set Nitrokey Storage into upgrade mode using the Nitrokey App
2.For pre-0.7 firmware versions only: Reconnect the Nitrokey Storage
3.Install dfu-programmer on your computer (see here for macOS)
4.Open a terminal (DOS-style command prompt). On Linux the following commands need to be executed as root (sudo).
5.Execute "dfu-programmer at32uc3a3256s erase"
6.Execute "dfu-programmer at32uc3a3256s flash --suppress-bootloader-mem "
7.Execute “dfu-programmer at32uc3a3256s launch” (older versions of dfu-programmers: “dfu-programmer at32uc3a3256s start”)

As said; I got as far as installing dfu-programmer.
I then went ‘configure’ - 'Enable firmware update’
But that told me that the Nitrokey was disconnected…
I tried #5 - didn’t tell me much…
Then #6 - did not work and told me there was no NK…
Now the NK won’t show in the App at all…

Trying to reset the NK with factory reset [option 4] did not work either…

PS… if you want Noobs stop filling your help forum with beginner problems - you better get your your documentation and software in order…
Please this is not helping at all…

Same problem for me.

Opened my thread here yesterday NitroKey Storage Stick bricked after switching into Firmware Upgrade Mode

maybe someone can help out with this firmware upgrade mess.

Sorry for the trouble. Please run the commands under Administrator privileges. Mentioned commands would be:

sudo dfu-programmer at32uc3a3256s erase
sudo dfu-programmer at32uc3a3256s flash --suppress-bootloader-mem
sudo dfu-programmer at32uc3a3256s launch

The device will not connect to Nitrokey App as long as it is in Update mode. If the firmware was not erased with erase or flash commands earlier, launch command should make it running again as if nothing happend.

PS The sudo term is mentioned in instructions, but it appears to me now this is not clear enough. Extension of it with a some Linux concepts explanation and with a screenshots of executing the procedure step-by-step should be helpful.

This is (probably) again caused by running the update with User privileges (as opposed to Administrator ones). Perhaps this should be stressed more in the guide.

This is all I get after the second and third command line:
crienoloog@crienoloog-Lenovo-ideapad-110-15ISK:~$ sudo dfu-programmer at32uc3a3256s launch
Usage: dfu-programmer target[:usb-bus,usb-addr] command [options] [global-options] [file|data]

    --debug level    (level is an integer specifying level of detail)
    Global options can be used with any command and must come
    after the command and before any file or data value

    configure {BSB|SBV|SSB|EB|HSB} [--suppress-validation] data
    erase [--suppress-validation]
    flash [--suppress-validation] [--suppress-bootloader-mem]
                 [--serial=hexdigits:offset] {file|STDIN}
    flash-eeprom [--suppress-validation]
                 [--serial=hexdigits:offset] {file|STDIN}
    flash-user   [--suppress-validation]
                 [--serial=hexdigits:offset] {file|STDIN}
    get     {bootloader-version|ID1|ID2|BSB|SBV|SSB|EB|
             ISP_FORCE} data


crienoloog@crienoloog-Lenovo-ideapad-110-15ISK:~$ sudo dfu-programmer at32uc3a3256s flash --suppress-bootloader-mem firmware_V0.50.0.hex
[sudo] password for crienoloog: 
dfu-programmer: no device present.

May I suggest something…?
I used to work as an IT Project Mngr. but I don’t program. I also worked extensively as a proces manager and I think if your organisation gets a Functionality Designer with a flowchart to make a new manual, this should help a lot. Babysteps with lots of screenshots… Don’t assume anything to work as it works on your computer.
Don’t assume as an IT professional what is logical for you, is definitely not logical for the common user…
I am pretty sure you guys work with a Trezor… Updating new firmware versions is how things can be done a bit easier for users… I am sure you guys can build it likewise.

Keeping my hopes up high.

1 Like

Sorry I have not responded immediately - I have not got the email notification somehow.

If the help screen of dfu-programmer is shown to you after issuing launch then you might have old dfu-programmer version.
This command has been renamed in 0.7 version, while in 0.6 it was called start. This should be added to the guide (@nitroalex).

I wonder why the device is not visible to you, even with sudo. The update process is usually straightforward on Ubuntu. If you would find yourself once again in this situation please attach results of lsusb command as well.

Lesson learned from this is making own update application, which would collect system details and suggest possible solutions to the connection issue.

Just for completeness (for others reading this topic) - linking your working update guide for Windows 10:

It is already there, isn’t it? Or did I got something wrong? (the instructions will change soon anyway)

I thought about explicitly mentioning the dfu-programmer versions - that is, what is the latest one and from which version the command changed.
Could you test as well the flashing with the packaged dfu-programmer on Ubuntu or Debian? The package there contains v0.6 version. Could you mention this version difference in the guide as well?

Ah, I see. Okay I try to change this.

Oh this manual update procedure is bad anyway. The proper way to do firmware updates on Linux would be to use LVFS, with one-click updates and proper system update integration:

Unfortunately, it is not really supported by Nitrokey (yet?).

February 2021 and it is still not supported.

1 Like