Should I upgrade to latest Marlin firmware?
Posted: Tue Jul 28, 2015 7:08 pm
Hi all,
Had my M2 for a couple of weeks and was wondering if it's worth upgrading from the stock Marlin (1.0.0RC2) firmware to the latest prod release, 1.0.2?
Is it just a matter of updating the newer code with the info from the Makergear wiki? (see bottom of post)
I am still very much a newb to 3D printing, but one of the issues I recently had was a print failed halfway (I believe PC went to sleep - school boy error) and the hot end stayed on all night long. Printer seems to still print okay, but I wonder if the hotend is now clogged?? So that got me thinking about thermal protection in firmware, hence the initial question about firmware upgrade.
Thanks,
loiphin.
Custom Gcode
M108 S* : Sets the PWM frequency of the filament drive and electronics case fans manually. They are set to 155 at boot, but can be controlled manually at anytime by sending M108 S*, where * is a number from 0-255. 155/255=.607~=60% of the MOSFET supply voltage, with M2 that is 19.5V. So .607*19.5=11.83V, very near the 12V rating of the 40mm and 50mm fans that are included with M2. This is a simplistic explanation of PWM speed control, http://en.wikipedia.org/wiki/Pulse-width_modulation has much more detail and precision.
M2 printers with the 24V power supply have their two 40mm fans (electronics case and extruder) connected in parallel, and are set to power them at PWM 255 when the printer starts up.
Custom configuration options in Configuration.h
In the motherboard definition list, RAMBo is called Ardurap, and has motherboard code "301".
Below are the added options for setting stepper motor current in software. Currently, it is necessary to modify Configuration.h and upload the firmware to RAMBo, to change these values. However, the values already in the firmware will work fine for most situations.
Your stepper motors WILL get hot during normal operation, but the fact that they are all bolted to a large heatsink keeps them safe. If, however, you feel that any of them are getting too hot for your preference, change the value in Configuration.h and reupload.
// Motor Current setting (Only functional when motor current pins are connected to digipot)
// Values 0-255
// RAMBO 135 = ~0.75A, 185 = ~1A
#define DIGIPOT_MOTOR_CURRENT
#define X_CURRENT 135
#define Y_CURRENT 135
#define Z_CURRENT 135
#define E0_CURRENT 165 //For MakerGear M2, 165 is a good starting point (~1A)
#define E1_CURRENT 125
Stock Configuration.h values
Below are the standard values for the mechanical settings for M2. By changing these (either in the firmware and reuploading, or via Gcode), you can tweak the way M2 moves, to optimize it for your specific printing environment. For instance, if you have M2 on a table that is less than stable, you can drop the DEFAULT_MAX_ACCELERATION values for X and Y, and the DEFAULT_ACCELERATION in general, so that all moves will accelerate and decelerate more gently.
If you would like the axes to home faster, change the HOMING_FEEDRATE for that axis - they are in mm/min, entered as a value A*60, where A is the desired speed in mm/sec, and *60 corrects that to mm/min for the firmware. X and Y are stock at 50mm/sec, and Z is at 4mm/sec. Taking those up to 70mm/sec and 10mm/sec will get all axes to 0, no matter where they are, in 3 seconds for X, 4 seconds for Y, and 20 seconds for Z. They will also make much scarier noises if the endstop does not engage, so please only change these values once you have all endstops installed correctly, and they are tested good.
//// MOVEMENT SETTINGS
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)
// default settings
#define DEFAULT_AXIS_STEPS_PER_UNIT {88.88/2,88.88/2,400/2,471.5/2} // default steps per unit
#define DEFAULT_MAX_FEEDRATE {500, 500, 250, 200000} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,30,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for r retracts
//
#define DEFAULT_XYJERK 20.0 // (mm/sec)
#define DEFAULT_ZJERK 0.4 // (mm/sec)
#define DEFAULT_EJERK 5.0 // (mm/sec)
Configuration_adv.h
There is only one setting in Configuration_adv.h that is likely to be of interest, and that is:
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
Had my M2 for a couple of weeks and was wondering if it's worth upgrading from the stock Marlin (1.0.0RC2) firmware to the latest prod release, 1.0.2?
Is it just a matter of updating the newer code with the info from the Makergear wiki? (see bottom of post)
I am still very much a newb to 3D printing, but one of the issues I recently had was a print failed halfway (I believe PC went to sleep - school boy error) and the hot end stayed on all night long. Printer seems to still print okay, but I wonder if the hotend is now clogged?? So that got me thinking about thermal protection in firmware, hence the initial question about firmware upgrade.
Thanks,
loiphin.
Custom Gcode
M108 S* : Sets the PWM frequency of the filament drive and electronics case fans manually. They are set to 155 at boot, but can be controlled manually at anytime by sending M108 S*, where * is a number from 0-255. 155/255=.607~=60% of the MOSFET supply voltage, with M2 that is 19.5V. So .607*19.5=11.83V, very near the 12V rating of the 40mm and 50mm fans that are included with M2. This is a simplistic explanation of PWM speed control, http://en.wikipedia.org/wiki/Pulse-width_modulation has much more detail and precision.
M2 printers with the 24V power supply have their two 40mm fans (electronics case and extruder) connected in parallel, and are set to power them at PWM 255 when the printer starts up.
Custom configuration options in Configuration.h
In the motherboard definition list, RAMBo is called Ardurap, and has motherboard code "301".
Below are the added options for setting stepper motor current in software. Currently, it is necessary to modify Configuration.h and upload the firmware to RAMBo, to change these values. However, the values already in the firmware will work fine for most situations.
Your stepper motors WILL get hot during normal operation, but the fact that they are all bolted to a large heatsink keeps them safe. If, however, you feel that any of them are getting too hot for your preference, change the value in Configuration.h and reupload.
// Motor Current setting (Only functional when motor current pins are connected to digipot)
// Values 0-255
// RAMBO 135 = ~0.75A, 185 = ~1A
#define DIGIPOT_MOTOR_CURRENT
#define X_CURRENT 135
#define Y_CURRENT 135
#define Z_CURRENT 135
#define E0_CURRENT 165 //For MakerGear M2, 165 is a good starting point (~1A)
#define E1_CURRENT 125
Stock Configuration.h values
Below are the standard values for the mechanical settings for M2. By changing these (either in the firmware and reuploading, or via Gcode), you can tweak the way M2 moves, to optimize it for your specific printing environment. For instance, if you have M2 on a table that is less than stable, you can drop the DEFAULT_MAX_ACCELERATION values for X and Y, and the DEFAULT_ACCELERATION in general, so that all moves will accelerate and decelerate more gently.
If you would like the axes to home faster, change the HOMING_FEEDRATE for that axis - they are in mm/min, entered as a value A*60, where A is the desired speed in mm/sec, and *60 corrects that to mm/min for the firmware. X and Y are stock at 50mm/sec, and Z is at 4mm/sec. Taking those up to 70mm/sec and 10mm/sec will get all axes to 0, no matter where they are, in 3 seconds for X, 4 seconds for Y, and 20 seconds for Z. They will also make much scarier noises if the endstop does not engage, so please only change these values once you have all endstops installed correctly, and they are tested good.
//// MOVEMENT SETTINGS
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)
// default settings
#define DEFAULT_AXIS_STEPS_PER_UNIT {88.88/2,88.88/2,400/2,471.5/2} // default steps per unit
#define DEFAULT_MAX_FEEDRATE {500, 500, 250, 200000} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,30,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for r retracts
//
#define DEFAULT_XYJERK 20.0 // (mm/sec)
#define DEFAULT_ZJERK 0.4 // (mm/sec)
#define DEFAULT_EJERK 5.0 // (mm/sec)
Configuration_adv.h
There is only one setting in Configuration_adv.h that is likely to be of interest, and that is:
#define DEFAULT_STEPPER_DEACTIVE_TIME 60