What are "Pinging" and "Ponging"?
What are pings and pongs, and how they relate to Palette calibration. Pings and pongs are part of Palette's live calibration systems to help maintain filament lengths during a print, which helps improve color results.
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:
- Filament diameter inconsistency
- Imperfect first-layer adhesion
- 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.
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.
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.
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.
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.
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.
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.
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.
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.
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 firstname.lastname@example.org.