# Marlin firmware issues

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?

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?".

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.

• 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? Dec 8, 2021 at 19:15
• @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
Dec 8, 2021 at 22:07
• @0scar can the machine work with just software endstops or should I add physical ones? Would that help with the homing issues? Dec 10, 2021 at 0:12
• @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.
– 0scar
Dec 11, 2021 at 15:49