3

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?

0scar
  • 32,029
  • 10
  • 59
  • 135
natalia
  • 31
  • 1
  • 2
    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 Dec 06 '21 at 19:12

1 Answers1

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

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.

0scar
  • 32,029
  • 10
  • 59
  • 135
  • 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 Dec 08 '21 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 08 '21 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? – natalia Dec 10 '21 at 00: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](https://3dprinting.stackexchange.com/a/16556/). – 0scar Dec 11 '21 at 15:49