<p>Did you load the new values from the firmware you uploaded with <code>M502</code>? If not, that might be your problem. See &quot;<a href="https://3dprinting.stackexchange.com/questions/11438/m502-will-reset-all-configurable-settings-to-their-factory-defaults-which-set">M502 will reset all configurable settings to their &quot;factory defaults&quot;, which settings are those?</a>&quot;.</p>
<p>When you upload a firmware, this is done through a so-called binary hex file. In this file, stored in memory of the micro-controller, the complete &quot;program&quot; is stored as configured by your code editor (compiled, hence a binary file). Note that the user of the &quot;program&quot; is allowed to change values of certain parameters<sup>1)</sup>, the changes are stored in a different part of the memory that is not overwritten when a new firmware is uploaded. You manually have to get the &quot;set&quot; values from your new firmware file to store these into the &quot;working memory&quot;. Please send the <code>M502</code> and the <code>M500</code> G-codes to get and store the values from the firmware.</p>
<hr />
<p><sup>1)</sup> <em>Do remember the inability to store custom parameters in certain older versions of Marlin in combination with certain printer controller boards (e.g. the SKR line of boards), but, this is fixed in the recent versions, storage e.g. is done on the SD card. For that reason the memory storage above is not called EEPROM but the &quot;working memory&quot;, i.e. is doesn't have to be an EEPROM storage.</em></p>

CC BY-SA 4.0
2021-12-08T19:15:56.487Z
I did that but M211 is still saying my software endstops are in the old location, and now when I try and home the x-axis, it says:                                                  echo:Homing Failed
Error:Printer halted. kill() called!
Error:Printer halted. kill() called!                                                                                                     any advice?
natalia
CC BY-SA 4.0
2021-12-08T22:07:47.653Z
@amanda With `M211` you enable or disable software endstops, with `M119` you get the state, and you can invert the state logic. What is it that you do with `M211` in firmware?
0scar
CC BY-SA 4.0
2021-12-10T00:12:48.563Z
@0scar can the machine work with just software endstops or should I add physical ones? Would that help with the homing issues?
natalia
CC BY-SA 4.0
2021-12-11T15:49:45.753Z
@natalia For convenience you should use hardware end stops, then you can home each axis, else you need, as printer operator, position the head before each print manually. This is described in more detail [here](https://3dprinting.stackexchange.com/a/16556/).
0scar
CC BY-SA 4.0
2021-12-07T11:43:43.227Z
2021-12-07T19:18:45.323Z
2021-12-07T19:18:45.323Z
0scar
<p>So I'm working on building a Prusa i3 MK3 clone and all's gone well so far but when I make edits to the firmware and reupload it, the printer doesn't seem to be getting it. Like I changed the software endstops to new values in the code, recompiled it and reuploaded it, but when I use <code>M211</code> the printer still reports its old endstop values.
Also, it seems to only be able to home to the minimum, not the maximum (not the biggest deal).</p>
<p>Any advice on how to get the printer to recognize its new boundaries/is there a way to just set it with a G-code?</p>

CC BY-SA 4.0
2021-12-06T19:12:44.357Z
Did you load the new values from the firmware you uploaded with `M502`? If not, that might be your problem. See "[M502 will reset all configurable settings to their "factory defaults", which settings are those?](https://3dprinting.stackexchange.com/questions/11438/m502-will-reset-all-configurable-settings-to-their-factory-defaults-which-set)".
0scar
<marlin><prusa-i3><g-code><firmware><endstop>
Marlin firmware issues
natalia
# Marlin firmware issues

(Asked by: username_0 on 2021-12-06)

So I'm working on building a Prusa i3 MK3 clone and all's gone well so far but when I make edits to the firmware and reupload it, the printer doesn't seem to be getting it. Like I changed the software endstops to new values in the code, recompiled it and reuploaded it, but when I use `M211` the printer still reports its old endstop values.
Also, it seems to only be able to home to the minimum, not the maximum (not the biggest deal).

Any advice on how to get the printer to recognize its new boundaries/is there a way to just set it with a G-code?

**Tags:** marlin, prusa-i3, g-code, firmware, endstop

> **Comments:**
> **username_1**: Did you load the new values from the firmware you uploaded with `M502`? If not, that might be your problem. See "[M502 will reset all configurable settings to their "factory defaults", which settings are those?](https://3dprinting.stackexchange.com/questions/11438/m502-will-reset-all-configurable-settings-to-their-factory-defaults-which-set)".  

---

## 1 answers

### Answer by username_1 on 2021-12-07. Score: 1

Did you load the new values from the firmware you uploaded with `M502`? If not, that might be your problem. See "[M502 will reset all configurable settings to their "factory defaults", which settings are those?](https://3dprinting.stackexchange.com/questions/11438/m502-will-reset-all-configurable-settings-to-their-factory-defaults-which-set)".

When you upload a firmware, this is done through a so-called binary hex file. In this file, stored in memory of the micro-controller, the complete "program" is stored as configured by your code editor (compiled, hence a binary file). Note that the user of the "program" is allowed to change values of certain parameters1), the changes are stored in a different part of the memory that is not overwritten when a new firmware is uploaded. You manually have to get the "set" values from your new firmware file to store these into the "working memory". Please send the `M502` and the `M500` G-codes to get and store the values from the firmware.

---

1) *Do remember the inability to store custom parameters in certain older versions of Marlin in combination with certain printer controller boards (e.g. the SKR line of boards), but, this is fixed in the recent versions, storage e.g. is done on the SD card. For that reason the memory storage above is not called EEPROM but the "working memory", i.e. is doesn't have to be an EEPROM storage.*

> **Comments:**
> **username_0**: I did that but M211 is still saying my software endstops are in the old location, and now when I try and home the x-axis, it says:                                                  echo:Homing Failed Error:Printer halted. kill() called! Error:Printer halted. kill() called!                                                                                                     any advice?  
> **username_1**: @amanda With `M211` you enable or disable software endstops, with `M119` you get the state, and you can invert the state logic. What is it that you do with `M211` in firmware?  
> **username_0**: @username_1 can the machine work with just software endstops or should I add physical ones? Would that help with the homing issues?  
> **username_1**: @username_0 For convenience you should use hardware end stops, then you can home each axis, else you need, as printer operator, position the head before each print manually. This is described in more detail [here](https://3dprinting.stackexchange.com/a/16556/).  

---

