Как изменить Arduino Nano MODEL_ID

Я работаю над проектом, используя набор различных Arduino Nano, подключенных к Raspberry Pi через USB. Теперь мой вопрос: "Как я могу, с точки зрения Pi, дифференцировать все эти Arduino и связать их с соответствующим tty?"

В этом вопросе я нашел какую-то часть своего ответа. Отвечающий парень предлагает вручную изменить Arduino MODEL_ID при компиляции и использовать его после работы для идентификации устройства. Проблема в том, что я не знаю, как этого добиться.

Я попытался отредактировать boards.txt файл для добавления новой конфигурации платы с пользовательскими vid.x и pid.x (почему все эти 4 разных значения?) но после выбора моей платы и загрузки MODEL_ID остается прежним:

ID_MODEL_FROM_DATABASE=HL-340 USB-Serial adapter
ID_MODEL_ID=7523

Разве я не могу просто каким-то образом указать макрос USB_PID в командной строке компилятора?

, 👍1

Обсуждение

Этот вопрос касается Arduino Micro, который имеет ATmega32U4 с поддержкой USB. У вас есть ATmega328 с отдельным USB-чипом для последовательного подключения., @gre_gor


2 ответа


Лучший ответ:

0

Как изменить Arduino Nano MODEL_ID?

В Arduino Nano использовался специальный USB-последовательный адаптер (FTDI FT232RL). Вы можете изменить идентификатор, но для этого требуется специальный взлом. Пожалуйста, смотрите предоставленные ссылки.

Ваше здоровье!

,

Хорошо, тогда я вижу проблему. Спасибо! К сожалению, Arduino Nano, который у меня есть, - это китайские клоны, и поэтому они используют последовательный драйвер USB ch341, а не FTDI. Я продолжаю расследование..., @Ulysse Darmet

BW: Может ли ваш скетч на Arduino Nano идентифицировать себя, отправив идентификатор при запуске? Это должно быть уникально для каждой подключенной платы., @Mikael Patel

Я думаю, что это то, чем я собираюсь закончить. Потому что даже если бы я мог изменить идентификатор поставщика и продукта в EEPROM, это привело бы к беспорядку в драйверах, которые больше не смогут распознавать мои устройства. Я нашел [интересную ссылку](http://www.uugear.com/uugear-rpi-arduino-solution/) которые предлагают простой API, чтобы сделать это как можно проще :), @Ulysse Darmet


3

Наконец-то нашли решение =)

Вам не нужно менять ID поставщика или ID продукта: можно приписать постоянное имя devpath (где подключено устройство). Единственным недостатком использования devpath является то, что устройства всегда должны оставаться подключенными к одному и тому же физическому порту.

Ответ здесь:PersistentUSBDevices / Альтернативная фильтрация через Devpath

,