could you share some more documentation and instructions? I am extremely interested, as the chameleon can be a pain to work with sometimes with the opposite direction movements.
The problem is somewhere in my GPIO configuration. When I give 5 seconds to load, it is not being doing. Changes are ok but loading and unloading is not.
GPIO on Duet configured and working fine. Tested from macros tool selection and homing all ok.
When print starts it resets, homes, cuts filamen if required and then starts to change tool, when it is supposed to load filament t does not, just continues pulsing....
I think that for some reason it looses the position frommemory, the selected tool and messes up the sequence.
Attached are GCodes for LS and GPIO. LS one is working fine.
What is the difference between this and the regular chameleon? could you share more info on this?
GPIO
; Auto generated 3D Chameleon Mk4 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 Y380 F3000
; 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-40 F600 ; retract a bit, adjust this to tune waste
; <<<< insert mechanical cutter code here! >>>>
; Ensure absolute coordinate mode
G90 ; Set to absolute positioning
; Move to X350
G1 X350 F6000 ; Move to X350 at a speed of 6000 mm/min
G1 X370 F1800 ; Move to X370 at a speed of 1800 mm/min (slow)
G1 X350 F6000 ; Move back to X350 at a speed of 6000 mm/min (fast)
G1 X370 F1800 ; Move to X370 at a speed of 1800 mm/min (slow)
G1 X350 F6000 ; Move back to X350 at a speed of 6000 mm/min (fast)
G1 X370 F1800 ; Move to X370 at a speed of 1800 mm/min (slow)
G1 X350 F6000 ; Move back to X350 at a speed of 6000 mm/min (fast)
; Switch back to relative coordinate mode
G91 ; Set to relative positioning
; 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-65 F2000
G92 E0
G0 E-1 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
M42 P1 S0 ; Set GPIO pin 1 to low
{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}
M42 P1 S1 ; Set GPIO pin 1 to high
G4 P2000 ; wait for cutter to work
; ok command selected - back out filament if needed after cut
{if previous_extruder>-1}
; Control GPIO pin 1 for 5 seconds
M42 P1 S0 ; Set GPIO pin 1 to low
G4 P5000 ; Pause for 5 seconds
M42 P1 S1 ; Set GPIO pin 1 to high
G4 P400
{endif}
M42 P1 S0 ; Set GPIO pin 1 to low
G4 P5000 ; Pause for 5 seconds
G0 E55 F1500; <<<--- adjust this E value to tune extruder loading
M42 P1 S1 ; Set GPIO pin 1 to high
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 E40 F600 ; <<<<<----------- 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}
; priming line if first tool change
G0 X10 Y160 Z0.2 F1000 ; move to X10 Y160 to start priming the nozzle
G0 Y0 E45 ; move to Y0 and extrude 45mm
G0 X12 ; move 2 mm to X12
G0 Y177 E50 ; move to Y177 and extrude 50mm
G4 P1000 ; dwell for 1 second
Limit Switch
; Auto generated 3D Chameleon Mk4 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 Y378 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-40 F500 ; retract a bit, adjust this to tune waste
; <<<< insert mechanical cutter code here! >>>>
; Ensure absolute coordinate mode
G90 ; Set to absolute positioning
; Move to X350
G1 X350 F6000 ; Move to X350 at a speed of 6000 mm/min
G1 X370 F1800 ; Move to X370 at a speed of 1800 mm/min (slow)
G1 X350 F6000 ; Move back to X350 at a speed of 6000 mm/min (fast)
G1 X370 F1800 ; Move to X370 at a speed of 1800 mm/min (slow)
G1 X350 F6000 ; Move back to X350 at a speed of 6000 mm/min (fast)
G1 X370 F1800 ; Move to X370 at a speed of 1800 mm/min (slow)
G1 X30 F6000 ; Move back to X30 at a speed of 6000 mm/min (fast)
; Switch back to relative coordinate mode
G91 ; Set to relative positioning
; 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-65 F2000
G92 E0
G0 E-1 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 P5000 ;
G0 Y-3;
G4 P400
{endif}
G0 Y3 F2000 ;
G4 P5000 ;
G0 E55 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 E0 F600 ; <<<<<----------- 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}
; priming line if first tool change
G0 X10 Y160 Z0.2 F2000 ; move to X10 Y160 to start priming the nozzle
G0 Y0 E45 ; move to Y0 and extrude 45mm
G0 X12 ; move 2 mm to X12
G0 Y177 E50 ; move to Y177 and extrude 50mm
G4 P1000 ; dwell for 1 second
@Bill
Should start Gcode contain homing for Chameleon.
I run intonthe issue and added homing.
Now have issue with toolhead slaming to bracket when cutting fillament.
It is cutting nicely when I run Macro but slams when it is added to Chameleon Gcode.
Let me finalise, I will share.
Holy Moly is this something you will share or sell either way i'd like to build it as it would be fun