Skip to content

Ooze Preventions System

Ryan Jarvis edited this page Dec 15, 2018 · 3 revisions

Ooze Preventions System

Since version 0.35 the firmware supports an ooze prevention system. The basic idea behind this is to retract the filament a bit after the last print move and push it back before the next print move. During the travel between these moves, the ooze is not fast enough to flow outside. This method equals opsMode=1 and is well known by users of Skeinforge and other slicing software. In fact, it mimics the same behavior, which is why it is called the classic mode.

Fast mode

Fast mode differs a bit from this behavior. For the following explanation, a retract distance of 3mm is assumed, which is a good value to start. In classic mode, the printhead waits, until the full distance is pushed back. In fast mode, we can set this to a value between 0 and 100% of the retract distance. After this distance is retracted, the printhead starts moving, while we still continue until our full retraction is reached. The next difference is the pushing back. In classic mode, the printer starts pushing the filament back, after it reaches the next print position. In fast mode, the look ahead algorithm detects a change from travel to print. It will start the push back during this move, so that it is nearly finished when the printer reaches the next print position. This reduces the waiting time a second time. An optimization, that is done in both modes, is the minDistance optimization. If the travel move is shorter than minDistance, no retraction is done at all. This is needful during infill, if the angle between infill and perimeter needs a short travel move. Disabling retraction for this case has no side effect on print quality. The trick is to find a value, that only catches these moves and no moves between different print areas.

Fast mode demo

Video with fast mode

In the video above, you can see the fast mode in action. The settings were 3mm retract, start after 50%. This happens all quite fast, so the video was taken with 120 images/second. The result had the same quality as the classic mode, it was only printed faster.

Controlling OPS

Make sure you compiled firmware with OPS support. Look for

#define USE_OPS 1

in the configuration.h

The following values control the OPS system:

  • OPS_MODE : Operation mode: 0 = Off, 1 = Classic mode, 2 = Fast mode.
  • OPS_MIN_DISTANCE : Minimum travel distance, to activate retraction.
  • OPS_RETRACT_DISTANCE : How many millimeter must the filament retracted
  • OPS_MOVE_AFTER : For fast mode, after how much percent retraction is a head move allowed.
  • OPS_RETRACT_BACKSLASH : How much millimeter do we need for backslash compensation.

After the first installation, the values are taken from the configuration.h file. If you compiled with EEPROM-support, you need to change the values using the corresponding commands.

If you want a temporary change, you can also use the M231 command:

M231 S[OPS_MODE] X[Min_Distance] Y[Retract] Z[Backslash] F[RetractMove]

If you call M231 without parameter, you will see the current settings.