Re: Improvements to the MMU 2.0 controller firmware
Hey mate,
Sorry to hear you smashed your sensor. What do you mean these chips are getting worse, have you smashed one before this?
I think I have most of the bugs and a good error recovery system working in my FW now.
I’m running a test now and if no more logic bugs crawl out I’ll be merging into my master for MK3 MMU2 and calling for a tester or two.
Or if you’re feeling keen you can always build patch1 branch of both and try prior.
Readme on MMU2 patch1 branch has how to handle a fault as well as speeds for Slic3r to stop unwanted grinding.
Rob
Re: Improvements to the MMU 2.0 controller firmware
Hey Rob,
I switched back to the Prusa 1.0.2 FW after the issues I mentioned earlier when testing your first release, and got some successful prints that way, but I just had a new failure mode. After hundreds of successful filament changes, the selector & idler simply stopped moving any more. The MK3 showed it was changing filaments, and the green light on the MMU moved to the new channel (so it wasn't a gcode or communication issue), but it simply "forgot" to move the selector & idler, as if those 2 motors were unplugged. Ugh! Perhaps a periodic re-homing or enabling stallguard would have prevented this.
In other words, I'm ready to start testing your changes as soon as you feel it's in a good spot for testing. 🙂
Thanks again for the hard work & hoping it pays off.
Re: Improvements to the MMU 2.0 controller firmware
Hey Jettoblack,
There're only a couple small bugs to work out at this stage if you want to give it a go.
Let me know if you have any questions and as you know I've started a more comprehensive readme on the MMU Patch1 branch (Soon to merge : )
Re: Improvements to the MMU 2.0 controller firmware
Robert, could you post a link to your patch 1 branch? I hope to assemble my mmu2 this weekend and like to test your firmware.
Cheers
Pete
Re: Improvements to the MMU 2.0 controller firmware
Hey Pete,
Sorry, forgot to hit submit on my message last night.
I have now merged my firmware into the masters branches which can be found at these addresses.
https://github.com/TheZeroBeast/MM-control-01
https://github.com/TheZeroBeast/Prusa-Firmware/tree/MMU-MK3-FSensorBuild (precompiled hex can be loaded directly to a MK3)
Let me know if you have any issues under the relevant GitHub issues sections and I can do what I can to resolve.
This is now very stable in my opinion from the limited tested I have been able to do with just one unit so if anyone is keen go forth a prosper.
Let us make this what it should have been from the start.
Rob
Re: Improvements to the MMU 2.0 controller firmware
Thanks to all that have contributed to this independent firmware. I have really had alot more success's than failures lately on stock firmware. I think I'm mechanically sound as far as filament path resistance, finda height, bowden calibration (which your firmware doesnt need). I know some of you have had the selector lose its place while printing, but it had never happened to me......until a few days ago 🙁 , but just once. Once is enough, because I didnt know how to resolve it other than resetting the mmu, which caused a missed load = layer skip. I know rehoming the selector is a feature of this firmware.
Any way have a print cooking now. But tomorrow I'll give your firmware a try and help beta....
Do i need to re-install cutter?
Prusa MK3 preassembled (R2/B6) > (R3/B/7)
Prusa MK2.5 kit > MK3 > MK3+MMU2 (R3/B/7) 😀
Prusa SL1 3D printer + Curing and Washing Machine (day1 order)
Taz6
CR10s4
Delta 3ku
Re: Improvements to the MMU 2.0 controller firmware
Hey Pete,
Sorry, forgot to hit submit on my message last night.
I have now merged my firmware into the masters branches which can be found at these addresses.
https://github.com/TheZeroBeast/MM-control-01
https://github.com/TheZeroBeast/Prusa-Firmware/tree/MMU-MK3-FSensorBuild (precompiled hex can be loaded directly to a MK3)
Let me know if you have any issues under the relevant GitHub issues sections and I can do what I can to resolve.
This is now very stable in my opinion from the limited tested I have been able to do with just one unit so if anyone is keen go forth a prosper.
Let us make this what it should have been from the start.
Rob
Good night, your fw is great and works wonders, I just like to ask you how to increase the pushing distance of the fialment when it passes through the optical sensor, I am using a body with a bmg 3: 1 and the filament sensor . You are doing a great job, congratulations.thank you very much for your work
Re: Improvements to the MMU 2.0 controller firmware
Gave the firmware a try...
Loaded mk3.hex with slic3r to mk3
Compiled mmu2 firmware with Ardiuno to mmu2
Factory Reset
Erase all Data
Initial setup
Congrats your perpendicular
1st layer calibration hangs
Detailed info on MM-control-01 github issue #7
So I reverted back to stock firmware.
####
Should we do a bowden measurement 1st before doing initial printer setup???
If so how?
(Procedure please)
or not necessary your firmware because it uses filament sensor, dynamically calculates lengths with filament sensor??
Is it still necessary to have bowden lengths for all 5 tubes? Or not necessary?
Wish under Calibration Menu on mk3 - You could set or view current bowden measurement for all 5 filaments mmu2 to mk3
(example)
filament1 - 343.3mm
filament2 - 343.4mm
filament3 - 343.9mm
filament4 - 343.7mm
filament5 - 345.5mm
Prusa MK3 preassembled (R2/B6) > (R3/B/7)
Prusa MK2.5 kit > MK3 > MK3+MMU2 (R3/B/7) 😀
Prusa SL1 3D printer + Curing and Washing Machine (day1 order)
Taz6
CR10s4
Delta 3ku
Re: Improvements to the MMU 2.0 controller firmware
Good night, your fw is great and works wonders, I just like to ask you how to increase the pushing distance of the fialment when it passes through the optical sensor, I am using a body with a bmg 3: 1 and the filament sensor . You are doing a great job, congratulations.thank you very much for your work
Hey Santiago.m2,
Yes, in motion.cpp file line 32 you can change the variable STEPS_MK3FSensor_To_Bondtech which is the steps from MK3-FSensor to middle of bondtech gears. Do some trail and error to find the steps required. You can use the T0 command to load and M702 C to unload if hotend above 180C.
Re: Improvements to the MMU 2.0 controller firmware
Gave the firmware a try...
Loaded mk3.hex with slic3r to mk3
Compiled mmu2 firmware with Ardiuno to mmu2
Factory Reset
Erase all Data
Initial setup
Congrats your perpendicular
1st layer calibration hangs
Detailed info on MM-control-01 github issue #7
So I reverted back to stock firmware.
####
Should we do a bowden measurement 1st before doing initial printer setup???
If so how?
(Procedure please)
or not necessary your firmware because it uses filament sensor, dynamically calculates lengths with filament sensor??
Is it still necessary to have bowden lengths for all 5 tubes? Or not necessary?
Wish under Calibration Menu on mk3 - You could set or view current bowden measurement for all 5 filaments mmu2 to mk3
(example)
filament1 - 343.3mm
filament2 - 343.4mm
filament3 - 343.9mm
filament4 - 343.7mm
filament5 - 345.5mm
Hey Khalil.n,
With this firmware combo there is no need for any Bowden lengths as the end is sensed at MK3 for better consistency.
Would be nice to have a menu if anyone is a gun at the Prusa MK3 code, I find it extremely confusing.
No steps are counted at present so that'd be a good starting point.
Re: Improvements to the MMU 2.0 controller firmware
Hey Robert......
Like u have nothing to do 🙂, but Prusa released candidate firmware 3.5rc1 for mk3 that has a few good updates for mk3/mmu2 users that u might wanna add to your firmware.
Improvements specific for printers with MMU2:
Improved printing in single material mode (new Tx, Tc codes and T? fixed)
Load to nozzle added
Manage response improved: possibility to preheat nozzle
Fixed First layer calibration/Wizard
Filament sensor (dependency on optical sensor fixed)
T? menu changes feedrate fixed
Extruder stepper disabled during T-code execution (MK3)
Auto deplete menu improved
Filament change (M600): improved message synchronization
Not a new mmu2 firmware yet, however.
Prusa MK3 preassembled (R2/B6) > (R3/B/7)
Prusa MK2.5 kit > MK3 > MK3+MMU2 (R3/B/7) 😀
Prusa SL1 3D printer + Curing and Washing Machine (day1 order)
Taz6
CR10s4
Delta 3ku
Re: Improvements to the MMU 2.0 controller firmware
Prusa released candidate firmware 3.5rc1 for mk3 that has a few good updates for mk3/mmu2
Unfortunately, it contains some bad "upgrades" too. Motor current command has been changed from M911 and M912 to M907 and the holding current is now set to the same as the running current (it can no longer be set separately) 🙁
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Improvements to the MMU 2.0 controller firmware
Unfortunately, it contains some bad "upgrades" too. Motor current command has been changed from M911 and M912 to M907 and the holding current is now set to the same as the running current (it can no longer be set separately) 🙁
I can see M911 and M912 are still there. Check the source code on github.
Often linked posts:
Going small with MMU2
Real Multi Material
My prints on Instagram
Re: Improvements to the MMU 2.0 controller firmware
That's always the problem with unopen people with "open" software, since they are secretive you end up with rapidly diverging code. I remember all the time spent merging my changes back in for each release of my ECU firmware on my car and I can say in the end it was easier to live with the problems than fix them over and over and over and over......
I think it is important to have the ability to use the set up without the optical sensor. Does something like "remember the number of steps last used" make sense? I like the idea of using the optical sensor to perform the calibration, certainly if you're more than 10% (20?) past what normally works you need to consider something went wrong.
I can load up some PET and TPU and see what happens. Is there anything in particular to test/try?
Lastly: Thanks for putting the precompiled printer FW.
I maintain an informal list of San Diego, CA 3D printing enthusiasts. PM me for details. If you include a contact email and I can add you to the informal mailing list.
Re: Improvements to the MMU 2.0 controller firmware
Using TheZeroBeast/Rob's firmware (212 / 501) I just completed a 25 hour print with 685 tool changes and it was mostly a success, with a few problems.
After the first 12 hours and about 200 perfect tool changes, I had two tool changes in a row where the idler moved to the correct filament but the selector didn't move at all. I was sitting next to the printer and I didn't hear any clicking or grinding to indicate the selector was trying to move but got stuck. Rather it looked like it just "forgot" to move. In both cases the filament was sticking out the front of the MMU, a load failure was detected, and I was able to pull the filament back and hit the right button to re-home the selector and resume. I was a little worried when it happened twice in a row, but it didn't happen again for the duration of this print. I don't know if this problem is specific to Rob's FW because I think I've seen similar issues in the Prusa FW.
I had one failure where filament loaded all the way to the Bondtech gears but wasn't detected by the optical sensor. This was detected as a load error and I was able to move the filament up and back down again to trigger the sensor and continue. There might have been some debris blocking the sensor. Had this been a jam, the Prusa FW would have totally failed here. (BTW this happened overnight so that added 5 hours to the print time.)
The only problem evident in the final print was towards the end, I had a tangle in the brake attached to the spool holder, which caused the extruder to skip, resulting in a mostly skipped layer for that color. That was user error due to me messing with the spools, and not something that firmware could fix. Had the tangle happened before the filament reached the optical sensor it could have been detected as a load failure, but oh well.
Re: Improvements to the MMU 2.0 controller firmware
Hey Robert......
Like u have nothing to do 🙂, but Prusa released candidate firmware 3.5rc1 for mk3 that has a few good updates for mk3/mmu2 users that u might wanna add to your firmware.
Improvements specific for printers with MMU2:
Improved printing in single material mode (new Tx, Tc codes and T? fixed)
Load to nozzle added
Manage response improved: possibility to preheat nozzle
Fixed First layer calibration/Wizard
Filament sensor (dependency on optical sensor fixed)
T? menu changes feedrate fixed
Extruder stepper disabled during T-code execution (MK3)
Auto deplete menu improved
Filament change (M600): improved message synchronization
Not a new mmu2 firmware yet, however.
Hey Mate,
Funny you mention it, I just merged the 3.5rc1 and released a new set of my firmware.
Hopefully their new fw doesn't step back in functionality as PJR was touching on.
Re: Improvements to the MMU 2.0 controller firmware
I can see M911 and M912 are still there. Check the source code on github.
#ifdef TMC2130_SERVICE_CODES_M910_M918
case 910: //! M910 - TMC2130 init
{
tmc2130_init();
}
break;
case 911: //! M911 - Set TMC2130 holding currents
{
if (code_seen('X')) tmc2130_set_current_h(0, code_value());
if (code_seen('Y')) tmc2130_set_current_h(1, code_value());
...
In the release, TMC2130_SERVICE_CODES_M910_M918 is commented 🙁
And the new "motor current" routines appear to be very badly written and unfortunately, faulty. Already reported.
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Improvements to the MMU 2.0 controller firmware
In the release, TMC2130_SERVICE_CODES_M910_M918 is commented 🙁
You're right. Can see it now.
Often linked posts:
Going small with MMU2
Real Multi Material
My prints on Instagram
Re: Improvements to the MMU 2.0 controller firmware
You're right. Can see it now.
But have you seen this:
uint8_t tmc2130_cur2val(float cur)
{
if (cur < 0) cur = 0; //limit min
if (cur > 1029) cur = 1029; //limit max
//540mA is threshold for switch from high sense to low sense
//for higher currents is maximum current 1029mA
if (cur >= 540) return 63 * (float)cur / 1029;
//for lower currents must be the value divided by 1.125 (= 0.18*2/0.32)
return 63 * (float)cur / (1029 * 1.125);
}
tmc2130.cpp.
I don't believe that is coded correctly.
Peter
Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…
Re: Improvements to the MMU 2.0 controller firmware
I don't believe that is coded correctly.
The result is a range of 0..29 and 32..63 Looks to me like it was done on purpose.
Often linked posts:
Going small with MMU2
Real Multi Material
My prints on Instagram