Несколько ардуино, одно и то же имя - игровые контроллеры Windows 10

Я делаю несколько панелей SimPit и устройств SimRacing, и я столкнулся с раздражающей проблемой. У меня есть несколько ардуино (Leonardos и ProMicros), которые отображаются как одни и те же "Имена контроллеров" (см. Изображение).

EDIT: В игровых контроллерах (joy.cpl) Windows 10, откуда берется имя "Arduino Leonardo"?, Так что я могу переименовать каждый, чтобы они отображались как что-то другое, например: Leonardo 1, Leonardo 2, Leonardo 3?

Я предполагаю, что это изменение загрузчика и ничего общего с чем-либо через Arduino IDE?

Спасибо за ваше время и дайте мне знать, если потребуется дополнительная информация/объяснение.

, 👍2

Обсуждение

Спасибо, отредактировано, откуда взялось название "Arduino Leonardo"?, @FedaykinWolf

https://github.com/arduino/ArduinoCore-avr/blob/master/boards.txt#L387, @Majenko

Это не сработало, он изменил имя в "Bus Reported device description" в диспетчере устройств (https://i.imgur.com/TgIgXBR.png), но не в окне joy.cpl "Игровые контроллеры". кроме того, я очистил все последовательные устройства USB, чтобы убедиться, что драйверы Windows не перезаписывают изменения, @FedaykinWolf

Тогда это может быть в файле .inf для драйвера в Windows., @Majenko

Итак, если это правда, то, скорее всего, все устройства, использующие этот драйвер, будут иметь одно и то же имя? Не 3 устройства используют один и тот же inf для 3 уникальных имен? Я проверю КАК МОЖНО СКОРЕЕ, @FedaykinWolf

Если это так, то вам нужно будет создать три отдельных устройства с уникальными комбинациями VID/PID и иметь для них три отдельных драйвера., @Majenko

похоже, что Windows способна различать больше, чем VID/PID USB - устройства ... в файлах *inf* есть упоминание о VID/PID/REV ... REV-это номер версии устройства, который является полем bcdDevice в дескрипторе USB-устройства ... поле bcdDevice должно быть разным в каждом Леонардо ... файл *inf* необходимо будет отредактировать, чтобы создать другое имя устройства для каждой версии REV, @jsotola

начните с Windows-стороны проблемы ... напишите код arduino, который устанавливает поле "bcdDevice" на некоторое число, например 4. отредактируйте файл "inf", чтобы он соответствовал VID/PID/REV ... выберите REV = 4 ... надеюсь, Windows обнаружит Леонардо ... затем измените REV на 5 ... если Windows обнаруживает неизвестное устройство, то у вас есть способ отличить Leonardos, @jsotola

Спасибо вам обоим, я собираюсь попробовать этот новый путь как можно скорее, я обновлю его, когда смогу, @FedaykinWolf

@jsotola, почему эти комментарии, а не реальный ответ? Это достаточно подробно, чтобы полностью оправдать свой собственный пошаговый ответ, который затем также можно найти с помощью поиска (как на сайте, так и через Google)., @Mike 'Pomax' Kamermans


1 ответ


2

Windows, скорее всего, назначает драйвер inbox для использования на основе VID/PID USB-устройства. Будьте осторожны, изменяя эти значения, так как вы не сможете легко перепрограммировать устройства.

Существует метод DFU, при котором, если вывод низкий при запуске / USB init, VID/PID возвращаются как разные значения

,

Это означает, что я должен настроить "плату" с измененным VID/PID в arduino IDE? DFU если вы имеете в виду вульгарную аббревиатуру, то я могу это сделать ... Я такой и есть ;), @FedaykinWolf

Конечно, не вульгарный термин. Я имел в виду Обновление прошивки устройства (DFU). Если вы настроите плату(ы) на использование VID/PID, распознанного драйвером inbox joy stick, то Windows распознает устройства как таковые. Ключом к этому является возможность убедиться, что вы все еще можете заставить Arduino IDE распознавать плату. У меня нет никаких плат Леонардо, но я сделал это с одной из других плат Arduino... хотя это было некоторое время назад., @Nik

Поправочка: Проект о котором я думал эмулировал клавиатуру а не джойстик, @Nik

Ха-ха-лол ДФУ навсегда разорен из-за аббревиатур, теперь я никогда не увижу дальше вульгарного.. Спасибо за всю информацию, @FedaykinWolf