adammunich
Member
Howdy forum.
I am using the teensy audio usb descriptors as an example for implementing a usb audio class device on the arduino zero.
I ran into a puzzling issue while creating a USB device descriptor, and sending it to the host machine.
The host machine during enumeration, asks in a setup packet for the Configuration Descriptor (0x02). I have the MCU responding with my configuration descriptor, which, when I implement the USB speaker device, it works fine
But unfortunately when I add the microphone terminals, I end up with an error in the device manager that the Get Configuration Descriptor failed.
I believe the reason is because my USB configuration descriptor with the microphone enabled, is greater than 255 bytes!
I found a document from microsoft that explains, "For compatibility reasons the configuration descriptor request will specify a length of 255 bytes.", but it does not explain why.
I have ensured that there are no buffer overflows on my device side, and that I indeed should be sending the entire descriptor.
Now where I am puzzled, is how can I work around this bug?
The teensy device descriptor is absolutely huge when everything is enabled --far greater than 255 bytes.
Surely there must be a way to do it, but I am puzzled
I am using the teensy audio usb descriptors as an example for implementing a usb audio class device on the arduino zero.
I ran into a puzzling issue while creating a USB device descriptor, and sending it to the host machine.
The host machine during enumeration, asks in a setup packet for the Configuration Descriptor (0x02). I have the MCU responding with my configuration descriptor, which, when I implement the USB speaker device, it works fine
But unfortunately when I add the microphone terminals, I end up with an error in the device manager that the Get Configuration Descriptor failed.
I believe the reason is because my USB configuration descriptor with the microphone enabled, is greater than 255 bytes!
I found a document from microsoft that explains, "For compatibility reasons the configuration descriptor request will specify a length of 255 bytes.", but it does not explain why.
I have ensured that there are no buffer overflows on my device side, and that I indeed should be sending the entire descriptor.
Now where I am puzzled, is how can I work around this bug?
The teensy device descriptor is absolutely huge when everything is enabled --far greater than 255 bytes.
Surely there must be a way to do it, but I am puzzled