It’s time for another update on the Original Prusa XL and there are many exciting things to share. We bumped up our production capacity substantially (and we’ll improve it even more in the upcoming weeks), so we can finally start processing large chunks of the preorder queue faster and share a Shipping table. We’re also bringing Input Shaper firmware to XL, so not only is the printer now beautifully fast, but it’s also extremely efficient during color changes. Switching materials takes mere seconds. Plus, we have the first alpha of PrusaSlicer 2.7 ready with big new features. Let’s dive in!

XL Shipping Information

Last week, we shared some exciting news for everyone with an XL pre-order: we’ve finally overcome the supply chain issues and hired almost 100 new people – this was absolutely essential since building a single XL takes almost three times longer than the MK4. It’s our most complex 3D printer yet. Either way, we have enough components and production capacity so we are now processing pre-orders much faster.

Just to avoid any sort of confusion: we’ve been shipping the XLs steadily for several months now, but the recent increase in our production capacity allows us to chew our way through the pre-order queue much faster.

Info for pre-orders from 2021

We expect to ship the majority of pre-orders (most were made in 2021) by the end of this year. To finish the preparation of the heavily requested shipping table, we are going to switch all remaining pre-orders from 2021 to regular orders on Monday, October 23rd, so you will be able to complete yours – all info will be available in an e-mail. Once we have your orders confirmed, we’ll have enough data to publish the shipping table for the current batch of pre-orders that are being processed.

Once you receive the email, you’ll have 2 weeks to complete your order. The reason for the deadline is so we can prepare the shipping table. Previously, some people converted the order immediately, some in two months and this prevented us from doing the precise forecast. If you complete your order before the deadline, your printer will be placed in the queue based on the date of your original pre-order (you’ll be able to check it in the shipping table). If you decide to complete your order later, your printer will be placed in the shipping queue based on your payment date. You’ll get your printer a little bit later, but still with high priority. You don’t have to worry about slipping to the very end of the entire pre-order queue.

With this measure, we want to make sure that customers who had ordered a 1-toolhead printer, and then upgraded their order to a different variant, won’t skip customers with 2- and 5-toolhead machines. Honestly, we didn’t expect that the number of upgraded orders (from single-tool to five-tool) would be so high. I’m sorry about the issues this caused, I believe the new system should be much more fair to everyone.

Preorders from 2022 and 2023

And more good news: we will be able to ship all pre-orders created in 2022 by the end of April next year and the rest (2023 so far) by the end of June. We’ll keep processing the remaining pre-orders in the same manner – we’ll take a large batch of pre-orders and prepare an up-to-date shipping table. Once we process it, we’ll move on to the next batch.
We apologize for the delays and any inconvenience they have caused! We’re on the right track to process all remaining XL pre-orders and the situation should improve even more in the near future.

XL Upgrades

We’re also wrapping up the preparations for the XL Toolhead upgrades. Once we clear up the 2021 batch of XL preorders, we will have enough capacity to start manufacturing and shipping upgrades to 2-head and 5-head machines. Our current plan is to start the production of upgrades in January 2024.

Another major upgrade is the long-awaited XL enclosure. We’re currently finalizing the pre-production units and we’ll be ready to unveil the enclosure in the upcoming months. It will combine a see-through top cover with the retractable draft shield. Stay tuned for more info!

Input Shaper

Preparation of the Input Shaper implementation for the XL took us a bit longer than we originally expected but the alpha firmware with IS is finally here. To give you a bit of a background: all our 32-bit 3D printers run on a modified version of FreeRTOS firmware with some pieces of Marlin firmware used for motion planning. We know this system through and through and when we started the Buddy platform project several years ago, it was the perfect choice.

After Klipper took off, Input Shaper became one of the most discussed topics in the 3D printing community. We wanted to include it as well, so we started with the Original Prusa MK4 because it was the easiest option. Instead of slapping a Raspberry Pi onto the MK4’s motherboard, we decided to use Klipper as an inspiration and write the entire Input Shaper system directly for our STM32 chipset, so you wouldn’t need to purchase any extra expansion boards. All computations are done directly by the printer’s CPU.

We challange all MMU enabled printer owners to do a faster, 2 color Benchy with less waste! 🙂 (ours took 36 minutes and produced 8 grams of waste in the priming tower)

We’re not rushing into putting Linux in our machines – our main concern is security. It is kinda scary to see the industry rapidly switching to hastily put-together Linux distributions. I’m afraid that we could get to the point where the community will start to think about proper security only after something goes very wrong. 3D printers are now both powerful computers connected to the internet with access to your local network and also machines with moving and heated parts that can be operated remotely. Our embedded platform is much safer in this regard.

Adapting the Input Shaper technology for a printer with completely different kinematics, the XL, was a bit of a challenge. We had to modify the built-in planner, so it could operate with a completely different set of X and Y axes. This seems like a relatively simple change, but it was in fact absolutely essential to do this right. We also had to adapt precise stepping and pressure advance for the XL, so it was a combination of several major features that had to come together.

Mark XLVI Bastard Concept Inspired Helmet by Budwindownload for free from Printables.com

The XL is a very robust printer that can reach very high speeds and it is more likely to use larger nozzle diameters (you want a huge print finished fast and a large nozzle is one of the best ways to achieve that). However, the XL Input Shaper has to perform more calculations than the MK4 version. With massive prints that may take long hours to finish, the demands on long-term reliability hugely increased. You can’t simply run a test print for a few hours and consider the system stable when there might be issues that manifest only after 20+ hours. Debugging such issues is very time-consuming and it is one of the reasons why it took longer to prepare the XL Input Shaper firmware.

The XL is also a vastly more complex machine with a super-fast toolchanger. Each of the print heads runs its own electronics with streamlined firmware and overloading the main CPU with Input Shaper calculations could lead to less reliable communication across the ModBus devices.

However, the first Input Shaper alpha release is now out and you can check it out – see our Github and release notes before you flash it. We hope you’ll enjoy the much faster speeds that go hand in hand with super-fast tool (material) switching and low-waste multi-material printing that utilizes only a tiny priming tower next to the printed object, so you don’t have to worry about filament scraps piling around your printer. This turns the XL into the fastest and most efficient multi-material solution out there.

PETG model with PLA supports

Cancel object directly from the printer’s menu

And I want to point out another awesome new firmware addition – the highly-requested Cancel Object function which is integrated directly into the printer’s LCD menu. Please note that this function requires the new 5.1.0-alpha2 firmware and PrusaSlicer 2.7.0-alpha1 or newer.

During a running print, you can open the Tune menu and select an object that you wish to stop printing (but you can also resume it, in case you select an incorrect one). The print will continue just fine, but any G-code commands related to the canceled object will be ignored. This is perfect for cases where you’re printing many objects at once and one of them gets loose on the build plate. With this new feature, you can safely finish such print.

But what if you have a long list of identically named instances in your G-code? There’s a convenient option for this case, too: the “Cancel Current” function. Simply wait for the nozzle to reach the object you want to stop printing and then select “Cancel Current.” This is much more convenient than scrolling through a long list of identically named instances on the screen.

This feature was inspired by the famous Octoprint Cancel Object plugin, developed by Paul Paukstelis – big thanks to Paul for all the effort and for making the project open-source! We had Paul as a guest on our Prusa Podcast, so if you want to learn more about his work, check it out!

The new alpha version of the 5.1.0 firmware is available for all XL, MK4 and MINI printers, so feel free to try it out! We have been testing this alpha version for major bugs internally before release, but keep in mind that features in this firmware are still being developed and may not perform as expected.

Slicer packed with tons of new features – introducing .BGCODE, SVG support

We have just released the first alpha version of PrusaSlicer 2.7 which is packed with new features. PrusaSlicer has a great track record so even the alpha releases are pretty good and they keep all the settings in a separate folder, so you can test drive them without any worry. You can download the build directly from our Github and check out the new features.

We have implemented a number of new technologies that massively improve G-code transfers over the network, resulting in pretty much instant printing. There are a number of things involved, so let’s take them step by step.

First of all, the current G-code format (the one that pretty much everyone uses) is rather space-inefficient. On one hand, these G-codes are easy to read and interpret, but the downside is that the data is not saved efficiently, resulting in a large file size. The obvious solution is to somehow compress the file. However, 3D printers usually run on specialized hardware optimized for printing, not for unpacking heavily compressed ZIP files. Several solutions to the problem have been proposed by members of our community, such as Meatpack encoding (utilizing the fact that the character set of a typical G-code is very limited) or heatshrink compression algorithm with very small memory requirements.

Starting with the new PrusaSlicer release, we are proposing a new standard for a binary G-code format for encoding and compressing ASCII G-code files (see the specification). The format is flexible and the encoding and compression of individual blocks is variable. We also provide libbgcode library which contains the routines to convert ASCII G-code to binary and vice versa.

The size difference between ASCII G-codes (the “standard” ones) and binary G-codes will depend on the contents of the file. However, our testing shows that using binary G-codes further reduces the filesize by 70 % on average.

We are further reducing the filesize with G2 and G3 G-codes (arc and circle moves), which is a feature based on ArcWelderLib by FormerLurker who is also the author of the famous ArcWelder OctoPrint plugin – we would like to express our huge thanks to FormerLurker for all the effort invested into the project and for making it open-source!

The function is enabled by default, but if you want to play with it, the Arc Fitting function can be found in Print Settings -> Advanced -> Slicing -> Arc fitting. The G-code size reduction will heavily depend on the contents of the G-code, but this can, in general, save dozens of percent of space. Plus, there is also the support for new space-saving QOI picture format for thumbnails.

So, when we combine the binary G-code encoding with Arc Fitting (described above), the filesize is massively reduced. You can check the following chart for a better overview.

The support for the new .bgcode file is now implemented in PrusaSlicer, including its export, loading configs, previewing G-code and also working file associations. Binary G-code option can be found in Print Settings -> Output options -> Export as binary G-code (it is enabled by default). Options to convert ASCII G-codes to binary (or the opposite) were added into the File menu.

Please note that you need to update your printer’s firmware (at least 5.1.0-alpha2) to make sure it supports the new .bgcode file format!

SVG support

One huge feature that could easily get lost in this release is the support for SVG (Scalable Vector Graphics – the most common vector image format) in PrusaSlicer, which can be easily embossed and 3D printed! I believe this will truly make printing of various logos and QR codes much easier. It’s another task that you can now do directly in the slicer, rather than having to open CAD software. And just like the Text tool, the embossed SVG texture can follow curved surfaces with a single checkbox tick. It’s pretty awesome and I can’t wait to see what the community will do with it! 🙂

The imported SVG can be used as a standalone part, but you can also emboss it, cut it, or even use it as a modifier. When saving the 3MF, you can choose to keep the SVG editable or to “bake in” the changes to your model.

Faster network transfers with streaming

We’re aware of the fact that the network transfer speeds in the MK4 and XL left something to be desired. We focused on the optimization of the network code and brought two major improvements.

The first one is the massive reduction of the G-code filesize as described above. The other major improvement is G-code streaming, pretty much just like YouTube. You don’t have to download the entire file before you can start working with it. Instead, the printer downloads a small chunk of the G-code, starts the print and the rest of the G-code will be downloaded during the print itself.

Engine Block V6Download for free from Printables.com

We have prepared a robust solution that takes into account various potential problems – such as slow transfer speeds or connection failures, so you don’t need to worry about losing your half-finished print.

Now, when you upload a G-code to the central PrusaConnect storage, you can easily distribute it among your 3D printers and start printing instantly. You can work with these G-codes in the regular file manager, sort them using name or printer/filament type, rename or delete them, or download them back to the computer. If the print file has an available preview, it’ll be shown in a list of files. Any of your print files, stored on the SD card or the flash drive of your printer can be printed from within the web interface as well.

As you can see from the graph above, the largest G-code (the V6 engine) originally took about 36 minutes to download before the printer could start printing. With the new G-code streaming option, the print starts in just 25 seconds.

The new alpha version of PrusaSlicer 2.7.0 can be downloaded from our Github.

Further improvements to tackle stringing

Several users brought to our attention that they are experiencing situations where the XL 3D prints have visible stringing – the XL is a large-format 3D printer and the combination of a 0.6mm nozzle and long travel moves can have stringing as a side effect. However, we are working on addressing these situations.

Right now, one of the community suggestions is to lower the printing temperatures to decrease the chance of stringing. This does help, however, it’s not advised to go too low, because the lower temperatures could affect the overall strength of the print.

We have developed another solution – a special set of moves for the printer that greatly reduces the occurrence of stringing. We expect that this addition (called Z-hop ramping), will become available in PrusaSlicer within the next few weeks. And it will help reduce stringing on all machines, not just on the XL!

With that said, there’s something else that needs to be pointed out – filament moisture plays a major role in stringing, especially with multitool prints on the XL. No matter how well we tune the profiles or which new features we introduce, once your filament absorbs too much air moisture, it will most likely start to string. So before you start adjusting the print profiles, please do make sure that your filaments are dry.

Wrapping it up

So just to wrap things up: we have ramped up the XL’s production, so we can finally send the rest of the preorders in the upcoming months. We’re bringing updated firmware and PrusaSlicer to make the XL faster, more reliable and more efficient. And with G-code compression and streaming optimizations in place, you can start network print jobs in mere seconds.

And the multi-tool upgrade packages and the enclosure are just around the corner. 🙂

Happy printing!