What Is the EEPROM on the Ender 3 (Pro & V2 & Neo & S1)?

It’s highly likely that you will eventually come across some terms you haven’t heard in your 3D printing journey with your Ender 3 if you’re not too familiar with the terminology used in electronics and computing, with the EEPROM being perhaps the most common example of such a case.

In this article, we will explain the meaning and the purpose of the EEPROM, go through the process of saving to, loading from, and clearing the EEPROM, and finally, take a glance at the solution of an EEPROM-related problem that you may come across on your Ender 3.

What Is the EEPROM on the Ender 3 (Pro & V2 & Neo & S1)?

EEPROM, which stands for Electrically Erasable Programmable Read-Only Memory, is a form of non-volatile memory that you can find on many devices, including your Ender 3, responsible for storing small amounts of data that can be erased or replaced by the user.

example of an eeprom chip
Source: Nevit Dilmen @ Wikipedia (CC BY-SA 3.0)

In the case of an Ender 3, the EEPROM acts as the sole permanent storage medium for the printer configuration, whether it’s the bed leveling meshes that you have created, the home offsets you have entered, or even the travel limits of your 3D printer, and makes it possible to store the entirety of your Ender 3’s configuration at all times.

That being said, even though a copy of its configuration is stored permanently in the EEPROM, the Ender 3 does not utilize the EEPROM for the active configuration that’s currently loaded (the configuration you modify through the menus, and the one that will be used when you start a print), as this data is stored in another component called the SRAM (static random access memory) instead, which, unlike the EEPROM, is a form of volatile memory, meaning that the data is lost on power off.

example of a sram chip


So, whenever you power your Ender 3 on, the firmware loads the data contained within the EEPROM into the SRAM, which becomes the active configuration, and any changes you make to the configuration, unless you explicitly save them to the EEPROM, are saved only in the SRAM, and only until you power your Ender 3 off again, at which point the changes will be lost, and be replaced by the original copy in the EEPROM again at power on.

With this system, it becomes possible to make temporary changes to the configuration of your Ender 3, whether it’s for experimental purposes or a single print that requires such changes in specific while keeping the stable set of configurations that you generally use in the EEPROM, which you can load back whenever necessary.

Saving to the EEPROM on the Ender 3 (Pro & V2 & Neo & S1)

As saving to the EEPROM is the only way to retain any changes you have made to the configuration of your Ender 3, it’s a process that you will utilize many times on your 3D printing journey.

The quickest way to save your changes to the EEPROM on your Ender 3 is to utilize the M500 (Save Settings) G-code command, which will overwrite the data you currently have stored in the EEPROM with the data from the SRAM, causing the old configuration stored in the EEPROM to be completely wiped.

Since your Ender 3 won’t retain this data anywhere anymore, it’s usually a good idea to take a manual backup of the settings stored in the EEPROM before replacing them in cases where there is a chance that you would like to use this configuration again.

saving to eeprom with the m500 gcode


As an alternative, you can also use the LCD controller of your Ender 3 for the saving process, in which case you should be looking for an option such as Store Settings, Save Settings, Store Memory, Save to EEPROM, and anything that sounds similar (as the text can change depending on the type of screen and firmware you’re using), which should usually be located in the Control menu.

ender 3 v2 store settings button


Loading from the EEPROM on the Ender 3 (Pro & V2 & Neo & S1)

Loading from the EEPROM is practically the opposite of saving to the EEPROM, and considering that it’s the only way to transfer the stored configuration to the RAM and make it active, it’s yet another process that you will utilize numerous times.

Once again, the simplest way to load data from the EEPROM into the SRAM is to use the corresponding G-code command, M501 (Restore Settings), which will overwrite the data you currently have stored in the SRAM with the data from the EEPROM, practically creating the same effect as powering your Ender 3 off and back on by wiping all the temporary changes you have made.

loading from eeprom with the m501 gcode


On the other hand, if you would like to use the LCD controller of your Ender 3 for the task, you should look for an option such as Load Settings, Load from EEPROM, Load Memory, and anything that sounds similar (the text can change across different types of screens and firmware), which should be located in the Control menu.

ender 3 v2 load settings button


Clearing the EEPROM on the Ender 3 (Pro & V2 & Neo & S1)

Technically speaking, clearing the EEPROM means reverting the configuration stored in the EEPROM to the firmware defaults (also known as a factory reset) rather than erasing all the data in it, as an empty EEPROM would technically create a scenario where your Ender 3 won’t have any configuration to load on boot.

For the G-code method, the first step to clear the EEPROM on your Ender 3 is to utilize the M502 (Factory Reset) command, which will replace the configuration currently stored in the SRAM with the firmware defaults, essentially creating a temporary factory reset scenario where the active configuration of your Ender 3 will be the same as when you first installed the firmware (or when you set it up for the first time).

clearing the sram with the m502 gcode


Once the SRAM has the firmware defaults loaded, the next step is to save the SRAM to the EEPROM as usual with the M500 (Save Settings) G-code command, which essentially completes the process of writing the firmware defaults to the EEPROM and causes your Ender 3 to boot up with the firmware defaults until you modify the EEPROM again.

saving to eeprom with the m500 gcode


On the other hand, to clear the EEPROM with your Ender 3’s LCD controller, the first step you will need to take is to look for an option along the lines of Restore Defaults, Reset Configuration, Reset to Defaults, Factory Reset, or anything that sounds similar, located inside the Control menu, and use it to load the firmware defaults into the SRAM.

If you find an option labeled Reset EEPROM in the menus of your Ender 3 and use it to clear the EEPROM, you don’t have to follow it up with an EEPROM save, as the firmware defaults will be loaded directly into the EEPROM instead of the SRAM in this case.

ender 3 v2 restore defaults button


Once that’s done, you can click on the option for saving settings to EEPROM (Save Settings, Store Settings, etc.), which will write the firmware defaults in the SRAM to the EEPROM and conclude the EEPROM clearing process.

ender 3 v2 store settings button


Solving the “Err: EEPROM Version” / “EEPROM Version Error” on the Ender 3 (Pro & V2 & Neo & S1)

While EEPROM-related problems are rare, one indication of such an issue is the “Err: EEPROM Version” / “EEPROM Version Error” message showing up on your Ender 3’s screen, which clearly tells us that there is an error regarding the EEPROM that requires solving.

eeprom version error on ender 3


In essence, this error message indicates that there is a mismatch between the version number of the data your Ender 3’s firmware is looking for in the EEPROM and the version number of the data actually stored in the EEPROM, and as a result of this mismatch, the firmware may be unable to interpret and load the EEPROM data correctly.

The primary factor that triggers the occurrence of this error is the installation of new firmware to your Ender 3 (which is standard behavior in such a case), as the version number can and will vary across different versions and variants of Marlin firmware, which will naturally cause the version number already stored in the EEPROM to be distinct from the new firmware’s version number.

That being said, if you randomly come across this error message without making any changes to the firmware, it could potentially point toward the EEPROM data being corrupted, and even though it’s entirely possible for this error to be a one-off, it can also be the sign of the EEPROM chip starting to fail if it repeats.

Regardless, if you have backed up the EEPROM data already, or don’t need it anymore, the way to solve this problem is to write the firmware defaults to EEPROM (you can refer to the previous section about clearing the EEPROM), which will make the EEPROM data compatible with the firmware once again and get rid of the error message.

On the other hand, if you have installed new firmware and would like to access your old EEPROM settings, our primary recommendation would be to revert to the old firmware that matches the version number of the EEPROM data, back the settings up, flash the new firmware again, clear the EEPROM, and re-do the config manually by referring to your backup, which is the cleanest way to ensure that there won’t be any problems.

Conclusion

Even though the term EEPROM can sound cryptic at first if it’s your first time hearing it, it actually has a simple but also critical role in getting your Ender 3 to work as intended due to it being the only non-volatile memory component available to retain the data once you power the printer off.

As a result, familiarizing yourself with the relationship between the EEPROM & the SRAM and having a good grasp of the methods you can use to manipulate the data in these components is essential to configure your Ender 3’s settings correctly.