In a GPIO initialization function I’d written, I was passing a pin number as an argument to a vendor function that expected a mask. Changed it to
1 << pin, fixing both the LED and USB problems.
Windows 10 isn’t completely happy with my USB device, which is a composite device with a CDC ACM (virtual serial) device and an MSC (mass storage) device. It sees both, but neither work properly. In Device Manager, both say “The device is working properly”, but they both have “Device not migrated” in their event logs, the CDC says “requires further installation”, and the MSC says “Device not started”.
On the other hand, Linux assigned the CDC to /dev/ttyACM0, and Kermit was able to open it fine, though the device driver logged some complaints. Right now the CDC device just echos back what is sent to it, and that’s working since what I type in Kermit is displayed. Linux doesn’t like the MSC device.