QIDI Box: RFID-метки для филаментов — полный гайд
Если у вас есть принтер Q2 и QIDI Box и вы хотите использовать сторонние филаменты с автоматическим определением — эта статья для вас.
Разберём структуру RFID-меток, как их записывать и как настроить QIDIStudio для работы с кастомными прутками.
Правовой дисклеймер:
Все изменения вы вносите на свой страх и риск. Статья исключительно в образовательных целях, автор не несет ответственности за использование сведений из статьи, как и программного обеспечения представленного в статье. Все предоставляется "AS IS" (как есть).
Все манипуляции производились на версии прошивки Q2 v1.1.1
Как это работает
QIDI Box считывает RFID-метку на катушке и определяет три параметра:- - Тип материала (PLA, PETG, ABS, PA6-CF20 и т.д.)
- - Цвет
- - Производитель
Эти данные передаются в QIDIStudio при синхронизации и автоматически подбирают нужный профиль печати.
Какие метки нужны
- Тип: MIFARE Classic 1K (совместимые)- Протокол: ISO/IEC 14443-A
- Частота: 13.56 MHz
Обычные NFC-метки не подойдут. NTAG213, NTAG215 и подобные — это другой стандарт. Нужны именно MIFARE Classic 1K, продаются как стикеры на Ozon.
Где в Box находится ридер
RFID-считыватель как показали эксперименты, расположен в двух крайних выступах между слотами. По-этому у бобины метка-стикер должна быть наклеена на левую и правую стороны. Исходя из этого, неизвестно в какой слот вы установите катушку. Ничего не поделать, придется клеить на каждую сторону.Я сделал проще, так как 1 метка примерно 16р из китая, то можно забить. но жаба таки душит выбрасывать катушку с работающей меткой и к тому же перезаписываемой, я напечатал пластиковый бокс, который можно потом отодрать и вынуть метку, а потом все по новой ) Эдакий "cap" толщиной 0,6, который потом не жалко будет раскурочить и достать метку
Структура данных на метке
Данные записываются в **Sector 1, Block 0** (абсолютный блок #4). Полный блок — 16 байт:
XX YY ZZ 00 00 00 00 00 00 00 00 00 51 49 44 49
| Номер байта | Что это | Откуда брать значение |
| 0 | Тип материала | Номер [fila{N}] секции из officiall_filas_list.cfg |
| 1 | Цвет | Индекс из `[colordict]` |
| 2 | Производитель | ID из `[vendor_list]` |
| 3–11 | Резерв | Нули |
| 12–15 | Сигнатура | 51 49 44 49 = ASCII "QIDI" |
Сигнатура `QIDI` необязательна, но рекомендуется — с ней точно работает. Значения записываются в hex. Например, десятичное 51 = `0x33`.
Справочник кодов
Сам справочник находится в конфигах клипера, файл officiall_filas_list.cfg, сделайте бекап перед изменениями.
На самом деле справочник вы можете набрать по своему желанию, главное сохраняйте порядок и уникальность id.
После каждого редактирования этого справочника, перезапускайте принтер полностью, вместе с боксом. Я пробовал перезапускать только клиппер, это не работает )
Мой справочник примерный такой:
Производители
Палитра цветов
Менять палитру не рекомендую, и как правило это и не требуется.
Типы материалов (частичный список)
Полный список — в файле `officiall_filas_list.cfg` на принтере.
Вы можете добавлять свои по желанию, главное сохранять уникальность индексации, вот пример нескольких моих:
Примеры записи RFID данных
| Что записываем | Материал | Цвет | Вендор | Данные |
| NIT PETG белый | 51 → `33` | 1 → `01` | 2 → `02` | 33010200000000000000000051494449 |
| Polymaker PETG-CF17 чёрный | 54 → `36` | 2 → `02` | 4 → `04` | 36020400000000000000000051494449 |
| PIC ABS-GF6 красный | 53 → `35` | 18 → `12` | 5 → `05` | 35120500000000000000000051494449 |
Чем записывать метки
Android
BOX Rfid - (Андроид) модифицированое моё приложение от (QIDI-RFID) с добавленным функционалом подгрузки своего справочника кодов
QIDI-RFID — (Андроид) специализированное приложение, но имеет дикий недостаток, нельзя подгружать кастомных вендоров и типы
MIFARE Classic Tool (MCT) — (Андроид) низкоуровневая читалка и писалка
Windows (нужен USB RFID writer: ACR122U или PN532)
BoxRFID — Electron-приложение, удобный GUI, импорт списка филаментов (проверял, но не шил, так как нет устройства)
Qidi_RFID_App — Rust/Tauri, кроссплатформенное (не проверял)
Что НЕ работает
NFC Tools — (Андроид) работает только с NDEF-записями, не умеет писать сырые данные в блоки MIFARE
Аутентификация Rfid меток
При работе с метками используются два ключа, но с заводским работает 100%:
Кастомный QIDI: D3 F7 D3 F7 D3 F7, Метки, ранее записанные через QIDI Box
Заводской MIFARE : FF FF FF FF FF FF , Чистые / новые метки
Приложения если и попросят ключи, то для записи пробуют оба ключа автоматически.
Настройка профилей в QIDIStudio
Чтобы синхронизация работала, в QIDIStudio должен быть профиль филамента с правильным `filament_id`.
Формат filament_id
QD_1_V_M
Пример:
Polymaker PA6-CF20 → vendor `4`, fila (материал) `56` → `QD_1_4_56`
Как создать профиль
Для упрощения всего этого головняка, накидал утилиту QidiStudio Profiler - сама прописывает системные профили и меняет id для Qidi Box. Все описание заморочек с профилями, как работает и что делает, прочитайте там же.Box
И вот мы подобрались к самому боксу )
Есть один неприятный момент от самих Qidi
Суть проблемы определения производителя (vendor) по RFID
Производители коробки тут подложили с...
Принтер QIDI Q2 корректно определяет материал (byte 0) и цвет (byte 1) с RFID-метки, но производитель, всегда отображается как QIDI (code 1), независимо от записанного значения в метке в byte 2.
Дисклеймер
Все описание по патчу, я оформил в репе на гитхабе Qidi Q2 Issues .
Причина
В прошивке принтера модуль `/home/mks/klipper/klippy/extras/box_rfid.so не читает byte 2 (vendor) из данных метки. Вместо этого значение vendor захардкожено:
filament = data[0] # byte 0 — материал норм
color = data[1] # byte 1 — цвет норм
# data[2] (vendor) — игнорит
self.stepper.box_extras.save_variable("vendor_...", 1) # навсегда QIDI ))Решение
Заменить либу box_rfid.so на пропатченный питон box_rfid.py, который читает vendor из byte 2. Сам `box_rfid.py` основан на реверсе из qidi-community/Plus4-Wiki.
Шаги
1. Подключиться к принтеру по SSH
ssh mks@чототам адрес
# пароль: makerbase
2. Важно! Сделать бэкап оригинала:
cp /home/mks/klipper/klippy/extras/box_rfid.so ~/box_rfid.so.bak
3. Скопировать пропатченный box_rfid.py на принтер:
scp ~/box_rfid.py mks@:/home/mks/klipper/klippy/extras/
4. Удалить box_rfid.so чтобы Klipper подхватил питоновскую версию:
sudo rm /home/mks/klipper/klippy/extras/box_rfid.so
5. Полностью перезагрузить принтер.
Суть патча
В файле box_rfid.py, в методе _schedule_rfid_read() добавлена переменная vendor и изменена установка этой переменной в variables
Откат
Если что-то пошло не так:
cp ~/box_rfid.so.bak /home/mks/klipper/klippy/extras/box_rfid.so
rm /home/mks/klipper/klippy/extras/box_rfid.py
Перезагрузить принтер
Важно помнить
- После OTA-обновления прошивки QIDI файл `box_rfid.so` и `officiall_filas_list.cfg` вернутся в исходное состояние — патч нужно будет применить заново, а `officiall_filas_list.cfg` бекапте при каждом изменении.
- Community-модуль `box_rfid.py` основан на реверсе из qidi-community/Plus4-Wiki. Немного допилен и проверен на живую на QIDI Q2 Box, все работает.
- Пропатченный файл хранится в репозитории: Qidi Q2 Issues
Материал подготовлен на основе реверс-инжиниринга протокола QIDI Box, анализа логов, профилей и конфигов QIDIStudio и тестирования записи меток.
Еще больше интересных статей
Snapmaker U1 - подключаем Anycubic ACE Pro в качестве системы хранения, подачи и сушки.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сегодня мы будем дооснащать замечательный принтер Snapmaker U1 очень у...
Сушилка Kingroon, или как протерять три вечера...
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
G-CODE по-русски для 3D печати (Мини-справочник)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.







Комментарии и вопросы
Отремонтировать можно, хотя бы...
Потрясающе!
Отличная прога!!! Я даже хз чт...
Здравствуйте всем, я печатаю в...
Предположительно вышел из стро...
Доброго дня!Во время очередной...
Всем хорошего дня!Сразу отмечу...