While working on configuring an mk2 on a neptune 2 I have whenever it switches to extruder 2 the change gcode block executes but once the print procedures begin the printer switches to extruder 2 on the screen and being there is no extruder hooked to the board for extruder 2 no filament feeds during the printing process. Im using prusa slicer so how would you tell a printer that has two extruders (as the board on the neptune 2 is two extruder capable) to only use extruder 1 when trying to use extruder 2 of the 3D chameleon kit?
To see this working, head to your live site.
Remove the references that are just T0, T1, etc in the tool change code. That's the only thing telling Marlin to switch the physical extruder. All of our code doesn't need it.
So I don't think that was it. I took out all the references to the T{extruder} variables and by the looks of things its adding the T# at the end of the tool change custom g-code. The odd part is I have the option for single extruder multiple material selected so Im pretty sure it shouldnt be adding these lines. Wonder if its a bug...
Yea, I think it was a bug in the version I was using (2.3.3). I grabbed the 2.4.0 version they had available from the prusa site and taking a look at the gcode it produces it no longer has the various T# that was in the gcode file. When the printers done with the test print its doing now Ill confirm with the new gcode produced by 2.4.0
Nope, I dont see any T1 lines in the gcode file but I do see T3's. So I have no idea why this printer is jumping to extruder2 after a filament load for extruder 2. What I did to get around it temporarily is to disable the single nozzle multi material setting which put the T# in for each tool change and simply replaced all T1 with T0 and that worked.... still puzzled though
So... if you're seeing any T commands, that's coming from the Tool Change GCode... one simple thing you can do is force it by just putting a T0 at the top of the Tool Change GCode... that way, if it does insert a T command, it will immediately go right back to T0.
M82 ; turn absolute distances for the extruder
G92 E0
; go to holding position to unload the stock extruder
G0 X6 Y211 F2000 ; <<----- EDIT THIS LINE TO SET THE INITIAL LOCATION OF THE BUTTON
G91 ; move to relative mode
{if previous_extruder>-1}
; cool (and size) in 1.8mm tube
G0 E-20 F2800 ; 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 F2800 ; quickly retract the filament to shape it
G0 E-10 F600; slowly allow it to cool
G0 E1 F2800 ; blob elimination
G0 E-10 F2800 ; quickly retract the filament to shape it
G0 E1 F2800 ; quickly ram the filament to shape it
G0 E-10 F2800 ; quickly retract the filament to shape it
G0 E1 F2800 ; quickly ram the filament to shape it
; back to 1.8 constriction
G0 E-50 F2800 ; 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
G92 E0
G0 E-165 F2000
; out of extruder - press button to remove it all the way
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
; 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 to let it unload
G0 X3 Y3 F2000 ; press the button
G4 S6 ; <<---- INCREASE VALUE (S = Seconds) TIME IF IT DOESN'T UNLOAD FROM THE Y ADAPTER
G0 X-3 Y-3 ; back off the button
{endif}
; 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 to load
G0 X3 Y3 F2000 ; press the button
G4 S6 ; << ------- INCREASE THE S10 (S = Seconds) VALUE TIME IF IT DOESN'T LOAD INTO THE STOCK EXTRUDER - This should match the above unload time
G0 E15 F1500 ; << ------- ADJUST THE E50 VALUE TO STOP IT RIGHT AFTER IT LOADS INTO THE STOCK EXTRUDER (50mm is the default)
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 absolte mode
M83 ; but make sure the extruder stays in relative
; reload filament all the way into extruder
G92 E0
G0 E345 F2000 ; <<<<<----------- EDIT THIS DISTANCE TO FINE TUNE THE FILAMENT LOADING TO STOP BLOBBING OR UNDEREXTRUSION
G92 E0
M83 ; turn relative distances for the extruder
M106 ; turn fans back on
Doh... meant to add a comment. That is the tool change code in the custom gcode section. As youll see in it there is absolutely no T commands inside it and in the generated gcode file from prusa slicer the T# are a line under the last "M106 ; turn fans back on" line which leads me to believe prusa slicer is adding the code for some reason or another. Not sure why it would be doing this or if its a change in the slicer since I dont recall seeing them in previous versions of prusa until I upgraded to version 2.3.3 and now 2.40
So one idea that has come to mind that might fix it all is if you simply put the code "T0" in the "Before layer change g-code" section of the custom gcode functionality. I havent tested the output yet but the T0 command looks to fall in the right spot.
I just added a new thread for the PrusaSlicer issue. I've created a Python script that will automatically switch the active extruder back to T0.