Skip to content

feat: grow default PTFE frontend size #352

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

Closed
wants to merge 1 commit into from

Conversation

deimosfr
Copy link

Related to this post:
https://www.reddit.com/r/prusa3d/comments/1lxgju8/how_i_raised_ptfe_mmu_length_to_5000mm_for_coreone/

having more size helps to achieve alternative setup

Copy link

github-actions bot commented Jul 11, 2025

All values in bytes. Δ Delta to base

ΔFlash ΔSRAM Used Flash Used SRAM Free Flash Free SRAM
0 0 28078 1667 594 893

@deimosfr deimosfr force-pushed the feat/grow_ptfe_frontend_size branch from 89c7490 to 09d900f Compare July 11, 2025 20:06
@gudnimg
Copy link
Collaborator

gudnimg commented Jul 12, 2025

There are four unit tests failing:

The following tests FAILED:
	 22 - unload_to_finda::unload_without_FINDA_trigger (Failed)
	 24 - unload_to_finda::unload_repeated (Failed)
	 47 - unload_filament::finda_didnt_trigger_resolve_try_again (Failed)
	 49 - unload_filament::failed_unload_to_finda_0-4_resolve_manual_FINDA_on (Failed)
Errors while running CTest


unload_filament::failed_unload_to_finda_0-4_resolve_manual_FINDA_on
-------------------------------------------------------------------------------
/home/runner/work/Prusa-Firmware-MMU/Prusa-Firmware-MMU/tests/unit/logic/unload_filament/test_unload_filament.cpp:266
...............................................................................
/home/runner/work/Prusa-Firmware-MMU/Prusa-Firmware-MMU/tests/unit/logic/unload_filament/test_unload_filament.cpp:138: FAILED:
  REQUIRE( WhileCondition( uf, [&](uint32_t step) { SimulateUnloadToFINDA(step, 10, 1'000'000); return uf.TopLevelState() == ProgressCode::UnloadingToFinda; }, 200'000) )
with expansion:
  false
  
  
-------------------------------------------------------------------------------
/home/runner/work/Prusa-Firmware-MMU/Prusa-Firmware-MMU/tests/unit/logic/unload_filament/test_unload_filament.cpp:192
...............................................................................

/home/runner/work/Prusa-Firmware-MMU/Prusa-Firmware-MMU/tests/unit/logic/unload_filament/test_unload_filament.cpp:138: FAILED:
  REQUIRE( WhileCondition( uf, [&](uint32_t step) { SimulateUnloadToFINDA(step, 10, 1'000'000); return uf.TopLevelState() == ProgressCode::UnloadingToFinda; }, 200'000) )
with expansion:
  false
  
  
/home/runner/work/Prusa-Firmware-MMU/Prusa-Firmware-MMU/tests/unit/logic/unload_to_finda/test_unload_to_finda.cpp:162
...............................................................................

/home/runner/work/Prusa-Firmware-MMU/Prusa-Firmware-MMU/tests/unit/logic/unload_to_finda/test_unload_to_finda.cpp:200: FAILED:
  REQUIRE_FALSE( WhileCondition(ff, std::bind(SimulateUnloadToFINDA, _1, 10, 150000), unlSteps) )
with expansion:
  !true
  
  
unload_to_finda::unload_without_FINDA_trigger
-------------------------------------------------------------------------------
/home/runner/work/Prusa-Firmware-MMU/Prusa-Firmware-MMU/tests/unit/logic/unload_to_finda/test_unload_to_finda.cpp:79
...............................................................................

/home/runner/work/Prusa-Firmware-MMU/Prusa-Firmware-MMU/tests/unit/logic/unload_to_finda/test_unload_to_finda.cpp:115: FAILED:
  REQUIRE_FALSE( WhileCondition(ff, std::bind(SimulateUnloadToFINDA, _1, 10, 150000), unlSteps) )
with expansion:
  !true

@DRracer
Copy link
Collaborator

DRracer commented Jul 14, 2025

It's tempting to play with the config file, isn't it 😉 . However, here are my concerns related to increasing the limit to 5m:

  • Do you realize, that such a long PTFE already causes significant friction and the printer will have a hard time pulling/pushing the filament? Have you actually measured how it behaves? I don't think this is something we want do give to ordinary users in a stock FW in order to prevent bogus bug reports about failed tool changes and blobs on the purge towers. Experienced users who can tune their PTFE tubing correctly can compile their own FW and as long as it keeps its version numbers it will work just fine.
  • I'm not sure if we can step that far in a single move without overflowing inside the MMU FW. This needs to be checked very carefully. Adding a unit test for the motion module would be the appropriate way of doing it. Of course, moves can be split into shorter pieces and appended in the motion module, but that's some extra code which is currently not there.
  • Unit tests are obviously failing, there are some fixed simulation steps roughly tuned for a maximum of 1m distance. This can be fixed easily.

@deimosfr
Copy link
Author

I understand your points and I'll close the PR. The rewinding is having regular issues, I won't continue into that direction.

@deimosfr deimosfr closed this Jul 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants