This article is part of the Prusa XL Technical Series on INVESTEGATE.de
All guides assume that the Prusa XL Fundamentals are correct.
If not, start here:
Prusa XL Basics – Technical Fundamentals

There is now a wide variety of different build plates available for many 3D printers. Depending on the material and surface, they differ significantly in terms of adhesion, durability, and print results.
For the Prusa XL, however, the selection of officially supported build plates is still very limited.
This is not a real limitation, though. The Prusa XL can be safely operated with smaller build plate sizes, as long as a few important points are taken into account.
This article explains what types of print sheets exist and how to use smaller build plates on the Prusa XL correctly and what to watch out for in order to avoid damage to the build plate or the nozzle.
What Types of Build Plates Are Available?
There are a variety of build plates used across 3D printers, each with distinct characteristics that affect adhesion, surface finish, and durability. Below are the main types of build plates you’re likely to encounter — including options you can use on the Prusa XL.
The Original Prusa Print Sheets
First, I’d like to introduce the Original Prusa Sheets. These are a perfect fit for the XL and are characterized by their high quality. The satin sheet included covers most materials. You can support me and use my Code “@INVESTEGATE” at the Prusa Checkout ❤
Here is a table showing which materials are compatible with which print sheets and whether a glue stick is required:

1. Satin Powder-coated Print Sheet
✅ Best for: PLA · PETG · ABS · PC
💪 Strengths:
- Reliable all-round adhesion
- Balanced surface finish (neither fully smooth nor heavily textured)
- Works without glue or spray
⚠️ Limitations:
- Coating will wear over time
👉 Use this if you want one sheet that “just works” for most materials.
2. Smooth PEI Print Sheet
✅ Best for: PLA
💪 Strengths:
- Perfectly smooth bottom surface
- Strong adhesion without adhesives, especially for small parts
⚠️ Limitations:
- PETG & FLEX can stick too aggressively. So use a Glue Stick.
👉 Use this if you want a mirror-smooth surface. Especially good adhesion for PLA.
3. Textured Powder-coated Print Sheet
✅ Best for: PLA · PETG · ABS · FLEX
💪 Strengths:
- Textured surface improves adhesion on large parts
- First-layer imperfections are less visible
- Parts release easily after cooling
⚠️ Limitations:
- You may need adhesive spray to increase adhesion.
👉 Use this if you want a textured surface that makes the first layer almost invisible.
4. PA Nylon Powder-coated Print Sheet
✅ Best for: PA Nylon
💪 Strengths:
- Optimized specifically for nylon adhesion
- Reduced warping compared to standard PEI sheets
- Often works without additional adhesives
⚠️ Limitations:
- No useful for other materials
- Nylon still requires high temperatures and good thermal control
👉 Use this only if you regularly print nylon.
5. PP powder-coated Print Sheet
✅ Best for: Polypropylene (PP)
💪 Strengths:
- Designed specifically for PP adhesion
- Significantly reduces warping
- No glue, tape, or special surface prep needed
- Works also very good with PETG & PLA (More Information)
⚠️ Limitations:
- You first need to print a layer of PETG or PP so that PLA will adhere to it. (More Information)
👉 Use this if you want to benefit from the things mentioned above.
How to Clean Print Sheets Properly
The Basic Rule
Most adhesion problems are caused by dirt, grease, or wrong cleaning methods.
Not by temperatures. Not by slicer settings. Clean first, troubleshoot later.
1. Isopropyl Alcohol (IPA, ≥90%)
Routine cleaning – recommended before most prints
- Use a lint-free cloth or paper towel
- Sheet must be cold
- Wipe once, done
Works well for:
- Smooth PEI
- Satin
- Textured (light contamination)
Important:
IPA does not remove baked-in grease or plastic residues.
2. Dish Soap + Warm Water
When IPA is no longer enough
- Remove the sheet from the printer
- Warm water + regular dish soap
(no balm, no skin-care additives) - Clean with a fresh sponge or soft brush
- Rinse thoroughly
- Air-dry or use clean paper towels
Very effective for:
- PLA residue
- Finger oils
- Long-term buildup
👉 After cleaning: do not touch the print surface.
3. Acetone – Limited Use Only
Smooth PEI only, and very rarely
- At most every few months
- Only if nothing else works
- Light wipe, no scrubbing
Do NOT use on:
- Satin sheets
- Textured sheets
- Powder-coated sheets
Acetone attacks the surface. Regular use will permanently damage the sheet.
What You Should NOT Do
- ❌ Glass cleaner
- ❌ Paper towels with lotion
- ❌ Brake cleaner
- ❌ Abrasive pads or steel wool
- ❌ Touching the surface “just quickly”
These either ruin adhesion or destroy the coating.
Practical Maintenance Recommendation
- IPA: every 1–3 prints
- Dish soap: when adhesion noticeably drops
- Acetone: emergency option for Smooth PEI only
Third-Party Print Sheets
There are now a wide variety of print sheets available. Unfortunately, very few are perfectly designed for the Prusa XL. However, we can easily use smaller print sheets with it. The only important thing is that they are magnetic. Theoretically, you could print on anything flat if you attach it with clamps, provided the adhesion is sufficient.
The great thing about the Prusa XL is that it measures the print bed with a load cell on the extruder. This means you don’t have to calibrate the first layer for each print sheet.
The largest print sheets you can usually get are for the Voron, with dimensions of 350x350mm. If this size is available, I usually take this one. But you can, of course, also use smaller sheets.
Here I present a few different print sheets:
- FYSETC Diamond & Carbon Effect Print Sheet (For Prusa XL)
- Panda CryoGrip Pro Cool Plate (For Prusa XL)
- ENERGETIC Effect + Multicolor Plates (For Prusa XL)
- Many Multicolor + Effect Plates (For Prusa XL)
- Trianglelab&Pheetus Conwebr™ Cool Plate (Voron350)
- Colorful Rainbow Pattern Effect Plates (Voron350)
- Multicolor H1H Effect Plates (Voron350)
- Honeycomb Texture Pattern Plate (K1 Max)
I have been using most of these plates for quite some time now and am very satisfied with them.
There is an alignment aid on printables for the 350mm print sheets.
Prusa XL print bed dimensions
| Component | X (mm) | Y (mm) |
|---|---|---|
| Original Prusa XL usable print area | 360 | 360 |
| Maximum possible area – mechanical limit | 370 | 370 |
| Original Prusa print sheets – minimum | 366 | 366 |
| Original Prusa print sheets – maximum | 366 | 382 |
This is how you use smaller print sheets
Align the Print Sheet

The print bed’s zero point (home) is always at the front left corner on the Prusa XL. Therefore, smaller print beds must always be placed at this corner. The print sheet should extend a few millimeters forward and to the left. It often makes sense to rotate the print bed 180 degrees. This is because the purge line at the beginning of the print should not be against the print bed but rather in the open.
Of course, you could reposition the purge line using custom G-code. Whether the effort is worthwhile depends on how frequently you will be using it. However, if you don’t want to configure the purge line, use a skirt with one loop when slicing. This cleans the nozzle.
Configure the Slicer
Next, we need to consider a few things in the slicer. There are two options:
The Safe Option:
Open Prusa Slicer -> Printers -> General -> Set Bed shape
There you enter the dimensions of the smaller plate. In this example, the print bed is from a Prusa Mk3.

The Fast Option:
There is an even faster way. We only must ensure that we only use the first two tools during slicing. Otherwise, there is a risk of collision, because the purge line, which we leave unadjusted, would cause the printer to also measure at the front right. This would result in the printer measuring directly onto the heated bed, which we definitely want to avoid.
We also don’t want the extruder to purge directly against the print sheet at the beginning, so we position it this way: flush with the heated bed and only protruding about 2-3 millimeters to the left and front.
Since the extruder will then only purge in mid-air, it’s best to be present to clean the nozzle during the process. You should also activate the skirt with a loop in the slicer to ensure a smooth first layer.
This can of course be avoided by adjusting the purge line in the gcode as shown above. Alternatively, a suitable piece of sheet metal can be placed on the heated bed next to the print sheet during leveling.
Optional: Purge Line Adjustment
This is especially useful if you do a lot of printing with such a print sheet.
To do this, we need to adjust the printer’s custom G-code. There you’ll find five blocks named “purge first tool” through “purge fifth tool“. There’s also a block at the very end named “purge initial tool“. We’ll now adjust the XY-coordinates in these blocks.
In this example, I’ll show you what it should look like if we use the first and second tools and want to move the purge line of both tools 10cm to the right.
This is the original g-code:
Values marked in are the XY coordinates (X/Y).
; purge first tool
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; park the tool
M109 T0 S{first_layer_temperature[0]}
T0 S1 L0 D0; pick the tool
G92 E0 ; reset extruder position
G0 X30 Y-7 Z10 F{(travel_speed * 60)} ; move close to the sheet's edge
G0 E{if is_nil(filament_multitool_ramming[0])}10{else}30{endif} X40 Z0.2 F{if is_nil(filament_multitool_ramming[0])}500{else}170{endif} ; purge while moving towards the sheet
G0 X70 E9 F800 ; continue purging and wipe the nozzle
G0 X73 Z0.05 F8000 ; wipe, move close to the bed
G0 X76 Z0.2 F8000 ; wipe, move quickly away from the bed
G1 E{-retract_length_toolchange[0]} F2400 ; retract
{e_retracted[0] = retract_length_toolchange[0]}
G92 E0 ; reset extruder position
M104 S{(is_nil(idle_temperature[0]) ? (first_layer_temperature[0] + standby_temperature_delta) : (idle_temperature[0]))} T0
{endif}
{if (is_extruder_used[1]) and initial_tool != 1}
;
; purge second tool
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; park the tool
M109 T1 S{first_layer_temperature[1]}
T1 S1 L0 D0; pick the tool
G92 E0 ; reset extruder position
G0 X150 Y-7 Z10 F{(travel_speed * 60)} ; move close to the sheet's edge
G0 E{if is_nil(filament_multitool_ramming[1])}10{else}30{endif} X140 Z0.2 F{if is_nil(filament_multitool_ramming[1])}500{else}170{endif} ; purge while moving towards the sheet
G0 X110 E9 F800 ; continue purging and wipe the nozzle
G0 X107 Z0.05 F8000 ; wipe, move close to the bed
G0 X104 Z0.2 F8000 ; wipe, move quickly away from the bed
G1 E{-retract_length_toolchange[1]} F2400 ; retract
{e_retracted[1] = retract_length_toolchange[1]}
G92 E0 ; reset extruder position
M104 S{(is_nil(idle_temperature[1]) ? (first_layer_temperature[1] + standby_temperature_delta) : (idle_temperature[1]))} T1
{endif}
{if (is_extruder_used[2]) and initial_tool != 2}
;
And so the G-code must be changed to move the purge line 10cm to the right for both tools:
Values marked in had “+100” added to achieve a 10 cm shift to the right.
; purge first tool
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; park the tool
M109 T0 S{first_layer_temperature[0]}
T0 S1 L0 D0; pick the tool
G92 E0 ; reset extruder position
G0 X130 Y-7 Z10 F{(travel_speed * 60)} ; move close to the sheet's edge (+100)
G0 E{if is_nil(filament_multitool_ramming[0])}10{else}30{endif} X140 Z0.2 F{if is_nil(filament_multitool_ramming[0])}500{else}170{endif} ; purge while moving towards the sheet (+100)
G0 X170 E9 F800 ; continue purging and wipe the nozzle (+100)
G0 X173 Z0.05 F8000 ; wipe, move close to the bed (+100)
G0 X176 Z0.2 F8000 ; wipe, move quickly away from the bed (+100)
G1 E{-retract_length_toolchange[0]} F2400 ; retract
{e_retracted[0] = retract_length_toolchange[0]}
G92 E0 ; reset extruder position
M104 S{(is_nil(idle_temperature[0]) ? (first_layer_temperature[0] + standby_temperature_delta) : (idle_temperature[0]))} T0
{endif}
{if (is_extruder_used[1]) and initial_tool != 1}
;
; purge second tool
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; park the tool
M109 T1 S{first_layer_temperature[1]}
T1 S1 L0 D0; pick the tool
G92 E0 ; reset extruder position
G0 X250 Y-7 Z10 F{(travel_speed * 60)} ; move close to the sheet's edge (+100)
G0 E{if is_nil(filament_multitool_ramming[1])}10{else}30{endif} X240 Z0.2 F{if is_nil(filament_multitool_ramming[1])}500{else}170{endif} ; purge while moving towards the sheet (+100)
G0 X210 E9 F800 ; continue purging and wipe the nozzle (+100)
G0 X207 Z0.05 F8000 ; wipe, move close to the bed (+100)
G0 X204 Z0.2 F8000 ; wipe, move quickly away from the bed (+100)
G1 E{-retract_length_toolchange[1]} F2400 ; retract
{e_retracted[1] = retract_length_toolchange[1]}
G92 E0 ; reset extruder position
M104 S{(is_nil(idle_temperature[1]) ? (first_layer_temperature[1] + standby_temperature_delta) : (idle_temperature[1]))} T1
{endif}
{if (is_extruder_used[2]) and initial_tool != 2}
;
Additionally, we need to configure this in another block. This is what the original “initial tool block” looks like:
Values marked in are the XY coordinates (X/Y).
; purge initial tool
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; park the tool
M109 T{initial_tool} S{first_layer_temperature[initial_tool]}
T{initial_tool} S1 L0 D0; pick the tool
G92 E0 ; reset extruder position
G0 X{(initial_tool == 0 ? 30 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 330)))} Y{(initial_tool < 4 ? -7 : -4.5)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge
G0 E{if is_nil(filament_multitool_ramming[initial_tool])}10{else}30{endif} X{(initial_tool == 0 ? 30 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 330))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 10)} Z0.2 F{if is_nil(filament_multitool_ramming[initial_tool])}500{else}170{endif} ; purge while moving towards the sheet
G0 X{(initial_tool == 0 ? 30 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 330))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 40)} E9 F800 ; continue purging and wipe the nozzle
G0 X{(initial_tool == 0 ? 30 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 330))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 40) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 3)} Z{0.05} F{8000} ; wipe, move close to the bed
G0 X{(initial_tool == 0 ? 30 : (initial_tool == 1 ? 150 : (initial_tool == 2 ? 210 : 330))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 40) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 3 * 2)} Z0.2 F{8000} ; wipe, move quickly away from the bed
G1 E-{retract_length[initial_tool]} F2400 ; retract
{e_retracted[initial_tool] = retract_length[initial_tool]}
M591 R ; restore stuck detection
G92 E0 ; reset extruder position
And so, if the purge line is shifted 10cm to the right for the first two tools:
Values marked in had “+100” added to achieve a 10 cm shift to the right.
; purge initial tool
;
G1 F{travel_speed * 60}
P0 S1 L2 D0; park the tool
M109 T{initial_tool} S{first_layer_temperature[initial_tool]}
T{initial_tool} S1 L0 D0; pick the tool
G92 E0 ; reset extruder position
G0 X{(initial_tool == 0 ? 130 : (initial_tool == 1 ? 250 : (initial_tool == 2 ? 210 : 330)))} Y{(initial_tool < 4 ? -7 : -4.5)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge (+100)
G0 E{if is_nil(filament_multitool_ramming[initial_tool])}10{else}30{endif} X{(initial_tool == 0 ? 140 : (initial_tool == 1 ? 240 : (initial_tool == 2 ? 220 : 320)))} Z0.2 F{if is_nil(filament_multitool_ramming[initial_tool])}500{else}170{endif} ; purge while moving towards the sheet (+100)
G0 X{(initial_tool == 0 ? 170 : (initial_tool == 1 ? 210 : (initial_tool == 2 ? 250 : 290)))} E9 F800 ; continue purging and wipe the nozzle (+100)
G0 X{(initial_tool == 0 ? 173 : (initial_tool == 1 ? 207 : (initial_tool == 2 ? 253 : 287)))} Z{0.05} F{8000} ; wipe, move close to the bed (+100)
G0 X{(initial_tool == 0 ? 176 : (initial_tool == 1 ? 204 : (initial_tool == 2 ? 256 : 284)))} Z0.2 F{8000} ; wipe, move quickly away from the bed (+100)
G1 E-{retract_length[initial_tool]} F2400 ; retract
{e_retracted[initial_tool] = retract_length[initial_tool]}
M591 R ; restore stuck detection
G92 E0 ; reset extruder position
And that’s it.
Pro-Tip: You don’t have to do it yourself. ChatGPT can easily do it for you 😉
This is what the purge line looks like in its original:

And this is what happens when it is moved 10cm to the right:

Start the Printing Process and Observe
Finally, you should keep a close eye on the printer during the start-up phase. If the printer tries to measure outside the print sheet, stop the print immediately.
Once it starts with the first layer, everything should be fine 🙂





Phil,
You should consider including the XL’s dimensions 360×360 in the article, perhaps even the actual size of the XL’s sheets, as well as the MAX size one can safely squeeze in there. Along with a warning that less expensive sheets sometimes are not as magnetically held down SO there is a danger if they shift, especially if they are oversized that they will hit the Z screws, and possibly screw 🙂 everything up
Thank you Kurt 🙂
I’ve added a table with the dimensions. So far, I haven’t had any problems with insufficient magnetization or the print sheet slipping.
Best regards!
PP sheet works very, very, good for PLA and PETG, after priming it with a petg layer (better than some cold plates, as Josef prusa himself said) https://www.printables.com/model/1482150-perfect-first-layer-for-prusa-xl-with-handle
For alignment of a 350 plate, this tool can be used: https://www.printables.com/model/1150831-prusa-xl-350mm-plate-jig
Thanks for your suggestion. I’ve added it to the post 🙂