Extrusion inconsistency and how it affects Palette printing
Palette must ensure the right filament shows up at the extruder/nozzle at the right time—but printing is not a perfect science. A number of factors can cause small differences between estimated filament usage (stated in GCode) and actual filament usage, such as:
- Skipping
- Filament diameter inconsistency
- Imperfect first-layer adhesion
- Moisture
- Filament brand/color physical property differences
When printing with only one filament, if a GCode file states that it will use 10 m of filament, but the printer actually uses 9.5 m, it is typically unnoticeable: the filament showing up in the print will be the same color/material regardless of where it is from in the spool. However, when creating precise multi-color and multi-material prints with Palette, an offset of 0.5 m would result with incorrect colors.
Because of the importance of precise filament positioning for Palette prints, we created two systems to keep the right filament showing up at the right time. These systems are called Pinging and Ponging. They're Palette's closed-loop feedback systems that allow Palette to adjust filament lengths during prints to keep everything in calibration. Pinging uses Palette's scroll wheel/encoder, while Ponging uses Palette's buffer system.
What is the Scroll Wheel?
In earlier generations of Palette v1.0 and Palette+, the scroll wheel/encoder was a separate assembly between Palette and the printer.
With Palette 2 and 3, the scroll wheel/encoder is actually built into the unit, so there's no need to attach this to your printer physically. For Palette 2, an internal calibration can be performed for the ingoing drives and the encoder.
On Palette 3, the encoder can be tested using x-ray mode.
The Scroll Wheel/Encoder uses its filament-measuring capabilities to record Pings.
What is Pinging?
A Ping is a checkpoint in a print. These checkpoints help us understand how much filament the printer was supposed to use at that point during the print.
Every time a ping occurs, Palette compares how much filament has been used with how much the printer was supposed to use (in the GCode): "The printer sent us a Ping, which means we're 10% of the way through the print. We have used 5m of filament, but according to the SEEM file (.maf, .mafx, .mcfx) from Canvas, we should have used 5.2m by now." Palette then uses this information to adjust future filament segment lengths. When a ping is logged, it will display this figure as a ping offset percentage (e.g. 98% ping means that there was 2% difference between how much filament was actually extruded, to how much was expected at that point during the print).
As prints progress and Palette continues logging pings, the desired results are consistent pings over time. Pings don't have to be 100% for the entire duration of the print, consistency in the ping offsets is still acceptable. For example, a ping log can have most of the pings be 97-98% and still result in a well calibrated print.
Ping data from each print is used to tune the printer profile saved on Palette. After each completed print, Palette will prompt to either save or ignore the calibration data from that print. Saving the calibration data will tune the printer profile so that future splice lengths will be adjusted to match closer to the extrusion from previous prints, while ignoring the data can be done if the pings were inconsistent. Saving the data will affect the HM (historical modifier) on the printer profile, which represents the average of pings for this printer.
Extrusion Based Pings in Accessory Mode
If you are printing with accessory mode, you may find yourself wondering "why does the printer pause over the transition tower?", these are Pings. Pings (and transition/purge towers) are added to the GCode when the file is processed by Canvas. The Ping Signature is a set of unique and recognizable GCode commands that Palette identifies as a ping (using the Scroll Wheel/Encoder). Currently, the Ping Signature is a 13-second pause, 20mm of extrusion, and then another 7-second pause, after which the print resumes.
Digital Pinging
If you're using Palette 2 with a CANVAS Hub, or Palette 3 in connected mode, we use something called Digital Pinging, where GCode is transmitted using a USB cable between Palette and the printer. It passes pings between the two so, instead of waiting for pauses (like in accessory mode), communication is instant. This digital pinging means that Palette never misses a check-in.
Troubleshooting Pings
Large fluctuations from one ping offset to the next can cause filament lengths to become inaccurate, subsequently affecting the color results. If you experience ping offsets that jump greatly in percentage, we recommend performing extruder calibration on the printer to help improve extrusion consistency.
Error 134 - Pings dropping below 50%
This error occurs if the pings drop below 50%, which can be due to a broken splice, an issue on the extruder, or a large splice getting stuck in the filament path preventing extrusion. This error sometimes coincides with air printing. With this error we recommend:
- Examine the quality of splices and perform splice tuning, taking note if splices are large and getting stuck along the filament path inside Palette or the extruder, or if splices are thin which prevents it from being engaged with the extruder.
What is Ponging?
While Pinging creates a feedback loop with the printer and handles discrepancies associated with printer extrusion, Ponging allows Palette to account for any discrepancies in its drive systems that may cause errors in how much filament Palette is producing.
In order to explain Ponging, we first need to explain the Buffer System. It allows Palette's filament production and a printer's filament consumption to be asynchronous (operate at different speeds). If you observe the buffer while Palette is printing, you will notice that once filament or the buffer tube on P3 reaches the minimum switch, filament from the splice core will be driven into the buffer, and if needed more filament will be driven from the inputs either as a solid length or for a splice. When filament or the buffer tube makes contact with the switch, it's Palette's way of saying, "we're ready to make more filament!"
Ponging is like Palette's version of a 3D printer homing its axes. Some printers have homing sequences upon startup during which they may move the extruder to trigger some limit switches in its X, Y, and Z axes. This sort of a homing sequence helps a printer understand its extruder's absolute position (as opposed to a relative position). Similarly, when the filament or PTFE tube in Palette's buffer region triggers the buffer switch, Palette can "home the buffer loop."
With this information, Palette is better able to understand more precisely how much filament it has produced, and adjusts the future filament production to account for past inaccuracies.
Since Palette 2 and 3's scroll wheel/encoder is inside the unit, ponging is initiated by a switch within the buffer area.
Palette 2 buffer - one switch activated.
Palette 3 buffer and tube - two switches for minimum and maximum buffer size.
Where do I find ping and pong information?
For Palette/Palette+, this information is found on Palette's screen. You can also save logs of your pings/pongs on your SD card by turning on Logging under the ''Preferences" menu.
For Palette 2(S) in Accessory mode, this is found on Palette's screen during a print by selecting the Menu button, then selecting Statistics > Ping/Pong Offsets. Please note that these values will not be saved.
For Palette 2S in Connected mode, these values are found under the Palette tab in OctoPrint. You can save these logs after a print is completed, but they will be deleted from the tab once another print has initiated.
For Palette 3, pings are displayed on the print progress screen, under Tools > Pings.
On Canvas, if Palette 3 is connected to WiFi and linked to an account, pings are displayed under the 'Logs' tab on the Status and Controls page of your device. My Devices > Palette > Status and Controls > Logs.
Summary
Palette uses the scroll wheel to record the printers' filament consumption rates in order to log pings.
During a Palette print, pings (which are calibration checkpoints) are logged, which display as a percentage. These percentages are used to compare how much filament was extruded at that point in time during the print, to how much was expected to be extruded. Low pings (<90%) can represent under extrusion, while high pings (>100%) can represent over extrusion. Calibrated prints with colors in the right place will have pings that are consistent for the duration of the print.
Palette also uses the buffer system to log pongs, which helps Palette make sure its own filament production is accurate. A pong is triggered by filament making contact with switches in the buffer loop.
Together, these systems make sure your prints turn out looking great!
Using the analogy of a medical clinic, pings are like the receptionist managing the day's appointments, and the printer is the doctor. The receptionist ensures that throughout the day the right people show up for their scheduled appointment. The receptionist checks if people have arrived early or late for their appointment and the volume of people (the ping offset percentages), and then based on this information paces the flow of patients in and out of the doctor's office (the filament length adjustment based on the ping).
In a similar analogy, ponging and the buffer system can be imagined as a queue or line up for an amusement park ride. As the riders at the front of the line get through the queue and board the ride, there will be a point where the operator has enough people boarded and then closes the gate (a pong). People from the back of the line will then make their way closer to the ride (a splice or filament from the splice core enters the buffer, and filament production continues).
If you have any questions, don't hesitate to reach out at support@mosaicmfg.com.
11 Comments
What causes Palette 3 to not have any pings throughout a print, and I don't mean "Missed" there is no ping data even though my printer does stop in the purge tower, which does trigger a ping on other prints.
I've seen this after a successful print, but the next print (both different file and the same file that completed) will result in no ping data.
Craig Brzyski - Reply
Hey Craig, this can happen if the first few pings aren't recognized properly, and becuase of that, the following pings are also not seen. It would be best to message us at support@mosaicmfg.com with information including which printer you're using, the LO that is currently set, and pictures of both your prints and printer/Palette setup.
Jonny Yeu -
1) I don't understand how I would setup a Direct Drive printer that uses a long "reverse Bowden tube" setup, one where the Bowden tube simply guides filament from the rear to the tool head (Formbot Troodon 2.0). I understand I need Palette3 to create enough filament so it protrudes about 1" beyond the end of the bowden tube, so it can be feed it into the extruder gears. How is that reverse Bowden tube set up?
2) I don't understand how pushing filament into a direct drive extruder gears, then running manual or auto load achieves accuracy? Wouldn't I need to verify precisely when the filament starts coming out the hotend - that being a more precise assessment of when the filament is loaded? Just trying to understand. Thx in advance.
Don - Reply
Hey Don, to answer your questions:
1) Palette will automatically create enough filament so that ~1" of filament will protrude from Palette's outgoing tube. From there, you would manually pull this filament and feed it into your extruder. Palette will then create enough filament for the start of your print based on your Loading Offset (LO), which is measured from the end of Palette's outgoing tube to the tip of your nozzle (mm3d.co/p3-lo-hm).
2) Once you've fed filament to your extruder, you'll notice a countdown on Palette's screen that tells you to load until you hit 0mm. This is based on the LO number, and helps us to be accurate at the beginning of prints.
Please let us know if you have any additional questions!
Jonny Yeu -
Has anyone else notice the LO calibration was preset to 555mm lol. I measure mine and got 69 but went through quite a bit of unneded filament. I just happened to stumble on that so wanted to make sure everyone else had to
Yannick - Reply
If your printing start sequence includes some purge of filament to prime the nozzle immediately before starting the print job, how would you account for that? Would you add x mm to the loading offset? Would you add to the Bowden tube length?
R Foster - Reply
Hey R Foster, if this purge is included in the start Gcode, Palette will account for this. If your printer has a firmware purge, you would add this to your Printer Settings under the Firmware section.
Jonny Yeu -
is it the moment you see ANY color or the moment you see PURE color (referring to purging with white or clear as the support suggested). Also i have no way in the Palette 3 Pro settings menu of calibrating the Palette for the Filament i am using, is this because the Palette 3 uses Digital Pinging or because it was accidentally left out of the menus?
William A Kavanagh - Reply
Hi William, it would be any color appearing. With P3, you would just need to measure the LO (the distance from the opening of Palette’s outgoing tube to the tip of your nozzle) and enter that when starting your first print. Digital pinging occurs in connected mode, but is related to the LO that you set.
Jonny Yeu -
Hey Ted, this sounds like an issue withe the Loading Offset, which is the amount of filament that is created at the beginning of the print. I’d suggest factory resetting your unit (http://mm3d.co/calibration-troubleshooti...), then re-running the keychain print. Please ensure that on this print, you’re loading filament into your printer and stopping the moment that you see any color from Drive 1 appear from your nozzle. We usually use Settings > Move Axis > Move Extruder from the printer menu to ensure that we’re loading precisely.
Jonny Yeu - Reply
I an running P2PP, Mk3, Octoprint. My pings with the keychain at 20% infill are pretty consistently at 98-99%, but my color transition comes late by about 1-2 layers. When I use the SmartLoad, it complains that I have overloaded by >70mm, but if i don’t manually load that much, the filament does not come out of the nozzle and hence the layer transitions are even later (like 3-4 layers). I have not been saving the ping data since the layers are coming late. Should I be? Is this a ping problem or a load problem, both?
I have modified the extrusion percentage to 102% and got no changes. I have slowed printing down to 75% and got no changes. I am running out of good ideas. Your thoughts?
Purge volumes all set to 0 / 180
;P2PP SPLICEOFFSET=30
;P2PP MINSTARTSPLICE=100
;P2PP MINSPLICE=70
No ramming, etc as the Github suggests.
Medium tube, 80 mm long.
Ted Bowyer - Reply