top of page

Getting Started

Public·120 members

Matthew Tratz
Matthew Tratz

I am sharing what I have for those that may need it

I had a hell of a time getting the 3d chameleon to work on my printer. I finally have a decent multicolor print so I figure I should share what I have and maybe it will help someone out. My printer is an Ender 3 with a BTT SKR mini e3 v3 with the Sprite Extruder. The mode 3 gcode generator is good for getting the framework but to get it all working takes A LOT of tweaking. In the mode 3 Gcode the tip shaping portion was exceedingly time consuming and kept jamming my sprite extruder. I made my own tip shaping sequence, the tips are not neat but the sprite extruder has a bit of horsepower and overcomes it well enough. In the picture the blobs are an issue as they can get big enough to cause the nozzle to hit them at color change and cause a layer shift. So I need to dial that in, but it does work as is.




Below is my gcode that I used if anyone wanted to look over it all. I added more context in some of the commands then what came with the auto generated from this site. --------------------------------------------------------------------------------------------------------------------------------------------------------------

Start Gcode is normal but I added lines to hit the button 3 times then another for 7 pulses to zero G90 ; use absolute coordinates

M83 ; extruder relative mode

M104 S180 ; set temporary nozzle temp to prevent oozing during homing

M140 S{first_layer_bed_temperature[0]} ; set final bed temp

G4 S30 ; allow partial nozzle warmup

G28 ; home all axis and restore leveling

G1 Z50 F240

G1 X2.0 Y10 F3000

M104 S{first_layer_temperature[0]} ; set final nozzle temp

M190 S{first_layer_bed_temperature[0]} ; wait for bed temp to stabilize

M109 S{first_layer_temperature[0]} ; wait for nozzle temp to stabilize

G1 Z0.28 F240

G92 E0

G90

M83

;<<<<<hit button 3 times then another for 7 pulses to zero chameleon>>>>>>>>>>>

G92 E0

G0 X0 Y231 F2000 ;moved to button

G0 X0 Y234 F2000 ;pressed button

G4 P150 ;wait 150ms

G0 X0 Y231 F2000 ;moved to button

G4 P150 ;wait 150ms

G0 X0 Y234 F2000 ;pressed button

G4 P150 ;wait 150ms

G0 X0 Y231 F2000 ;moved to button

G4 P150 ;wait 150ms

G0 X0 Y234 F2000 ;pressed button

G4 P150 ;wait 150ms

G0 X0 Y231 F2000 ;moved to button

G4 P150 ;wait 150ms

G0 X0 Y234 F2000 ;pressed button

G4 P3200 ;wait 7 pulses

G0 X0 Y231 F2000 ;moved to button

G4 P5000 ;wait seconds to home

--------------------------------------------------------------------------------------------------------------------------------------------------------------

Tool change Gcode: Mostly stock from mode 3 gcode generator. I made my own tip shaping, added more context to some of the lines, removed most of the 3d clippy stuff and added a purge line sequence to the bottom. ; Auto generated 3D Chameleon Mk3 Mode 3 Tool Change GCode for PrusaSlicer

; - 3D Chameleon Mk3 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 Y231 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


; <<< Start Of Tip Shaping V3 >>>

G92 E0 ; Zero the extruder

G0 E10 F500; push out the molten filament

G0 E-13 F4000; quickly retract

G4 P5000 ; Wait for 5000ms (5 seconds)

G1 E-50 F1500 ; Quickly retract 50mm to fully unload the filament

; <<< End Of Tip Shaping V3 >>>


; we skipped to here if it was extruder -1

{endif}

{if previous_extruder>-1}

; retract it back out of the extruder


; <<< This section is for unloading the hot end. >>>

G92 E0

G0 E-44 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


;<<<<<<< The below section will vary from printer to printer, for time it seems is not the same on all printers. Tweak the P values if chameleon holds the button down to long or short>>>>>>>>>>>>

{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 P1900 ; dwell for 2.0 seconds - adjust this to match your machines four pulse time

{endif}

G0 Y-3


; <<< This section is for unloading the 3d Chameleon. From extruder back to filament starting point above Y adapter >>>

G4 P2000 ; wait for cutter to work

; ok command selected - back out filament if needed after cut

{if previous_extruder>-1}

G0 Y3 F2000 ; Moves to button

G4 P7000 ; Holds button to get filament to starting point above Y adapter

G0 Y-3 ; Moves off the button

G4 P400


; <<< This section is for loading the 3d Chameleon. Filament starting point above Y adapter to extruder gears >>>

{endif}

G0 Y3 F2000 ; Moves to button

G4 P7000 ; Holds button to load filament from starting point

G0 E28 F1500; <<<--- adjust this E value to tune extruder loading default was 28

G0 Y-3; Moves off button

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


; <<< This section is for loading the hotend. From extruder gear to hotend >>>

G92 E0

G0 E19 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}


; This should be a purge at the start of the print

{if previous_extruder==-1}

G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line

G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little

G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line

G92 E0 ; Reset Extruder

G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed

G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish

{endif}


------------------------------------------------------------------------------------------------------------------------------------------------------

END GCODE: I moved the standard end Gcode of present print and turn off heat to the bottom. The top portion is all about tip shaping, unloading and zeroing the chameleon. ; Begin End G-Code

; Ensure the print head is raised before starting unload sequence

{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F600 ; Move print head up{endif}


; Perform Tip Shaping V3 before unloading

; <<< Start Of Tip Shaping V3 >>>

G92 E0 ; Zero the extruder

G0 E10 F500; push out the molten filament

G0 E-13 F4000; quickly retract

G4 P5000 ; Wait for 5000ms (5 seconds)

G1 E-50 F1500 ; Quickly retract 50mm to fully unload the filament

G92 E0 ; Reset extruder position

; <<< End Of Tip Shaping V3 >>>


; Start 3D Chameleon unloading and zeroing sequence


G0 Y234 F2000 ; Move to button position to initiate unload and zero

G4 P2750 ; Hold button for 6 pulses, each pulse 0.5 seconds, total 3 seconds for unload and zero I reduced the P a bit to ensure we don't hit 7 pulses which is a zero only command.

G0 Y231 F2000 ; Move back to standby position

; Pause before initiating return sequence

G4 P1000 ; Pause for 1 second to allow all processes to complete

; Activate the button for 7 seconds to back the filament to its starting point

G0 Y234 F2000 ; Press button again to start filament return

G4 P7000 ; Hold button for 7 seconds to ensure filament is fully retracted

G0 Y231 F2000 ; Return to standby position

; Short pause to ensure all operations have ceased before moving the bed forward

G4 P500 ; Pause for 0.5 seconds


; Now, move the bed forward to present the print

G1 X5 Y{print_bed_max[1]*0.85} F{travel_speed*60} ; Present print

{if max_layer_z < max_print_height-10}G1 Z{z_offset+min(max_layer_z+70, max_print_height-10)} F600 ; Move print head further up to clear any obstruction{endif}

{if max_layer_z < max_print_height*0.6}G1 Z{max_print_height*0.6} F600 ; Ensure print head is well clear of the print{endif}

; Turn off heaters, fan, and motors for final shutdown

M140 S0 ; Turn off heatbed

M104 S0 ; Turn off hot

680 Views

Any Gcode experts out there? My toolchange gcode is acting odd. It seems that if my extruder 0 is the first to be loaded it doesn't actually load and just go's straight to the print while also skipping my purge line.

About

New to the 3D Chameleon... check out this thread for tips on...

Members

  • Precise Signs
    Precise Signs
  • Emma Gruyé
    Emma Gruyé
  • Kendall Leake
    Kendall Leake
  • Tim A.
    Tim A.

For the latest information on product availability, be sure to follow us on twitter!  @3DChameleon

For more installation videos, be sure to follow us on Youtube!

  • Facebook
  • Twitter
  • YouTube

©2023 by 3D Chameleon

bottom of page