jukebox42 / Octoprint-PrusaMMU

An Octoprint plugin that adds MMU support.
GNU Affero General Public License v3.0
17 stars 2 forks source link

MK4s + MMU3 reporting unknown MMU status #52

Closed Java-SE-Binary closed 2 months ago

Java-SE-Binary commented 3 months ago

Printer model: MK4s + MMU3

PrusaMMU plugin version: 2024.8.15

Printer + MMU version: 6.1.0 + 3.0.3

Behavior: The plugin does not recognize the current state of the MMU to display on the Navbar, whether it be idle, loading filament or otherwise.

jukebox42 commented 3 months ago

Hm, I must have broken that when I fixed support for filament selection. I'll take a look at the diff and see where I might have broken it, thanks for the report.

jukebox42 commented 2 months ago

Alright, had a chance to look into this. I hopefully found the problem but since I've only got an MK3s I can only test with the virtual printer.

Would you or anyone watching this thread be able to give this version a test? It would be ideal to test with a multi-filament print so you can watch the load/unload. You should see it say it's OK when the printer connects, show loading a filament near the start, changing between two when it swaps, and then finally unloading at the end.

For debugging, the plugin has a debug mode on the settings page under advanced options. This will cause it to print out messages into the log as well as your browsers devtools. (once done remember to turn off as it can slow performance)

Thank you in advance!

Octoprint-PrusaMmu.zip

Java-SE-Binary commented 2 months ago

Had a chance to test it and enable debugging. The fix did not change anything on my end. No matter what's done, the navbar still reports unknown. Attached is a screenshot of the relevant lines in the browser console.

Screenshot 2024-08-25 145653

jukebox42 commented 2 months ago

Hmm, @Java-SE-Binary can you try disconnecting and reconnecting (using the button in octoprint)? I'd like to see the firmware trigger. When you connect, can you look for a long line that starts with firmware_info_hook:? It should have said MK4 in prusaVersion but yours is saying null. Feel free to black out the UUID in the response, I don't need it :)

Can you also look for a line that looks like {action: 'debug', msg: 'gcode_received_hook MMU: M862.6 P "MMU3"'}. Both of these should show up during the printer connection process.

Thanks in advance!

Java-SE-Binary commented 2 months ago

Firmware hook here. image

Unfortunately, I'm not seeing a line containing a gcode_received_hook, and as a matter of fact, I'm not seeing any info regarding my MMU in the gcode terminal like I used to on my MK3s. I set up this MK4s somewhat recently, so I'm still getting used to its quirks, and all the differences that come with the xBuddy boards/firmwares.

I should ask, since you're using the M862.6 command, are you looking to query for input shaper, as I believe this is what this G-Code is for. M862.3 would usually query a model name, however my MK4s is only spitting out 'MK4S' as the model name, lacking MMU3 in the slightest.

EDIT: I've been toying with the M862 commands, through slicing and through manually inputting the commands through the terminal. It seems that my MK4 doesn't respond to any of the checks in any meaningful way outside of acknowledgement that the command was received. Effectively it seems the M862 command is useless for detecting the presence of an MMU, as using M862.6 Q only spits out "Input shaper". This may actually be a firmware bug on Prusa's end, as I see no documentation that the M862 command is disabled during serial printing. image

jukebox42 commented 2 months ago

@Java-SE-Binary Oh that is interesting. Have you verified you've installed the MK4 with MMU firmware instead of the base firmware?

Java-SE-Binary commented 2 months ago

There is no difference between the firmware that is released for the MK4's and the MK4 firmware that comes bundled in the ZIP file under the MMU sections of firmware downloads. This was the same case for the MK3's as well, as I've had experience compiling my own firmware for the older printers. This can be seen as the printer firmware bundled with MMU firmware does not have special naming to it. I did flash the firmware from the MMU bundle just to make sure, and there was no change in behavior.

I believe the firmware is supposed to start reporting the presence of an MMU when the MMU toggle switch is enabled in firmware, for new and old printers.

jukebox42 commented 2 months ago

Hm, TMYK.

I have a new build that might work. Some folks are having issues with the machine type detection so I've tried a simpler method of detection. I've also ditched the M862.6 check, it wasn't doing much since I assume everyone using this plugin is using it with an MMU.

If you have a sec please let me know if it works for you. Thanks! (source here #53) Octoprint-PrusaMmu.zip

Java-SE-Binary commented 2 months ago

Gave the new version a shot, didn't get very far unfortunately. The plugin is recognizing my MK4S as a MK3, so it seems things aren't working quite as expected.

image

jukebox42 commented 2 months ago

This is peculiar. It's interesting it's not noticing the MK4 version even though it's in your firmware command.

I have a more brute-force approach I can take. I can move the version to a dropdown and let you just hard-code it. I'll see if I can get you a version this weekend for you to play with and see if it fixes your issue. You might be the first MK4s to try this plugin.

Since you have some familiarity with compiling your own versions. If you wanted to unblock yourself before that, you could pull the source, in __init__.py replace version = detect_connection_profile(machine_type) with version = "MK4" then run buil.sh and install the zip.

jukebox42 commented 2 months ago

I've added an override setting in my latest release :) https://github.com/jukebox42/Octoprint-PrusaMMU/releases/tag/2024.9.8_1

Java-SE-Binary commented 2 months ago

Looks like this update has everything working beautifully! It successfully hooked from the M115 command and is displaying MMU status in the navbar! Only minor hiccup is Tool 4 (5th slot on MMU) does not switch from a 'Loading to Nozzle' state to a 'Loaded' state. Other tools display just fine, so its not a super pressing issue!

Great work and thank you so much for working on this issue! :)

jukebox42 commented 2 months ago

That's interesting. I wonder if that was a fluke (sometimes it misses the indicator) or a bug I have. Let me know if you see that again, and I can do some additional digging. Going to close this for now since it looks like your main issue is fixed :)

Appreciate the help debugging!