Windows 10: Device can't be started
Closed this issue · 8 comments
Hey there,
cool project, though I ran into a small issue: Dropping the provided firmware file on the Pico, Windows 10 (21H2, Build 19044.1826) will recognize the HW but will not start the device. Device manager shows error code 10, "Device could not be started" and "A non constant main element was declared without a usage" (translated).
From what I've seen, Windows seems to be a bit picky (at least more than MacOS/Linux), I also had a look into the source files but couldn't identify a cause right away.
Since I currently got no devenv for the pico installed yet to fix it on my own (and new to the platform), I'd like to at least provide some more info on the issue - so please find the files attached:
wireshark_picodec_norec.pcapng.gz
usbtreeview._picodeck_norec.txt
I purchased a Pi Pico to give this a shot and a few other projects.
I'm also encountering this issue.
Restarting the pico does not help.
Device USB\VID_0FD9&PID_0086\ZZZZZZZZZZZZZ was not migrated due to partial or ambiguous match.
Last Device Instance Id: RZVIRTUAL\VID_1532&PID_022B&MI_00\8&c5f7532&0&03
Class Guid: {745a17a0-74d3-11d0-b6fe-00a0c90f57da}
Location Path:
Migration Rank: 0xF000FFFFFFFFF132
Present: false
Status: 0xC0000719
For what it's worth, the Device Not Migrated message is standard for the streamdeck.
My StreamDeck XL reports 3 events, "Device not migrated", "Device configured (hidserv.inf)" and "Device started".
It seems strange to me that the pedal is using input.inf and the SD XL, hidserv.inf
If you have tested this against an actual streamdeck pedal on windows, tinyusb examples are indicating that the driver is likely cached.
/* A combination of interfaces must have a unique product id, since PC will save device driver after the first plug.
- Same VID/PID with different interface e.g MSC (first), then CDC (later) will possibly cause system error on PC.
I wonder if it's possible this worked on your machine, but not on fresh installs.
I think I've managed to get this building under windows, but the intellisense isn't setup in vscode is hindering me quite a bit, considering this is my first pico project.
Edit: Not building under windows.
@chris-heo you may find this PR: #3 and this binary useful: https://github.com/ryantheleach/picodeck/suites/7540939756/artifacts/310995661
Ok, so whilst the hardware is being accepted by the operating system as a StreamDeck, it appears I may have incidentally changed how the StreamDeck software see's the device.
Shorting pins 7 and 8, (from floating) does not appear to activate the (centre) Welcome button in software.
This is probably either
- my lack of knowledge regarding C macro's biting me in the ass from my cleanup,
- using the wrong usages
- both
From code:
#define BUTTON_1_GPIO 1
#define BUTTON_2_GPIO 5
#define BUTTON_3_GPIO 9
From readme:
Pins 2,3 switch 1
Pins 7,8 switch 2
Pins 12,13 switch 3
I was getting pin instructions confused with GPIO descriptions.
After correcting this, and shorting 1,5,9 to ground in turn, I found it worked perfectly!
Awesome, thanks for looking into this and fixing it! Worked right off 👍