Meet Hairy

In other articles, I mentioned the stringing, strands of light filament threads that are dragged out from the FDM print as the printer nozzle makes a non-printing jump move away from the printing surface to a new start location. It is caused by hot plastic flowing from the nozzle after it has been commanded to stop the flow.

Several adjustable factors are used to prevent this extra undesired flow. Retraction (reversing filament feed briefly) is the primary method to reduce or eliminate stringing. Temperature settings, retraction speed, retraction amount, pause, wipe, early stop, the list of “tweaks” seems endless. Sometimes it is an art rather than hard science to get the correct combination.


Cetus2 has a new flow control factor that I discovered that is quite effective. The new UP Studio3 slicer inserts a a “G9” CNC gcode command at the first line of every jump move in the control code. The code here is usually a G0 or G1 “rapid move” command in most if not all other slicer software. This may be an add-in when the color-change purge tower was added to UPStudio3, as that is where it functions most notably.

The G9 is so rare, I had to look it up to see what it does. Marlin g-ocode does not list it at all. But FANUC and FADAL (Machinist CNC controls) do have it identified. 

G9 is a slow-down move command rather than the “rapid” moves of GO and G1. FANUC reports G9 as a “full stop at end” but that is not true when used once in FADAL g-code. So definaition varies.

How Tiertime UPStudio3 actually implements the G9 code, I have no idea. I have asked but it seems a trade secret. In any case it must control the start, acceleration, and deceleration, of the jump move. However it works, it does the job very well. Jumps still appear to be very rapid.

There is a “DEF G9… line of g-code near the start of the file (following just after the special and required “PROM2” command), that must be used to define the G9 functions. This "DEF" code line was missing on my copy of UPStudio3 slicer but I found it used (listed) when reverse engineering the example g-code in 3D print files supplied with the Cetus2.

When I wrote it into the “start print” script sequence, my purge tower stringing issues immediately ceased. It’s the “secret code” for curing my unwanted threads!

Here is the missing code:

DEF G9 SET V220 V23, SET V23 3, G0 E-30,G9 X{X} Y{Y} Z{Z} H{H},G0 E30, SET V23 V220

I contemplated not publishing the code here as it may certainly be something that is fixed in the next release of UPStudio3 or built into Cetus2 as automatic. I have a pre-production release of Cetus2 so many things such as this are subject to change and improvement in the release version. 

It may have a function with setting up the “Nozzle3” mixing. I have no idea what the various Vxxx statements imply.

It also appears to do a 30mm filament retract and feed, so I re-set my default retract (in UPStudio3) from 20 to 30. Please be aware, with CETUS many factors are hugely exaggerated in gcode. Actual retract is certainly less.

G9 is almost never used in the machine tool code where execute time is money. It slows down machining. But adds accuracy as it helps reduce and remove slight over-travel from rapid moves. Perfect use for 3D printing.

The pictures below in the right column show the extreme clean 2-color prints where there is usually some stringing travel between the print and purge tower. 

The secret code works for me!