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

Hi Börn Thanks for the assistance. I appreciate the firmware you produced. I’ve been using it for a while now and I like it a bit better than uh John Carlson’s firmware Uh I think I have found maybe like one bug with it but I can’t recall off the top of my head what that was. I’m really good at slicing or I mean pretty Dang good at slicing, slicer operation but things that have to do with coding I don’t really know very much yet and that’s why I started using AI and yeah I know AI isn’t perfect it has helped definitely though for things after working through them and I’m learning along the way. I did recognize that there isn’t a replacement for human 3D printing enthusiasts/experts and posted here and facebook.

I was told of the M605 command there and implemented that. I think the wiping isn’t quite correct yet but the nozzles are parking on the new block locations. I’m working on Multi-Material with Foaming and Non-Foaming filament combined and it’s tricky. I bet one of the hardest material combos to get right but I’ve gotten it figured out enough to make pretty good parts. Still quite a bit to go to be near perfect but I should get there. I’m going to plan on looking into the firmware nozzle cleaning feature at some point too. The biggest thing that’s bothering me at the moment is the time to start printing I guess the heating stabilization. There is around 10c drift above and below for maybe 3 cycles before it starts printing. My Ender 3 will hit the print temp and almost immediately start.

I have the Sovol bimetal heat breaks installed and installed new Thermistors that are said to be High Temp NTC100 type which I think maybe the issue. I looked into the calibration factor and there wasn’t a clear consensus on what type to enable. I then found a forum where guys were talking about calculating and developing a chart (algorithm) from scratch but nobody there posted a new thermistor type/calibration. I think they are a low accuracy thermistor for hotend use or haven’t had the optimal calibration made for them for hotend. I think I should get different thermistors. Can you recommend a type for up to 350c accurate results or other pointers that maybe I could try in firmware building to get the printer to hurry up and get printing?

I’ll try to be more active here especially when I ask for help and have the help of you’re caliber.

Hi Brian_is,
I can’t recommend any thermistor types that meet your needs. Looking up typical thermistor types in the Marlin “Configuration.h” file & thermistor module subfolder plus checking their respective specifications & diagram charts should lead to quick results.
There are some aspects that should be taken into your considerations:

  • Changing the thermistors won’t change the heater power at all. The only improvement will be the accuracy of the heat regulation, which could be achieved by PID-tuning or firmware change with an improved thermistor lookup table or maybe a different temperature calculation model.
  • The longest heatup waiting time results from the heat bed, so it won’t help to speed up the nozzle heatup time at all.
  • The SV04 has been specified to run at a maximum temperature of 260°C. Everyone using my firmware version has been warned to go above 260°C. There have been positive user experiences up to 300°C, but if I would be in the need for a 3D-printer operating in the 350°C region, I would avoid potential fire hazards & obtain a model that has been specified for this…

/R
Björn