RFIDReader

Прошивка на Rust для чтения и записи RFID-чипов ST25TB с использованием устройства LilyGO T-Embed CC1101 (ESP32-S3 с NFC-модулем PN532). Этот инструмент особенно полезен для работы с RFID-чипами, которые обычно встречаются в картриджах принтеров и других промышленных приложениях.

Основные возможности

Прошивка обеспечивает полный функционал для работы с чипами ST25TB через удобный сенсорный интерфейс:

  • Полноценные операции с чипом: Чтение всего содержимого чипа (до 256 блоков) и запись модифицированных данных обратно
  • Управление данными: Экспорт дампов чипа через последовательное соединение и импорт hex-данных для записи
  • Интерактивный интерфейс: TFT-дисплей с навигацией через поворотный энкодер для удобного управления меню
  • Звуковая обратная связь: Звуковое подтверждение успешных операций чтения/записи
  • Встроенный hex-редактор: Изменение данных чипа непосредственно на устройстве перед записью

Технологический стек

Проект использует современные технологии разработки для встраиваемых систем на Rust:

  • Аппаратное обеспечение: Двухядерный процессор ESP32-S3 (240 МГц) с TFT-дисплеем ST7789V (170x320)
  • NFC-контроллер: Модуль PN532 через I2C-интерфейс
  • Язык программирования: Rust (bare metal программирование no_std)
  • Фреймворк: Уровень аппаратной абстракции esp-hal
  • Протокол: Стандарт ISO14443-B

Поддерживаемые чипы

Работает с различными чипами семейства ST25TB и устройствами, совместимыми с ISO14443-B:

  • ST25TB04K (512 байт)
  • ST25TB512
  • ST25TB02K
  • Устаревшие модели SRI512/SRIX4K

Пользовательский интерфейс

Навигация разработана для быстрой и эффективной работы:

  • Вращение энкодера: Навигация по пунктам меню
  • Кнопка энкодера: Выбор элементов или вход в режим редактирования
  • Кнопка "Назад": Отмена операций или возврат в предыдущее меню
  • Визуальная обратная связь: Четкие экранные сообщения о статусе и подтверждениях

Установка

Проект предлагает гибкие варианты развертывания:

  1. Предварительно скомпилированные бинарники: Доступны через релизы GitHub
  2. Автономная установка: Прямая прошивка по адресу 0x0
  3. Интеграция с Launcher: Развертывание через SD-карту с использованием приложения Launcher

Сборка из исходников

cargo build --release
espflash flash target/riscv32imc-esp-espidf/release/rfid-reader

Известные ограничения

Разработчики документируют некоторые особенности:

  • Зависимость от USB-питания: Устройство работает надежно при подключенном serial-мониторе (известно как "Эффект наблюдателя")
  • Инициализация PN532: Иногда требуется автоматическая повторная инициализация прошивки для правильной настройки

Сценарии использования

Этот инструмент полезен для:

  • Анализа и модификации чипов картриджей принтеров
  • Исследования и тестирования безопасности RFID
  • Разработки промышленной автоматизации
  • Прототипирования и экспериментов с NFC/RFID

Открытый исходный код

Выпущен под лицензией MIT, проект приветствует вклад сообщества через GitHub. Кодовая база демонстрирует профессиональные практики разработки встраиваемых систем на Rust и служит образовательным ресурсом для интеграции ESP32-S3 и PN532.

Ссылки

  • Репозиторий GitHub: bimawa/RFIDReader
  • Аппаратное обеспечение: LilyGO T-Embed CC1101
  • Лицензия: MIT