I have uploaded firmware to this machine in the past. I changed the way the LCD panel navigation knob works (basically changed the rotation from CCW to CW). That all works great. I printed a few items and decided to check the extruder calibration. I printed 100mm of filament and only 78mm traveled through the extruder, so the settings are off.
I looked at the configuration.h file and it is set to :
#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,2560,93} // MXL, Z M8=1.25, MK8
according to my calculations the extruder should be set to 119. I verified this my manually changing the settings from the front panel and 119 seems to work best. So I want to make the changes to the firmware. I changed the configuration.h file to:
#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,2560,119} // MXL, Z M8=1.25, MK8
I compiled and uploaded the build to the printer. All seemed to work fine, the display blinked after the upload and all was sucessful.
When I use the menus to review the Estep setting it is still set to 93. Why?
I searched all the files in the firmware and cant see any other place this is set.
Puzzled.
Uoload new calibration steps for Extruder?
-
- Posts: 66
- Joined: Tue Mar 07, 2017 12:38 am
-
- Posts: 66
- Joined: Tue Mar 07, 2017 12:38 am
Re: Uoload new calibration steps for Extruder?
Having one of these printers certainly does come with it's use of Google.
I figured out, after reading several posts, that the default_step size is actually stored in EEPROM. I'm not sure what setting this in the configuration.h file does except on initial boot up of a brand new GT2560 board. If the firmware sees a blank EEPROM then perhaps the firmware writes these values into the EEPROM? Just conjecture on my part, but I do know that you cant change these values by uploading new firmware to the GT2560 board, by just changing the default_step_size (#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,2560,93} // MXL, Z M8=1.25, MK8), since this is not in the EEPROM .h area of the configuration.h file parameters. Again, I have no clue what this is doing in this area of the code.
The only way I figured out how to 'burn' the new parameter into the EEPROM is by using the LCD control panel. Setting the new Estep value to my needs (119 in my case) then from the Control area of the LCD front panel selecting Store Memory solved the issue. Turning the machine off and back on shows my new value is stored now in the EEPROM.
Solved! (but not completely understood where to make such a change in the firmware file).
UPDATE:
Later I found an article on the github.com site for MarlinFirmware. Apparently you must uncomment the line in the configuration.h file. The line of code you need to uncomment is:
// M500 - stores parameters in EEPROM
Upload your firmware, then recomment the line of code and upload again.
The developers have writing to the EEPROM from Firmware disabled to prevent bad parameter values in the source code from screwing up the printer.