uFR Card Formatter – Mifare Card Programming Tool is an executable software tool for the µFR Series devices. Its GUI displays the entire Mifare Classic structure with simple access to all its sectors and blocks ( 16 sectors of 4 blocks). This way, the NFC RFID Card memory handling is easy and precise.
Docs & Software Download
Software overview
Software functions:
- Sector/Block reading
- Sector/Block writing
- Sector/Block Key A and Key B assigning
- Sector Trailer defining
- Storing the card/tag Key into the reader
- Import Key
- Access password setup
- Generating card/tag log file
- Decrement the contents of a block and stores the result in the internal Transfer Buffer
- Increment the contents of a block and stores the result in the internal Transfer Buffer
- Restore the contents of a block into the internal Transfer Buffer
- Transfer the contents of the internal Transfer Buffer to a value block
Available programming languages:
- Executable software tool
Supported operating systems, platforms, and environments:
- Windows OS
Supported hardware:
- µFR Series Devices
Software respiratory | Description |
ufr-mifare_card_tag_programming_tool_executable |
MIFARE® Classic 1k Card Tag Programming Tool for programming MIFARE® cards and tags by µFR Series devices. |
Software manual
1. µFR Card Formatter – Main Software Commands
Download: ufr-mifare_card_tag_programming_tool_executable
Download and extract the software pack. Download the µFR libraries for your operating system, extract the downloaded package, and copy all the content into the root folder of the µFRCard Formatter Tool (ufr-mifare_card_tag_programming_tool_executable-master).
Doubleclick the uFCardFormatter v1.8.exe file to run the software.
1.1 µFR Card Formatter – Main Software Panel
The main software panel displays the entire Mifare Classic structure with simple access to all its sectors and blocks ( 16 sectors of 4 blocks). The first block (block zero) is reserved for the card factory UID, and it is read-only by default. The of the card memory is completely blank and access-free.
As a screenshot shows, the software displays a card/tag content as HEX and ASCII code. The main panel also provides instant insight and access to the Keys and sector trailers for each sector and trailer of the card/tag.
2. µFR Card Formatter – Read Card/Tag
To read the card/tag data, click the Read Card button at the top left.
If you use a new completely blank card/tag, or it is programmed but not locked, its entire content immediately appears.
2.1 µFR Readers Tool – Card/Tag UID
The first data block (block 0) of the first sector (sector 0) contains the IC manufacturer data (card/tag 4-byte or 7-byte UID). This block is programmed and write protected in the production test.
All card/tag content, including the UID, is also visible in ASCII format.
3. µFR Card Formatter – Write Card/Tag Content
µFR Card Formatter enables the simplest way to write any sector and block of the card/tag. To make sure that your card/tag will be programmed as planned, you need to understand the its structure and make the precise entry into the software tables before recording the data into the card. Special attention is recommended for Acces Bit Values entries, because the mistake may cause the card/tag permanent damage.
3.1 µFR Card Formatter – Card/Tag Sectors
All sectors contain 3 blocks of 16 bytes for storing data (Sector 0 contains only two data blocks and the read-only manufacturer block).
The data blocks can be configured by the access bits as
• read/write blocks
• value blocks
Value blocks can be used for e.g. electronic purse applications, where additional commands like increment and decrement for direct control of the stored value are provided.
A successful authentication has to be performed to allow any memory operation.
The software displays data block at the top-left table (Data on the Card) and sector trailers at the bottom-right table (Access Bits).
3.1 µFR Card Formatter – Card/Tag Value Blocks
Value blocks allow the execution of the read, write, increment, decrement, restore, transfer functions. They have a fixed data format that permits error detection, correction, and backup management.
A value block can only be generated through a write operation in value block format:
• Value: Signifies a signed 4-byte value. The lowest significant byte of a value is stored in the lowest address byte. Negative values are stored in standard 2´s complement format. For reasons of data integrity and security, a value is stored three times, twice non-inverted, and once inverted.
• Address: Signifies a 1-byte address, which can be used to save the storage address of a block, when implementing powerful backup management. The address byte is stored four times, twice inverted and non-inverted. During increment, decrement, restore, and transfer operations the address remains unchanged. It can only be altered via a write command.
4. µFR

4.1 µFR
Byte Number | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description | KEY A | Access Bits | KEY B (optional) | |||||||||||||
0xFF |
0x07 |
0x80 |
USER |
Access bits | Access condition for | Application | |||||
---|---|---|---|---|---|---|---|
C10 | C20 | C30 | read | write | increment | decrement, transfer, restore | |
0 | 0 | 0 | key A|B1 | key A|B1 | key A|B1 | key A|B1 | transport configuration |
0 | 1 | 0 | key A|B1 | never | never | never | read/write block |
1 | 0 | 0 | key A|B1 | key B1 | never | never | read/write block |
1 | 1 | 0 | key A|B1 | key B1 | key B1 | key A|B1 | value block |
0 | 0 | 1 | key A|B1 | never | never | key A|B1 | value block |
0 | 1 | 1 | key B1 | key B1 | never | never | read/write block |
1 | 0 | 1 | key B1 | never | never | never | read/write block |
1 | 1 | 1 | never | never | never | never | read/write block |
1 if Key B may be read in the corresponding Sector Trailer it cannot serve for authentication (all grey marked lines in the last table). As a consequence, if the reader authenticates any block of a sector which uses the grey marked access conditions and using key B, the card will refuse any subsequent memory access after authentication.
Access bits | Access condition for | Application | |||||
---|---|---|---|---|---|---|---|
C11 | C21 | C31 | read | write | increment | decrement, transfer, restore | |
0 | 0 | 0 | key A|B1 | key A|B1 | key A|B1 | key A|B1 | transport configuration |
0 | 1 | 0 | key A|B1 | never | never | never | read/write block |
1 | 0 | 0 | key A|B1 | key B1 | never | never | read/write block |
1 | 1 | 0 | key A|B1 | key B1 | key B1 | key A|B1 | value block |
0 | 0 | 1 | key A|B1 | never | never | key A|B1 | value block |
0 | 1 | 1 | key B1 | key B1 | never | never | read/write block |
1 | 0 | 1 | key B1 | never | never | never | read/write block |
1 | 1 | 1 | never | never | never | never | read/write block |
1 if Key B may be read in the corresponding Sector Trailer it cannot serve for authentication (all grey marked lines in the last table). As a consequence, if the reader authenticates any block of a sector which uses the grey marked access conditions and using key B, the card will refuse any subsequent memory access after authentication.
Access bits | Access condition for | Application | |||||
---|---|---|---|---|---|---|---|
C12 | C22 | C32 | read | write | increment | decrement, transfer, restore | |
0 | 0 | 0 | key A|B1 | key A|B1 | key A|B1 | key A|B1 | transport configuration |
0 | 1 | 0 | key A|B1 | never | never | never | read/write block |
1 | 0 | 0 | key A|B1 | key B1 | never | never | read/write block |
1 | 1 | 0 | key A|B1 | key B1 | key B1 | key A|B1 | value block |
0 | 0 | 1 | key A|B1 | never | never | key A|B1 | value block |
0 | 1 | 1 | key B1 | key B1 | never | never | read/write block |
1 | 0 | 1 | key B1 | never | never | never | read/write block |
1 | 1 | 1 | never | never | never | never | read/write block |
1 if Key B may be read in the corresponding Sector Trailer it cannot serve for authentication (all grey marked lines in the last table). As a consequence, if the reader authenticates any block of a sector which uses the grey marked access conditions and using key B, the card will refuse any subsequent memory access after authentication.
Access bits | Access condition for | Remark | |||||||
---|---|---|---|---|---|---|---|---|---|
KEYA | Access bits | KEYB | |||||||
C13 | C23 | C33 | read | write | read | write | read | write | |
0 | 0 | 0 | never | key A | key A | never | key A | key A | Key B may be read[1] |
0 | 1 | 0 | never | never | key A | never | key A | never | Key B may be read[1] |
1 | 0 | 0 | never | key B | key A|B | never | never | key B | |
1 | 1 | 0 | never | never | key A|B | never | never | never | |
0 | 0 | 1 | never | key A | key A | key A | key A | key A | Key B may be read, transport configuration[1] |
0 | 1 | 1 | never | key B | key A|B | key B | never | key B | |
1 | 0 | 1 | never | never | key A|B | key B | never | never | |
1 | 1 | 1 | never | never | key A|B | never | never | never |
[1] for this access, condition key B is readable and may be used for data
4.2 µFR
jgjgzt

4.3 µFR
mmm

This manual presents the executable software with source code in the C++ programming language. Source code SDK s also available.