Add option to use custom filament profiles in MMU sync #365

Open
opened 2026-04-05 16:20:18 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @robotfishe on 3/10/2026

The current implementation of filament sync can only see system presets, not any custom filament profiles the user has created. I initially thought this was a bug and opened an issue (#12522) but from looking at the code in more detail it seems like the functionality was originally written this way deliberately.

For me - and I imagine for many others who have created custom profiles for their machines - this is the opposite of the preferred behaviour. When someone puts in the effort to create a custom profile that works for them, it's probably the one they will want to use most often.

Screenshots/Recordings/Graphs

This PR adds an option to the online tab in preferences to prefer custom filaments when syncing.

image

When the box is ticked, custom profiles will be preferred, with a few extra safety checks such as making sure the material IDs match. If those checks are failed or no custom profiles exist, it will fall back to built-in profiles.

When the box is unticked, sync logic will skip custom profiles and look first for machine-specific profiles the user has enabled (eg "Vzbot generic PLA"). If none are found, it will fall back to base profiles.

Tests

I have tested this with my AFC setup and it correctly pulls custom profiles when the box is ticked and built-in profiles otherwise.

I have also verified that the safety checks work; for example, I deliberately put the wrong material ID in the .json file for my custom PCTG profile, and the UI defaults back to generic, putting a message in the logs that the custom profile failed the material ID check.

With the preferences box unticked, Orca correctly pulls the Vzbot generic profiles, or where those are not available, the base generic.

Currently, the only thing that isn't quite right is that if someone has multiple manufacturer profiles enabled - e.g. "Anycubic PLA" and "Sunlu PLA" - this PR will make the UI sync to the one that's first alphabetically. I don't think this is any worse than the current behaviour, which will default to "Generic"; it's the same number of clicks to set it to the desired version of PLA, and the same safety margin since the base material type will match and temps etc will be close to correct. The best solution might be to check the user's last used profile for each material type, but that would be built on the expanded search logic in this PR anyway.

*Originally created by @robotfishe on 3/10/2026* The current implementation of filament sync can only see system presets, not any custom filament profiles the user has created. I initially thought this was a bug and opened an issue (#12522) but from looking at the code in more detail it seems like the functionality was originally written this way deliberately. For me - and I imagine for many others who have created custom profiles for their machines - this is the opposite of the preferred behaviour. When someone puts in the effort to create a custom profile that works for them, it's probably the one they will want to use most often. # Screenshots/Recordings/Graphs This PR adds an option to the online tab in preferences to prefer custom filaments when syncing. <img width="447" height="138" alt="image" src="https://github.com/user-attachments/assets/5b6b3508-6727-4de1-884e-7ba155e073ae" /> When the box is ticked, custom profiles will be preferred, with a few extra safety checks such as making sure the material IDs match. If those checks are failed or no custom profiles exist, it will fall back to built-in profiles. When the box is unticked, sync logic will skip custom profiles and look first for machine-specific profiles the user has enabled (eg "Vzbot generic PLA"). If none are found, it will fall back to base profiles. ## Tests I have tested this with my AFC setup and it correctly pulls custom profiles when the box is ticked and built-in profiles otherwise. I have also verified that the safety checks work; for example, I deliberately put the wrong material ID in the .json file for my custom PCTG profile, and the UI defaults back to generic, putting a message in the logs that the custom profile failed the material ID check. With the preferences box unticked, Orca correctly pulls the Vzbot generic profiles, or where those are not available, the base generic. Currently, the only thing that isn't quite right is that if someone has multiple manufacturer profiles enabled - e.g. "Anycubic PLA" and "Sunlu PLA" - this PR will make the UI sync to the one that's first alphabetically. I don't think this is any worse than the current behaviour, which will default to "Generic"; it's the same number of clicks to set it to the desired version of PLA, and the same safety margin since the base material type will match and temps etc will be close to correct. The best solution might be to check the user's last used profile for each material type, but that would be built on the expanded search logic in this PR anyway.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#365