Иногда борьба корпораций с конечными пользователями приобретает гротескную форму, что и побудило меня написать этот пост. Коротко: я перестал беспокоиться любить FTDI. Если вы используете устройство с подключением через конвертер USB2COM на чипе FTDI под Windows — берегитесь. В рамках борьбы с пользователями за интеллектуальную собственность FTDI ломает контрафактные чипы программными средствами.
Анамнез
Долго выбирал и, наконец, купил несколько плат Arduino с лучшим конвертером USB2COM всех времен и народов FTDI FT232RL. Предполагал использовать их в учебном процессе из-за простоты и уже разведенного набора датчиков, светодиодов и динамика. Хабражители предупреждали о подделках, но зачем отличать подделку от оригинала, если все работает. В начале октября 2014 года вышла серия обновлений Windows 7. Через какое-то время установленные драйверы стали выдавать ошибку «COM port is busy». Впоследствии не значит вследствие. Злые языки утверждают, что в драйверах был time bomb на 01.10.14. Не берусь судить, ибо именно эти платы я не перепрошивал долгое время. Помня, что были обновления, я немедленно установил самые лучшие свежие драйверы «CDM v2.12.00 WHQL Certified». После чего ошибка сменилась на «Can’t find driver for this device».
Диагностика
Гугление выявило что с подобной проблемой столкнулось не только сообщество любителей Arduino, но и автолюбители использующие FT232 в OBD адаптерах, и многие другие, использующие этот чип в своей жизни. Обычно проблему решали заменой кабеля на чипах CH340, CP2102, PL2303 и т.п. Но я не мог заменить кабель, поскольку чип запаян на плате У меня прописался нулевой идентификатор PID FTDIBUSCOMPORT&VID_0403&PID_0000. Процесс выхода чипа FTDI из строя состоял из двух стадий. Сначала происходит автоматическое обновление драйверов FTDI через Windows update. Эти драйверы не изменяют PID, а просто отказываются работать с неправильным с их точки зрения устройством. Пользователь, скачивает свежие драйвера, не читает и соглашается с лицензионным соглашением, после чего драйверы изменяют PID на 0000. Рекомендованное лечение: поставить старые драйверы 2.8.14 (или ранние), прописать правильный PID (по возможности заблокировав его на запись), в дальнейшем не обновлять драйверы FTDI.
Лечение
На основной компьютер под W7-64 старые драйверы не ставились. Утилита MProg устройство не видела. Виртуалка устройство с PID0000 тоже не видела. На древнем компе с WXP удалось поставить старые драйверы, заменив в inf файлах PID_6001 на PID_0000. Потом поставить фирменную утилиту MProg для прописывания PID (скачанную с официального сайта). Прошить чип FTDI FT232RL заново, используя прошивки с arduino.cc. UPD 23.10.14: опубликовал комикс о лечении.
Выводы
Замечательная компания FTDI сменила тактику борьбы с поддельными чипами. Ее решение изящно, легально и позволяет контролировать рынок. Вот только устраивает ли оно конечных пользователей? Если ранее, вы просто устанавливали драйверы штатными средствами Windows, то теперь, новые драйверы поставляются в виде exe и при инсталляции вы принимаете лицензионное соглашение, в котором есть такие слова:1.5 Use of the Software as a driver for, or installation of the Software onto, a component that is not a Genuine FTDI Component, including without limitation counterfeit components, MAY IRRETRIEVABLY DAMAGE THAT COMPONENT В вольном переводе звучит так: использование этого программного обеспечения с поддельными компонентами может привести к повреждению этих компонентов. Что ж, если у меня будет выбор, то я больше никогда не куплю продукт содержащий компоненты FTDI. Неважно, какие это будут компоненты — поддельные или настоящие. Жена не разрешает покупать электронный микроскоп, чтобы отличить подделку от оригинала.Используемые источники:
- https://habr.com/post/241001/