Bambu-Research-Group / RFID-Tag-Guide

Instructions on how to read out the bambulab nfc tags
498 stars 51 forks source link

More fields identified #9

Closed pelrun closed 1 month ago

pelrun commented 7 months ago

Now that I have a couple of tags decoded, I've checked through their data and can assert the following:

Block 5: 4 bytes after the spool weight is filament diameter as a single precision float (1.75) Block 8: 4x uint16 and 2x float. The floats vary between 0.8 to 0.2, but not restricted to nozzle sizes. Block 10: Second uint32 is the width of the spool in hundredths of mm. (6625 for all my tags, 66.25mm) Block 12: Long manufacturing timestamp, "YYYY_MM_DD_HH_mm" Block 13: Short manufacturing timestamp, "YY_MM_DD_HH" Block 14: Second uint32 is the total length of filament in metres. (330 for my 1kg spools, 82 for my "90m" 250g spool)

And unfortunately the block of random data right at the end of the tag is almost certainly a 2048-bit RSA signature. The public key will be in the firmware, but we won't be able to derive the private key.

queengooborg commented 1 month ago

Thanks for digging into this more!

Just a head's up, Block 13 seems like it's the short manufacturing timestamp (or "production date" as the project calls it), but it doesn't always line up. Using a parsing script I'm writing (and will soon submit as a PR here), here's the following I had parsed (production_date = Block 12, unknown_4 = Block 13):

Data

- production_date: 2024-02-25 18:43:00
- unknown_4: 24_02_25_18

- production_date: 2024-02-25 18:43:00
- unknown_4: 24_02_25_18

- production_date: 2024-03-01 19:26:00
- unknown_4: 20240301

- production_date: 2024-03-01 19:26:00
- unknown_4: 20240301

- production_date: 2024-01-17 18:21:00
- unknown_4: 2401150275

- production_date: 2024-01-17 18:21:00
- unknown_4: 2401150275

- production_date: 2023-04-23 14:53:00
- unknown_4: 23_04_23_14

- production_date: 2023-05-23 12:43:00
- unknown_4: 23_05_23_12

- production_date: 2023-07-24 19:18:00
- unknown_4: A

- production_date: 2023-07-24 19:18:00
- unknown_4: A

- production_date: 2023-09-15 09:33:00
- unknown_4: 23_09_15_09

- production_date: 2023-09-05 09:50:00
- unknown_4: 23_09_05_09

- production_date: 2023-09-05 09:50:00
- unknown_4: 23_09_05_09

- production_date: 2023-11-15 01:51:00
- unknown_4: 20231114

- production_date: 2023-12-23 08:22:00
- unknown_4: 23_12_23_08

- production_date: 2023-12-13 08:03:00
- unknown_4: 23_12_13_08

- production_date: 2023-11-15 09:51:00
- unknown_4: 23_11_15_09

- production_date: 2023-12-18 13:09:00
- unknown_4: 23_12_18_13

- production_date: 2023-12-30 07:19:00
- unknown_4: 23_12_30_07

- production_date: 2023-10-17 09:59:00
- unknown_4: 23_10_17_09

- production_date: 2023-10-19 04:52:00
- unknown_4: 2310180078

- production_date: 2022-10-15 08:26:00
- unknown_4: 6092202

There are some really strange ones where Block 13 is literally just "A", but overall, there are enough discrepancies between Block 12 and Block 13 that I don't think it's safe to call it the "short manufacturing timestamp". That's just my opinion though!