Laser Triangulation Makes 3D Printer Pressure Advance Tuning Easier

On its face, 3D printing is pretty simple — it’s basically just something to melt plastic while being accurately positioned in three dimensions. But the devil is in the details, and there seems to be an endless number of parameters and considerations that stand between the simplicity of the concept and the reality of getting good-quality prints.

One such parameter that had escaped our attention is “pressure advance,” at least until we ran into [Mike Abbott]’s work on automating pressure advance calibration on the fly. His explanation boils down to this: the pressure in a 3D printer extruder takes time to both build up and release, which results in printing artifacts when the print head slows down and speeds up, such as when the print head needs to make a sharp corner. Pressure advance aims to reduce these artifacts by adjusting filament feed speed before the print head changes speed.

The correct degree of pressure advance is typically determined empirically, but [Mike]’s system, which he calls Rubedo, can do it automatically. Rubedo uses a laser line generator and an extruder-mounted camera (a little like this one) to perform laser triangulation. Rubedo scans across a test print with a bunch of lines printed using different pressure advance values, using OpenCV to look for bulges and thinning caused when the printer changed speed during printing.

The video below gives a lot of detail on Rubedo’s design, some shots of it in action, and a lot of data on how it performs. Kudos to [Mike] for the careful analysis and the great explanation of the problem, and what looks to be a quite workable solution.

Thanks to [Keith Olson] for the tip.

8 thoughts on “Laser Triangulation Makes 3D Printer Pressure Advance Tuning Easier

    1. This article is about an automatic calibration procedure/method not about the linear advance itself which is really old af and completely standard everywhere.

  1. It does exactly what the headline says it does… makes something that’s a pain in the butt slightly easier. Any potential time savings tuning a 3D printer is absolutely worth it. Well done!

  2. This remembers me of the laser cutter kerf meter from a few days ago:
    https://hackaday.com/2023/05/03/kerfmeter-measures-laser-cutter-kerf-allowances-on-the-fly/

    In both projects, someone put a lot of effort to automate something for which it’s doubtful it needs automation at all. Both projects also have difficulties with automating it in a reliable way. As stated in the video, this pressure advance calibration needs a compatible build platform to get a nice picture from the laser, control of ambient light (and maybe other factors) and that is on top of he extra hardware (camera and laser pointer).

    And how often would you want to do this calibration? Probably just a few times for different sorts of filament, maybe for nozzle diameter. Is it worth it adding the extra hardware for that? That extra hardware also has cables that can get snagged, it makes the printer platform less accessible etc.

    And when you are adding extra hardware…
    On first sight it seems more logical to add extra hardware for directly measuring the pressure of the molten filament in the extruder.

    Ans as far as I know, this pressure advance becomes more important with very fast printers, and older and slower printers can’t even benefit much from it. It probably also depends a lot on the printer you have, and the stiffness between the extruder and the hot end. With a long bowden setup there will be a lot of stretch in the system.

    ———-
    Another Idea: Maybe you can partially compensate by printing the “odd” layers in the reverse direction. The Idea is that even without pressure advance the “thin” sections of the previous layer will then be filled by “thick” sections of the next layer, because acceleration and deceleration switch position when a layer is printed in reverse order.

    1. Would it work that way? The straight lines will be straight and the corners be corners either direction you go. It might help if the pressure starts high and goes low over time or vice versa… Especially if you don’t always print the outer layer first.

    2. Pressure Advance actually makes a huge difference no matter what speed you print at. I set it per nozzle+filament in Orca Slicer’s custom gcode.

      It should be available in Marlin firmware as well soon if not already. Up until recently it was only available in Klipper.

Leave a Reply to cron410Cancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.