splitkb.com

Resetting your controller's EEPROM

If your keyboard's acting up, resetting its EEPROM is a good first step.

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:

Warning: Performing these steps in this document will completely erase the contents of your controller.
Can I recover the firmware from the controller? While technically possible, usually you shouldn't want to. The emulated EEPROM that may be the cause of the issue would get recovered along with it, meaning you'd just be bringing your issue back after flashing your recovered firmware!

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)

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:

  1. Connect your keyboard to your computer;
  2. Open the QMK Toolbox application;
  3. Double-tap the reset button on your keyboard, and lastly;
  4. 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

Resetting the EEPROM on an AVR-based controller using QMK toolbox.


Questions? Help us improve!
Do you have questions after reading the documentation? Do you have feedback about this page, or about the documentation in general? Please send us an email. You can use the buttons below which will open your mail client or app with a template, or send your mail to support@splitkb.com.