NTAG213 lock control TLV
I'm using the seritag nTAG213 tags for a project and I'm right on the limit of memory. when we get the tags there's 5 bytes of data already on the tags which from the datasheets I understand to be the lock control TLV. if i remove these five bytes and encode data from the first available data byte then I can fit my data and the tags still scan with a mobile phone.
my question is whether we need the lock control tlv and what difference does it make if i remove it during encoding ?
Good question. The short answer is that according to the NFC Forum specifications you don't need to include the lock control TLV when encoding the NTAG213 chip.
To add some detail. Type 2 tags (of which the NTAG213 is one) comply with the Type 2 Tag Operation specifications laid out by the NFC Forum. The Type 2 Spec details that the Lock Control TLV, which contains 5 bytes of data, indicates the location within the chip's memory of the bytes controlling whether certain areas of the tag data is locked or not. These areas are called dynamic lock bytes.
Now, while this would indicate that the Lock Control TLV is required, it's not. And that's because the NFC Forum spec also states that in the absence of a Lock Control TLV stating otherwise, the reader should expect to find the dynamic lock bytes after the end of the 'main' memory area. This length of this main data memory area is specified in the Capability Container (CC). In the case of the NTAG213, this is specified as 0x12 (HEX value 12). The size of memory is this value multiplied by 8, so in the case of the NTAG213, it's 8 x 18 (12 hex in decimal) = 144 bytes. Therefore, the reader can assume that the dynamic lock bytes will be located immediately after the 144 bytes of memory. As this is the case, then there's technically no need for the Lock Control TLV and the five bytes of memory it takes up can be freed for other use.
Worth mentioning as well that the smaller NTAG210 micro tags do not contain a Lock Control TLV as this chip, with memory less than 64 bytes, does not have dynamic lock bytes and therefore doesn't need the TLV.
As another side note, Seritag always encode the NTAG213 with the Lock Control TLV anyway unless the memory required is right on the limit.
Does that mean that if we had a USB or other electronic reader that was just looking for certain data/bytes within an NDEF message then the location of those bytes might not be in the same place ? So as a really rough example in the case where the tags were encoded with a lock control tlv the text content of an ndef message might be on page 8 but if the tags were encoded without a tlv they might be on page 7 ?