Start and Tool Change code optimization (in slicer)

Hey Sovol Forum I could use a little help maybe and thought I’d reach out. I’ve been trying to improve start and filament change gcode and being not that knowledgeable with gcode and programming I decided to try using AI to help me with it. There have been successes definitely but it’s also seeming like two steps forward one step back.

What I did was basically spend time watching the printing process, noting observations and came to the conclusion that nozzle wiping would be more effective If I swapped the purge bucket silicone wiper nozzle block from the left side to the right and the right side to the left. What that does is allows for the nozzle to be wiped on both sides of the silicone block.

It really does work better, the problem I’m facing now is with getting the nozzles to be parked centered on the blocks when at idle. The best I’ve achieved is T1 or the right extruder to park on the block some of the time it seems like but not both Not 100 percent of the time when they should be.

I’m being told that (Auto Park Mode) is fighting the start/filament change code and forcing the extruders often mostly to default park at their end stop location instead of the coordinates that I specified.

Here is that latest previous attempt to gain proper control of the tool parking location and timing. The M605 S1 wasn’t changed yet in the Start now I notice it like it was in the change code.

M605 S1 ; Auto-park mode

G28 ; Home all axes

G34 ; Z-alignment

G90 ; Absolute positioning

; Heat bed first

M140 S{first_layer_bed_temperature[0]}

M190 S{first_layer_bed_temperature[0]}

; Park T0 and start heating

T0

G1 X-33 F3000 ; Move to block

M104 S{first_layer_temperature[0]}

; Park T1 and start heating

T1

G1 Z20 F3000

G1 X340 F3000 ; Move to block

M104 S{first_layer_temperature[1]}

; Wait for both to heat

M109 T0 S{first_layer_temperature[0]}

M109 T1 S{first_layer_temperature[1]}

; Switch to starting tool

T{initial_tool}

G92 E0

Try M605 S0 (full control mode):

This disables ALL automatic parking. You manually control where both tools go.

Updated START G-CODE:
M605 S0 ; Full control mode (no auto-park)

G28 ; Home all axes

G34 ; Z-alignment

G90 ; Absolute positioning

; Heat bed

M140 S{first_layer_bed_temperature[0]}

M190 S{first_layer_bed_temperature[0]}

; Move T0 to block and heat

T0

G1 Z20 F3000

G1 X-33 F3000

M104 S{first_layer_temperature[0]}

; Move T1 to block and heat

T1

G1 Z20 F3000

G1 X340 F3000

M104 S{first_layer_temperature[1]}

; Wait for temps

M109 T0 S{first_layer_temperature[0]}

M109 T1 S{first_layer_temperature[1]}

T{initial_tool}

G92 E0

I wonder still even though I just caught the start code irregularity. AI mentioned that the Auto Park is a firmware thing. I asked if it can’t be solved in the Orca Machine Code if I could/would be able to modify that. The answer was yes though it was suggested to try the Orca Code first.

Could I or A.I. be missing element(s) that should be in (Before layer change G code, Layer change G code, or change extrusion role G code) or Is this definitely a matter that needs to have a firmware modification to allow?

These little optional fairly granular type improvements are those that I’m just now getting into after years of printing. It’s become necessary at this point for my sanity working with this thing…

I’d appreciate professional insight if you would.

Thanks

Hello Brian_is & welcome to the forum!
I suspect that the AI hasn’t yet found any documentation stating that changing the SV04 extruder parking positions has the drawback that the currently active extruder can no longer reach the entire print bed without colliding with the parked extruder… For this reason, the extruder parking positions are located at the ends of the X-axis.
If you don’t want to deal with modifying the firmware and activate the NOZZLE_CLEAN_FEATURE in the Configuration.h file or change X_HOME_POS, X2_HOME_POS, X1_MAX_POS and X2_MIN_POS settings, I’d recommend creating a slicer script for tool change that moves the active extruder to its silicone block before the other extruder is selected as the active toolhead. The slicer start script needs to contain M605 S0 (Full control mode) as written above.
BTW: The current start script order is not very clever: Setting the target temperatures for both nozzles (M104) and hot-bed first (M140) should happen first, homing (G28) should be done after temperatures have been reached. It is sufficient to run Z-alignment (G34) once during printer setup, it won’t be necessary before every print. Loading the mesh is (M420 S1 Z2) also a good idea if your hot-bed is not perfectly plain.

Good luck!
Börn