I have a tronxy X5SA Pro with a BMG extruder (titan wouldn't load filament right) I tuned the extruder, it gives 100mm when it's supposed to give 100mm. I have the filament load tuned, it passes to the extruder and loads, travels to the nozzle. Print starts, the machine will start making a skirt line and then stop, and I get the move exceeds maximum extrusion. I have raised that, it keeps exceeding. When I remove the tool change code from Prusaslicer, the print proceeds normally. Reinsert the tool change, it fails with the same issue. Here is the autogenerated code:
; Auto generated 3D Chameleon Mk4 Mode 3 Tool Change GCode for PrusaSlicer
; - 3D Chameleon Mk4 Tool T{next_extruder} -
;begin switch from extruder {previous_extruder} to extruder #{next_extruder}
M117 Unloading Tool T[previous_extruder]
M83 ; turn relative distances for the extruder
; unload extruder {previous_extruder}
G92 E0
; go to holding position to unload the stock extruder
G0 Y326 F2000 ; <<----- EDIT THIS LINE TO SET THE INITIAL LOCATION OF THE BUTTON
; if this is the first load, then don't unload
G91 ; move to relative mode
M83
; load extruder #{next_extruder}
M117 Loading Tool T{next_extruder}
{if previous_extruder>-1}
; back out the filament for cutting
G0 E-20 F500 ; retract a bit, adjust this to tune waste
; <<<< insert mechanical cutter code here! >>>>
;<<< Start Of Tip Shaping- Remove If No Cutter! >>>
M109 R180; cool down to prevent swelling
M302 S0 ; enable cold extrusion
M106 S255
G0 E20 F1500 ;
G0 E-5 F500 ;
M109 R165; cool down to prevent swelling
G0 E5 F1500 ;
G0 E-1 F500 ;
M109 R155; cool down to prevent swelling
G0 E1 F1500 ;
G0 E-25 F500 ;
M109 R150; cool down to prevent swelling
G0 E24 F1500 ; last tip dip with cold tip
G0 E-24 ; last tip dip with cold tip
M109 R180; ok... go back up in temp so we can move the extruder
G0 E-80 F500 ; back out of the extruder
G92 E0
M104 S[temperature];
;<<< End Of Tip Shaping >>>
; we skipped to here if it was extruder -1
{endif}
{if previous_extruder>-1}
; retract it back out of the extruder
G92 E0
G0 E-100 F2000
G92 E0
G0 E-100 F2000
G92 E0
G0 E-100 F2000
G92 E0
G0 E-100 F2000
G92 E0
G0 E-100 F2000
G92 E0
G0 E-100 F2000
G92 E0
G0 E-100 F2000
G92 E0
G0 E-5 F2000
G92 E0
G0 E-30 F2000 ; <<<---- if mechanical cutter, change to a positive value of at least 5mm
G92 E0
; ok - out of extruder - press button to remove it all the way
G91 ; move to relative mode
M82
; we skipped to here if it was extruder -1
{endif}
; press the button to select the new extruder
G0 Y3 F2000
{if next_extruder==0}
G4 P500 ; dwell for .5 seconds - adjust this to match your machines single pulse time
{endif}
{if next_extruder==1}
G4 P1000 ; dwell for 1.0 seconds - adjust this to match your machines two pulse time
{endif}
{if next_extruder==2}
G4 P1500 ; dwell for 1.5 seconds - adjust this to match your machines three pulse time
{endif}
{if next_extruder==3}
G4 P2000 ; dwell for 2.0 seconds - adjust this to match your machines four pulse time
{endif}
G0 Y-3
G4 P2000 ; wait for cutter to work
; ok command selected - back out filament if needed after cut
{if previous_extruder>-1}
G0 Y3 F2000 ;
G4 P5100 ;
G0 Y-3;
G4 P400
{endif}
G0 Y3 F2000 ;
G4 P5100 ;
G0 E50 F1500; <<<--- adjust this E value to tune extruder loading
G0 Y-3;
G4 P400
G92 E0
G90 ; move back to absolute mode
M83 ; but make sure the extruder stays in relative
; reload filament all the way into extruder
G92 E0
G0 E100 F2000
G92 E0
G0 E100 F2000
G92 E0
G0 E100 F2000
G92 E0
G0 E100 F2000
G92 E0
G0 E100 F2000
G92 E0
G0 E100 F2000
G92 E0
G0 E100 F2000
G92 E0
G0 E-10 F2000 ; <<<<<----------- EDIT THIS DISTANCE TO FINE TUNE THE FILAMENT LOADING TO STOP BLOBBING OR UNDEREXTRUSION
G92 E0
M83 ; turn relative distances for the extruder
M302 S180 ; prevent cold extrusion
M117 3D Chameleon Tool T{next_extruder}
I have changed the filament loading section and the extruder loading section. Everything else is standard. Again, it loads the first filament and begins to extrude, it is printing when it fails. But without the tool change code it's fine. Thanks for any help you can give me.
Normally, when that happens, it's because the E count is not set to zero, or the Absolute position is being requested that is greater than 100 away from the previous position.
I recommend removing any M82 commands from the code (or rather, changing them to M83) so all E commands are 100mm or less.
Bill