kutukvpavel / Esp32-Win7-VCP-drivers

INF files that enable ESP32-S3 Serial/JTAG peripheral and TinyUSB CDC stack on Win7
19 stars 2 forks source link

Can this be used for customising PID also on Win10/11? #3

Open James-4DSystems opened 1 year ago

James-4DSystems commented 1 year ago

Hello,

Looking for a method to get an INF file, for after you set the PID/VID of an ESP32-S3, as Windows 10/11 etc show a device "ESP32S3-DEV" without any driver loaded, as the VID/PID has changed from the default 0x303A and 0x1001, to what I have set it to.

I know this repo is for Windows 7, but can this approach be used for other windows OS's too, to try and get Windows to understand the new PID value that has been set for tha Native USB fo the ESP32-S3R8 module for example?

I have attempted it, but after installing the INF I just get "The third-party INF does not contain digital signature information"

If you have any clues, I would appreciate hearing. Thanks

kutukvpavel commented 1 year ago

Hm... Win10+ does not have the same problem Win7 does, i.e. it automagically installs generic CDC driver if device advertises that it belongs to CDC. This begs the question, does your device still report it's a CDC after you've changed its USB descriptor? What does your Compatible IDs entry look like in device manager?

I believe you can force CDC driver install for your VID/PID pair if you either disable driver signature enforcement or sign the INF (there's plenty of tutorials available on the internet). The message you encountered stems from what's briefly mentioned in readme (Windows will warn you that it can't verify the publisher of these INFs, since I didn't include a *.cat file, you can ignore it.). Seems Win 8+ started to reject not only binaries but INFs without a signature too. And I'm not sure if self-signed drivers will do the trick. If not, you'll have to buy a certificate from a trusted root.

-- EDIT:

NVM, I saw you've reached the right conclusion in this issue #https://github.com/espressif/arduino-esp32/issues/8299 . You have to, first of all, be a CDC device (implement corresponding endpoint stack), and second - advertise your device as such. Whether you've encountered a bug in esp-arduino or your code is at fault, I believe the right way to go is to get your device to fulfill the aforementioned requirements (since you actually want it to be a virtual serial port or a HID, right?), beacuse signing drivers is a PITA too and disabling signature enforcement is not a suitable solution for production.