-
-
Notifications
You must be signed in to change notification settings - Fork 212
PluggableUSBAudio not working #546
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hi @w9ran , |
Thanks for your reply and suggestion. I did prove that the Pico is sending audio via USB in Linux, so it's a Windows issue. I deleted all Pico containers and attached the Pico afresh so Windows did the usual "setting up new device" routine. This resulted in three Pico entries in device manager, all identical and with the same "Code 10 - cannot start" error: I tried updating the driver but Windows said the best driver was installed (USB Audio) - here is are the details: I then tried disabling/re-enabling the device which produced a message "Device is enabled but still not working". Adding a print statement to the main loop proved that during all the above the COM port remained connected and working. I hope this helps to identify what's going on as having a composite serial/USBAudio device will be very nice. Bob |
This page https://docs.microsoft.com/en-us/answers/questions/549388/windows10-usb-problem-0xc0000182-audio-vcom-compos.html might be explaining the issue but no solution is provided unfortunately 😞 |
Yes, the "updates" suggested there were from 2017. card 2: Pico [RaspberryPi Pico], device 0: USB Audio [USB Audio] But when I attach the Pico in /dev I see /dev/ttyACM0 rather than something like /dev/ttyUSB0 that I was expecting. Apparently this is normal and I don't see how it could be affecting USBAudio on Windows since it sees the COM Port OK, but thought I'd mention it. Bob |
@w9ran have you tried using tinyusb? It also has a template for usb descriptors (aka how a OS sees the device) i used the tinyusb library from adafruit for it |
also /dev/ttyACM is a linux serial modem whereas /dev/ttyUSB0 is your generic usb to serial chip (from my understanding) |
I'm throwing this in the pot as a guess, as I suspect Windows is seeking out a parameter to inform it that you've just inserted a composite device rather than a single USB device type. I know you can define some USB settings inside code, such as vendor id etc. but no idea what can be done here. https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/register-a-composite-driver |
The reason why not working on Windows seems to be the lack of IAD descriptor in USBAudio.cpp. |
je1rav - that's great news! I just looked at this thread after nearly a year and was pleased to find your comment - but I'm not enough of a USB expert to know exactly how to make the change to add the IAD descriptor. Could you perhaps post a snippet or the entire modified USBAudio.cpp file? Thanks! |
Dear Bos,
Thnak you for your mail.
I am not familiar with github for the pull request.
But I have uploaded the files to
https://github.com/je1rav/QP7C_RP2040_CAT_Arduino.
In it, I created a amature radio transceiver program using RP2040 and USB
Audio.
I am sorry, but the document is written in Japanese.
Please use the language translator to read it.
I think that the files "PluggableUSBAudio.h" and "USBAudio.cpp" in it could
be used for your perpose.
Best regards,
Hitoshi, JE1RAV
2023年8月15日(火) 8:13 w9ran ***@***.***>:
… je1rav - that's great news! I just looked at this thread after nearly a
year and was pleased to find your comment - but I'm not enough of a USB
expert to know exactly how to make the change to add the IAD descriptor.
Could you perhaps post a snippet or the entire modified USBAudio.cpp file?
Thanks!
Bob
—
Reply to this email directly, view it on GitHub
<#546 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AV4FGEWKPTATQRU54N64HXLXVKWLLANCNFSM6AAAAAAQECXFWA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Dear Bob, The above address was wrong. Hitoshi |
Trying this example:
#include "PluggableUSBAudio.h"
USBAudio audio(true, 44100, 2, 44100, 2);
static uint8_t buf[128];
void setup() {
for (int i = 0; i<sizeof(buf); i++) {
buf[i] = 128 * sin(i);
}
}
void loop() {
audio.write(buf, sizeof(buf));
}
Compiles without error but the Pico continues to enumerate as a USB Serial device, not as Mbed Audio.
Thanks,
Bob
The text was updated successfully, but these errors were encountered: