An Android app for writing and reading Creality CFS (Creality Filament System) compatible RFID tags for third-party filament spools.
The Creality CFS uses MIFARE Classic 1K RFID tags to identify filament spools. This app lets you tag any third-party filament spool so the CFS recognizes it — no Creality-branded filament required.
Scan — Take a photo of your filament's label. The app uses on-device OCR to automatically detect the material type (PLA, PETG, ABS, ASA, TPU, etc.), weight, brand, and print temperature.
Pick Color — Choose the filament color from a built-in palette of 42 common filament colors, or use the eyedropper tool to sample the exact color directly from the label photo. You can also enter a hex color code manually.
Write — Hold your phone to a blank MIFARE Classic 1K NFC sticker. The app encrypts the filament data and writes it in the CFS-compatible format. Supports writing both tags (one for each side of the spool).
Read — Tap any existing CFS RFID tag to view its data — material, color, weight, serial number, and more. Works with both Creality-original and custom-written tags.
History — Every roll you program is saved with its original label photo, so you can easily keep track of your tagged spools. Rewrite tags from history if one didn't take, or delete old entries when a roll is used up.
- On-device ML Kit OCR — no internet required, no data leaves your phone
- Full CFS RFID protocol support (AES-128-ECB encryption, UID-based key derivation)
- 56+ material types from the Creality firmware database (PLA, PETG, ABS, ASA, TPU, PA, PC, PPS, and more)
- 200+ color name mappings for automatic color detection from labels
- Smart weight detection that ignores spool gauge markings and tare weights
- EXIF-aware color eyedropper for accurate color sampling from photos
- Auto-incrementing serial numbers (future-proofed for potential firmware tracking)
- Supports both blank and previously-written MIFARE Classic 1K tags
- Material 3 / Dynamic Color UI
- Android phone with NFC (Samsung Galaxy S25, S26, Pixel, etc.)
- MIFARE Classic 1K NFC stickers (available on Amazon/AliExpress, ~$0.20-0.50 each)
- iOS is not supported — Apple restricts MIFARE Classic access
Download the latest APK from Releases and install it on your Android phone. You may need to enable "Install from unknown sources" in your phone's settings.
- Open the app and tap Scan Label
- Photograph your filament spool's label
- Review the detected material, weight, and color — adjust if needed
- Use the eyedropper to sample the filament color from the photo, or pick from the palette
- Tap Write Tag and hold your phone to a blank MIFARE Classic 1K sticker
- Stick the tag on your spool and load it into the CFS
- Optionally tap a second tag for the other side of the spool
All material types from the Creality CFS firmware database are supported, including:
| Generic | Creality Branded |
|---|---|
| PLA, PLA-Silk, PLA-CF | Hyper PLA, CR-PLA, CR-PLA Matte |
| PETG, PETG-CF, PETG-GF | Hyper PETG, CR-PETG |
| ABS | Hyper ABS, CR-ABS |
| ASA, ASA-CF | HP-ASA |
| TPU | HP-TPU, CR-TPU |
| PA (Nylon), PA-CF, PA6-CF | CR-Nylon, Hyper PPA-CF |
| PC, PCTG | Hyper PC |
| PVA, BVOH, HIPS | Support materials |
| PPS, PPS-CF, PP, PP-CF | Engineering materials |
# Clone the repo
git clone https://github.com/sybethiesant/CFSWriter.git
cd CFSWriter
# Build debug APK
./gradlew assembleDebug
# Install to connected device
adb install app/build/outputs/apk/debug/app-debug.apkRequirements: JDK 17, Android SDK 34
- RFID Chip: MIFARE Classic 1K (ISO 14443-A, 13.56 MHz)
- Data Location: Sector 1, Blocks 4-6
- Encryption: AES-128-ECB
- Tag Payload: 48-byte ASCII string with material ID, color (RGB hex), weight code, serial number, and metadata
- Sector Authentication: UID-derived Key B via AES-ECB
Based on the reverse-engineering work of the CFS RFID community, including DnG-Crafts/K2-RFID, flamebarke/creality_rfid, and srobinson9305/cfs-programmer.
MIT License — free to use, modify, and distribute.