Resetting your controller's EEPROM
When to use
You should use this document when you're using and/or experiencing the following.
Products
This page applies to the following products:
- Any RP2040-based controller such as the Liatris, but also the Elite-Pi, Helios, 0xCB and others.
- Any nice!nano, version 2 or version 1.
- Any ATmega32U4-based controller, such as the Elite-C and Pro Micro.
Situations
Use this page when:
- RGB animations are acting strangely or inconsistent.
- Display graphics aren't displayed correctly or are missing.
- Settings which you expect to be persisted after a reboot are missing.
- Your keyboard behaves inexplicably.
Expected outcome
After following the instructions on this page:
- The keyboard's settings are reset to their default values.
It's a rather lengthy acronym: EEPROM. It means "electrically erasable programmable read-only memory". It's an aspect of your controller that allows your keyboard to save settings, which are saved even after you unpower your keyboard. Those settings include RGB colours and the active animation, but also other features such as the currently active base layer are saved, among a host of other bits and bobs.
Many of the controllers in use in keyboard kits today don't have a physical EEPROM chip. Instead, the EEPROM gets emulated, and gets written to either an on-board external flash chip, or on flash memory embedded within the controller chip itself.
This emulation is pretty stable, but it at times it can get corrupted.
We find that it can help to first reset the EEPROM before resorting to more time-consuming troubleshooting steps. It only takes a few moments, yet can resolve some strange behaviours that cannot be explained otherwise.
Common steps
Performing these steps in this document will completely erase the contents of your controller. Let's put that in a warning box for good measure:
Make a back-up of your Vial layout
If you're using Vial, now would be a good time to make a backup of your layout if you changed anything from the default. You can do so by clicking on File > Save current layout, or by using the keyboard shortcut Control + S
on Windows, or Command + S
on a Mac.
Prepare your firmware files
It can also help to prepare your keyboard's firmware file or files ahead of time. You can find these using our Firmware Finder, or you can of course compile them yourself.
Steps per controller
How to reset your controller's EEPROM can depend on the controller you're using:
- Liatris (and other RP2040-based controllers)
- nice!nano
- Elite-C, Pro Micro and other AVR-based controllers
Liatris (and other RP2040-based controllers)
Download the RP2040 reset firmware file, which you can also find using our Firmware Finder.
Then, flash the reset file to the controller by entering its bootloader mode and then dragging the reset file over to the newly presented disk.
Lastly, go through these steps again, but instead of flashing the reset file, you'll flash your own keyboard's firmware file to it. The reset file completely wipes the controller's memory, so it will forget the firmware that was previously flashed to it as well.
Entering bootloader mode
Hold the on-board boot button while connecting the Liatris with a USB C cable to your computer. This will cause the Liatris to enter its bootloader mode, which will present the Liatris as a disk named RPI-RP2.
When previously flashed with Vial or QMK firmware, double tapping the on-board boot button will enter the bootloader mode, too. This is a feature specific to QMK and Vial, so this will not work if you're using a different framework or when using custom-compiled firmware such as CircuitPython.
Flashing the firmware
With the Liatris in bootloader mode, you'll have a disk mounted to your computer named "RPI-RP2". You can drag the rp2040_reset.uf2
file to it that you just downloaded. The disk will unmount.
Unplug the USB-C cable from the Liatris, and plug it in again. Because the Liatris now has no firmware flashed to it, it'll present itself as a disk named "RPI-RP2" once more. You can now flash your firmware to it, and you'll be good to go!
nice!nano
Download the nice!nano v2 reset firmware file, which you can also find using our Firmware Finder.
If you're using the earlier v1 version, it will be part of your ZMK build artifacts.
Then, flash the reset file to the controller by entering its bootloader mode and then dragging the reset file over to the newly presented disk.
Lastly, go through these steps again, but instead of flashing the reset file, you'll flash your own keyboard's firmware file to it. The reset file completely wipes the controller's memory, so it will forget the firmware that was previously flashed to it as well.
Entering bootloader mode
To flash your nice!nano while it's not yet soldered, you need to short the RST and GND pins twice quickly with tweezers, a paperclip or something similarly conductive.
If you've already soldered your nice!nano to your keyboard, you can double-tap the keyboard's reset button instead.
Flashing the file
The controller will present itself to your computer as a disk, called NICENANO, after which you can drag the reset file to it.
Elite-C, Pro Micro and other ATmega32U4-based controllers
For the Elite-C, Pro Micro and other controllers which are based on the Atmel ATmega32u4, you can follow the steps below.
To perform these steps, you'll need to download and install an application named QMK Toolbox.
To reset the EEPROM:
- Connect your keyboard to your computer;
- Open the QMK Toolbox application;
- Double-tap the reset button on your keyboard, and lastly;
- In QMK Toolbox, click on "Reset EEPROM".
Your settings should now be set back to their defaults. For these controllers, the only part that gets reset is the EEPROM, so there's no need to flash firmware to your controller after this step.
Resetting the EEPROM on an AVR-based controller using QMK toolbox.