top of page

Forum Comments

3D Chameleon, Klipper, Ender 5, SKR E3 Mini
In Getting Started
3D Chameleon, Klipper, Ender 5, SKR E3 Mini
In Getting Started
norm
Aug 11, 2023
Sorry this setup is for using a relay (or direct connect) to trigger the 3d Chameleon. I would suggest you modify SET_PIN PIN=3dchameleon VALUE=1 G4 P500 ; dwell for .5 seconds - adjust this to match your machines single pulse time SET_PIN PIN=3dchameleon VALUE=0 to what comes from the automated gcode generator. If you have a direct connection or a relay to PG10 to act as your switch, see below but you don't need both. I use a relay because, well, I had one, and I don't have to worry about different grounding on the boards and voltage differences. YMMV If you have the PG10 connected to act as the button, then you need this in your printer.cfg: [output_pin 3dchameleon] ; <------ this is the name you give the pin, and use in the macros pin: PC15 ;<------------------change this to your pin! # The pin to configure as an output. This parameter must be # provided. #pwm: False # Set if the output pin should be capable of pulse-width-modulation. # If this is true, the value fields should be between 0 and 1; if it # is false the value fields should be either 0 or 1. The default is # False. #static_value: # If this is set, then the pin is assigned to this value at startup # and the pin can not be changed during runtime. A static pin uses # slightly less ram in the micro-controller. The default is to use # runtime configuration of pins. value: 0 # The value to initially set the pin to during MCU configuration. # The default is 0 (for low voltage). #shutdown_value: # The value to set the pin to on an MCU shutdown event. The default # is 0 (for low voltage). #maximum_mcu_duration: # The maximum duration a non-shutdown value may be driven by the MCU # without an acknowledge from the host. # If host can not keep up with an update, the MCU will shutdown # and set all pins to their respective shutdown values. # Default: 0 (disabled) # Usual values are around 5 seconds. #cycle_time: 0.100 # The amount of time (in seconds) per PWM cycle. It is recommended # this be 10 milliseconds or greater when using software based PWM. # The default is 0.100 seconds for pwm pins. #hardware_pwm: False # Enable this to use hardware PWM instead of software PWM. When # using hardware PWM the actual cycle time is constrained by the # implementation and may be significantly different than the # requested cycle_time. The default is False. #scale: # This parameter can be used to alter how the 'value' and # 'shutdown_value' parameters are interpreted for pwm pins. If # provided, then the 'value' parameter should be between 0.0 and # 'scale'. This may be useful when configuring a PWM pin that # controls a stepper voltage reference. The 'scale' can be set to # the equivalent stepper amperage if the PWM were fully enabled, and # then the 'value' parameter can be specified using the desired # amperage for the stepper. The default is to not scale the 'value' # parameter. Did that answer your question?
3D Chameleon, Klipper, Ender 5, SKR E3 Mini
In Getting Started
norm
Aug 10, 2023
Update: SUCCESS!!! I now have it working in Klipper, on an Ender 5 with direct drive. I will eventually upload the entire config with pictures to a Github for others to see. A couple of notes. I still have a bit of work to do on the tip forming. I still get strings on the filament sometimes, which don't seem to cause a problem but twice got bigger blobs which plugged my all metal Dragonfly hotend. I am not happy with how PrusaSlicer does the purge tower. It tends to blob out a bunch of filament and then run a few lines but its messy and leaves the extruder tip unclean - I get some mixing of the colors as a result I believe. All of the code is in Klipper as macros. The only thing I added to the Slicer under Tool Change G-code was to prevent oozing affecting the print and to give the extruders the best angles to draw the filament out - G0 X10 Y10 Z5. Not required, but it really helps for me. The klipper macros are as follows: Unload_Extruder - extracts the filament from the extruder - mostly used by other macros. Load_Extruder - feeds the filament through the machine extruder to the tip - mostly used by other macros. Unload_and_Home - extracts the filament from the tip and retracts the filament into the 3d Chameleon, then homes the 3d Chameleon. Load_and_Home - Homes the 3d chameleon and feeds filament 0 to the machine extruder, then loads to the tip. T0 to T3 - checks which filament is loaded, and if not that filament, it unloads then loads the correct filament (Please note, below I only have T0 and T1 but T2 and T3 are exactly the same only changing the pulse time. I saw somewhere else someone talking about G4 Sss doesn't or you have to add time, etc., well Klipper doesn't support G4 Sxx it only supports G4 Pxxx! P should be multiples of 500 for each half second. I hope it helps someone! [gcode_macro Unload_Extruder] gcode: ; Unload the extruder ;begin switch from extruder {previous_extruder} to extruder #{next_extruder} M117 Unloading Tool current extruder M118 Unloading Tool current extruder G91 M82 ; turn absolute distances for the extruder ; unload extruder {previous_extruder} G0 E-20 F4000 ; quickly retract the filament to shape it G0 E-10 F600; slowly allow it to cool G0 E28 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 E28 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 E28 F4000 ; quickly ram the filament to shape it ; back to 1.8 constriction G0 E-20 F4000 ; quickly retract the filament to shape it G0 E-20 F100; slowly allow it to cool M118 Finishing up G92 E0 G0 E-80 F2000 G92 E0 G4 P5000 M400 M118 Done! G90 M83 [gcode_macro Load_Extruder] gcode: M83 ; but make sure the extruder stays in relative G92 E0 G0 E100 F2000 ; <<<<<----------- EDIT THIS DISTANCE TO FINE TUNE THE FILAMENT LOADING TO STOP BLOBBING OR UNDEREXTRUSION M83 ; turn relative distances for the extruder G4 P1500 ; This is just a half second extra reloading time... just to make sure M400 G90 M83 G92 E0 [gcode_macro Unload_and_Home] gcode: {% set svv = printer.save_variables.variables %} {% if svv.currentool == -1 %} M117 Already Extracted M118 Already Extracted {% else %} Unload_extruder M82 SET_PIN PIN=3dchameleon VALUE=1 G4 P2750 ; dwell for .5 seconds - adjust this to match your machines single pulse time SET_PIN PIN=3dchameleon VALUE=0 ;G4 P15000; wait for it to happen ; adjust this time to match t {% endif %} SAVE_VARIABLE VARIABLE=currentool VALUE='-1' M400 G90 M83 [gcode_macro Load_and_Home] gcode: {% set svv = printer.save_variables.variables %} {% if svv.currentool > -1 %} Unload_and_home G4 P10000 M117 Loading... M118 Loading... M83 SET_PIN PIN=3dchameleon VALUE=1 G4 P2250 ; dwell for .5 seconds - adjust this to match your machines single pulse time SET_PIN PIN=3dchameleon VALUE=0 G4 P10000; wait for it to happen ; adjust this time to match t M400 Load_extruder SAVE_VARIABLE VARIABLE=currentool VALUE='0' G90 M83 G92 E0 {% else %} M117 Loading... M118 Loading... M83 SET_PIN PIN=3dchameleon VALUE=1 G4 P2250 ; dwell for .5 seconds - adjust this to match your machines single pulse time SET_PIN PIN=3dchameleon VALUE=0 G4 P10000; wait for it to happen ; adjust this time to match t M400 Load_extruder SAVE_VARIABLE VARIABLE=currentool VALUE='0' G90 M83 G92 E0 {% endif %} [gcode_macro T0] gcode: {% set svv = printer.save_variables.variables %} {% if svv.currentool == 0 %} M117 Already T0 M118 Already T0 {% else %} Unload_Extruder M83 M400 SET_PIN PIN=3dchameleon VALUE=1 G4 P500 ; dwell for .5 seconds - adjust this to match your machines single pulse time SET_PIN PIN=3dchameleon VALUE=0 G4 P15000; wait for it to happen ; adjust this time to match the actual tool change time - subtract the time it takes to load for the last 1" into the extruder ;G4 S30 M400 Load_Extruder M400 SAVE_VARIABLE VARIABLE=currentool VALUE='0' {% endif %} M117 Tool T0 M118 Tool T0 G90 M83 G92 E0 [gcode_macro T1] gcode: {% set svv = printer.save_variables.variables %} {% if svv.currentool == 1 %} M117 Already T1 M118 Already T1 {% else %} Unload_Extruder M83 M400 SET_PIN PIN=3dchameleon VALUE=1 G4 P1000 ; dwell for 1 seconds - adjust this to match your machines single pulse time SET_PIN PIN=3dchameleon VALUE=0 G4 P15000; wait for it to happen ; adjust this time to match the actual tool change time - subtract the time it takes to load for the last 1" into the extruder ;G4 S30 M400 Load_Extruder M400 SAVE_VARIABLE VARIABLE=currentool VALUE='1' {% endif %} M117 Tool T1 M118 Tool T1 G90 M83 G92 E0
3
3
3D Chameleon, Klipper, Ender 5, SKR E3 Mini
In Getting Started
norm
Aug 05, 2023
Update: I could not get it to work in mode 1 (direct drive). There just wasn't enough power in the stepper to make it happen. So, I went back to mode 2. But before I could start testing again I had to install direct drive on the printer again, calibrate and make sure I was printing well. Specifics - From the point the filament enters the extruder and to the hot end it is 118mm. This machine is running Klipper so the macros are being moved into Klipper. Below are my macros at the moment. The only difference between t0, t1, t2 and t3 are the time it spends with the button pushed. This is first draft but I want to add some variables in this so that Klipper knows which tool it is on at any given time. I also want to add a homing to the 3d Chameleon, to the homing code. So I'm making progress. Any comments or suggestions are welcome. Should I move this someplace else cause I guess I'm not really 'getting started' anymore :) [gcode_macro T0] gcode: ;ACTIVATE_EXTRUDER EXTRUDER=extruder ; - 3D Chameleon Mk3 Tool T{next_extruder} - ;begin switch from extruder {previous_extruder} to extruder #{next_extruder} M117 Unloading Tool current extruder M118 Unloading Tool current extruder M82 ; turn absolute distances for the extruder ; unload extruder {previous_extruder} G92 E0 ; go to holding position to unload the stock extruder G0 X100 Y9 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 M82 ; 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-20 F4000 ; quickly retract the filament to shape it G0 E-18 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 G92 E0 ;G0 E-0 F2000 G92 E0 ;G0 E-30 F2000 ;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 ; load extruder #{next_extruder} ; M117 Loading Tool T{next_extruder} ; press the button to select the new extruder G0 X0 Y-3 F2000 ; press the button G4 P500 ; dwell for .5 seconds - adjust this to match your machines single pulse time G0 X0 Y3 ; back off the button G4 S15; wait for it to happen ; adjust this time to match the actual tool change time - subtract the time it takes to load for the last 1" into the extruder G0 E118 F3000 ; << ------- ADJUST THE E50 VALUE TO STOP IT RIGHT AFTER IT LOADS INTO THE STOCK EXTRUDER (50mm is the default) ; ADJUST THE F1500 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 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 F2000 ; <<<<<----------- EDIT THIS DISTANCE TO FINE TUNE THE FILAMENT LOADING TO STOP BLOBBING OR UNDEREXTRUSION ;G92 E0 M83 ; turn relative distances for the extruder M117 Tool T0 M118 Tool T0 G0 X110 Y110 F3000
1
0
3D Chameleon, Klipper, Ender 5, SKR E3 Mini
In Getting Started

norm

More actions
bottom of page