discussion / Acoustics  / 7 November 2024

HELP! USB device code, not recognised by Android

Anyone on here good with USB device code - descriptors etc? 

I have this C++ / C (linked) which started life as an ARM mbed example for Raspberry Pi Pico. It's the firmware for the "Bat Detector" USB microphone and the "Griff" USB microphones, when installed on a Raspberry Pi Pico the Pico is recognised by WIndows (I have been told, I'm Mac only), MacOS, iOS and Linux (VMWare Fusion + Ubuntu 64 on a Mac host) as a USB microphone, but it isn't recognised by Android. My USB experience is zero, my Android experience is zero, and it would be SO valuable for the community if this coould be made to work for Android hosts, unlocking Bill Krauss's "Bat Recorder" for people with tiny budgets - the Bat Detector and Griff USB mics can be built for £10. 

 

Thsi needs to be dropped into your pico-examples tree in your pico development environment, drop an add_subdirectory(pipistrelle-usb-mic) into your Cmakelists.txt and you can build it and install onto a Pico. 

If anyone can help, I will owe you multiple beers. 

 

 

 




I saw in your code that you're using UAC2. As far as I understand, support for UAC2 is heavily dependent on the specific device and even then I'm not sure if they fully implemented UAC2 yet in Android. Are you able to use UAC1? I can imagine that you might need the increased sampling rate in UAC2.