3d Chameleon - up to 4 color/material printing with Single Extruder

I appreciate it :slight_smile: Having one in resin print would be awesome actually :slight_smile:

Quick question, i’m not too familiar with the Auto 3DClippy. Do you know the difference in reverse vs regular?
I’m looking at these source files for it - 3D design Generic Digital 3DClippy - Tinkercad
If you know it, if not I’ll figure it out from design files.

Seems like an easy job. I hope I didn’t jinx myself.

I’m not familiar with the reverse or regular but I have a feeling it won’t matter for direct drive hotend modules that are more or less smooth on the tops (SM, Bambu, K Creality K series).

I had mostly looked at versions edited to fit other direct drive printers and not the generic model. I think I was planning on modding someone’s microswiss ng version for my attempt.

I can’t make the model to transfer to fusion or download it in cad editable format from tinker cad. Waiting for Bill to share it.

Or maybe there is an alternative source of the original model?

Finally i am back at testing and it seems dual extruder and petg is not the best filament to start with colour change…

My 3dchameleon itself seems to be a bit rough because i have massive feeding issues to no extrusion at all at least on T2.
The other colours extrude but pull the extruder up so it prints in the air most of the time…

So i need more time to get it working, hopefully in the coming holidays :wink: .

Last but not least, i wanted to share my dual extruder head infeed with you, its a bit tricky to screw the connectors in but its pretty stable and needs NO supports:
3dChameleon_Feed_4in1_V5_1.stl (1.4 MB)

It could be that the angle is a bit too sharp and layer lines increasing chances of it filament being stuck here.

I was able to feel this by wiggling filament by hand and feeling if it catches on something there in single extruder adapter.

I have the generic autoclippy folder downloaded somewhere. I’ll get it put on a shared folder as soon as I can and post. Got small kids and some work travels the last few weeks.

We should be rewarded for the slowest moving ACTIVE mod group in Snapmaker :stuck_out_tongue:

2 Likes

I confirmed now, 3 feed ways print just fine, path 4 has too much counterforce through the chameleon.

Now thinking about the assembly of the 3dchameleon

  • maybe it homes not correctly all the time (was previously thinking its too much counterforce through the 3dc).
  • I see a little more gap between the two T2/4 parts.
  • Rough filament because of too hard pushing spring in the feeding part or rough filament cant been fed through (the 4in1 feels good).

Other things to consider

  • Maybe old filament strings anywhere in the system, blocking it.

Already done

  • Checked the hotend and interchanged.
  • Assembled or added thermalpaste.
  • Printed much hotter than needed.
  • Tip-shaping (in progress).

Here is a sidecut to see the filamentway, never searched how to do a simulation, so i cant visualize the filament through:


I think the paths are fine. I dont want to make it taller because of the missing space above the dual-toolhead in home-position.

I am on a good way, maybe my 3dchameleon simply is not perfect. I already thought this in the beginning but hey, its a learning curve and hopefully it brings me a lot of experience and works in the end :wink: .

1 Like

Go for the autoklippy mod! It should save on purge/wipe tower (eliminate if you can do infill before perimeter and have single color top several layers).

I’m still playing with wiring. I need to do a splitter on the 12v power supply and bring it’s power to the bigger servo. Need to re-print several things as well.

I’ve found that the screen is a HUGE upgrade for how cheap it is.

Side note, since 3DChamleon appears to be heading towards a klipper focus I wanted to say my endless pursuit of Klipperizing my old Snapmaker linear rails makes me think I am finally close to doing it. I need to do more reading on CAN bus endstops. The fact that XYZ all use the same pin seems weird, still.

1 Like

Not a fan of how this looks… And the design of the autoclippy would be hard to print. If anyone have spec pdf on the servo they use for this, I would appreciate it. Looks like I’d have to dedicate more time to this…

AutoCLippy-ezgif.com-resize

Finally I made it work:

Tigger 12h34min 120mm tall 818 toolchanges


Unfortunately the prime tower gots detached from the bed but I was lucky and glued it back on.

I will share my gcodes this weekend by editing this post.

Thanks again @nweolu!

Start gcode

T[initial_extruder]
;=========================
; START Start G-Code for PrusaSlicer 2.6.0
; >>>Filament runout switch turned off by G-Code
; 3DChameleon Mk3 Installed in Mode #2
; By nweolu, modified by xchrisd
; Dual Extruder used T1 (right extruder) Endstop at X350mm
;=========================
; Variables list
{global var_skip_tool_change = 0} ; var_skip_tool_change - variable to determine if tool change is needed.
; 0 = skip toolchange.
; 1 = tool change requiered.
{global var_first_tool_changed = 0} ; var_first_tool_changed - variable to determine if first tool change G-code was executed.
; 0 = G-Code wasn’t executed.
; 1 = G-Code wasn’t executed at least 1 time.
{global previous_extruder = -1} ; Initiating built-in variable “previous_extruder” ahead of time to be able to perform the check.
;=========================
M140 S[first_layer_bed_temperature] ; Start warming Bed
M104 S[first_layer_temperature] ; Start warming Nozzle
M82 ; Absolute extrusion mode
G28 ; Home all axis
G90 ; Absolute positioning
;=========================
; START Home 3DChameleon and load T0
;=========================
G0 Z50 X345 Y-15 F3000 ; Go to trigger zone
G1 Z0 F1800 ; Move down to “print start zone” for wipe
M109 S[first_layer_temperature] ; Wait for Hotend Temperature
G0 X350 F3000 ; Engage the 3DChameleon trigger
G4 P2300 ; 5th Pulse homing & Load T0
G0 X345 F3000 ; Disnegage the trigger
G4 P1500 ; Wait for homing
G0 X350 F2000
G92 E0
G1 E10 F1500 ; FILAMENT FEED and prime 0,5sek
G92 E0
G0 X345 F2000
G4 P1500 ; Wait for chameleon to be ready
;G1 E85 F300 ; Accept new filament by Snapmaker drive and load into the hot zone
;M190 S[first_layer_bed_temperature] ; Wait For Bed Temperature
;=========================
; END Home 3DChameleon and load T0
;=========================
;Check if initial extruder is T0 and previous extruder is T-1 then it is already loaded and no tool change needed at first layer.
{if initial_extruder == 1}
{if previous_extruder == -1}
{var_skip_tool_change = 1}
;“First filament matching just loaded filament, purging and wiping to start the print.”
G1 X345 Y-15 F3000 ; Move to print start zone for wipe
G92 E0 ; Reset extruder
G1 E60 F200 ; Prime extrude for wipe
G92 E0 ; Reset extruder
{endif}
{endif}
M83; relative E because of the need of prime tower…
;=========================
; END Start G-Code for PrusaSlicer 2.6.0
;=========================

End gcode

;
; DON’T REMOVE these lines if you’re using the smfix (GitHub - macdylan/SMFix: SMFix is a post-processing tool for PrusaSlicer/SuperSlicer/OrcaSlicer designed to be compatible with Snapmaker printers.)
; min_x = [first_layer_print_min_0]
; min_y = [first_layer_print_min_1]
; max_x = [first_layer_print_max_0]
; max_y = [first_layer_print_max_1]
; max_z = [max_layer_z]
; total_layer_number = [layer_num]
;
;=========================
; START PRINT END G-code for PrusaSlicer 2.6.0
; >>>Filament runout switch turned off by G-Code
; 3DChameleon MK3 Installed in Mode #2
; By nweolu, modified by xchrisd
; Dual Extruder used T1 (right extruder) Endstop at X350mm
;=========================
M412 S0 ;Turn OFF filament runout sensor for final filament unload
;=========================
; Filament Tip Shaping sequence and unload {filament_preset[current_extruder]}
;=========================
;=========================
; Tip shaping and retract and unload to keep the print safe
;=========================
M83 ; E relative
G1 E-42 F2000 ; Retract a bit to keep stringing to minimum
G90 ; Absolute positioning
G0 X347 Y354 F2000 ; Move away from the print to filament change zone
G4 P1800 ;wait for filament cool off
G1 E45 F1800 ; Slowly push filament into hot zone
G1 E-42 F1000 ; Jurk out to break solid filament away from the melted mass

{if filament_type[current_extruder]==“PLA”}
;G1 E-15 F2500 ; quickly move filament up for PLA
G1 E-43 F200 ; Slowly move filament up for PLA
{else}
G4 P3000
G1 E-43 F500
{endif}
; Filament ready to be handled by 3DChameleon.
G0 X350 F2000 ; Engage the trigger
G4 P500 ; Unload {filament_preset[current_extruder]} and Load T1
G0 X345 F2000 ; Disenegage the trigger
G4 P1000 ;wait for 3dchameleon to be ready
G0 X350 F2000
G1 E-60 F1800; Gear to save spot 4in1 2Sek
G0 X345 F2000 ;
G4 P1000 ;wait for 3dchameleon to be ready
G0 X350 F2000 ; Engage the trigger
G1 E60 F1500; Feed till gear 2,4Sek
G0 X345 F2000
G1 E70 F200; Feed into cold zone to be removable till next print
;
; Filament {filament_preset[current_extruder]} unloaded from the extruder. T0 Filament is loaded up to runout switch.
; Ready to cool down at home.
; Turn everything off.
;
M104 S0 ; Extruder heater off
M140 S0 ; Heated bed heater off
M107 ; Print cooling fan off
G90 ; Absolute positioning
G92 E0 ; Reset extruder
G28 ; Home
;=========================
;END PRINT END G-code for PrusaSlicer 2.6.0
;=========================

Toolchange

;=========================
; START Tool change G-code for PrusaSlicer 2.6.0
; 3DChameleon Mk3 Installed in Mode #2
; Mode #2
; By nweolu, modified by xchrisd
; Dual Extruder used T1 (right extruder) Endstop at X350mm
;=========================
; “Switching from T{previous_extruder} to extruder T{next_extruder} with {filament_preset[next_extruder]}”"
;=========================
M412 S0 ;Turn OFF filament runout sensor for toolchange process
; Start safety check - if var_skip_tool_change = 1 then skip filament removal by Snapmaker drive (do nothing and just print)
;
{
if var_skip_tool_change == 1
}
;
; “Skipping tool change at the beginning if no tool change is neccesary, printing with {filament_preset[current_extruder]}”
;
{
else
}
;
; “Start tool change to extruder T{next_extruder} with {filament_preset[next_extruder]}”
;
;=========================
; START Lift and retract to keep the print safe
;=========================
G92 E0 ; Reset extruder
M83 ; E relative
G1 E-42 F2000 ; Retract a bit to keep stringing to minimum
G91 ; Relative Positioning to lift up relative to the print
G0 Z2 F2000 ; Lift up 2mm
G90 ; Absolute positioning
G0 X345 F6000
G4 P1800 ;P2000
;=========================
; END Lift and retract to keep the print safe
;=========================
;G0 X345 F2000
;=========================
; START Filament Tip Shaping change sequence
;=========================
G1 E45 F1800
G1 E-42 F1000

{if filament_type[current_extruder]==“PLA”}
;G1 E-15 F2500 ; quickly move filament up for PLA
G1 E-43 F200 ; Slowly move filament up for PLA
{else}
G4 P3000
G1 E-43 F500
{endif}
G92 E0 ; Reset extruder.
; Filament ready to be handled by 3DChameleon.
;=========================
; END Filament Tip Shaping change sequence
; “Unloading extruder T{current_extruder} with {filament_preset[next_extruder]}”
;=========================
; 3DChameleon Filament repalcement sequence
;=========================
G0 X350 F3000 ; Engage the trigger
{if next_extruder==1}
G4 P500 ; Dwell for .5 seconds to select extruder T{next_extruder}
{endif}
{if next_extruder==2}
G4 P900 ; Dwell for 1 seconds to select extruder T{next_extruder}
{endif}
{if next_extruder==3}
G4 P1300 ; Dwell for 1.3 seconds to select extruder T{next_extruder}
{endif}
{if next_extruder==4}
G4 P1800 ; Dwell for 1.8 seconds to select extruder T{next_extruder}
{endif}
G0 X345 F3000
G4 P1500
G0 X350 F3000 ; Enegage the trigger
G1 E-60 F1800; Gear to save spot 4in1 2Sek
G0 X345 F3000 ; Disengage the trigger
G4 P1500
G0 X350 F3000 ; Engage the trigger
G1 E60 F1500; Feed till gear 2,4Sek
G0 X345 F3000 ; Disengage the trigger
G4 P1500
G90
G1 E100 F1000 ;Feed till tip and prime nozzle
G1 E10 F200; Prime 10mm
G92 E0
;M82 ;E absolute doesnt work with prime tower…
;=========================
; START Reverse Lift
;=========================
G91 ; Relative Positioning to lift up relative to the print
G0 Z-2 ; Lift down 25mm from the print
G90 ; Absolute positioning
;=========================
; END Reverse Lift
;=========================
{
endif
}
{global var_first_tool_changed = 1;}
{
if var_first_tool_changed == 1 then
var_skip_tool_change = 0;
; “;First toolchange G-code is executed, changing var_first_tool_changed = 1”
endif
}
M412 S1 ;Turn ON filament runout sensor after toolchange process
;=========================
; END Tool change G-code for PrusaSlicer 2.6.0
;=========================

Its with relative extruder motion because prusa slicer supports only relative movement with a prime tower, yet. Forgive me, the code is not cleaned, yet.
Tested with PLA on Dual Extruder Right nozzle, 0.4mm brass.

1 Like

This is super cool!
How stable is the process?

The second print was 3/4 colors fine.
After this i printed a new 4in1 adapter with better angle and messed around a lot with silk filament but this does not work and tends to clog the nozzle.
Still optimizing the process, recently added a preheat the nozzle to the next extruder temperature.
I wanted to bring all purge to the purge tower and not flush it near the bed to avoid detaching of the purge tower and messing up the nozzle…

So, a lot of work and not much time, currently :wink:

Did you ever try or may you share some creations, please?

2 Likes

My stuff is mostly functional designs for local contractors. I rarely print something that I can share with public. But I’ll do some stuff with the new extruder.
Check this out - The SMuFF - Purge Bin vs. Purge Tower
I never got around to try his tool for g-code modification to minimize purging.
You get nice details with the prints…

1 Like

Finally i did some testprints to have a idea about the stability of the process of filament changing.

I did 3x prints with 1195 toolchanges, so ~3600 toolchanges without any feeding problem went through.
Each print needed about 18hours and 32g of filament.

Unfortunately i cant get rid of the little extrusion while tip shaping, hopefully it would connect to the purge tower in future prints :wink:

I will share my codes and 4in1 adapter 2.0 design in a future post if all goes well in my next prints.

2 Likes

The little extrusion that you mentioned, is it the tails that hang off the wall on the right print?

Yes. But if I do less extrusion for tip shaping I get clogging problems…