Notifications
Clear all

Improvements to the MMU 2.0 controller firmware  

Page 1 / 9
  RSS
karl.z2
(@karl-z2)
Eminent Member
Improvements to the MMU 2.0 controller firmware

Hi,

I just want to give you a preview, of what the MMU 2.0 controller is capable of - in principal:

I've hacked some testing code regarding the stepper motors and their motion, based on firmware V1.0.1.

New features:

  • Smooth motion

  • Proper stall detection

  • Cool motors

  • Fast

  • Precise

  • Reliable
  • This is of course just a demo, of how it could be, if the firmware would be polished. It's up to Prusa, now.
    Prusa, if you are in lack of man power, please let us know.

    Karl from Team14

    Posted : 15/10/2018 3:13 am
    Laird Popkin
    (@laird-popkin)
    Estimable Member
    Re: Improvements to the MMU 2.0 controller firmware

    That's pretty cool so far as it goes!

    I'm curious - what do you mean by 'cool motors'? Running at lower voltage?

    Posted : 15/10/2018 4:04 am
    Joe
     Joe
    (@joe-16)
    Eminent Member
    Re: Improvements to the MMU 2.0 controller firmware

    Awesome work

    Posted : 15/10/2018 5:31 am
    nuroo
    (@nuroo)
    Reputable Member
    Re: Improvements to the MMU 2.0 controller firmware

    @karl.z2
    Most impressive, what you have been able to accomplish in less then a week or two. Stock firmware doesn't even use stallguard at this point.....

    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

    Posted : 15/10/2018 6:16 pm
    AbeFM
    (@abefm)
    Member
    Re: Improvements to the MMU 2.0 controller firmware

    Oh yeah, that's what it should be.

    Do you do stall guard on the drum, too? That is needed probably more, the drum gets lost quite often.

    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.

    Posted : 15/10/2018 7:04 pm
    karl.z2
    (@karl-z2)
    Eminent Member
    Topic starter answered:
    Re: Improvements to the MMU 2.0 controller firmware


    Oh yeah, that's what it should be.

    Do you do stall guard on the drum, too? That is needed probably more, the drum gets lost quite often.

    I just implemented the stall guard also for the idler drum. No "tuck, tuck, tuck, tuck, ..." any more, when the system boots. 🙂

    For getting idler and selector back in sync during printing, there would be still some more code rewriting needed. They only do differential moves without absolute positions!

    Posted : 16/10/2018 1:09 pm
    karl.z2
    (@karl-z2)
    Eminent Member
    Topic starter answered:
    Re: Improvements to the MMU 2.0 controller firmware


    That's pretty cool so far as it goes!

    I'm curious - what do you mean by 'cool motors'? Running at lower voltage?

    reduced current, when they are in idle.

    Posted : 16/10/2018 1:10 pm
    nuroo
    (@nuroo)
    Reputable Member
    Re: Improvements to the MMU 2.0 controller firmware



    That's pretty cool so far as it goes!

    I'm curious - what do you mean by 'cool motors'? Running at lower voltage?

    reduced current, when they are in idle.

    There is a GitHub feature request related to this issue for the stock firmware:
    https://github.com/prusa3d/MM-control-01/issues/27

    In your firmware Karl, I understand u reduce current to keep the motors cooler during idle periods...... But then how do you ensure once motors need full current again, selector is in correct position? Do you rehome selector?

    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

    Posted : 16/10/2018 5:14 pm
    Peter L
    (@peter-l)
    Honorable Member
    Re: Improvements to the MMU 2.0 controller firmware


    This is of course just a demo, of how it could be, if the firmware would be polished. It's up to Prusa, now.
    Prusa, if you are in lack of man power, please let us know.

    Have you submitted a pull request for your updates? It would be a shame to see your effort go to waste.

    Posted : 16/10/2018 5:22 pm
    karl.z2
    (@karl-z2)
    Eminent Member
    Topic starter answered:
    Re: Improvements to the MMU 2.0 controller firmware


    ..... But then how do you ensure once motors need full current again, selector is in correct position? Do you rehome selector?

    That's not needed. The current isn't lowered until the would loose steps. The values are just not tweaked enough by Prusa.

    Posted : 16/10/2018 5:24 pm
    karl.z2
    (@karl-z2)
    Eminent Member
    Topic starter answered:
    Re: Improvements to the MMU 2.0 controller firmware


    Have you submitted a pull request for your updates? It would be a shame to see your effort go to waste.

    With the current speed of developments of Prusa's team, a merge in two weeks would still be without any conflicts, I guess 🙂
    Their last commit was on Wednesday.

    Posted : 16/10/2018 5:27 pm
    nuroo
    (@nuroo)
    Reputable Member
    Re: Improvements to the MMU 2.0 controller firmware



    This is of course just a demo, of how it could be, if the firmware would be polished. It's up to Prusa, now.
    Prusa, if you are in lack of man power, please let us know.

    Have you submitted a pull request for your updates? It would be a shame to see your effort go to waste.

    Karl is letting us know what better programming of mmu2 firmware is capable of. He's not giving away his talent for free, wants Prusa to hire his team of programmers.

    However it's such a tease for us......sadness

    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

    Posted : 16/10/2018 5:57 pm
    karl.z2
    (@karl-z2)
    Eminent Member
    Topic starter answered:
    Re: Improvements to the MMU 2.0 controller firmware


    Karl is letting us know what better programming of mmu2 firmware is capable of. He's not giving away his talent for free, wants Prusa to hire his team of programmers.

    If Prusa does the work on their own, I'm also happy. But looking at the provided results of "the best they could do"... I don't believe it.

    I also don't want to branch off from the main project, because that means constant efforts into the firmware.

    I really don't want to appear arrogant or greedy, because I'm not giving my code away for free. Prusa runs a business, and me too. I only want Prusa to act - in any way. But doing nothing is not a solution at all. Today in the morning I sent them a quotation via eMail.

    Now we have to wait. I'm very sorry for that.

    Posted : 16/10/2018 6:23 pm
    joreal
    (@joreal)
    Estimable Member
    Re: Improvements to the MMU 2.0 controller firmware

    Before going into this improvements they should prioritise the release of MK2.5-MMU2.0 firmware . Until now we can't use our MMU2.0 on MK2.5. It's very frustrating after waiting months for MMU2.0 we can't even use it on MK2.5 as advertised and only work on MK3.

    Posted : 16/10/2018 7:16 pm
    karl.z2
    (@karl-z2)
    Eminent Member
    Topic starter answered:
    Re: Improvements to the MMU 2.0 controller firmware


    Before going into this improvements they should prioritise the release of MK2.5-MMU2.0 firmware . Until now we can't use our MMU2.0 on MK2.5. It's very frustrating after waiting months for MMU2.0 we can't even use it on MK2.5 as advertised and only work on MK3.

    Oh, I didn't know, it's that bad. I thought this is just a cabeling issue!?

    Posted : 16/10/2018 8:56 pm
    Flaviu
    (@flaviu)
    Estimable Member
    Re: Improvements to the MMU 2.0 controller firmware


    Hi,

    I just want to give you a preview, of what the MMU 2.0 controller is capable of - in principal:

    I've hacked some testing code regarding the stepper motors and their motion, based on firmware V1.0.1.

    New features:

  • Smooth motion

  • Proper stall detection

  • Cool motors

  • Fast

  • Precise

  • Reliable
  • This is of course just a demo, of how it could be, if the firmware would be polished. It's up to Prusa, now.
    Prusa, if you are in lack of man power, please let us know.

    Karl from Team14

    That`s all interesting. But how exactly is that helping people with the reliability of the mmu2 unit?

    The two main issues right know seem to be
    A: getting the ramming sequence right and
    B: getting the build of the mmu2 unit right so that the filament runs perfectly smooth.

    So not really firmware related.

    Posted : 16/10/2018 9:30 pm
    karl.z2
    (@karl-z2)
    Eminent Member
    Topic starter answered:
    Re: Improvements to the MMU 2.0 controller firmware


    That`s all interesting. But how exactly is that helping people with the reliability of the mmu2 unit?

    Of course there are still other issues to solve. But our domain is embedded software and electronics. Stall detection can help to restore from a step loss. Or at least report a problem to the printer.

    Me and others had a case, where the homing didn't work reliably - I thing because of a very bad motion control algorithm.
    The idler drum is crashing constantly against the end stop when homing!
    More speed is always good in printing.

    Please have a look at the issue list on GitHub: https://github.com/prusa3d/MM-control-01/issues

    Posted : 16/10/2018 9:47 pm
    Zcubed
    (@zcubed)
    Eminent Member
    Re: Improvements to the MMU 2.0 controller firmware

    There are definitely more firmware issues/gaps than hardware at the moment with the MMU2. Look around thingiverse and theres very few useful mods for the MMU2. The selector definitely needs a few small amendments but overall the design works as intended. The firmware is just wildly inconsistent. Looking at Karl's github issues, most seem very valid and should not take months to fix especially considering the MMU2 was in beta for several months. It won't fix the filament strings or jams that need filament-specific ramming settings (ugh) but it will ease a lot of pain. In particular I would like to see the extruder filament sensor reactivated with MMU2. This would help so much with skipped layers.

    https://www.thingiverse.com/zcubed/things
    Posted : 16/10/2018 10:44 pm
    karl.z2
    (@karl-z2)
    Eminent Member
    Topic starter answered:
    Re: Improvements to the MMU 2.0 controller firmware


    This would help so much with skipped layers.

    Do you have still issues with the V1.0.1 with skipped layers? For feeding the filament into the gears (the last few millimeters which are driven by the MMU) there is a special procedure, something like this:


    // PLA
    tmc2130_init_axis_current(AX_PUL, 1, 15); // medium current
    move_pulley(150, 384); // 150 steps, with speed 384 steps/s

    tmc2130_init_axis_current(AX_PUL, 1, 10); // little current
    move_pulley(170, 384);

    tmc2130_init_axis_current(AX_PUL, 1, 3); // very little current
    move_pulley(450, 454);

    Posted : 16/10/2018 11:14 pm
    chuck.k
    (@chuck-k)
    Eminent Member
    Re: Improvements to the MMU 2.0 controller firmware

    I started with an arduino mega 2560 and ramps 1.6 board using 8255 stepper motors ( https://github.com/cskozlowski/mmu2 ). I added a 2nd filament sensor at the top of the mk3 extruder so I have ZERO filament load/unload issues and I don't have to calibrate the filament travel distance between the MMU2 and the MK3 because of this 2nd sensor. This 2nd filament sensor guarantees that my filament lands in the middle of the bondtech gear EVERY TIME. My sensor is a simple microswitch with a 7mm ball bearing.

    Since I wrote the code I have 100% control over the behavior of the MMU2. During the critical 'filament load', the bondtech gear and the MMU2 extruder gears are active at the same time. I have my code properly tuned so that I match the MK3 extruder (bondtech gear) speed exactly. There is a setting in Slic3r for filament load speed I currently have this set to 30 mm/sec. There is a 2 second run across the purge block to load the new filament and both gears are engaged at the same time. I actually push filament from the MMU2 into the MK3 at that speed for 1.6 seconds - I have no filament load misfeeds. For those following along, I am moving over 45 mm of filament past the bondtech gear and I have ZERO grinding since I have matched the speed of both gears. There is 69.5 mm from the middle of the bondtech gear to the heat break in the extruder.

    I am using very crude 8255 stepper motor controllers (open loop) with 45 N-cm stepper motors (pretty close to the same stall torque as Prusa stepper motors).

    Here are some of my results:

    Posted : 17/10/2018 3:35 am
    Page 1 / 9
    Share: