P2PP P3 Setup
P2PP P3 Setup
Palette 3 Setup
DISCLAIMER
P2PP is a post processing tool that relies on patterns in the gcode generated by
PrusaSlicer in order to insert the required GCODE for the Palette 2 operation. Due
to the vast amount of settings in PrusaSlicer it CANNOT be guaranteed that all
combinations of settings will produce output that print as intended. P2PP and its
developer cannot be held responsible for any damage occurring from using this tool.
Use at your own risk
Table of Contents
Readme 1st…and if necessary twice!!! ..................................................................... 4
Setting up the P2PP Script ......................................................................................... 5
Windows ............................................................................................................................... 5
MAC OSX .............................................................................................................................. 6
PrusaSlicer configuration .......................................................................................... 7
Basic configuration ............................................................................................................. 7
Put PrusaSlicer in EXPERT mode ............................................................................................................7
Define the number of extruders (you may have to repeat this for different profiles) .........................7
Tower setup ..................................................................................................................................................9
Filament Setup .......................................................................................................................................... 10
Layer Configuration .................................................................................................................................. 12
Printer Configuration......................................................................................................... 13
Script Configuration in PrusaSlicer................................................................................. 13
Palette 3 processing configuration - ............................................................................... 14
Palette 3 or Palette 3 Pro ........................................................................................................................ 14
Printer Profile – PRINTERPROFILE ...................................................................................................... 14
Splice Configuration .......................................................................................................... 15
Splicing Offset – SPLICEOFFSET ......................................................................................................... 15
Minimal Splice Lengths MINSPLICE/MINSTARTSPLICE.................................................................. 15
Extra filament at the end of the print – EXTRAENDFILAMENT ........................................................ 16
Linear Ping setting – LINEARPINGLENGTH ....................................................................................... 16
Limiting the purge speed – PURGETOPSPEED ................................................................................. 16
Splicing Algorithms....................................................................................................17
Special Features .........................................................................................................19
Absolute Extrusion ............................................................................................................ 19
Side Wiping......................................................................................................................... 20
Bed Side Purge ......................................................................................................................................... 20
Stationary Side Wipe (as of v5.2.0) ....................................................................................................... 21
Big Brian 3D Purge Mechanism ............................................................................................................. 21
Defining the number of Blobs ................................................................................................. 22
Tower Delta................................................................................................................................................ 24
Full Purge Reduction ......................................................................................................... 26
Accessory Mode [still under development] .................................................................... 26
P2 Accessory Mode.................................................................................................................................. 26
Palette + Accessory Mode....................................................................................................................... 26
Temperature Control (Thanks to J. Giesser for the suggestion) version 4.12.0 ........ 27
Non-Print related settings ................................................................................................. 27
SAVE UNPROCESSED GCODE (as of version 4.13.0) .................................................................... 27
CHECKVERSION ..................................................................................................................................... 28
CONSOLEWAIT........................................................................................................................................ 28
IGNOREWARNINGS ............................................................................................................................... 28
DEBUGTCOMMAND ............................................................................................................................... 28
Purge/Wipe length ............................................................................................................. 29
KLIPPER firmware ............................................................................................................. 30
Running P2PP .................................................................................................................... 30
Troubleshooting .........................................................................................................32
Appendix A. P2PP Parameters and default values ................................................33
Readme 1st…and if necessary twice!!!
P2PP offers a lot of nice 3d printing support features to for your Palette 3(Pro), but it
is important to understand that no tool will ever produce good results when the
hardware is not correctly setup and calibrated.
So:
• Make sure your printer is capable of successfully printing single color 3d prints.
Sounds silly but if the models you print in one color do not express the desired
quality…why would you expect multi colored ones to do so?
• Make sure the extruder is properly calibrated… P2 relies on the gcode defined
filament consumption to be the same as the actual filament consumption… any
deviation may result in color swaps, early or late transitions, color smear … P2
is a clever device which will try to correct up to a certain level of error but the
responsibility with keeping the error low is with the end user.
• More importantly even than the correctness of the amount of filament used is
the consistency in filament use. First layers should be well calibrated. The
filament flow should be fully unobstructed so no short bends in the feed tube.
• Follow the P2 calibration process using the Mosaic Mfg suggested prints using
the Mosaic supplied slicing tools. Though they can be achieved using P2PP,
when new it is a safer bet to use Canvas or Chroma
• P2 learns to work with your printer over the course of a few prints. Once they
are calibrates, you should receive consistent prints. It is important to remember
that doing a significant change to your printer (e.g. changing the number of
steps per mm for your extruder) WILL impact the collaboration between palette
and printer and new calibration will be needed.
Start simple… P2PP and PrusaSlicer offer a large interesting features, but before
swimming across the Atlantic, try getting on the other side of the pool… no kidding…
Try to work from a profile you know works in single color on your printer, only when
basic multi-color printing is working, turn to features like the tower delta, side wipe,
wipe to infill etc.… it is tempting, but most of troubleshooting will link back to the
success of simple things… You will probably lose more than the amount of material
you are trying to save
Setting up the P2PP Script
Windows
Double click the P2PP.exe and you will get a screen like the following:
Note the text in bold red – you will need this for later configuration of the actual script
Congratulations… you have completed the first step of the installation… you can
move on to the section on PrusaSlicer configuration
MAC OSX
Start the P2PP app and you will get a screen like the following:
Note the text in bold red – you will need this for later configuration of the actual script
Congratulations… you have completed the first step of the installation… you can
move on to the section on PrusaSlicer configuration
PrusaSlicer configuration
Basic configuration
Alternatively, you can also set expert mode using the normal menu settings
Define the number of extruders (you may have to repeat this for different profiles)
Set the number of extruders to 4 (or 8) / enable “Single Extruder Multi Material” :
Make sure the settings of each of the 4 extruders are set correctly. For now the Lift
Z cannot be 0. If you don’t want a lift Z on retraction, put in a low value (like 0.05)
Settings for retraction when the tool is disables are not used.
You can also set the extruder color here. This is the color that will be shown on the
Palette screen during the loading process. The color can also be set from the plater
interface.
Thumbnail Setup
P3 is capable of showing a thumbnail picture on the display. The thumbnail can be
automatically generated by PrusaSlicer but the feature needs to be configured
The the size of the image (widthxheight) in the format shown in the G-Code
thumbnails. P2PP will extract ONLY the first thumbnail and will use thatto generate
the preview image.
Tower setup
Keep the wipe tower rotation angle set to 0 for proper operation. Width can be
specified here. The location can be set later by dragging the tower during the
splicing process.
Ooze prevention does NOT apply because ze use a single extruder only.
Filament Setup
This step should be repeated for EVERY filament type you want to use with your
Palette 2
First step is to set all ramming parameters to 0 as well as all of the tool change and
wipe tower related settings under the advances tab of your filament.
Note the filament type (here PLA) listed in the dropdown box. This is the reference
to the filament that will later be used when creating splicing algorithms to tell Palette
2 how much heat/compression/cooling will be required to splice this filament together
to other types of filament.
Layer Configuration
For some of the features P2PP will need to know which features are linked to a
particular layer. Therefor a very specific layer setup is required to make sure this
information is captures correctly
Make sure that the following code appears in the After layer change G-Code (copy
this literally) (as of version 4.0.4 the extra LAYERHEIGHT is required):
;AFTER_LAYER_CHANGE
;LAYER [layer_num]
;LAYERHEIGHT [layer_z]
Printer Configuration
All basic configuration goes into the Printer Settings → Custom G-Code → Start
G-Code
Yu can group all P2PP config settings at the end of your normal start g-code.
All settings will be prefixed by ;P2PP followed by a parameter name and a setting.
Note that all P2PP configuration is considered CaSe SeNsItIvE!!!
• File name template. You can use the current template but it may be interesting
to add the .mcfx instead of gcode. This has no functional purpose but it will
help you discriminate between P2 and non-P2 prints in the canvas hub
overview.
• Un the post processing script tab you will need to copy the full path of the script.
This information (bold red line) you got at the very beginning when first
launching P2PP.
Either add one of the following lines at the very beginning of your startup gcode
configuration BEFORE ANY OTHER P2PP instruction:
;P2PP PALETTE3
or
;P2PP PALETTE3_PRO
In the start g-code file should get exactly 1 line with a printer profile configuration
You can choose not to add a printer profile and use the P2PP default BUT you will
receive a warning (that can be ignored)
;P2PP PRINTERPROFILE=12345678901234567890123456789012
Splice Configuration
• SPLICEOFFSET
• MINFIRSTSPLICE
• MINSPLICE
• EXTRAFILAMENT
• LINEARPINGLENGTH
Spliceoffset defines the amount of extra filament that is added to the first splice. It
will force the color swap further into the purge. As a result, when a color change
occurs, the printer will still continue to print in the old color for the amount defined in
the spliceoffset parameter. This gives the print a small buffer in case more filament
was consumed than foreseen. Making the offset too small may result in early
transition. On the other hand but printing in the old color during the purge sequence,
you remove that amount from the overall purge so if you make spliceoffset too large
you will end up having color bleeding or late color transitions. 34-40 seems to be a
good value. The value is specified in millimeter
;P2PP SPLICEOFFSET=40
;P2PP MINSTARTSPLICE=130
;P2PP MINSPLICE=90
Depending on the setup of your printer you may need to add an extra length of filament
to make sure the filament is driven by the filament motor until the very end of the print.
On a direct drive a value of 100 to 150mm should probably be sufficient, on Bowden
printers where the extruder motor is further away from the extruder, longer lengths are
needed.
Note: the extra filaments. This parameter is specified in millimeter.
;P2PP EXTRAENDFILAMENT=150
;P2PP LINEARPINGLENGTH=350
If you are using the PrusaSlicer generated tower code in unprocessed mode or in
tower delta mode you may find the purge tower is printed too fast. You can prevent
this add the PURGETOPSPEED (in mm/min) to limit the speed at which purge is
printed.
Splicing Algorithms
One of the most important settings is the definition of how splices should be generated.
Splices are defined by 3 numbers
• Heating
• Compression
• Cooling
A default splice has 3 numbers you can tune the settings for your material. The
numbers can be obtained using the standard splicing tuning process as defined by
Mosaic Mfg. They represent the heating, compressing and cooling factor.
It is good practice to put all of your splicing algorithms into the g-code startup
sequence. This will prevent surprises when mixing materials later on.
P2PP supports 2 ways to define your splices:
First way is to describe the heat/compression/cooling factor for a splice between two
materials. The name of the material (in this case PLA) is taken from the filament type
defined in the filament descriptors within PrusaSlicer:
This sets the default splice values in case no splicing algorithm is defined for 2
materials used in the print. P2PP will default to this process any time materials are
fused that have no specific splice definition.
In some cases the same material could require slightly different settings. In that
case you can apply a filament override. This is done by adding the following line to
the filament custom startup GCODE. Add a line as follows (in this case we define a
new filament name PLA2)
;P2PP FILAMENTOVERRIDE=PLA2
This will tell P2PP to use PLA2 instead of the standard material taken from
PrusaSlicer. You can then refer to PLA2 in your splicing algorithms
Eg:
;P2PP MATERIAL_PLA_PLA_0_0_0
;P2PP MATERIAL_PLA_PLA2_-1_0_0
;P2PP MATERIAL_PLA2_PLA_0_0_0
Special Features
Feature Compatibility Matrix
(*) SIDE WIPE is triggered by the position of the purge tower. This position is
incompatible with all the other purging modes
(*) if two features are active the table shows which feature takes precedence. The
other feature will be discarded
Absolute Extrusion
During the gcode generation process in PrusaSlicer, only relative extrusion code is
supported. That means that each extrusion command in the file is specifying the
length relative to the current position of the extruder. The backside is that rounding
error accumulate over time and this may have a negative effect on the power
consumption in long prints. By converting the file to absolute extrusions, the error is
still there to a lesser extent, but it is also taken into account for the pings so will be
part of the Palette 2 correction mechanism.
To enable the extra cycle at the end of the processing to convert the the purge add
the following line to your start g-code
;P2PP ABSOLUTEEXTRUDER
Side Wiping
Side wiping is a mechanism that fully replaces the purge tower but extrusions that
happen off-bed and that will not make part of any physically printed structure.
Depending on the method used you will either get an extrusion spaghetti or small
blobs of plastic.
The advantage of side wipe is that no purge structure needs to be maintained so you
just purge the exact amount you need, no more no less.
Downside is that you will end up with “non-structured” plastic blobs or spaghetti…
when doing this make sure you have something that catches this purge so it cannot
make it to your print. It could easily turn your extruder in a great mass of plastic..
In order to enable side wipe you need tom move the purge block fully off the build
plate.
This is the first way of doing side purge. It will move the carriage to the side of the
bed and extrude spaghetti of the side of the bed while moving back and forward on
the Y-Axis.
Stationary side wipe is similar to regular sidewipe, but if does not move the Y-
Axis in the process. It is achieved by setting both SIDEWIPEMINY and
SIDEWIPEMAXY to the same value. The X-location is determined by the
SIDEWIPELOC parameter.
;P2PP SIDEWIPELOC=X254
;P2PP SIDEWIPEMINY=45
;set SIDEWIPEMAXY to the same value as SIDEWIPEMINY
;P2PP SIDEWIPEMAXY=45
;set WIPEFEEDRATE is required to override default value!!
;P2PP WIPEFEEDRATE=200
A second way of doing purge is collecting the purge in a Big Brain 3D mechanism
This device is currently only available for the Prusa MK3/MK3S printers and will require
a stock extruder and x-idler. Step files are available when you purchase the device
so you can try to adapt to your own printer.
The device comes with its own calibration guide. You will have to take the values from
your calibration to complete the setup in P2PP
The following parameters need to be set to activate side wipe. Note that for side wipe
to activate the purge block needs to be moved OUTSIDE of the heated bed. The
Purge position needs to be taken from the calibration results for your printer.
;P2PP BIGBRAIN3D_BLOBSIZE=40
;P2PP BIGBRAIN3D_COOLINGTIME=20
;P2PP BIGBRAIN3D_PURGEPOSITION=255
;P2PP BIGBRAIN3D_MOTORPOWER_HIGH=450
;P2PP BIGBRAIN3D_MOTORPOWER_NORMAL=300
;P2PP BIGBRAIN3D_FAN_OFF_DELAY=2000
;P2PP BIGBRAIN3D_ENABLE
;P2PP BIGBRAIN3D_PRIME_BLOBS=2
The other parameters are taken from the manufacturer’s website. The BLOBSIZE of
40 is the default value and all BLOBS will be 40mm of filament equivalent in size. This
means that all purging sequences are rounded to the nearest greater multiple of 40mm
Cooling is det to 20sec, but could be reduced depending on the material used and the
environmental situation. The blob needs to be hard enough to be pushed out of the
way by the flicker arm
The motor power settings are defaulted to the manufacturers suggestions as well.
The default High power value is 450, if you see that the motor is unable to hold position
and you see layer shifts in your print you may need to increase this setting or reduce
the number of springs. Increasing the value will increase the temperature of the X-
axis motor. Further active cooling may be required to prevent damage.
BIDBRAIN3D_RETRACT sets the retractions when going to and returning from the
purge location. The default value of 3 might be too much for some extruders.
The left values defining the number of blobs purged before the color change happens.
This gives the Palette some space to adjust when the pings vary.
The right values defining the numbers of blobs purged after the color change.
This is important to get the color mix out of the nozzle and a brilliant color on the
printed object. The two numbers (left and right) are added together to get the number
of blobs purged per color change.
In the advanced setting you also can set up the number of blobs as a matrix.
To save filament a good tip is to adjust the blob size in the start gcode.
The minimum splice length is 90mm. The default blob size is 40mm.
The following calculation is not 100% correct because the feedrate is set to 95% in
most cases but it can explain the issue.
So 90mm divided by 40mm is 2.25 blobs.
That means 3 blobs are the minimum to purge and 0.75 blobs are wasted.
You can decrease the blob size to get closer to the perfect purge amount but that also
means that you have to increase the number of prime blobs, else you will get a short
first splice error.
Tower Delta
Tower delta is the principle of not printing empty tower sequences that take up time
and filament. Instead the tower grows at a slower pace than the print. This creates
a risk that the print head or the beam may hit the actual print while printing the purge.
In order to minimize the risk it is good practice to group the printed objects in front of
the purge and to one side of the bed and put the tower on the diagonal opposite (back
side) of the print.
PrusaSlicer has this feature built in as of version 2.2. The major difference between
the PrusaSlicer implementation and the P2PP implementation is that in P2PP you can
specify the maximum difference between the print and the tower to mitigate the risk of
hitting the print.
There is one parameter that is used for both activating and setting the maximum delta
of a tower delta print:
;P2PP PURGETOWERDELTA=10
;P2PP WIPEFEEDRATE=3000
Adding this parameter allows for the tower to grow 10mm lower than the actual print.
If you do not want to limit the difference, either put in a large number (999) or use
fullpurgereduction feature described later
Make sure you have the correct after layer gcode inserted as described above or the
feature will NOT work correctly
The Tower delta function is useful on prints where you have lengths of print in a single
color. (i.e. layers with no color change). These layers in general cause empty layers
to be created in the purge tower which can easily be ignored.
;P2PP FULLPURGEREDUCTION
;P2PP WIPEFEEDRATE=3000
;P2PP AUTOADDPURGE
Full purge tower reduction will use the same amount of filament as Side Wiping but it
will still create a physical purge tower that will need more time to create
Accessory mode prints generate Ping sequences in a separate MAF/MSF file that is
put on an SD card and is fed to the Palette 2 in that way. The pings are inserted in
the form of delays during the print. As such the print can be executed directly from
SD card in the printer without the need of an Octoprint.
;P2PP ACCESSORYMODE_MAFX
;P2PP ACCESSORYMODE_MAF
In this mode, P2PP can be used in conjunction with the Palette+, by generating a
MSF file that can be loaded on the SD Card, just as if it were generated by Chroma /
Canvas. It is important to note that the values below are not what you see on
the Palette+ Screen, but are obtained from Chroma, after completing the
calibration.
;P2PP ACCESSORYMODE_MAF
;P2PP P+PPM=<ppm value>
‘P2PP P+LOADINGOFFSET=<loading offset>
;P2PP TEMPERATURECONTROL
When set this setting will change alter the temperature settings in the output file.
This can be useful when using filaments that require different processing
temperatures. The temperature control feature will make sure all purges are
handled at the highest temperature to prevent the hotter printing filament to clog on
the heat-up or cooldown.
When moving from high to low temperature, the printer will purge and will reduce the
temperature AFTER all purging has completed
When moving from low to high, the printer will wait for the hot end to heat up over the
tower prior to purging.
In order to make the generation of the unprocessed file a little easier a new config
code was added to do just this.
;P2PP SAVEUNPROCESSED
Setting this parameter will generate a new file during processing which has exactly
the same name as the processed file but a suffix _unprocessed is added to the
filename. So in case you generate a filename test.mc.gcode, the program will
generate this file as well as a file named test.mcf_unprocessed.gcode. When
needed you can send in this file.
CHECKVERSION
Adding the checkversion keyword to your stag code will trigger P2PP to download
the information about the latest master/dev online versions and warn you if updates
are available
;P2PP CHECKVERSION
CONSOLEWAIT
Setting the CONSOLEWAIT parameter will trigger P2PP to wait for user response
even if no warning were issues
;P2PP CONSOLEWAIT
IGNOREWARNINGS
Ignore warnings will close the window even if there were warnings during the
processing
;P2PP IGNOREWARNINGS
DEBUGTCOMMAND
;P2PP DEBUGTCOMMAND
Purge/Wipe length
The quality of your color transitions will greatly depend on the purge or wipe length
defined in PrusaSlicer.
When in platter vies mode in a multicolor setup, you will notice a Purging Volumes
button right above the object tree windows
Clicking this button will bring up the purge volume adjustment dialog.
The values in this diagram are defined in mm3 (volume of filament), not in mm
(length of filament). 70mm3 of filament is about 70/2.4 mm of filament.
The length of the purge will depend on the mature of the filament used. The
effective length of purge generated is the sum of unload of the old value and the load
value for the new filament.
It is good practice to keep the minimal purge around 180mm so you avoid short
splice specifically when using layers with only tiny details in a specific color.
As a rule of thumb:
• Strong colors (e.g. red/black) will need a low load value / high unload value
• Weak colors (e.g. white transparent) will need high load / low unload values
So going from black to white will be unload black + load white = high value
The other way around form white to black, will add low unload + low load = low value
In modes where the tower is generated by P2PP, an extra amount of filament can be
added automatically to meet the min splice length requirements for Palette 2
hardware.
For compatibility of this function with other processing modes check the matrix
above.
The feature is activated by adding the following line to your start gcode under printer
settings
;P2PP AUTOADDPURGE
KLIPPER firmware
When running a printer based on the KLIPPER firmware, add the following line to
detect the tool changes. Please don’t change the names of the extruders, just use
the defaulted names
;P2PP KLIPPER_TOOLCHANGE
Running P2PP
Once you have all parameters entered you can load a multi-color file in PrusaSlicer
and click the export button/send to printer button… if all goes well you will get a pop-
up window from P2PP
If there were warnings (like in the example below), the window will remain open (as
long as the window is open PrusaSlicer will not function normally and should not be
used)
You can review the errors and see what is needed to correct them. Clicking OK will
return you to PrusaSlicer. If uploading was selected, the print will be uploaded to
the printer.
If the processing went through without issue the window will close automatically
without waiting and the PrusaSlicer will take control from there. If you have the
consolewait parameter set you will get a similar window with a header confirming the
correct processing
In either case the output file will contain the processed information from P2PP, even
if errors have been detected.
Troubleshooting
Before reporting an issue:
• Make sure you have the latest version of P2PP running. We only support the
latest master and latest development version of P2PP. Your bugs may have
been solved in later versions of the tool.
If after reading all of the documentation, you should still have issue to make successful
prints using P2PP, you can turn to the P2PP Community Help page on Facebook.
If you cannot find the information you are looking for in the existing topics, you can
post your own question. Be thorough in your descriptions, people are there to help
and the more you give them to work with the better chance you will have to get your
specific issue resolved…
When reporting issues you will often be asked to provide supporting material:
• Processed GCODE file (output of P2PP script) so we can see what code is
generated and if it shows any sign that could link the problem to the code
• Unprocessed GCODE file (output of PrusaSlicer without the P2PP processing).
The easiest way to achieve this is to add an extra character in the output
• OctoPrint log file of the print that showed the problem
Appendix A. P2PP Parameters and default values