![](./index_files/bb070817129799420fd96eabd556c40b.png)
Дорогой ST, почини пожалуйста драйвера под Windows
- Черновик
![](./index_files/4qg-vldjow32jxrvjzizksnbava.png)
Дорогой STmicroelectronics, мы делаем устройство Flipper Zero, это опенсорсная платформа для гиков и разработчиков, построенная на базе вашего микроконтроллера STM32WB55. В 2022 году Flipper Zero будет в руках у 100 тысяч пользователей!
Дело в том, что Flipper Zero отлично работает без драйверов на macOS и Linux, но в Windows до сих пор нет корректного драйвера для DFU режима. Так как мы используем WebUSB для обновления прошивки, мы хотим избавить пользователей Windows от необходимости использовать грязные инструменты для подстановки драйверов.
Мы просим STmicroelectronics навести порядок в драйверах и опубликовать нормальный подписанный цифровой подписью драйвер для DFU режима в Windows Update.
В чем проблема?
![](./index_files/z-b8kwfxefter0xyim0mpo9dtp4.png)
Flipper Zero умеет обновлять прошивку через браузер
Мы умеем обновлять прошивку Flipper Zero прямо через веб-браузер с помощью ультра современной технологии WebUSB и WebSerial. Владелец Флиппера просто открывает страницу update.flipperzeor.one и устанавливает новую прошивки. Не нужно скачивать и устанавливать никакие программы и драйвера!
![](./index_files/u_9n1e6s0qsgoemwx2tda2hlw0a.png)
Ирония в том, что это отлично работает везде кроме Windows. Пользователю придется устанавливать драйвер для DFU, чтобы обновить прошивку в WIndows. Хотя это можно легко исправить, если STmicroelectronics добавит драйвер в систему Windows Update.
Какой драйвер нужен?
![](./index_files/724evh_wpwo-jss0oike1kh6uas.png)
Windows не устанавливает самостоятельно драйвер для DFU устройства от ST
При переключении Flipper Zero в режим DFU он перезагружается во встроенный аппаратный загрузчик от ST. Windows пытается установить для него свой драйвер из Windows Update но ничего не находит. Из-за этого устройство недоступно через WebUSB в браузере. Чтобы устройство стало доступно, пользователю нужно установить драйвер, но не обычный официальный драйвер от ST, а кривой самодельный костыль!
VendorID:0483 / ProductID: DF11
Вот как выглядит STM32WB55 в режиме DFU в системе:
xusb.exe -i 0483:DF11
Using libusb v1.0.24.11584
Opening device 0483:DF11...
Reading device descriptor:
length: 18
device class: 0
S/N: 3
VID:PID: 0483:DF11
bcdDevice: 0200
iMan:iProd:iSer: 1:2:3
nb confs: 1
Reading BOS descriptor: no descriptor
Reading first configuration descriptor:
nb interfaces: 1
interface[0]: id = 0
interface[0].altsetting[0]: num endpoints = 0
Class.SubClass.Protocol: FE.01.02
interface[0].altsetting[1]: num endpoints = 0
Class.SubClass.Protocol: FE.01.02
interface[0].altsetting[2]: num endpoints = 0
Class.SubClass.Protocol: FE.01.02
Reading string descriptors:
String (0x01): "STMicroelectronics"
String (0x02): "DFU in FS Mode"
String (0x03): "207239673256"
Протухшие драйвера от ST и путаница
STMicroelectronics предлагает 2 разных инструмента для работы с устройствами в DFU режиме, при этом каждый из них поставляет разные драйвера. Если не угадать и выбрать неправильный, то все сломается:
- DfuSe USB device firmware upgrade tool — outdated, and install incompatible driver. Устанавливает драйвер подписанный ST, который выглядит корректным, но ломает работу с DFU через WebUSB. Replaced with STM32CubeProgrammer
- STM32CubeProgrammer — installs WinUSB driver that works correctly.
Драйвер из комплекта Dfuse
Этот драйвер устанавливается вместе с утилитой DfuSe и на первый взгляд выглядит корректным. При этом он полностью несовместим с STM32WB55 и полностью ломает работу с устройством в DFU режиме.
![](./index_files/dm6yxzlfrg-fkjnwgbh5n_wwfom.png)
Драйвер из комплекта STM32CubeProgrammer
Удивительно, но чтобы корректно работать с DFU на Windows, сама ST устанавливает криво подписанные драйверы (да вроде норм подписаны, почему тогда винда спрашивает апрув?). Который на самом деле просто тупо WinUSB хуйня? (как корректнее это описать)
![](./index_files/c9ig-yespcmvnf4qmyd6lkudseg.png)
Warning due DFU driver installation via STM32CubeProgrammer
![](./index_files/ha_83hsks1vyn5cqizgjdgx6m3a.png)
Правильный драйвер для DFU, который устанавливает STM32CubeProgrammer
Достаточно WinUSB
На самом деле эти драйвера тупо WinUSB хуйня, которую можно было бы просто…
Дорогой ST, почини пожалуйста это говно
Тут нужно описать четкие требования, что должен сделать ST чтобы всем стало заебись
- * Добавь эти VID_0483/PID_DF11 как совместимые с WinUSB в Windows Updater?
- * Положи свои драйвера в Windows Updated?
- * Добавь новый дескриптор во встроенный загрузчик, чтобы винда сразу определяла DFU как не требующий драйверов?
- * Какие еще варианты, помогите