An iOS application for programming RFID tags (NTAG213/215/216) for Anycubic 3D printer filament spools.
Download Spool Programmer for Free on the Apple App Store
- ✅ Read/Write RFID Tags: Read and write filament data to NFC RFID tags
- ✅ Filament Database: Pre-loaded with common filament profiles and support for custom materials
- ✅ Color Picker: Advanced color picker with gradient selector, RGB sliders, and preset colors
- ✅ Temperature Settings: Configure extruder and bed temperatures for each material
- ✅ Multiple Spool Sizes: Support for 0.25 KG to 5 KG spools
- ✅ Auto-Read Mode: Automatically read tags when detected
- iOS 16.0 or later
- iPhone with NFC capability (iPhone 7 or later)
- NTAG213, NTAG215, or NTAG216 compatible RFID tags
This iOS app is based on the ACE-RFID project by DnG-Crafts, which provides Android and Windows applications for the same purpose.
- Open
ACE_RFID_iOS.xcodeprojin Xcode (technical project name)- The app displays as "Spool Programmer" to users
- Connect your iPhone
- Select your development team in the project settings
- Build and run on your device (NFC does not work in the simulator)
-
Enable NFC Capability:
- Select the project in Xcode
- Go to "Signing & Capabilities"
- Click "+ Capability" and add "Near Field Communication Tag Reading"
-
Update Bundle Identifier:
- Change the bundle identifier from
com.yourcompany.ACE-RFID-iOSto your own
- Change the bundle identifier from
-
Configure Code Signing:
- Select your development team in the project settings
- Tap "Read Tag"
- Hold your iPhone near the RFID tag
- The app will display the tag's UID and stored information
- Filament profile, color, and spool size will be automatically loaded
- Select a filament profile from the "Material" dropdown
- Choose a color using the color picker
- Select the spool size
- Tap "Write Tag"
- Hold your iPhone near the RFID tag
- Wait for the success message
- Tap "Add Custom Filament"
- Enter the brand, type, SKU, and temperature settings
- Tap "Add"
- Your custom filament will appear in the material list
If a tag fails to write, you can format it:
- Tap "Format Tag"
- Hold your iPhone near the RFID tag
- The tag will be formatted for ACE compatibility
The app uses the same tag format as the original ACE-RFID project:
- Pages 4: Magic bytes (0x7B, 0x00, 0x65, 0x00)
- Pages 5-9: SKU (20 bytes)
- Pages 10-14: Brand (20 bytes)
- Pages 15-19: Material Type (20 bytes)
- Page 20: Color (ABGR format, 4 bytes)
- Page 24: Extruder temperature (min/max, 4 bytes)
- Page 29: Bed temperature (min/max, 4 bytes)
- Page 30: Filament parameters (diameter/length, 4 bytes)
- Page 31: Unknown constant
- SwiftUI: Modern declarative UI framework
- Core NFC: Native iOS NFC tag reading/writing
- MVVM Pattern: Clean separation of concerns
- ObservableObject: Reactive data management
ContentView.swift: Main UI and coordinationNFCManager.swift: NFC tag reading/writing logicFilamentModel.swift: Data models and database managementColorPickerView.swift: Advanced color picker interface
The app uses standard MIFARE commands:
- READ (0x30): Read 4 pages (16 bytes) at once
- WRITE (0xA2): Write 1 page (4 bytes) at a time
- NFC only works on physical devices, not in the simulator
- Writing can be slower than Android due to iOS NFC session restrictions
- Some tags may require formatting before first use
- Ensure you're running on a physical iPhone 7 or later
- NFC does not work in the simulator
- Try formatting the tag first
- Ensure the tag is NTAG213, 215, or 216 compatible
- Hold the iPhone steady near the tag
- Make sure NFC is enabled in Settings
- Try restarting the app
- Check that the tag is within range
Feel free to submit issues and pull requests to improve the app!
If you find Spool Programmer useful and want to support its development:
Your tip helps maintain and improve this free, open-source app! ❤️
MIT License - See LICENSE file for details.
This iOS implementation is licensed under the MIT License, allowing free use, modification, and distribution with attribution.
This project uses the RFID tag format and protocol documentation from the ACE-RFID project by DnG-Crafts.
- Tag Format: Based on ACE-RFID documentation
- Protocol: N033 Material box communication protocol
- iOS Implementation: Original code written in Swift/SwiftUI (MIT Licensed)
This is an independent iOS port that provides equivalent functionality to the original Android, Windows, and Arduino implementations.
- Original ACE-RFID Project: DnG-Crafts/ACE-RFID
- Tag Format & Protocol: DnG-Crafts
- iOS Implementation: Martin, October 2025
- License: MIT (for iOS implementation)
For issues related to the tag format or Anycubic printer compatibility, please refer to the original ACE-RFID project documentation.