Palette & 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 G-code) and actual filament usage, such as:
- Filament diameter inconsistency
- Imperfect first-layer adhesion
- Filament brand/color physical property differences
When printing with only one filament, if a G-code file states that it will use 10m of filament, but the printer actually uses 9.5m, 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.5m would result in a failed print; the colors would all be incorrect.
Because of the importance of precise filament positioning for Palette prints, we created 2 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 and Ponging use Palette's Scroll Wheel.
The Scroll Wheel is a device that is attached to your printer's frame using Velcro squares that are included with Palette. It's a high-precision rotary encoder that monitors the filament that passes through it, and allows Palette to create more filament as the printer consumes it.
The Scroll Wheel uses its filament-measuring capabilities to record Pings.
Pinging (pauses on the Transition Tower)
A Ping is a checkpoint in a print. Palette knows how much filament a printer uses over time, but Palette needs clear checkpoints to understand how much filament the printer was supposed to use during this time. Pings are how a printer says: "Palette, I'm 3% of the way through the print. Now I'm at 7.5%. Now I'm at 11%." Every time a ping occurs, Palette compares how much filament has been used with how much the printer was supposed to use (in the G-code): "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 .msf file from Chroma, we should have used 5.2m by now." Palette then uses this information to adjust future filament segment lengths. (We discuss Palette's corrective algorithms in detail in this blog post.)
If you find yourself wondering "why does the printer pause over the transition tower?", these are Pings. Pings (and transition/purge towers) are added to the G-code when the file is processed by Mosaic Chroma software. The Ping Signature is a set of unique and recognizable G-code commands that Palette identifies as a ping (using the Scroll Wheel). Currently, the Ping Signature is a 13-second pause, 20mm of extrusion, and then another 7-second pause, after which the print resumes. (We discuss how Palette detects pings in detail in this blog post.)
When Palette detects a Ping, it will compare the filament used with the amount expected, and will display this figure as the Ping Offset % on your screen. You can also see the last 10 ping values by going to Statistics > Ping Offsets during a print.
Ponging (homing the Buffer Loop with the magnet)
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.
When filament exits Palette, it does so in a narrow PTFE (Teflon) tube. This smaller tube goes inside a larger PTFE tube that has a magnet. The tube with the larger diameter and the magnet slides over the smaller tube. This is the filament Buffer System. It allows Palette's filament production and a printer's filament consumption to be asynchronous (operate at different speeds).
During a print, Palette may allow the magnet to retract toward itself by letting the printer consume filament, and it may push the magnet further away by producing filament faster than the printer consumes it. Palette typically keeps about 15cm between itself and the magnet.
However, Palette's filament production also has a small amount of error (typically ~0.1-0.2%). So, to keep its own filament production in check, it will periodically allow the magnet to retract all the way until it touches Palette's casing, where it will trigger a Hall effect sensor. This Hall sensor detects the presence of the magnet. We call this action homing the buffer loop, or Ponging.
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 magnet triggers Palette's Hall sensor, Palette recognizes the magnet's exact position, and can "home the buffer loop." (Palette's first iteration of ponging was an actual limit switch. More on ponging and homing the buffer loop in this blog post.)
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.
Palette uses the Scroll Wheel to record printers' filament consumption rates. It uses this, in conjunction with Pings (which are checkpoints that can be identified by the 2 pauses you might see when the extruder is over the Transition Tower), to make sure that the right filament shows up at the nozzle at the right time. Palette also uses the magnet and the series of overlapping tubes (together forming the Buffer System) to Pong, which helps Palette make sure its own filament production is accurate.
Together, these systems make sure your prints turn out looking great!
If you have any questions, don't hesitate to reach out at firstname.lastname@example.org.