Skip to content

V0.4 Troubleshooting Print Quality Issues

FormerLurker edited this page May 28, 2020 · 10 revisions

Under Construction

This page is currently under construction. I'm trying to get Octolapse V0.4 stable released ASAP at the moment, and this has led to some documentation shortcuts. As you might know, Octolapse V0.4 has a TON of documentation built right into the plugin that may help. Click on the various help icons (blue question marks) throughout the system to see detailed help on almost every setting. There are also help buttons that will show up for many error notifications. ALWAYS click on those if you need help.

Print Quality Issues

A lot of time and effort has gone into reducing the impact Octolapse can have on prints, but any time you move the extruder away from your print or otherwise interrupt the printing process, artifacts including blobs, zits, and stringing can occur.

Sometimes these problems are due to configuration problems within Octolapse. Sometimes they are related to your slicer settings or to other printer problems. Sometimes they are even related to the object you are printing. For example, you are a LOT more likely to have print quality issues when printing in vase mode or when using a very small layer height (like 0.10 mm).

In general, these print quality issues can be minimized, but they cannot always be entirely eliminated. Below I'll walk through some steps you can use to try to narrow down and hopefully minimize quality impacts.

Things to Check

Here are some common configuration issues and steps for solving them

Incorrect G90/G91 Influences Extruder Setting

The most common print quality issue I am seeing lately is due to to a pesky firmware behavior that causes the G90/G91 command to also affect the extruder axis. For these printers, sending a G90 is equivalent to sending both a G90 AND an M82. This is not really a problem for your slicer, because it can always just send both commands every time, and all printers will behave the same. However, if you must read and interpret Gcode, like Octolapse must, it is impossible to know the state of the printer without knowing the proper value for the G90/G91 Influences Extruder setting.

All printers running Marlin 2, a fork of Marlin 2, or Smoothieware, should have this setting enabled:

settings_g90_g91_influences_extruder_enabled

As far as I know, all other firmwares should have this set to false. Please let me know if there are any other firmwares that need this setting enabled.

Slicer Settings Incorrect

This used to be the biggest print quality issue I saw, but now that Octolapse supports Automatic Slicer Settings Extraction for compatible slicers, this has become much less of an issue. If you are NOT using the automatic slicer type, I recommend that you read this guide and set it up now.

If you are not using a compatible slicer or if you are a glutton for punishment and just don't want to enable the automatic settings, it is EXTREMELY important that you copy every required slicer setting from your slicer into Octolapse EVERY TIME your slicer settings change. For example, if you want to re-print a previously uploaded GCode file, you might have to change your Octolapse settings to match the old file. This is not an easy thing to do unfortunately.

Do NOT adjust the Octolapse slicer settings. They are meant to reflect your slicer settings EXACTLY. If you want to increase or decrease retraction length, you must do this BOTH within your slicer AND within Octolapse, and the final settings must match.

Try the Smart Triggers

The smart triggers use a reasonably sophisticated method that minimizes travel time and print quality impacts. The Smart triggers try to avoid taking snapshots over exterior perimeters AND attempt to minimize travel time. These two things alone can make a big difference. There are other benefits of using the Smart triggers, including a full timelapse preview BEFORE you start your print, so I recommend you check them out!

Enable Verbose Gcode for Slic3r and PrusaSlicer

If you are using the Smart triggers and a Slic3r variant (including PrusaSlicer), you DEFINITELY want to enable verbose Gcode. This tells the Smart triggers what kinds of features are printing. These triggers prefer to take snapshots while printing infill, wipe towers, or interior perimeters, and they work hard to prevent snapshots taken over exterior perimeters. See this guide showing how this can be done.

Reduce the Snapshot Time - Increase Quality

Every millisecond the extruder is not printing will increase the chance of oozing and artifacts. If your snapshots are taking a long time (many seconds), it may be virtually impossible to eliminate all artifacts. There are a few things you can do to reduce the snapshot time:

  1. Do NOT use a DLSR - If you are having bad quality problems, a DSLR is not for you. These generally take 2-3x longer than webcam snapshots. There are some ways to reduce DSLR delays, but they will always be slower than a webcam by a significant margin.
  2. Reduce your camera delay - The camera profile has a setting called Snapshot Delay. The default is 125MS, which isn't a whole lot, but every millisecond adds up. I recommend starting with 0 and increasing by 25MS until you get a smooth timelapse. The goal is to get this number as small as possible while still having a high quality timelapse video.
  3. Increase your webcam framerate - On average, there is a delay of (1/framerate)*0.5 seconds for every snapshot that is taken. Doubling the framerate will cut the delay in half on average. For example, at 5FPS an additional delay of 100MS will be added on average for each frame. At 30FPS the delay is just 16MS. The returns diminish pretty rapidly after 30FPS, so trying to go to 60FPS may be overkill. I usually use 15FPS, because I find that 32MS is an acceptable delay. Some browsers (Firefox) seem to have a problem running an mjpg-stream at high framerates, so if you experience a lot of delay or lag while viewing your camera stream at a high framerate, turn it down a bit.
  4. Change your stabilization position - I know that the magical look of a timelapse without the extruder is very appealing. However, it is not good for your print quality. Ideally, your extruder will be centered over your printed part, which will minimize travel time. The less time spent traveling, the less time for oozing. If you combine this with the new Smart Layer trigger, your travel time may be GREATLY reduced since this trigger will also attempt to minimize travel time. If you insist on having the extruder completely out of the way, try to move it just far enough away to keep it out of the image. Moving your webcam may help, if it means you can hide the extruder while keeping it closer to your printed part.
  5. Increase your travel speed - This one seems obvious, but the faster your printer travels, the less time it will take to capture a snapshot. However, if the speed is too high, it may cause additional vibrations that may affect print quality. This is a balancing act, but I find that for me, higher travel speeds are, in general, better than slower ones, at least to a point.
  6. Try the Smart - Snap To Print trigger type - I recommend setting your camera delay to 0MS when using this trigger, and increasing your framerate to around 30FPS in order to minimize snapshot time. When using the Snap To Print trigger, your extruder will never leave the printed part, completely eliminating travel time. There still will be a small delay caused by the M400 command and by acquiring the snapshot, but it can be extremely low (hard to see, in fact). Your timelapse may not be perfectly stable depending on the print, but the quality and time impact should be greatly reduced. You may also want to try the Smooth and High Quality snap to print triggers. Note that none of the high quality triggers will work for vase mode prints.

Tune Retraction Length, Speed, and Extruder Temps

If your printer fails at stringing/retraction tests, Octolapse will only make things worse. It's important that you dial in your printer before using Octolapse, else you may be disappointed.

I recommend trying a stringing and temperature tower test print without Octolapse enabled to get things dialed in first. Once you have your retraction length, speed, and printing temps dialed in, you will have a MUCH better chance at getting great quality when using Octolapse.

Important Note - If your printer uses a bowden style extruder, it is doubly important that your settings are dialed in. I had one of these for a brief period, and though I was able to eventually get good results, it was MUCH more difficult to dial in than my direct drive extruder. Keep this in mind while you are thinking about the source of your stringing problems.

Turn Up Your Layer Height

Printing with low layer heights will exacerbate oozing and corralling issues. On average, the same amount of filament will ooze from your nozzle in any given amount of time, regardless of the layer height. However, if your nozzle is closer to the previous layer, the oozed material will be squished farther, causing bigger artifacts. I find that 0.2mm+ layer heights seem to work great. The quality impacts seem to increase as you go down from there.

Speed Up Your Hardware

OctoPrint and Octolapse are inherently limited by the hardware they are running on. A Raspberry Pi, which is typically what is used to run Octoprint, is not a speed demon, but in most cases it will run just fine.

Here are a few tips for getting the most performance from your Raspberry Pi (or for ditching it).

  1. Consider getting a faster SD card - I just upgraded by SD card to a 90MB/S card, and it has really increased general performance. My Pi boots up way faster, OctoPrint is snappier, and I've noticed that my image acquisition time has dropped, ESPECIALLY for high resolution snapshots. If you are using anything lower than a class 10 SD card, I DEFINITELY recommend that you upgrade to the fastest card you can get.
  2. Consider getting a faster Pi - RPi 1 and RPi Zero are absolutely not suitable for Octolapse. A Pi2 can work well, provided it is not overloaded and your webcam isn't operating at a very high framerate and resolution. Still, a Pi3B+ or above is recommended.
  3. Check your power supply - This has been a problem with OctoPrint running on a Raspberry Pi for a long time. It is ESSENTIAL that your Pi is powered properly. Any notification from OctoPrint showing that your Pi is underpowered should be taken VERY seriously. Resolve this as soon as possible. The types of strange bugs I've seen that have been tracked back to the power supply are a source of nightmares for me. In short, make sure you get a super beefy power supply and a proper power cable for it.
  4. Cool off your Pi - This issue is not quite as common as the power supply problem, but I've actually had it myself. If your Pi is overheating, the clock rate will be reduced, slowing your Pi, sometimes dramatically. Heatsinks are cheap and pretty effective, so try one of those. Make sure your Pi has adequate air flow, and consider adding a fan if you are unable to get it running cool. Octoprint 1.4.0+ will show overheating errors within the interface.
  5. Check your USB Cable - This is also a very common source of print quality problems. Your cable should be high gauge and be terminated with a ferrite core. Check your terminal tab while printing. If you see numerous resend requests, there is probably a problem with your USB cable.
  6. Check your Gcode - Sometimes slicers add more resolution that is necessary to get a good print. There are several Gcode visualizers out there that show every segment endpoint, like ncviewer. If you see an extremely high number of points right around where you are seeing quality issues, you could be experiencing stutter. Octolapse will make this problem even worse, since it introduces more delay to the process.
Clone this wiki locally