TheZeroBeast / TZB-MMU2S-Firmware

Firmware for Original Prusa MMU2 by Robert McKenzie
140 stars 22 forks source link

MK2.5S:MMU2S Configuration #135

Closed habitforming11 closed 5 years ago

habitforming11 commented 5 years ago

Please consider a MK2.5S compatible variant of the lastest TZB MMU2s firmware. Unfortunately my technical ability in coding is nearly zero, but I will be happy to support through detailed testing.

TheZeroBeast commented 5 years ago

Hey mate, I'll try have a look this weekend and hack together a starting point for you to flash and try. What language do you prefer for the build?

habitforming11 commented 5 years ago

Very much appreciated! English, please.

I just found that Prusa failed to send the mk2.5 IR sensor cable in my kit, so I won't have a printer ready to use for a few more days.

TheZeroBeast commented 5 years ago

English, can do. Ah, damn, no problem. Will be interesting 👍

TheZeroBeast commented 5 years ago

Hey @habitforming11,

I'll post a printer hex later today, I have it compiling for MK2.5S now.

habitforming11 commented 5 years ago

glad to hear it! Prusa threw me several curve balls, so i all don't have a completely functioning mmu. first was missing two harnesses, now I learned my mk2s heat break is too large inside diameter which is causing massive unloading / loading difficulties. should have the right heat break on Tuesday.

do you have any specific testing you need me to do? i can load firmware, check calibration, etc.

also, i am running the bear extruder which is 7mm taller than mk2.5S extruder. will that be a problem?

TheZeroBeast commented 5 years ago

Oh lovely..... The correct heatbreak(MK3) makes a big difference, definitely needed.

If you can let me know if the homing worked reliably and only the desired two taps for selector and idler. With TMC2130s running on 12v instead of 24v it may not work as intended.

Apart from that just put it through it's paces and if you come across an issue rill out the bug report template.

With the bear mod just ensure you don't go higher than you are able to when slicing. Your Slicer profile can even be changed to limit max height.

habitforming11 commented 5 years ago

can you explain this sentence "and only the desired two taps for selector and idler"?

TheZeroBeast commented 5 years ago

Sure can.

When the printer connects to the MMU2S unit it will home. This results in two audible taps/knocks each when they hit their respective endstops.

habitforming11 commented 5 years ago

OK that makes total sense. That sounds a whole lot better than the two sets of about 10 knocks that it does currently.

habitforming11 commented 5 years ago

Also as I mentioned I am a complete amateur at github. Have you posted the 2.5 compatible firmware and if so, where do I find it?

TheZeroBeast commented 5 years ago

haha, I konw right, PRUSA just runs into the endstop for a period of time and assumes it's homed even though TMC2130 drivers have stallguard for virtual endstops. Slaps face

I haven't yet, are you keen, I'll try remote into my home computer and upload to this thread soon.

habitforming11 commented 5 years ago

Don't go out of your way on my account if you don't want. I was sitting here with a few free hours thinking about getting the machine torn down for the heat break swap, but if you had something ready to test and we're just looking at initialization, I figured I'd give it a go beforehand. Doesn't make much difference to me, but if you're anxious for a report I'm ready to test.

TheZeroBeast commented 5 years ago

Here we go, so load this into the printer, then load the MMU2S hex from here TZB-MK2.5S-3.0.0-BN2450.hex.zip

Yeah, keen to know how it goes, I have an old MK2S that would like some MMU2S oneday lol

habitforming11 commented 5 years ago

It does 4 double taps of the idler upon startup. Now investigating the flashing light and where to proceed. I'll update as I continue.

Also I have a bug report to post, incoming.

habitforming11 commented 5 years ago

I now have a flashing green (or flashing red if I push filament through) on lane 2, the currently selected lane. The middle button appears to rehome the idler, the other buttons are unresponsive. I've looked through the TZB-MMU2S-Firmware wiki, and I cannot find what this error state is or how to proceed.

EDIT - More importantly, MMU is not detected by MK2.5S

TheZeroBeast commented 5 years ago

Were you able to get them both flashed with this firmware? I see in your bug report you were having issues flashing the MMU2S after the MK2.5S.

The middle button attempts to load filament on that channel (two attempts if unsuccessful) Initially it should home both the selector and idler after middle button press. Then it should push filament to FINDA and then back to parking location. If it isn't detected at FINDA then red, green lights on that channel alternate to say error (I'll add wiki details for this soon)

In this error state middle will retry to load filament (Note: on second try if it fails it doesn't go into error state)

If the idler and selector appear to be doing the correct movements and engaging the filament then check your FINDA is tripping when filament is present.

Maybe dropbox a short video so I can see the sequence.

habitforming11 commented 5 years ago

While the mk2.5 was flashed with the prusa firmware, I flashed TZB onto the MMU. Following that, I flashed TZB onto the mk2.5.

Now when I power up, the lane 2 green LED is flashing, but no other activity occurs. If I push the middle button, the idler re-homes and returns to lane 2, lane 2 green LED continues to flash, but the bondtech motor never moves at all. Left/right buttons do nothing. Mk2.5 support screen says "MMU not connected"

habitforming11 commented 5 years ago

To be clear, the selector never moves (or attempts to). The idler is the only stepper that does anything following power up/reset.

TheZeroBeast commented 5 years ago

Hmmm, leave it with me @habitforming11, I'll review the comms pins for the two boards, probably missed something I need to set specifically for the MK2.5S

TheZeroBeast commented 5 years ago

I made a small change to the mmu2s init of comms, might be why they're not communicating, can you flash it onto the printer and see. Also, just to make sure, you have TZB-MMU2S-3.0.0-RC3 flashed on the MMU2S right?

Do you have access to the serial logs, prontoface or OctoPrint, that would be the next helpful thing to diagnose what's happening.

TZB-MK2.5S-3.0.0-BN2451.hex.zip

habitforming11 commented 5 years ago

That's correct, I did have TZB-MMU2S-3.0.0-RC3 flashed onto the MMU. I was able to do that by flashing it first when the printer still had prusa firmware installed.

With BN2451 I am able to see MMU2S device on my PC, but flashing TZB-MMU2S-3.0.0-RC3 onto it failed so far. Still testing.

habitforming11 commented 5 years ago

Following power off/on of the printer, the display only shows two rows of solid boxes. No text.

I flashed BN2451 yet again, but still only two rows of squares are displayed. Unable to control printer at all.

TheZeroBeast commented 5 years ago

Hmm, interesting. I'll have to have a think about it.... Realistically I need a MK2.5S test rig, I'll see what I can sort out.

AbeFM commented 5 years ago

To be clear, the selector never moves (or attempts to). The idler is the only stepper that does anything following power up/reset.

I have had all sorts of issues that boil down to bad connections. The connectors on the MMU are garbage, maybe ok for chasis wiring, but enough to cause issues if they ever get moved/bumped.... while being installed on something that you have to work on all the time to make work and lives in a hinge that gets moved hundreds of times per print.

In short: The times I've had a motor not work, I wiggle (or reconnect) all the connectors on the back of the MMU, half the time this brings it back. Look for wires not quite in the connector. I would do it while powered off to ensure you don't break something.

Not saying it is what you're seeing here, but other times where no answer made sense, that worked.

habitforming11 commented 5 years ago

@abefm good info. in this case it's a matter of the firmware though. switching back to prusa firmware, everything functions as expected.

TheZeroBeast commented 5 years ago

Yeah, @AbeFM, not the best cabling setup hey. The annoying difference that's causing issues is the lack of MMU_HW_RESET on the MK2.5S, not a problem if I had a setup to chuck the old logic analyser on but lacking the HW at present.

TheZeroBeast commented 5 years ago

I've got another test for you @habitforming11, hopefully a connection between printer and MMU2S this time.

TZB-MMU2S-3.0.0-RC3-BN352.hex.zip
TZB-MK2.5S-3.0.0-BN2454.hex.zip

Flashing as per the Wiki videos 👍

habitforming11 commented 5 years ago

I am still getting two rows of solid boxes on the printer LCD after flashing "TZB-MK2.5S-3.0.0-BN2454.hex"

Followed the instructions on your wiki exactly. Printer also never self restarts after firmware install successfully completed. This is before attempting to flash the TZB MMU firmware. Results on that to follow...

habitforming11 commented 5 years ago

Flashing MMU firmware "TZB-MMU2S-3.0.0-RC3-BN352.hex" was successful via your wiki instructions. However, the printer display is now blank after initialization, and MMU has flashing amber LED on lane 2 (Lane 2 is currently loaded to nozzle).

habitforming11 commented 5 years ago

Octoprint was able to establish a connection, though the printer display is still blank. Here is terminal readout:

Connecting to: /dev/ttyACM0Changing monitoring state from "Detecting serial port" to "Opening serial port"Connected to: Serial(port='/dev/ttyACM0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitorStarting baud rate detection...Changing monitoring state from "Opening serial port" to "Detecting baudrate"Trying baudrate: 115200Send: N0 M110 N0*125Recv: echo: TZB3.0.0-2454Recv: echo: Last Updated: Sep 25 2019 19:16:30 | Author: (none, default config)Recv: Compiled: Sep 25 2019Recv: echo: Free Memory: 1786 PlannerBufferBytes: 1392Recv: echo:Hardcoded Default Settings LoadedRecv: adc_initRecv: W25X20CL not responding.Recv: CrashDetect ENABLED!Recv: FSensor ENABLEDRecv: echo:SD init failRecv: echo:busy: paused for userPrinter seems to support the busy protocol, will adjust timeouts and set busy interval accordinglyRecv: echo:busy: paused for user

AbeFM commented 5 years ago

Just to double check - you need to flash both with a matching set of firmware. If you only do one, it breaks. Ideally, printer would say so ("Warning: MMU Firmware Mismatch").

habitforming11 commented 5 years ago

Understood. As explained in my second reply above, i did subsequently flash mmu also. Printer display remains blank.

TheZeroBeast commented 5 years ago

Ah, damn, I left a delay in that's blocking MK2.5S booting, I'll send a set in a couple hours with this removed.

TheZeroBeast commented 5 years ago

TZB-MK2.5S-3.0.0-BN2457.hex.zip

habitforming11 commented 5 years ago

I'll try to get to it tomorrow. After a very successful night getting things back together and working properly, I found an issue with my selector. Now to print a new one to replace it with. Making progress though!

TheZeroBeast commented 5 years ago

No problem, sounds good.

Interesting, what issue did you find with your selector, I'm still on my stock one, must be luck?

AbeFM commented 5 years ago

I'm still on my stock one, must be luck?

THAT's interesting. I'm using JTLX's easy to clean out selector rocks. I don't really like the magnet some people put in.

TheZeroBeast commented 5 years ago

Dman, I was mixed up, I'm on my stock drum/idler. My selector is one I have on Thingiverse with M10 passthrough and 8mm neo magnet to assist ball drop.

So, I just worked out I compiled MK2.5S FW incorrectly, tested on my old girl (MK2.5) and got it booting 👍

I also merged to STOCK_COMMIT_NR:3274

I have attached the hex files, hopefully it'll also allow your MMU2S to connect. Archive.zip

habitforming11 commented 5 years ago

I'm using "Selector_Magnet_Window_PC10Passthrough.stl", can't remember the author. When it prints, it bridges across the filament exit where the passthrough fitting attaches, and he says you have to drill that part out. Not understanding exactly what the function was when I first built it, I drilled it for the 3mm OD of the ptfe tubing, but it should have been 1.9-2.0mm for just the filament. Consequently, the filament periodically catches on the edge of the ptfe tubing, gradually collapsing it inward and causing load failures. I got through about 60 filament changes last night before it failed though - I new personal best!

TheZeroBeast commented 5 years ago

Awesome to hear you’re kicking goals.

Consider the selector I designed with m10, no drilling requirements and hopefully less catching filament.

I’ve done over 1000 change PLA prints without issue through it.

habitforming11 commented 5 years ago

Do you have a link to your selector? I looked on your thingiverse page but I don't see a selector.

Edit - nevermind, I just found it in your extruder design page

TheZeroBeast commented 5 years ago

Yeah, I'll move the MMU2S portion into it's own design on thingiverse and prusaprinters

It hides with my MK3 extruder mod

AbeFM commented 5 years ago

GOOD!

I complain a lot so I didn't bring that one up. :-)

The JTLX one I'm running has many thousands of changes on it, I can recommend it. Haven't tried Rob's.

habitforming11 commented 5 years ago

tzb_selector_section It looks like your design also has that solid wall where the filament exits the selector. Sorry for OT!

habitforming11 commented 5 years ago

tzb_selector_section2

TheZeroBeast commented 5 years ago

Damn, I'll review tonight @habitforming11, 12 month old design lol

Any chance to try load the fw from last night?

TheZeroBeast commented 5 years ago

Fixed her up, added blade section back in. Having't printed to test yet but should be good.

\ TZB MMU2S Selector M10 No Blade

habitforming11 commented 5 years ago

I just had a chance to flash the firmware. Flashing procedure went well, and the printer display is working as normal now. However with the MMU2S, it continually does the double tap homing procedure (over, and over, and over, and over, etc) and the printer support screen shows MMU as "n/a". Making progress though!

AbeFM commented 5 years ago

TZB - it would be nice to have a github thread/whatever for the physical designs - instead of threading them into discussions about firmware. Even just make an issue called "selector issues" and start with a link to the TV page?

I've debated - one of my most common failures is filament squirting out from the gap where the blade lives. Making that tighter and with a bigger chamfer seems like it would improve loading.

The downside with doing that is that the current design allows you to easily pull the filament free and service it. You have to weight the issues caused by the gap against the increased difficulty of fixing other issues which might get worse without a pain-free escape path for filament.

Similarly, there's a lot of room for improvement in the MMU - filament gets tangled on gears too often.

As the firmware improves, these are less of an issue.

TheZeroBeast commented 5 years ago

Awesome @habitforming11,

Progress indeed, the mmu2s is failing to home, difference of voltage showing it’s head. I’ll make some changes to the mmu2s code for you to try 👍

Have you tried my selector, I minimised the gaps to the case, it’s been working great.

Yes, we can create a thread for different hardware mods to discuss, I’ll create a tag for them now.