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


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?



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:


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

Via Software

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

  • $\begingroup$ 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. $\endgroup$ – Burak0015 Jun 14 '20 at 10:30
  • $\begingroup$ @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). $\endgroup$ – 0scar Jun 14 '20 at 10:58
  • $\begingroup$ 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. $\endgroup$ – Burak0015 Jun 14 '20 at 11:15
  • $\begingroup$ @Burak0015 No, you first upload the firmware using Arduino or PlatformIO and then send M502 followed directly by M92 E415 and M500 $\endgroup$ – 0scar Jun 14 '20 at 11:26
  • $\begingroup$ 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? $\endgroup$ – Burak0015 Jun 14 '20 at 11:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.