<h2>Initializing</h2>

<p>After changing your firmware, you always need to overwrite the old values in the SRAM and EEPROM with those from the Firmware. Which you do with <strong><a href="https://3dprinting.stackexchange.com/a/11440/8884"><code>M502 &amp; M500</code></a></strong>:</p>

<blockquote>
  <p>Installing firmware does not by itself alter the EEPROM, so these settings needed to be <em>seeded into</em> SRAM via <a href="http://marlinfw.org/docs/gcode/M502.html" rel="nofollow noreferrer"><code>M502</code></a> and then <em>saved</em> into EEPROM via <a href="http://marlinfw.org/docs/gcode/M500.html" rel="nofollow noreferrer"><code>M500</code></a>.</p>
</blockquote>

<p>You could also run a G-code that has only these two lines:</p>

<pre><code>M502
M500
</code></pre>

<h2>Altering the EEPROM</h2>

<h3>Via command</h3>

<p>Alternatively, you could access the printer via a <a href="https://3dprinting.stackexchange.com/q/10573/8884">terminal</a> and send the command <a href="https://marlinfw.org/docs/gcode/M092.html" rel="nofollow noreferrer"><code>M92 E415</code></a> to overwrite the SRAM directly, then <code>M500</code> to save the new setting to EEPROM. The associated G-code that only alters the E-steps/mm would read</p>

<pre><code>M92 E415
M500
</code></pre>

<h3>Via Software</h3>

<p>Or you use a terminal that supports direct alteration of the EEPROM, like Repetier Host.</p>

CC BY-SA 4.0
2020-06-14T10:30:57.143Z
Okay but what is the order should be. I am newbie and trying to understand. So am I going to send `M502` to printer then sending my edited values printer then sending `M500` to save values? is this the order? it is a bit confusing for now looking how to execute those commands and will try after I figure out hopefully. Thank you for your help.
Burak0015
CC BY-SA 4.0
2020-06-14T10:58:40.243Z
@Burak0015 Please follow the link on the `M50x` G-codes, you see that the order is loading from firmware first (`M502`) and than saving the values (`M500`).
0scar
CC BY-SA 4.0
2020-06-14T11:15:39.050Z
Hopefully I did it, I connected printer via usb and send gcode via Cura. I sent gcode M502 ; reset! 
then I uploaded my values via arduino then I send gcode 
M500 ; saved!! 
hopefully it is correct.
Burak0015
CC BY-SA 4.0
2020-06-14T11:26:52.330Z
@Burak0015 No, you first upload the firmware using Arduino or PlatformIO and then send `M502` followed directly by `M92 E415` and `M500`
0scar
CC BY-SA 4.0
2020-06-14T11:55:30.883Z
what do you mean by send M502 followed directly by M92 E415 and M500? is it  must be one g-code like m502, m92, E415 or Can I send them one by one?
Burak0015
CC BY-SA 4.0
2020-06-14T13:23:33.293Z
@Burak0015 Those are 2 variants: Install Firmware, send M502, then send M500. OR send M95 E415 then send M500.
Trish
CC BY-SA 4.0
2020-06-14T13:38:47.777Z
Okay I will use first one  Install Firmware via arduino then send M502, then send M500 Thank you very much
Burak0015
CC BY-SA 4.0
2020-06-14T09:57:13.757Z
2020-06-14T14:07:27.987Z
2020-06-14T14:07:27.987Z
Trish
<p>I installed the TH3D firmware to my Ender 3 Pro yesterday and today I am trying to configure the extruder rate because I am not using the stock extruder on my printer but have swapped in a BMG extruder. I edited these values and upload it to my board </p>

<pre><code>#define CUSTOM_ESTEPS
//#define REVERSE_E_MOTOR_DIRECTION
#define CUSTOM_ESTEPS_VALUE 415
</code></pre>

<p>But these values do not change when I start to print something and because of that I need to edit it manually by going in to tune menu and editing flow to 415. How can I fix this issue?</p>

<marlin><creality-ender-3><firmware><th3d>
Cannot configure default E step for extruder on TH3D
Burak0015
# Cannot configure default E step for extruder on TH3D

(Asked by: username_0 on 2020-06-13)

I installed the TH3D firmware to my Ender 3 Pro yesterday and today I am trying to configure the extruder rate because I am not using the stock extruder on my printer but have swapped in a BMG extruder. I edited these values and upload it to my board 
#define CUSTOM_ESTEPS
//#define REVERSE_E_MOTOR_DIRECTION
#define CUSTOM_ESTEPS_VALUE 415

But these values do not change when I start to print something and because of that I need to edit it manually by going in to tune menu and editing flow to 415. How can I fix this issue?

**Tags:** marlin, creality-ender-3, firmware, th3d

---

## 1 answers

### Answer by username_1 on 2020-06-14. Score: 1 | Accepted answer

Initializing
After changing your firmware, you always need to overwrite the old values in the SRAM and EEPROM with those from the Firmware. Which you do with M502 & M500:

Installing firmware does not by itself alter the EEPROM, so these settings needed to be seeded into SRAM via M502 and then saved into EEPROM via M500.

You could also run a G-code that has only these two lines:
M502
M500

Altering the EEPROM
Via command
Alternatively, you could access the printer via a terminal and send the command M92 E415 to overwrite the SRAM directly, then M500 to save the new setting to EEPROM. The associated G-code that only alters the E-steps/mm would read
M92 E415
M500

Via Software
Or you use a terminal that supports direct alteration of the EEPROM, like Repetier Host.

> **Comments:**
> **username_0**: Okay but what is the order should be. I am newbie and trying to understand. So am I going to send `M502` to printer then sending my edited values printer then sending `M500` to save values? is this the order? it is a bit confusing for now looking how to execute those commands and will try after I figure out hopefully. Thank you for your help.  
> **username_2**: @Burak0015 Please follow the link on the `M50x` G-codes, you see that the order is loading from firmware first (`M502`) and than saving the values (`M500`).  
> **username_0**: Hopefully I did it, I connected printer via usb and send gcode via Cura. I sent gcode M502 ; reset!  then I uploaded my values via arduino then I send gcode  M500 ; saved!!  hopefully it is correct.  
> **username_2**: @Burak0015 No, you first upload the firmware using Arduino or PlatformIO and then send `M502` followed directly by `M92 E415` and `M500`  
> **username_0**: what do you mean by send M502 followed directly by M92 E415 and M500? is it  must be one g-code like m502, m92, E415 or Can I send them one by one?  
> **username_1**: @Burak0015 Those are 2 variants: Install Firmware, send M502, then send M500. OR send M95 E415 then send M500.  
> **username_0**: Okay I will use first one  Install Firmware via arduino then send M502, then send M500 Thank you very much  

---

