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
Пользовательский интерфейс
Навигация разработана для быстрой и эффективной работы:
- Вращение энкодера: Навигация по пунктам меню
- Кнопка энкодера: Выбор элементов или вход в режим редактирования
- Кнопка "Назад": Отмена операций или возврат в предыдущее меню
- Визуальная обратная связь: Четкие экранные сообщения о статусе и подтверждениях
Установка
Проект предлагает гибкие варианты развертывания:
- Предварительно скомпилированные бинарники: Доступны через релизы GitHub
- Автономная установка: Прямая прошивка по адресу 0x0
- Интеграция с 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