Skip to content

Conversation

@3d-gussner
Copy link
Collaborator

User reported an issue with Prusa-Firmware 3.14.1 + MMU 3.0.3, PrusaLink 0.8.1 and PrusaConnect see prusa3d/Prusa-Firmware#4818

After troubleshooting I have found that the MMU 3.0.3 crc value is only one char long instead of being two chars. PrusaLink REGEX expected to have exactly two chars for the crc and so failed to get the correct MMU version including the build number. This causes PrusaLink and PrusaConnect to show the printer as "BUSY" and so not usable with PrusaLink and PrusaConnect.

Prusa-Firmware 3.14.0 with MMU 3.0.2 works fine as the MMU crc is two chars.

This fix accepts one AND two char crc which are 0-9 and a-f.

Changing the Prusa-Firmware and MMU3 firmware isn't a real option as this would also cause the need to change the Prusa-Firmware-Buddy and maybe other 3rd party solutions.

Test:
Before PR:

  1. Flash FW 3.14.1 and MMU 3.0.3 firmware
  2. Enable MMU
  3. Restart the printer
  4. Start PrusaLink 0.8.1
  5. Open PrusaLink and PrusaConnect
    a. Both show BUSY state and the printer is "locked"
  6. As a workaround you can disable temporary the MMU in the printer menu, but that also doesn't work always. And after a reboot or new startup the issue is back.

After PR:

  1. Flash FW 3.14.1 and MMU 3.0.3 firmware
  2. Enable MMU
  3. Restart the printer
  4. Start PrusaLink 0.8.2
  5. Open PrusaLink and PrusaConnect
    a. both show IDLE

Also the log files of 0.8.1 in combination of FW 3.14.1+MMU3 shows ERROR: Gather of mmu_version has failed

Copy link

@Nailig Nailig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested on an mk3s+ fw 3.14.1-revo with mmu3 fw 3.0.3 by manually editing the files on the RPI zero 2w. This solves the "BUSY" problem in my case.

@3d-gussner
Copy link
Collaborator Author

Here how you can manually solve the issue, until the release.

Search for the file regular_expressions.py, the other file __init__.py is less important.
See also https://github.com/prusa3d/Prusa-Link/pull/1009/files.

The path to the file may be different, depending on the Python version.

I personally do not own a RPi, but have PrusaLink running on my PC with Ubuntu.

I can find this file in
~/.local/lib/python3.10/site-packages/prusa/link/printer_adapter/structures
or /home/<my user account/.local/lib/python3.10/site-packages/prusa/link/printer_adapter/structure

but also in ~/.local/lib/python3.9/site-packages/prusa/link/printer_adapter/structures PL has been installed with this Python version.

Search and replace in regluar_expressions.py

\*..\.$”

with

\*[0-9a-f]{1,2}\.$”

again see my PR for the needed changes.

There should be 6 lines that need to be changed.

I also tested if PrusaLink and PrusaConnect work with the customized 0.8.2 version in `init.py.

Hope that helps.

Advantage of the manual change is that you don't lose your configuration you already have.

In case you have ssh enabled on the RPi then you can connect to it and change it there.
As I don't own any RPis you may need to search if you can edit these files on the SD card directly.

@mgtmadness141879
Copy link

Email sent

@belousevgen
Copy link

Looks like a small change, but crucial for MMU owners. Is there a way to upvote for it?

I have 8x MK3S+ MMU3 and it's really annoying that I can't send MMU sliced gcode over prusaConnect due to this issue.
Since Printer fail to get MMU version it identified it self as regular MK3S+ and not showing up in the list of available printers when you try to send gcode to the printer.

I am familiar with git, but not familiar with Rpi images.
I could fork this PR and build a new image myself If anyone can tell me how to do it. Thanks.

@3d-gussner
Copy link
Collaborator Author

3d-gussner commented Mar 10, 2025

@belousevgen

Please send me an email.

@sturze
Copy link

sturze commented Mar 11, 2025

+1 on this issue
has anyone figured out what files to change on the SD?

@3d-gussner
Copy link
Collaborator Author

See my comment above. Some users were able to modify the files and fix the issue

@sturze
Copy link

sturze commented Mar 11, 2025

See my comment above. Some users were able to modify the files and fix the issue

I did, but I can't find any "regular_expressions.py" in the whole bootfs/rootfs of the PI's SD. that's why I was asking

@sturze
Copy link

sturze commented Mar 11, 2025

nevermind... I think I found it.

for all others: in rootfs its
cd .//home/jo/.local/lib/python3.11/site-packages/prusa/link/printer_adapter/structures/

@pjmoskowitz
Copy link

pjmoskowitz commented Mar 18, 2025

I am very confused where I am supposed to search for the file to edit... Do I search in the rpi directories? I do not see any file that is labeled as "structures" or "expressions" when i search the SD card... The only files I am seeing on the SD card that I am able to edit on my Mac is are "config.txt", "cmdline.txt", "firstrun.sh", "issue.txt"... all others are .dat, .elf, .dtb and .dtbo which I cant open... please advise.. thanks

I have also attempted to ssh to the rpi but am getting an error "port 22 connection refused"

@sturze
Copy link

sturze commented Mar 18, 2025

I am very confused where I am supposed to search for the file to edit... Do I search in the rpi directories? I do not see any file that is labeled as "structures" or "expressions" when i search the SD card... The only files I am seeing on the SD card that I am able to edit on my Mac is are "config.txt", "cmdline.txt", "firstrun.sh", "issue.txt"... all others are .dat, .elf, .dtb and .dtbo which I cant open... please advise.. thanks

I have also attempted to ssh to the rpi but am getting an error "port 22 connection refused"

when plugging the sd into a card reader I got two partitions: bootfs and rootfs. rootfs should be the one.

i also might have found a workaround: you can try to print directly from SD and cancel the print. that worked for me once

@3d-gussner
Copy link
Collaborator Author

@pjmoskowitz @sturze Please send me an email.

@danielschlingmeier
Copy link

Is there any plan when this update finds his way to an regular firmware update before I finally throw the stupid MMU out of the window? :-)

@3d-gussner
Copy link
Collaborator Author

@danielschlingmeier Please send me an email.

@MxClaudio
Copy link

I have the same problem, is there a new update planned that will automatically fix this problem?

@3d-gussner
Copy link
Collaborator Author

@MxClaudio Please send me an email.

@padillla
Copy link

padillla commented May 9, 2025

Any update on this?

@valemaio2
Copy link

Here how you can manually solve the issue, until the release.

Search for the file regular_expressions.py, the other file __init__.py is less important. See also https://github.com/prusa3d/Prusa-Link/pull/1009/files.

The path to the file may be different, depending on the Python version.

I personally do not own a RPi, but have PrusaLink running on my PC with Ubuntu.

I can find this file in ~/.local/lib/python3.10/site-packages/prusa/link/printer_adapter/structures or /home/<my user account/.local/lib/python3.10/site-packages/prusa/link/printer_adapter/structure

but also in ~/.local/lib/python3.9/site-packages/prusa/link/printer_adapter/structures PL has been installed with this Python version.

Search and replace in regluar_expressions.py

\*..\.$”

with

\*[0-9a-f]{1,2}\.$”

again see my PR for the needed changes.

There should be 6 lines that need to be changed.

I also tested if PrusaLink and PrusaConnect work with the customized 0.8.2 version in `init.py.

Hope that helps.

Advantage of the manual change is that you don't lose your configuration you already have.

In case you have ssh enabled on the RPi then you can connect to it and change it there. As I don't own any RPis you may need to search if you can edit these files on the SD card directly.

Thank you, this seems to have fixed it for me, hopefully it will get pushed to the main branch.

@danielschlingmeier
Copy link

For me the only workaround is:

  • Switch off the RPi port (MMU) in the settings
  • Push reset
  • Switch on RPI again
  • Push reset

-> The problem does only occur when the RP Zero is powered on and apparently the reset does not interrupt the RP power supply, so this kind of "hot starting" the MMU while the RP is already on works.

However seems nobody at Prusa seems to care to support the "old" product MK3S printer with PrusaLink on RPi + MMU3, which I find quite disappointing. Last time Prusa Printer I guess, there has been to much trouble with it overall.

@timemaster5
Copy link

I have the same issue, and would be glad to have this sorted.. it is annoying and takes a lot of time. Also I don't think this was happening at the beginning for some reason.

@Nicholas5511
Copy link

Nicholas5511 commented Sep 20, 2025

In my case with MK3S MMU3. SSH into Raspberry Pi zero W. navigate to .../site-packages/prusa/link/printer_adapter/structures. Edit regular_expressions.py with nano.

@dkammerer24-prog
Copy link

It's hard to believe this was made 11 months ago. I finally got around to messing with the RPi 2w and then all I get is "busy". Simple reset and it is back to idle. But the Mmu3 doesn't even show up as an option. I'm going to try the fix, but it's wild that there still hasn't been an update to this.

@3d-gussner
Copy link
Collaborator Author

@dkammerer24-prog Please contact PrusaSupport for the pre-release of Prusa-Link 0.8.2.

@dkammerer24-prog
Copy link

dkammerer24-prog commented Nov 11, 2025

Didn't have time to pull the card and mess with the code, until today. I saw your comment and reached out to support. After letting them know that 0.8.1 was having issues with FW3.14.1-8237 and Mmu 3.0.3, they send over the pre-release .8.2 image. Thank you @3d-gussner!

@m2m2m2m2m2m2
Copy link

m2m2m2m2m2m2 commented Dec 26, 2025

I have a Pi Zero 2W on MK3S+ and the following worked (after the change and physical power down and up of printer. NOT JUST RESET BUTTON). Edit the file regular_expressions.py located /home/{YOUR USERNAME}/.local/lib/python3.11/site-packages/prusa/link/printer_adapter/structures
Replace: (remove [ ] brackets)
[*...$"]
With: (remove [ ] brackets)
[*[0-9a-f]{1,2}.$"]

Got sick of waiting on support chat queue to ask for download link. Besides the above fix was quick and easy. Would be great if Prusa cared to fix this and post on their website. I love my MK4S but I keep my MMU3 on my older MK3S+ because I like simplicity on my faster MK4S printer and just starting to learn to use the MMU3.

@Houzvicka
Copy link

Thanks for the fix! 🙌

I ran into exactly the same issue on my MK3S+ with MMU3 via RPi3 over USB — the printer would appear as “busy” / not usable and I couldn’t send prints from PrusaSlicer/PrusaConnect until this was resolved.

The change in this PR (#1009) to handle the MMU3 CRC format correctly fixed the problem for me too — PrusaLink now correctly works and not showing the printer as busy.

Thanks again for identifying and fixing this! It saved me a lot of troubleshooting. 👍

@danielschlingmeier
Copy link

Hey guys! I am following this thread for a while now, because I have the same issue. However I don't get you "solution" at all. Where can I find the file "regular_expressions.py"? Is this a file on the Pi Zero inside the printer? Well, I simpley downloaded a PrusaLink image file here under "Code", which is a black box to me. No idea how to change something there... I can find the file in the repository here, but no Idea how to trigger a build....

Anybody able and willing to help? I will also annoy the prusa support now to get the pre-release...customer feedback is important :-)

And if it is that easy, why not change it in the repository here and release a new version? I mean this topic is not 1 year old and I guess everybody with Mk3 + mmu has a non-functional printer at the moment or am I missing something?

By the way, there is another way to bypass the problem: Switch on printer (says busy all the time then, as discussed) -> deactivate RPi port in settings -> press reset -> activate port in setting agin -> reset again -> works! :-) Seems to be this is only a hick up during initial power on if the MMU3 or so.

Best regards
Daniel

@danielschlingmeier
Copy link

Here ist the Link to PrusaLink 0.82 provide by Prusa Support. This should fix the issue.

Best regards
Daniel

@Nicholas5511
Copy link

Nicholas5511 commented Jan 10, 2026 via email

@dkammerer24-prog
Copy link

dkammerer24-prog commented Jan 10, 2026

Yes, I have had success. I am running a rpi zero 2w with 0.8.2. The rpi zero 2w would not run on 0.8.1, i tried and tried with no luck. my current set up is mk3s+ running 3.14.1-8237, mmu3 FW: 3.0.3.

edit: thank you @danielschlingmeier for providing the link. I should have posted it once i got it from prusa support team. I did not see the notifications for this thread until today.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.