top of page

; - 3D Chameleon Tool

T{next_extruder} -

;begin switch from extruder {previous_extruder} to extruder  {next_extruder}

M117 Unloading Tool

T[previous_extruder]

M82 ; turn absolute distances for the extruder

; unload extruder

{previous_extruder}

G92 E0

; go to holding position to unload the stock extruder

{buttonLocation};   <<-----  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

M82

{if previous_extruder>-1}

; cool (and size) in 1.8mm tube
G0 E-20 F4000 ; quickly retract the filament to shape it
G0 E-10 F600; slowly allow it to cool

G0 E1 F2000 ; blob elimination

; back to tip size
G0 E-20 F4000 ; quickly retract the filament to shape it
G0 E-10 F600; slowly allow it to cool

G0 E1 F4000 ; blob elimination
G0 E-10 F4000 ; quickly retract the filament to shape it
G0 E1 F4000 ; quickly ram the filament to shape it
G0 E-10 F4000 ; quickly retract the filament to shape it
G0 E1 F4000 ; quickly ram the filament to shape it

; back to 1.8 constriction
G0 E-50 F4000 ; quickly retract the filament to shape it
G0 E-80 F100; slowly allow it to cool

; turn the fan off
M107 ; this printer has the fan in the way, so turn it off

; retract it back out of the extruder
{unloadGCode}

G0 E-30 F2000
G92 E0

; ok - out of extruder - press button to remove it all the way
G91 ; move to relative mode

M82

; NOTE: All button presses following this point are relative to the point above.  
;       They are always 3mm short of the X and Y axis and move +3mm to press the
;       button on either axis. They end up moving back -3mm on each axis after it.

; press the button 3 times to get back to the active extruder
G0 X3 Y3 F2000 ; press the button
G4 P400 ; dwell for .3 seconds
G0 X-3 Y-3 ; back off the button
G4 S2; wait for it to happen

G0 X3 Y3 F2000 ; press the button
G4 P400 ; dwell for .3 seconds
G0 X-3 Y-3 ; back off the button

G4 S2; wait for it to happen

G0 X3 Y3 F2000 ; press the button
G4 P400 ; dwell for .3 seconds
G0 X-3 Y-3 ; back off the button
G4 S2 ; wait for it to happen

; ok - select direction to pull filament out
G0 X3 Y3 F2000 ; press the button
G4 P3500 ; dwell for 3 seconds
{if previous_extruder>1}
G4 P2000 ; dwell for 2 more seconds seconds
{endif}
G0 X-3 Y-3 ; back off the button

; now press and hold for 8 seconds to let it unload
G0 X3 Y3 F2000 ; press the button

G4 S10 ;             <<---- INCREASE VALUE (S = Seconds) TIME IF IT DOESN'T UNLOAD FROM THE Y ADAPTER

G0 X-3 Y-3 ; back off the button

; we skipped to here if it was extruder -1
{endif}

; load extruder #{next_extruder}
M117 Loading Tool T{next_extruder}

; always reset to extruder 0
G0 X3 Y3 F2000 ; press the button
G4 P1300 ; dwell for 1.3 seconds
G0 X-3 Y-3 ; back off the button
G4 S3; wait for it to happen

; press the button for each extruder (1,2,3)

{if next_extruder>0}
G0 X3 Y3 F2000 ; press the button
G4 P400 ; dwell for .3 seconds
G0 X-3 Y-3 ; back off the button
G4 S1; wait for it to happen
{endif}

{if next_extruder>1}
G0 X3 Y3 F2000 ; press the button
G4 P400 ; dwell for .3 seconds
G0 X-3 Y-3 ; back off the button
G4 S1; wait for it to happen
{endif}

{if next_extruder>2}
G0 X3 Y3 F2000 ; press the button
G4 P400 ; dwell for .3 seconds
G0 X-3 Y-3 ; back off the button
G4 S1 ; wait for it to happen
{endif}

G4 S1 ; wait just a little longer

; load the filament
G0 X3 Y3 F2000 ; press the button
G4 P3500 ; dwell for 3 seconds
{if next_extruder<2}
G4 P2000 ; dwell for 2 more seconds
{endif}
G0 X-3 Y-3 ; back off the button

; now press and hold for 8 seconds to let it load
G0 X3 Y3 F2000 ; press the button

G4 S9 ;           << -------   INCREASE THE S10 (S = Seconds) VALUE TIME IF IT DOESN'T LOAD INTO THE STOCK EXTRUDER - This should match the above unload time

G0 E75 F1500 ;      << -------   ADJUST THE E50 VALUE TO STOP IT RIGHT AFTER IT LOADS INTO THE STOCK EXTRUDER (50mm is the default)

;                ADJUST THE F2500 TO MATCH THE SPEED OF THE FILAMENT FROM THE 3D CHAMELEON
;                NOTE: This defaults should work, but you can always tune them to be perfect.

G4 P1500 ;          This is just a half second extra reloading time... just to make sure

G0 X-3 Y-3 ; back off the button
G92 E0

; now press it again to let go of the filament
G0 X3 Y3 F2000 ; press the button
G4 P400 ; press for 1/4 of a second to move to next
G0 X-3 Y-3 ; back off the button

G4 S1 ; wait for it to happen
{if next_extruder>2}
G4 S1 ; wait a little longer for it to happen
{endif}

G90 ; move back to absolute mode
M83 ; but make sure the extruder stays in relative

; reload filament all the way into extruder
{loadGCode}

M83 ; turn relative distances for the extruder

M117 3D Chameleon Tool T{next_extruder}

Mk2 GCode Generator

Button Axis (X or Y)

Button Location (mm)

Extruder to Hotend (mm)

Select Slicer

Select Extruder (Cura & kiri:moto Only)

Once generated, copy and paste this code into your slicer's Tool Change GCode block.

; - 3D Chameleon Tool T[new_tool] -

 

;begin switch from extruder [old_tool] to extruder #[new_tool]

 

M117 Unloading Tool T[old_tool]

 

M82 ; turn absolute distances for the extruder

 

; unload extruder [old_tool]

G92 E0

 

; go to holding position to unload the extruder

{buttonLocation}

​

; cool (and size) in 1.8mm tube

G0 E-20 F4000 ; quickly retract the filament to shape it

G0 E-10 F600; slowly allow it to cool

​

G0 E1 F2000 ; blob elimination

​

; back to tip size

G0 E-20 F4000 ; quickly retract the filament to shape it

G0 E-10 F600; slowly allow it to cool

​

G0 E1 F4000 ; blob elimination

G0 E-10 F4000 ; quickly retract the filament to shape it

G0 E1 F4000 ; quickly ram the filament to shape it

G0 E-10 F4000 ; quickly retract the filament to shape it

G0 E1 F4000 ; quickly ram the filament to shape it

​

; back to 1.8 constriction

G0 E-50 F4000 ; quickly retract the filament to shape it

G0 E-80 F100; slowly allow it to cool

​

; turn the fan off

M107 ; this printer has the fan in the way so turn it off

​

; retract it back out of the extruder

{unloadGCode}
G0 E-30

G92 E0

 

G91 ; move to relative mode

 

​

G0 X3 Y3 F2000 ; press the button

G4 P400 ; dwell for .3 seconds

G0 X-3 Y-3 ; back off the button

G4 S2; wait for it to happen

 

G0 X3 Y3 F2000 ; press the button

G4 P400 ; dwell for .3 seconds

G0 X-3 Y-3 ; back off the button

G4 S2; wait for it to happen

 

G0 X3 Y3 F2000 ; press the button

G4 P400 ; dwell for .3 seconds

G0 X-3 Y-3 ; back off the button

G4 S2 ; wait for it to happen

 

; ok - select direction to pull filament out

G0 X3 Y3 F2000 ; press the button

G4 P3500 ; dwell for 3 seconds

{IF OLDTOOL>1}G4 P2000 ; dwell for 2 more seconds seconds

G0 X-3 Y-3 ; back off the button

 

; now press and hold for 8 seconds to let it unload

G0 X3 Y3 F2000 ; press the button

 

G4 S10 ; <<---- INCREASE VALUE (S = Seconds) TIME IF IT DOESN'T UNLOAD FROM THE Y ADAPTER

 

G0 X-3 Y-3 ; back off the button

 

; load extruder #[new_tool]

M117 Loading Tool T[new_tool]

 

; always reset to extruder 0

G0 X3 Y3 F2000 ; press the button

G4 P1300 ; dwell for 1.3 seconds

G0 X-3 Y-3 ; back off the button

G4 S3; wait for it to happen

 

; press the button for each extruder (1, 2, 3)

​

{IF NEWTOOL>0}G0 X3 Y3 F2000 ; press the button

{IF NEWTOOL>0}G4 P400 ; dwell for .3 seconds

{IF NEWTOOL>0}G0 X-3 Y-3 ; back off the button

{IF NEWTOOL>0}G4 S1; wait for it to happen

 

{IF NEWTOOL>1}G0 X3 Y3 F2000 ; press the button

{IF NEWTOOL>1}G4 P400 ; dwell for .3 seconds

{IF NEWTOOL>1}G0 X-3 Y-3 ; back off the button

{IF NEWTOOL>1}G4 S1; wait for it to happen

 

{IF NEWTOOL>2}G0 X3 Y3 F2000 ; press the button

{IF NEWTOOL>2}G4 P400 ; dwell for .3 seconds

{IF NEWTOOL>2}G0 X-3 Y-3 ; back off the button

{IF NEWTOOL>2}G4 S1; wait for it to happen

 

G4 S1 ; wait just a little longer

 

; load the filament

G0 X3 Y3 F2000 ; press the button

G4 P3500 ; dwell for 3 seconds

{IF NEWTOOL<2}G4 P2000 ; dwell for 2 more seconds

G0 X-3 Y-3 ; back off the button

 

; now press and hold for 8 seconds to let it load

G0 X3 Y3 F2000 ; press the button

 

G4 S9 ; << ------- INCREASE THE S10 (S = Seconds) VALUE TIME IF IT DOESN'T LOAD INTO THE STOCK EXTRUDER 


G0 E75 F1500 ; << ------- ADJUST THE E50 VALUE TO STOP IT RIGHT AFTER IT LOADS INTO THE STOCK EXTRUDER (50mm is the default)

; ADJUST THE F2500 TO MATCH THE SPEED OF THE FILAMENT FROM THE 3D CHAMELEON

​

G4 P1500 ; This is just a half second extra reloading time... just to make sure

​

G0 X-3 Y-3 ; back off the button

G92 E0

​

; now press it again to let go of the filament

G0 X3 Y3 F2000 ; press the button

G4 P400 ; press for 1/4 of a second to move to next

G0 X-3 Y-3 ; back off the button

 

G4 S1 ; wait for it to happen

{IF NEWTOOL>2}G4 S1 ; wait a little longer for it to happen

 

G90 ; move back to absolute mode

M83 ; but make sure the extruder stays in relative

 

; ok safe to turn fan back on

M106 [fan_speed_pwm]

 

; reload filament all the way into extruder

{loadGCode}

​

M82 ; turn absolute distances for the extruder

 

M117 3D Chameleon Tool T[new_tool]

M117 Loading Tool T0

 

G90 ; move to absolute mode

M82 ; turn absolute distances for the extruder

 

{buttonLocation}

​

G91 ; move to relative mode

​

G0 X3 Y3 F2000 ; press the button

G4 P1300 ; dwell for 1.3 seconds

G0 X-3 Y-3 ; back off the button

G4 S3; wait for it to happen

{buttonPressLoop}

G0 X3 Y3 F2000 ; press the button

G4 {buttonPressTime} ; dwell for 3 seconds

​

G0 X-3 Y-3 ; back off the button

​

G0 X3 Y3 F2000 ; press the button

​

​

G4 S9 ; << ------- THIS IS THE SAME TIME AS WE RETRACTED IT FROM ABOVE... THEY MUST MATCH... 10 SECONDS IS THE DEFAULT

​

G0 E75 F1500 ; << ------- ADJUST THE E50 VALUE TO STOP IT RIGHT AFTER IT LOADS INTO THE STOCK EXTRUDER (50mm is the default)

​

G4 P1500 ; << ------- INCREASE THE P500 (P = Milliseconds) VALUE TIME IF IT DOESN'T LOAD INTO THE STOCK EXTRUDER, BUT THE .5 SECONDS SHOULD BE ENOUGH

​

G0 X-3 Y-3 ; back off the button

G92 E0

​

G0 X3 Y3 F2000 ; press the button

G4 P400 ; press for 1/4 of a second to move to next

G0 X-3 Y-3 ; back off the button

 

G4 S1 ; wait for it to happen

 

 

G90 ; move back to absolte mode

M83 ; but make sure the extruder stays in relative

 

M106 P T1

 

{loadGCode}

 

M83 ; turn relative distances for the extruder

 

M117 3D Chameleon Tool T0

M117 Unloading Tool T0

 

G92 E0

 

G90 ; move to absolute mode

M82 ; turn absolute distances for the extruder

 

{buttonLocation}

 

G0 E-50 F2000 ; quickly retract the filament to shape it

G0 E-80 F600; slowly allow it to cool

 

G0 E1 F2000 ; blob elimination

 

G0 E-50 F2000 ; quickly retract the filament to shape it

G0 E-80 F600; slowly allow it to cool

 

G0 E1 F2000 ; blob elimination

G0 E-10 F2000 ; quickly retract the filament to shape it

G0 E1 F2000 ; quickly ram the filament to shape it

G0 E-10 F2000 ; quickly retract the filament to shape it

G0 E1 F2000 ; quickly ram the filament to shape it

 

G0 E-50 F2000 ; quickly retract the filament to shape it

G0 E-80 F100; slowly allow it to cool

 

M107 ; this printer has the fan in the way, so turn it off

 

{unloadGCode}

G0 E-30 ; 

G92 E0

 

G91 ; move to relative mode

 

G0 X3 Y3 F2000 ; press the button

G4 P400 ; dwell for .3 seconds

G0 X-3 Y-3 ; back off the button

G4 S2; wait for it to happen

 

G0 X3 Y3 F2000 ; press the button

G4 P400 ; dwell for .3 seconds

G0 X-3 Y-3 ; back off the button

G4 S2; wait for it to happen

 

G0 X3 Y3 F2000 ; press the button

G4 P400 ; dwell for .3 seconds

G0 X-3 Y-3 ; back off the button

G4 S2 ; wait for it to happen

 

G0 X3 Y3 F2000 ; press the button

G4 {buttonPressTime} ; dwell for 3 seconds

 

G0 X-3 Y-3 ; back off the button

 

G0 X3 Y3 F2000 ; press the button

 

G4 S10 ; <<---- INCREASE VALUE (S = Seconds) TIME IF IT DOESN'T UNLOAD FROM THE Y ADAPTER, DEFAULT IS 10 SECONDS WHICH SHOULD BE ENOUGH

 

G0 X-3 Y-3 ; back off the button

bottom of page