Update Firmware of Nitrokey Storage

WARNING: You should backup all data from the device before upgrading, as firmware upgrades may destroy all data on device (especially coming from firmware version <0.45)!

Required Software

At first please download and start the Nitrokey App.

Now download dfu-programmer on your computer (see system specific instructions below).

For Windows: download the latest version of dfu-programmer. Go to download folder and right click on the file and choose "extract all files".
For macOS please see here.
For GNU/Linux: install with your package manager, e.g. on Ubuntu:

sudo apt update && sudo apt install dfu-programmer

Download the Latest Firmware

The latest firmware version is 0.50. Download .hex file from here. Older releases are here.

On Windows please save the downloaded .hex file to the extracted folder of dfu-programmer (see above). On GNU/Linux and macOS please save the file to your home folder (e.g. /home/your-user-name).

Start the Update process

Set Nitrokey Storage into upgrade mode using the Nitrokey App. This may looks different on your system (see picture below). Generally right click on the icon of the Nitrokey App and go to "Configure" -> "Enable Firmware Update". The default firmware password is '12345678'.
Please note: The Nitrokey is not detected by App anymore once update mode got activated. You have to proceed with the instructions described below (especially the last of the three commands).

activate firmware update
Now please proceed with the system-specific instructions below.

On Windows

Open the folder with the previously extracted files of dfu-programmer. In this folder should be the .hex file as well. Now go to "File -> Open Windows PowerShell -> Open Windows PowerShell as administrator" to open a command line in this folder.

Now please execute the following commands (one after another):

.\dfu-programmer at32uc3a3256s erase
.\dfu-programmer at32uc3a3256s flash --suppress-bootloader-mem .\firmware.hex
.\dfu-programmer at32uc3a3256s launch

The Output should look similar to the picture below.

The Nitrokey Storage should be detected by the Nitrokey App now. You have successfully updated the firmware!

If the Nitrokey is not detected by the App and the commands do not produce any output like seen above, you may need to install the drivers manually. To achieve this please go to the folder 'dfu-prog-usb' which resides in the dfu-programmer folder too. Right click on the .ini file and press 'install' like shown in the picture below. Now please repeat the three commands from above.

On GNU/Linux and macOS

Please open a terminal. You may use the app search of your system to do so. Now execute the following commands (this will only work, if the .hex file was put in the home folder of the current user!):

sudo dfu-programmer at32uc3a3256s erase
sudo dfu-programmer at32uc3a3256s flash --suppress-bootloader-mem firmware.hex
sudo dfu-programmer at32uc3a3256s launch

The Output should look similar to the picture below.

output unix systems

Note: For a version of dfu-programmer smaller than 0.7 one need to change the last command ('start' instead of 'launch'). You can find out the version of dfu-programmer by typing 'dfu-programmer --version' in the terminal and hitting enter.
E.g. for Ubuntu with dfu-programmer version 0.6.1 you would use these commands instead:

sudo dfu-programmer at32uc3a3256s erase
sudo dfu-programmer at32uc3a3256s flash --suppress-bootloader-mem firmware.hex
sudo dfu-programmer at32uc3a3256s start

Nitrokey - Made in Berlin