Skip to content

Conversation

@Paucey
Copy link
Contributor

@Paucey Paucey commented Feb 8, 2025

Addresses #32

I think this covers all of the new Bambu Lab matte colors, and their hex codes.

I just assumed that "matte_" followed by the color name would be appropriate for the color value, but feel free to change that if that was a bad assumption. I admittedly don't know what those values are used for, or if they need to follow a specific naming convention.

Got the hex values from:

https://ca.store.bambulab.com/products/pla-matte

@Paucey Paucey marked this pull request as draft February 9, 2025 03:55
@Paucey
Copy link
Contributor Author

Paucey commented Feb 9, 2025

Hmm, spotted a potential issue.

Currently, the read function (readNdef) uses the hex value to differentiate between the different possible colors in the list:

var nfcColor = colors.find(c => c.hex.toLowerCase() === jsonValue.color_hex.toLowerCase());

But at least one of these new matte colors apparently shares a hex value with an existing color, "Matte Ivory White" and "White" are both hex FFFFFF. So whichever one is found first in the list will be assumed to be the color that's being read.

Is there another differentiating value on the tag that is writable that could narrow down the specific color further?

Or could Matte Ivory White just be omitted from the list, and White can just stand-in for it? I suppose that wouldn't necessarily be ideal.

@spuder
Copy link
Owner

spuder commented Feb 9, 2025

Currently, the read function (readNdef) uses the hex value to differentiate between the different possible colors in the list:

Good observation. I hadn't thought of that.

Here is where the matte is defined in Bambu Studio.

https://github.com/bambulab/BambuStudio/blob/c3332f9bab9056cc098927b0d72481ea0a23c675/resources/profiles/BBL/filament/Bambu%20PLA%20Matte%20%40base.json

Is there another differentiating value on the tag that is writable that could narrow down the specific color further?

There is a concept of sub brand that isn't fully implemented yet in OpenSpool but is defined in the bambu mqtt protocol.

A quick glance at the code seems to indicate that they aren't using sub brands but instead are using a separate top level filament type Bambu PLA Matte opposed to Bambu PLA

@Paucey
Copy link
Contributor Author

Paucey commented Feb 10, 2025

This might also overlap with #14, differentiating the brands.

Looks like filament_id could also potentially be a good differentiator, like this one for the Matte Base:

filament_id": "GFA01"

It looks like that might be their base ID for their Matte filaments? If other manufacturers use this type of filament_id differentiation, and it's stored on the tag, it might be useful for differentiating specific types like matte, etc. but that would mean keeping a database of all the different possible types from the different manufacturers.

Alternatively, if the top level filament info (i.e. "Bambu PLA Matte") is on all Bambu tags, then that info could be parsed when read. Like, possibly to recognize that the brand is Bambu, but regardless, to then know that the next word in the sequence is the material (PLA) and then the word after (if present) is a sub categorization, like Matte. If that's consistent with Bambu, it would at least work for Bambu spools.

I see there's listings for Generic, PolyLite, OverTure, etc. in that BambuStudio repo. So possibly the same could be done for other brands, as well?

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.

2 participants