Automatic Filament Mapping for Custom profiles #101
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
This could either be a bug report or an enhancement so I'm not sure which one is correct, but since it's a bit offside the official way I gonna make this as an enhancement request.
Please add support for automatic custom filament profile mapping when using third-party RFID tags generated by apps like "ACE RFID". Currently, when loading a spool with a custom-written tag (e.g., "GEEETECH PLA Bas"), the bridge fails to automatically match it to the correct user profile which I uploaded via KX Bridge. Instead of mapping to the intended profile, it falls back to a default like "Generic ABS" and syncs this incorrect data to OrcaSlicer. I have to manually reassign the slot in the bridge UI to fix the sync.
Example:

Red is fixed via manually selecting the correct profile and the Hub Display correctly displays the brand (Geeetech)
If I dont do it (For White in this example) it's unable to map the profile and filament type:

The issue seems to stem from how Anycubic and ACE RFID handle custom tags: they map Vendor, Type, and Serial (e.g., "Basic") into a single "Type" string. So instead of the type just being "PLA", the printer reports a combined string like "GEEETECH PLA Bas". Because KX-Bridge sees this entire string as an unknown material type, it fails to map it and falls back to a default like "Generic ABS". I then have to manually reassign the slot in the bridge UI to sync it with OrcaSlicer.
Funny enough Anycubic Slicer Next has no Problem at all with his behavior and correctly maps custom profiles with custom RFID Tags.
ACE RFID

Motivation
I'm not sure if many users rely on custom RFID tags to automate filament loading for third-party brands in the ACE 2 Unit / Ace 2 Pro. When the bridge fails to map these custom strings to the uploaded OrcaSlicer user profiles, it defeats the automation purpose of the RFID tags and creates friction. Proper handling of these custom strings would allow a fully seamless "plug and play" experience for third-party filaments, preventing failed syncs or accidental prints with "Generic ABS" settings.
Proposed Implementation
Thanks for the clear writeup and the proposed implementation direction, @Blaim — you correctly identified the mechanism (Anycubic's ACE RFID system concatenating vendor+material+serial into one
typestring).Implemented roughly as you proposed:
_parse_combined_rfid_type()splits the rawtypestring and checks whether the first token matches a known vendor — checked against your imported profile library too (not just the built-in vendor list), so a custom vendor like "Geeetech" that only exists because you uploaded it via the ZIP import is recognized. The remaining tokens are reduced to the material family (PLA/PETG/ABS/etc.) via the existing family-detection logic. A plaintype="PLA"report (no vendor prefix) is left completely untouched — no vendor match, no behavior change for the normal case._build_lane_data, after your existing manual per-slot override (still takes priority if set) and before the Generic-library fallback (still used if no matching vendor/profile is found). It's not persisted toconfig.ini— it re-derives fresh every time, so loading a different tag later can't leave a stale mapping behind.Added a test suite covering the exact
"GEEETECH PLA Bas"scenario plus regression checks for plaintype="PLA"and unknown-vendor cases. Committed locally onnightly, going out with the next nightly build — would appreciate it if you could confirm it resolves the auto-sync for your Geeetech slot once you get a chance to test it.Thanks for this quick implementation!
I was reading through your implementation details, and I realized there might be one edge case with the (vendor, material family) matching logic: What happens when I have multiple profiles for the same brand and material?
For example, I use both Geeetech PLA Basic and Geeetech PLA Matte. If the system drops the third token and only matches on Vendor + Material, I assume it won't be able to tell the difference between the two and might just pick whichever profile it loads first?
For context on why it’s truncated to Bas: I actually had to abbreviate "Basic" because Anycubic has a strict maximum character limit for the RFID tag strings so even if I would write Basic out, Anycubic would truncate it on its own.
To help distinguish between sub-types, do you think we could handle it in one of these two ways?
Let me know what you think makes the most sense! And will give the nightly a try :)
I'm on v0.9.28-nightly45 and it doesn't seem to work sadly