OS cannot see usb mic array

Sub forums for various specialist XMOS applications. e.g. USB audio, motor control and robotics.
Experienced Member
Posts: 79
Joined: Thu Nov 17, 2016 11:24 pm

OS cannot see usb mic array

Postby woodsb » Mon Oct 08, 2018 5:38 pm


We have a card based on the XMOS mic array which our OS can see but which does not show up in the audio device listing. I'm looking for tips on how to debug this, as I am not at all experienced in the USB world and the XMOS code we use is very unfamiliar to me.

We have generated several of our own versions of the XMOS mic array. With each version but the most recent the app_usb_aud_mic_array software worked like a gem. With the current version running the software, however, the mic array is seen by the OS (Ubuntu 16.04) as a USB device (confirmed using lsusb command) but it does not show up in the OS's audio device listing.

I imagine there is some handshaking going awry between the OS and the mic array, but I have no experience in the USB device world and do not know where to start to debug this. I put below some info on our hardware changes in case anyone has some notion on where I might start looking.

Thanks in advance,

Between the working and non-working hardware versions we eliminated the DAC, moved the button signals, and added a UART Tx/Rx signal pair. The 4 button signals were removed from tile 0, and 2 buttons added to tile 1, pins 8 and 9. The UART signals were added on tile 1, pins 0 and 1. We thought these changes should not have affected the USB capability (we did not change anything on pins held for USB signals)

We did find, however, that the unmodified software threw an exception when it tried to communicate with the DAC over the I2C bus. We got around this by eliminating the assertion() that was causing the exception, essentially "fooling" the software into believing it has a DAC. I suppose our issue might be caused by other DAC interactions going awry, but I cannot easily find where that might be occurring since the software is not crashing so don't know where to start looking.

I can provide more details on these hardware changes if someone thinks it will help, but right now trying to keep it simple.
User avatar
XCore Legend
Posts: 1387
Joined: Thu Jun 10, 2010 11:43 am

Postby mon2 » Tue Oct 09, 2018 2:06 pm

Hi. Not an audio developer and do not have any of the mic array boards but from your post, you have compiled working code in the past but this last s/w iteration is broken for some reason?

Assuming that your hardware is confirmed to be working and it is only the s/w that changed? If not, consider to start to test with XMOS proven USB IP like the USB CDC, USB HID, USB Mouse examples on your PCB - do they work ok ?

An external USB bus analyzer would be helpful to log the packets of data between the XMOS PCB and the host PC. With the absence of such hardware, you could consider to use a s/w version of a bus analyzer.

For example,


This tool should be able to at least document what the PC is seeing with your working and non-working compiled code. Please post your logs and results.
Experienced Member
Posts: 79
Joined: Thu Nov 17, 2016 11:24 pm

Postby woodsb » Sat Oct 13, 2018 3:49 pm

Thanks, mon2, the the USB bus analyzer looks interesting. My debug efforts on this are ongoing but spread out over time, so my responses might be slow. I'll post results when I have something sensible.


Who is online

Users browsing this forum: No registered users and 0 guests