Ledger Nano S – Stuck on “Update” display & unable to install firmware

A few days ago, I received the Ledger Nano S, a hardware wallet for cryptocurrencies. Unfortunately, my device got stuck so I was unable to use it anymore.


After a firmware update failed, my device got stuck on the “Update” display. I followed the instructions on the support page of Ledger Wallet without success. Within the Ledger Manager app (in Chrome), I was unable to update the firmware. I was left with a device with “Update” on the display and I could not reset the device or redo the firmware update.

Since it was weekend and Ledger Wallet has to deal with a huge number of messages, I would not get a quick response. Because of this, I searched for a solution myself.

Nano S issue

My solution (has to be verified by Ledger Wallet)

It took me some hours to find a solution while I was thinking how I could flash the firmware on the device. And here is how I finally did it within MacOS with some help from the Ledger Wallet github pages! (All commands were entered within the MacOS terminal.)

  1. Close all Ledger Wallet related apps and disconnect your Nano S device.
  2. Download and install Python 2.7.
  3. Download and install setuptools (pip):
    easy_install pip
  4. Download and install virtualenv (source):
    sudo /usr/bin/easy_install virtualenv
  5. Create a folder somewhere on your Mac (e.g. “NanoS_Issue”) and go to this newly created folder.
  6. Download and install Python tools for Ledger Blue and Nano S and create an isolated Python environment (source):
    virtualenv ledger
    source ledger/bin/activate
    pip install ledgerblue
  7. Download a firmware release e.g. https://raw.githubusercontent.com/LedgerHQ/nanos-nonsecure-firmware-releases/master/nanosr1/token.loadable.signed_perso_11.hex into the created folder (right click on this page -> Save as…).
  8. Verify the content of the .hex file (it should only exist of hex symbols otherwise you will get the exception “Invalid data”).
  9. Turn on your Ledger Nano S with the left button pressed, until “Bootloader” is displayed (source).
  10. Load the .hex firmware file into your device (source):
    python -m ledgerblue.loadMCU --target 0x01000001 --fileName token.loadable.signed_perso_11.hex

After those steps, the firmware was loaded and installed into my Ledger Nano S and the “Welome” message appeared. Now, you have the choice to create a new wallet or to recover your device.

Good luck!

Leave a Reply

%d bloggers like this: