Выбрать ODRFID-N или ODRFID-M Альтернатива ACR122U: работа с NFC Tools, libnfc и PC/SC
Как использовать ODRFID-N и ODRFID-M с NFC Tools, Cardpeek и libnfc в Linux: чтение MIFARE Classic, команды PC/SC и выбор модели.
ODRFID-N и ODRFID-M подходят для чтения MIFARE Classic в NFC Tools, Cardpeek и программах на базе libnfc. Если вы выбираете ACR122U для просмотра памяти карт, сохранения дампов или своего приложения на PC/SC, эти модели можно рассмотреть как альтернативу.
Через ODRFID можно получить UID карты, прочитать секторы с известными ключами и посмотреть права доступа. Примеры в статье рассчитаны на MIFARE Classic 1K и Linux.
Для подключения включите CCID в программе-конфигураторе ODRFIDConfig. Этот интерфейс доступен в прошивке 3.14 — перед заказом уточните подходящую сборку для своей модели.
Что вы хотите сделать с картой
Для просмотра памяти подойдёт приложение с графическим интерфейсом, для обработки дампов — консольная утилита, а для интеграции в свою систему — библиотека на нужном языке.
| Задача | Программа для ODRFID |
|---|---|
| Посмотреть UID и память Classic 1K | NFC Tools Desktop |
| Разобрать секторы, блоки и права доступа | Cardpeek |
| Сохранить дамп из командной строки | nfc-mfclassic из нашей версии libnfc |
| Прочитать карту из своего приложения | nfc-pcsc для Node.js, pyscard для Python, libfreefare для C |
| Ввести номер карты в 1С, Excel или форму браузера | Режим клавиатуры HID |
Для чтения защищённого сектора нужен действующий ключ A или B.
Если ключи карты изменены, используйте свои: стандартный ключ
FFFFFFFFFFFF подходит только секторам, где он не менялся.
Как подключаются программы для ACR122U
ACR122U работает с приложениями через PC/SC — программный интерфейс доступа к смарт-картам. Его команды описаны в руководстве ACS. ODRFID с включённым USB-интерфейсом CCID также доступен через PC/SC и выполняет команды получения UID, аутентификации и чтения Classic.
В NFC Tools и Cardpeek достаточно выбрать ODRFID в списке считывателей после настройки драйвера. Программы на базе libnfc требуют нашей версии библиотеки.
Если приложение ищет считыватель только по названию ACR122U, в его настройках или коде нужно добавить ODRFID в список допустимых устройств. Если у закрытой программы такой настройки нет, сначала уточните совместимость у разработчика или в нашей поддержке.
NFC Tools: UID и память карты в одном окне
NFC Tools Desktop 2.7 показывает тип карты, UID и ATR — ответ активации карты через PC/SC. Перейдите на вкладку Memory, чтобы посмотреть 64 блока MIFARE Classic 1K.
Отдельная сборка NFC Tools не нужна. Подготовьте драйвер, включите CCID, выберите ODRFID и поднесите карту.

Как подключить ODRFID к NFC Tools.
Cardpeek: секторы и права доступа
Cardpeek 0.8.5 помогает разобраться в структуре Classic 1K. Анализатор mifare reader показывает 16 секторов, блоки данных и права чтения и записи. Для карты со стандартными ключами выберите Use default keys.
Полученное дерево можно сохранить в XML и изучить позднее. Кнопка Save сохраняет файл на компьютер, не записывая данные на карту.

libnfc, mfoc и mfterm
Для работы с ODRFID используйте наш форк libnfc-odrfid на основе libnfc 1.8.0. Команды сборки приведены в инструкции.
С этой библиотекой доступны:
- nfc-list — UID и параметры обнаруженной карты;
- nfc-mfclassic — сохранение 64 блоков Classic 1K в дамп 1024 байта;
- mfoc — чтение Classic со стандартными ключами;
- mfterm — просмотр памяти и прав доступа в интерактивном терминале;
- libfreefare — чтение карты из C-приложения;
- mfoc-hardnested — сохранение дампа карты со стандартными ключами.
При сборке этих программ укажите заголовки и библиотеку из libnfc-odrfid. NFC Tools, Cardpeek, nfc-pcsc и pyscard подключаются к PC/SC напрямую и установки libnfc не требуют.
mfoc и mfoc-hardnested в этой инструкции используются для чтения карт с известными ключами.
Исходники и инструкция по сборке libnfc.
Команды ACR122U для чтения Classic на ODRFID
В собственном приложении можно использовать ту же последовательность:
получить UID, загрузить ключ в считыватель, пройти аутентификацию
и прочитать блок. Команды отправляются через PC/SC, например методом
transmit() библиотеки pyscard.
Команды записаны в шестнадцатеричном виде (HEX). Пример для блока 4 карты
с ключом A FFFFFFFFFFFF:
| Операция | Команда в HEX |
|---|---|
| Получить UID | FF CA 00 00 00 |
Загрузить ключ FFFFFFFFFFFF в слот 0 считывателя | FF 82 00 00 06 FF FF FF FF FF FF |
| Аутентифицировать блок 4 ключом A из слота 0 | FF 86 00 00 05 01 00 04 60 00 |
| Прочитать 16 байт блока 4 | FF B0 00 04 10 |
Эти команды отправляются через PC/SC. В COM-порту (CDC-терминале) используются другие команды — AT-команды. Формат байтов описан в API ACR122U, разделах 4.1 и 5.1–5.3. Готовый пример для Python показывает, как передать их считывателю и обработать ответ.
FF 82 загружает ключ в память считывателя для аутентификации.
Ключи на самой карте эта команда не меняет. После каждого запроса
проверяйте ответ 90 00 — он означает успешное выполнение. При чтении
перед кодом 90 00 приходят 16 байт данных. Если аутентификация не прошла,
проверьте ключ и права доступа сектора.
Для Node.js есть пример nfc-pcsc:
событие card сообщает UID, authenticate() открывает доступ к сектору,
а read() читает блок.
Подготовка рабочего места
- Уточните прошивку с поддержкой CCID для своей модели.
- В ODRFIDConfig включите CCID, выберите составной USB-профиль, сохраните настройки и перезапустите считыватель.
- Установите pcsc-lite и libccid. Добавьте в список устройств драйвера
идентификаторы USB (VID:PID) ODRFID:
0483:A26A. - Запустите
pcsc_scanи убедитесь, что он видит считыватель и карту. - Откройте нужную программу. Для приложений на базе libnfc установите libnfc-odrfid.
Перед запуском следующей программы закройте предыдущую. Если после libnfc другая программа не видит карту, перезапустите считыватель и откройте программу заново.
Настройка CCID и инструкции для десяти приложений.
ODRFID-N или ODRFID-M
Выбирайте модель по картам, с которыми работаете:
| Модель | Карты на рабочем месте |
|---|---|
| ODRFID-N | Совместимые MIFARE и NTAG 13,56 МГц |
| ODRFID-M | Те же карты 13,56 МГц, а также EM-Marine и HID Prox 125 кГц |
Для меток 125 кГц у ODRFID-M используются штатные программы и интерфейсы ODRFID: NFC Tools и PC/SC в этой статье описаны для карт 13,56 МГц.
Обе модели также могут вводить номер карты как USB-клавиатура и работать с вашим ПО через AT-команды по COM-порту.
Подойдёт ли ODRFID для вашей программы
Для чтения Classic в перечисленных приложениях начните с инструкции по подключению. Если нужны запись NDEF, ISO-DEP, FeliCa, NFC-DEP, специальные команды ACR122U или работа в Windows и macOS, уточните совместимость до заказа.
Напишите в поддержку: укажите модель карты, название и версию программы, операционную систему и нужные операции. Эти сведения помогут подобрать считыватель под вашу задачу.