Many people were looking forward to the brand new firmware 3.9.0 for MK3/S and MK2.5/S and I’m happy to announce that the final version is finally available on our website. It took us a while, but there’s so much great stuff baked into the latest release. A huge thanks goes to our community members and collaborators, who helped us immensely! You have probably already seen the recent Dev Diary article, but in case you missed it, check it out. Our deepest thanks go to leptun, wavexx and 3d-gussner! Hats off to you, guys!

I also want to invite you to our live streams and share some more info about and Maker Faire Prague Online. So without further ado, let’s take a look at what’s going on!

Table of contents:

Original Prusa XL and other production news

I’m pretty sure you wouldn’t let me continue without touching these two subjects first. We’re being asked constantly about new 3D printers. I guess that it doesn’t come as a surprise when I say that the current COVID-19 situation is causing major issues with shipping and sourcing parts. So even though we’re able to continue with the development of the “XL”, at this point, I don’t want to share any estimations, because they could lead to false hopes and the development process of the printer is not close to the finish. It all depends on how the current situation turns out in the near future.

The good news is that we have more time to tweak and optimize the entire machine. And some of the features might trickle down to the successor to the MK3S. And as always we will do our best to provide an upgrade path, when the time for a new version comes. 😉

And one more thing regarding production and shipping: within the COVID-19 situation, the demand for new printers (both MK3S and MINI) increased a lot. We had to hire more people and ramp up the production to cover the demand. This is why we had to temporarily stop the production of upgrades and focus on printers. However, all types of upgrades will be soon back along with MMU2S which is getting more and more popular. Also, we managed to get the shipping of small items back on track. During the COVID-19 pandemic, some of our team members had to stay at home (e.g. to look after their children), so there were some delays with shipping. However, we hired 12 new colleagues to the shipping department to deal with the queue. Now, if you buy one of the smaller in-stock items, we’ll ship them within 24 hours.

Firmware 3.9.0 for MK3/S and MK2.5/S

Before we get to the cool stuff in 3.9.0, let me share some numbers. Because they are truly impressive.

This release includes:

  • 409 commits to the code
  • 108 pull requests
  • 66 closed issues
  • cooperation of 14 developers

It’s an incredible amount of work – you can download new firmware 3.9.0 from our website and check the complete changelog on Github if you are interested in details about particular features and changes. I will point out just a few most interesting things…

Linear Advance 1.5

Linear advance 1.5 was really sought after for a long time, but it was very difficult to implement in a way not to break compatibility of your tested production g-codes for example. So if your G-code contains the older version, the printer will convert it automatically. If you decide to reslice your models, make sure to use PrusaSlicer 2.2, which contains settings for LA 1.5.

But wait – what’s Linear Advance and why is it so important? Linear advance is a technology that predicts the pressure build-up in the extruder when printing at higher speeds. Firmware of the printer uses that prediction to decrease the amount of filament extruded just before stopping and decelerating, which prevents blobs or artifacts at the sharp corners. Linear Advance 1.5 also brings various other benefits – such as an easier implementation, which results in a lower CPU workload.

If you’re interested in all the technical details behind this function, head over to GitHub and read wavexx’s explanation.

And because I don’t want this to look just as a shorter changelog, our firmware developer David shared some interesting information about how this function came to life. It took nearly a year to get Linear Advance 1.5 into stable firmware release. While Marlin2 firmware has LA1.5 already implemented, our 8bit firmware is still based on Marlin1. And the difference is so big that the only thing we could do was to take the overall concept of LA1.5 and code it from scratch.

The pull request by @wavexx was ready and functional, however, we wanted more than just “make it work”. Probably the biggest challenge was my request for backward compatibility – there was no way to invalidate older G-codes. A lot of time was spent on the E-jerk functionality tweaks. In the original implementation, it caused printing slowdowns of up to 40 %. This was eventually fixed and we learned that the MK3S can do more than we actually estimated.

And, well, then there was the testing and bug fixing, which actually took several months. Some of the issues appeared only after several hours of printing, so you can imagine how difficult it was to replicate such issues. The RC1 candidate looked pretty good and we felt quite confident about it, but then came a report that uncovered issues with retractions and wiping on tall thin columns. This took almost a month to find, implement a fix, and test it. So the final 3.9.0 firmware delivers pretty good results, but as always we’re looking for ways to improve them further!

Other useful improvements

Screen brightness adjustment – if your Original Prusa i3 MK3S 3D printer was manufactured in the second half of 2019 or later, you received it with a slightly different LCD screen, which allows brightness adjustments. This comes in handy if you don’t want the display illuminating half of your room 🙂 In case you have an older model, you can head over to our e-shop and order a newer module – the replacement is pretty easy. This function was programmed by @leptun and it’s fully automatic. If your printer model does not support this functionality, you won’t see it in the menu. It’s a pretty cool thing and for me, it was love at first sight 🙂

Filament sensor status detection – This feature is still being further developed with the goal to improve the recognition of the filament sensor status. The printer is continuously measuring the voltage (you can check it in LCD Menu – Support – Voltages) and based on the value, it recognizes three states: inserted filament, no filament, disconnected sensor. However, this works only with filament sensors with revision 0.4+.

In this case, we came up with a runtime detection – the printer starts with the default information that the old filament sensor is present (the functionality is the same). During the idle state, it measures voltage on the sensor. If the printer gets both values successfully, it means that the newest sensor is installed. And this enables us to do a nice little trick: the printer can recognize whether the filament sensor gets disconnected or damaged based on the voltage values (the voltage will change from +4.6V to +5V). And based on this information, the printer can act accordingly – e.g. pause the print.

MMU2S Selector Blade Activated – The MMU2S unit contains a small blade for cutting filament ends. Up until now, it wasn’t active. Now it is, so make sure you have FW 3.9.0 in your printer and FW 1.0.6 in the MMU2S unit. Curiously, this was pretty much ready in FW 3.8.0, but we needed more time for testing and preparation of new plastic parts for the MMU2S – the code was in, but the functionality was turned off by default.

Improved Power panic – The MK3 had the Power Panic feature from the beginning. However, everything can be improved. So @wavexx inspected the code for power panic and fine-tuned several parts. For example – stepper motors are stable only when they reach one full step. This means that Power Panic has to ensure that the Z-axis motor reaches a full step. And the original position has to be saved. This requires precise work with the Trinamic drivers. Now, the power panic feature is more stable and it even uses the last bits of power to move the nozzle from the object. However, we’re unable to shut down the MMU2 unit quickly enough, so it drains all power before anything else. Listen for a confirmation beep to make sure that the power panic process was successful.

Tweaks and fixes

There are tons of other tweaks and fixes in firmware 3.9.0. Some of them are briefly mentioned below but the full changelog has more than 3100 words so if you want to dive in, go ahead to our Github. Our developers are also working on a new addition to the “Dev Diaries” series where they will speak more about making this spectacular update.

  • MK350 (micro-stepping) enabled for all axes
  • MK3 Filament Sensor fixes – we have further improved the reliability of the MK3 sensor using new algorithms and tricks
  • Heating disabled during MBL
  • Sheet’s name displayed on the status screen
  • Automatic E-jerk conversion (required for precise PrusaSlicer print time estimations)
  • MINTEMP value lowered from 15°C to 10°C (59°F to 50°F) – this was another highly requested change. It allows the printer to operate even in colder temperatures. However, this works only with the MK3/S. It’s not compatible with MK2.5/S due to the board wiring.
  • Flickering Statistics screen fixed
  • “Unknown height” displayed for Z-Axis fixed
  • …and more!

Introducing the “Prusa Live” stream!

Since we can’t meet you at various events, trade fairs and shows, I was looking for a different way to connect with fans of 3D printing and our customers. And live streams proved to be a great option. The recording of the first stream is available on YouTube, so check it out below. I was joined by Mikolas and Matt and together, we discussed various topics including the latest firmware 3.9.0 or the Prusa XL, responded to questions from the live chat and all in all had a great time.

We’re still tweaking various things, including the schedule, but we would like to broadcast new episodes every 2 weeks. So keep an eye out for announcements on our social media! The next episode’s main topic will be firmware development and we would like to focus on PrusaSlicer, hardware development, and more in the future. Let us know in the comments how you like the new format! 😉

Print-on-demand, fully localized PrusaPrinters, and Blog

We’re constantly expanding the functionality of After the “Groups” feature (explained in my previous article), we now introduce an expanded Print-on-demand functionality. The name is pretty much self-explanatory. Users can tick a “Print on demand” box in their profile, which signalizes that they are ready to accept requests from other users.

However, before we get to that, there’s another major change I’d like to point out: is now fully localized into seven languages (English, French, Italian, German, Spanish, Czech, Polish) and this includes future articles on the Blog, too! We will do our best to publish the translation of new articles as quickly as possible. And we have decided to translate several important articles retrospectively, so check them out!

Needless to say, the translation of PrusaPrinters covers “only” the menus and general user interface. Project descriptions remain in the original language, but we’re currently evaluating the pros and cons of machine translation.

Now for the Print on Demand feature. If you want to have something printed, you can open the World Map and use the “Print on demand” toggle in the lower left-hand corner to display users offering print on demand services near you. Then, you can simply click the “Request print” button in the user’s pop-up profile window and fill in basic information about the job. The user will be notified by a message and an e-mail and they can get back to you via the Messenger to discuss pricing, delivery dates, etc. Keep in mind that this is just a basic implementation of Print on Demand – we want to add new features and improve user experience in upcoming months.

Maker Faire Prague Online in English for everyone!

Under normal circumstances, by now we would have been looking forward to meeting you in person during the 3rd Prague Maker Faire. Unfortunately, it’s not going to happen for obvious reasons. Nevermind though, let’s meet online at least! The Maker Faire Prague Online Edition will take place on Friday and Saturday, May 29th – 30th. In our virtual studio, we will host workshops together with various people from the Czech maker community, hopefully providing some inspiration for your future projects. And because it’s an online event, really anybody can join us – there will be an online stream of Maker Faire Prague Online from the Prusa Research Facebook page, including a simultaneous translation to English!

Happy printing!