Page 1 of 1
How to calibrate A30 extruder using OctoPrint?
Posted: Tue Oct 27, 2020 12:08 am
by jimg
I replaced the standard extruder on my a30 with a dual-drive all-aluminum feeder, and now I need to recalibrate the firmware extruder settings since the drive gear is a different diameter.
I am using the OctoPrint terminal interface to send gcode commands to the printer. ( I use Linux and don't have a Windows or Mac computer, so I can't use the Smartto software I've seen mentioned elsewhere in this forum.) I can send normal gcode commands to heat up the hotend and feed filament, but I can't get the current firmware settings. I tried sending the command 'M503', which would retrieve all the current calibration values on most other printers, but the printer returned nothing except 'OK'.
What commands do I need to send to read and set the extruder settings?
Re: How to calibrate A30 extruder using OctoPrint?
Posted: Wed Oct 28, 2020 12:03 am
by jimg
I think I have found the answer.
Looking through the firmware source code on Github (
https://github.com/Geeetech3D/Smartto-I ... /Command.c), the command 'M503' is not supported. But, the custom command 'M2002' will print the current settings for all the motors. This is what I got in the terminal:
Code: Select all
Send: M2002
Recv: min_position[X_AXIS]:0.00;min_position[Y_AXIS]:0.00;min_position[Z_AXIS]:0.00;max_position[X_AXIS]:320.00;max_position[Y_AXIS]:320.00;max_position[Z_AXIS]:420.00;steps_per_mm[X_AXIS]:80.000000;steps_per_mm[Y_AXIS]:80.000000;steps_per_mm[Z_AXIS]:400.000000;steps_per_mm[E_AXIS]:85.000000;max_feedrate[X_AXIS]:550;max_feedrate[Y_AXIS]:550;max_feedrate[Z_AXIS]:35;max_feedrate[E_AXIS]:50;home_speed[X_AXIS]:200;home_speed[Y_AXIS]:200;home_speed[Z_AXIS]:60;home_position[X_AXIS]:0;home_position[Y_AXIS]:0;home_position[Z_AXIS]:0;motor_direction[X_AXIS]:1;motor_direction[Y_AXIS]:1;motor_direction[Z_AXIS]:1;motor_direction[E_AXIS]:1;motor_direction[E1_AXIS]:0;motor_direction[E2_AXIS]:1;motor_direction[X_AXIS]:1;motor_direction[Y_AXIS]:1;motor_direction[Z_AXIS]:1;motor_direction[E_AXIS]:1;motor_direction[E1_AXIS]:0;motor_direction[E2_AXIS]:1;motor_direction[X_AXIS]:1;motor_direction[Y_AXIS]:1;motor_direction[Z_AXIS]:1;motor_direction[E_AXIS]:1;motor_direction[E1_AXIS]:0;motor_direction[E2_AXIS]:1;HV:V2.1-null;
'steps_per_mm[E_AXIS]:85.000000' indicates the extruder's steps per mm is set at 85. To set a new value for the extruder, use the 'M2004' command.
My test procedure:
Code: Select all
M104 T0 S200 ; set temperature to 200C
G92 E0 ; reset extruder position
; make a mark on filament 120 mm from extruder
G0 F100 E100 ; extrude what should be 100 mm of filament
; measure how much actually entered extruded
My printer actually extruded 60 mm of filament . The new calibration value should therefore be 85 steps/mm x 100 mm / 60 mm = 141.667 steps/mm. To set this do:
Code: Select all
Send: M2004 E141.667
Recv: steps_per_mm_set_ok
After making this setting, I did another extrusion. This time it extruded 97 mm. I changed the calibration value again to 141.667 * 100 / 97 = 146.0515 and retested. This time it came out exactly 100 mm.