Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port MMU3 related code from Prusa #3

Open
23 of 26 tasks
eoyilmaz opened this issue Dec 25, 2023 · 0 comments
Open
23 of 26 tasks

Port MMU3 related code from Prusa #3

eoyilmaz opened this issue Dec 25, 2023 · 0 comments

Comments

@eoyilmaz
Copy link
Owner

eoyilmaz commented Dec 25, 2023

User Story

As the user of the Marlin firmware I want the new MMU protocol to be ported from the Prusa Firmware repository so that I can use the new MMU3 with Marlin.

Acceptance Criteria

  • Find all the MMU related code in Prusa Firmware repository.
  • Copy & Paste all the source files in to "Marlin/src/features/mmu_from_prusa" directory.
  • Add new PRUSA_MMU3 config variable. Make it so that when MMU_MODEL is set to PRUSA_MMU3 it will also enable the HAS_PRUSA_MMU2 and the HAS_PRUSA_MMU2S variables.
  • Investigate the Prusa code and make it compatible with Marlin 2.1.x.
  • Add the new M-Codes (M704, M705, M706, M707, M708, M709)
  • Update "Marlin/ini/features.ini" with new source code.
  • Search for HAS_PRUSA_MMU2 and HAS_PRUSA_MMU2S variables and add a condition that looks for HAS_PRUSA_MMU3 to enable/disable code paths depending on to the MMU version.
  • Port new features like:
    • SpoolJoin
    • Filament Cutting
  • Find and fix all the errors while compiling the new code.
  • Fix "block filament runout" implementation.
  • Fix filament load sequence.
  • Move all the parameter definitions in mmu_from_prusa/mmu2/variants/config_MMU2s.h to Configuration_adv.h under the MMU3 section.
  • Recheck the other source files in PrusaFirmware for MMU related functionality that needs to be carried over.
  • PrusaFrimware doesn't check for hotend temprerature before load/unload/eject/cut etc. operations. Add check for too cold hot end. This is not correct, MMU checks filament temperature before operations.
  • Reset last print stats when starting a new print.
  • Add option to reset mmu fail stats.
  • Add an option to enable/disable MMU sounds (MakeSound() calls). I see in Prusa firmware that there is an option in the LCD menus to silent the MMU.
  • Update LCD Menus to include new functionalities that are transferred from Prusa Firmware (this is half way through being done).
  • Migrate mmu3::mmu2_reporting::tuneIdlerStallguardThresholdMenu().
  • [] Update EEPROM stuff (MarlinSettings & PersistentStore) to store MMU related stuff as in Prusa Firmware.
    • Enable SpoolJoin
    • Error counters for MMU
    • Enable Cutter (Prusa's implemention is interesting, it is possible to enable it but then it will work only for once, and then it is also possible to set it to "Always" which means to make it available all the time).
    • MMU Stealth Mode (This also needs a menu item and MMU_FORCE_STEALTH_MODE to be defined in Configuration_Adv.h) (This is interesting, as I don't see anything in the PrusaFirmware that uses this information to set the mode of the MMU hardware).
    • MMU Sounds Silent
@eoyilmaz eoyilmaz converted this from a draft issue Dec 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

No branches or pull requests

1 participant