├── images ├── 1.png └── 2.png └── README.md /images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ELEGOO-3D/ELEGOO-RFID-Tag-Guide/HEAD/images/1.png -------------------------------------------------------------------------------- /images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ELEGOO-3D/ELEGOO-RFID-Tag-Guide/HEAD/images/2.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ELEGOO-RFID-Tag-Guide 2 | 3 | ## 1. Overview 4 | This document outlines the data structure and content format stored on the RFID tags used in ELEGOO's FDM 3D printing filament spools. 5 | 6 | 7 | 8 | ## 2. Data Structure: EPC-256 Format 9 | The RFID tag uses a 256-bit EPC (Electronic Product Code) Type I format, which is commonly applied in IoT device identification and tracking. The total storage size is 32 bytes (256 bits), with the data fields defined as follows: 10 | 11 | | Field | Length | Example | Description | 12 | |-------|---------|---------|-------------| 13 | | Header | 8 bits | 0x36 | EPC-256 identifier | 14 | | Manufacturer Code | 32 bits | 0xEEEEEEEE | Identifies ELEGOO as the manufacturer | 15 | | Filament Code | 16 bits | 0x0001 | Internal filament code by manufacturer | 16 | | Material (Main) | 32 bits | 0x00807665 ("PLA") | Material type, stored in ASCII | 17 | | Material (Subtype) | 32 bits | 0x00004346 ("CF") | Material subtype in ASCII | 18 | | Color Code | 24 bits | 0xFF3700 | Filament color in RGB888 format | 19 | | Filament Diameter | 16 bits | 0x00AF (175) | Filament diameter hundredths of a millimeter | 20 | | Filament Weight | 16 bits | 0x03E8 (1000) | Filament weight in grams | 21 | | Production Date | 16 bits | 0x09C6 (2502) | Production date encoded as YYMM | 22 | | Reserved | 64 bits | 0 | Reserved for future use | 23 | 24 | 25 | ### 2.1 Examples of Material Encoding 26 | 27 | | Material | Hex Code | 28 | |----------|-----------| 29 | | PLA | 0x00807665 | 30 | | PETG | 0x80698471 | 31 | | ABS | 0x00656683 | 32 | | TPU | 0x00848085 | 33 | | PA | 0x00008065 | 34 | | CPE | 0x00678069 | 35 | | PC | 0x00008067 | 36 | | PVA | 0x00808665 | 37 | | ASA | 0x00658365 | 38 | 39 | 40 | ### 2.2 Examples of Color Encoding (RGB888) 41 | 42 | | Color | Code | 43 | |-------|------| 44 | | Red | 0xFF3700 | 45 | | Green | 0x33D700 | 46 | | Blue | 0x0080FF | 47 | | Orange | 0xFF8C00 | 48 | | Purple | 0x735DF9 | 49 | | White | 0xFFFFFF | 50 | | Black | 0x000000 | 51 | | Yellow | 0xFFC800 | 52 | | Cyan | 0x44F1FF | 53 | 54 | 55 | ### 2.3 Examples of Diameter Encoding 56 | 57 | | Diameter (mm) | Hex Code | 58 | |---------------|-----------| 59 | | 0.8 | 0x0050 | 60 | | 1.0 | 0x0064 | 61 | | 1.75 | 0x00AF | 62 | | 2.85 | 0x011D | 63 | | 3.0 | 0x012C | 64 | 65 | 66 | ### 2.4 Examples of Weight Encoding 67 | 68 | | Weight (g) | Hex Code | 69 | |------------|-----------| 70 | | 50 | 0x0032 | 71 | | 100 | 0x0064 | 72 | | 200 | 0x00C8 | 73 | | 300 | 0x012C | 74 | | 500 | 0x01F4 | 75 | | 1000 | 0x03E8 | 76 | 77 | 78 | ## 3. RFID Tag Memory Map and Field Allocation 79 | 80 | ### 3.1 NTAG213 Memory Layout 81 | 82 | ![](images/1.png) 83 | 84 | | Memory Area | Address Range | Purpose | Writable | 85 | |-------------|---------------|----------|-----------| 86 | | System Reserved | 0x00~0x03 | UID, Lock Bits | No | 87 | | User Memory | 0x04~0x27 | Store EPC data | Yes (Password required) | 88 | | Configuration Pages | 0x29~0x2C | Configuration, Password Setup, Access Control | Yes (Password required) | 89 | 90 | 91 | ### 3.2 Data Field Allocation (User Memory Area) 92 | 93 | | Field | Bit Length | Start Address (Hex) | Example (Hex) | Memory Block Notes | 94 | |-------|------------|---------------------|---------------|-------------------| 95 | | Header | 8 | 0x04 | 36 | First byte of Block 0x04 | 96 | | Manufacturer Code | 32 | 0x05 | EEEEEEEE | 0x05-0x08 | 97 | | Filament Code | 16 | 0x09 | 0001 | 0x09-0x0A | 98 | | Material Name | 32 | 0x0B | 504C4120 | 0x0B-0x0E | 99 | | Material Supplement | 32 | 0x0F | 43463230 | 0x0F-0x12 | 100 | | Color Code | 24 | 0x13 | FF3700 | 0x13-0x15 | 101 | | Filament Diameter | 16 | 0x16 | 00AF | 0x16-0x17 | 102 | | Filament Weight | 16 | 0x18 | 03E8 | 0x18-0x19 | 103 | | Production Date | 16 | 0x1A | 09C6 | 0x1A-0x1B | 104 | | Reserved | 64 | 0x1C | 0x00000000 | 0x1C-0x2F | 105 | 106 | 107 | ### 3.3 Password Authentication Configuration 108 | 109 | | Field | Address (Hex) | Example (Hex) | Description | 110 | |-------|---------------|---------------|-------------| 111 | | Password A | 0x2B | 0xA0A1A2A3 | Authentication password (4 bytes) | 112 | | Access Control | 0x2C | 0x5F078069 | Read/write permissions | 113 | 114 | 115 | ### 3.4 Notes 116 | Data Alignment Rules: 117 | - Block Size Rule: The NTAG213 memory is organized in 4-byte blocks. All data must be written on block-aligned addresses. 118 | - Padding Rule: Fields that are not a multiple of 4 bytes must be padded with zeros to fill the block. 119 | 120 | 121 | ## 4. Example 122 | For a filament spool with the following specs: 123 | - Diameter: 1.75mm 124 | - Weight: 1000g 125 | - Color: Red 126 | - Material: PLA-CF 127 | - Production Date: February 2025 128 | 129 | The RFID tag would be programmed as: 130 | 131 | | Field | Value | 132 | |-------|-------| 133 | | Header | 0x36 | 134 | | Manufacturer Code | 0xEEEEEEEE | 135 | | Filament Code | 0x0001 | 136 | | Material (Main) | 0x504C4120 | 137 | | Material Supplement | 0x43463230 | 138 | | Color Code | 0xFF3700 | 139 | | Filament Diameter | 0x00AF | 140 | | Filament Weight | 0x03E8 | 141 | | Production Date | 0x09C6 | 142 | 143 | 144 | 145 | ## 5. Code Implementation 146 | 147 | 148 | ## 6. Appendix 149 | 150 | 151 | ## 7. Version History 152 | 153 | | Version | Date | Description | Author | 154 | |---------|------|-------------|---------| 155 | | 1.0 | 2025-02-10 | Initial release | Yongliang Tan | 156 | 157 | 158 |
159 |
160 | 161 | 162 | # Filament Color Encoding Rules 163 | 164 | ### 1. Encoding Rules 165 | Basic Color Code - Color Category - Brightness Level - Filament ID 166 | 167 | 168 | ### 2. Basic Color Code 169 | The basic color code is a standard way of coding based on the RGB color model, with a total of 6 characters indicating the intensity of red, green, and blue colors (from 00 to FF). For example: 170 | - #FF0000: Pure red 171 | - #00FF00: Pure green 172 | - #0000FF: Pure blue 173 | 174 | 175 | ### 3. Color Categories 176 | Colors are classified into major categories, each with an abbreviation: 177 | - PR: Primary Colors (Red, Blue, Yellow, White) 178 | - SE: Secondary Colors (Green, Orange, Purple) 179 | - AC: Accent Colors (Pink, Brown, Cyan) 180 | - MT: Metallic Colors (Gold, Silver) 181 | - GL: Glitter Colors (Glitter Pink, Glitter Blue) 182 | - TR: Transparent Colors (Clear, Translucent) 183 | 184 | 185 | ### 4. Brightness Levels 186 | Each color can be assigned a brightness level: 187 | - L: Light 188 | - M: Medium 189 | - D: Dark 190 | 191 | 192 | ### 5. Filament ID 193 | Each unique color is assigned a numerical ID for indexing and management: 194 | - 001, 002, 003 etc. 195 | 196 | 197 | 198 | ### 6. Color Code Reference Table 199 | 200 | | ID | Basic Color Code | Color Name | Color Category | Brightness | Full Code | 201 | |-----|------------------|------------|---------------|------------|-----------------------| 202 | | 001 | #FF3700 | Red | PR | D | #FF3700-PR-D-001 | 203 | | 002 | #33D700 | Green | SE | M | #33D700-SE-M-002 | 204 | | 003 | #0080FF | Blue | PR | L | #0080FF-PR-L-003 | 205 | | 004 | #FF8C00 | Orange | SE | M | #FF8C00-SE-M-004 | 206 | | 005 | #735DF9 | Purple | SE | D | #735DF9-SE-D-005 | 207 | | 009 | #FFFFFF | White | SE | L | #FFFFFF-AC-L-009 | 208 | | 010 | #000000 | Black | AC | D | #000000-AC-D-010 | 209 | | 011 | #FFC800 | Yellow | PR | D | #FFC800-PR-D-011 | 210 | | 012 | #44F1FF | Cyan | PR | D | #44F1FF-PR-D-011 | 211 | 212 | ### 7. Operator Panel Color Definition(Screen, Slicing software, Web) 213 | ![](images/2.png) 214 | --------------------------------------------------------------------------------