2 Mics: An over-engineered solution

Background:

My wife is the Assistant Director at Cottonwood Center for the Arts, a local non-profit art center here in Colorado Springs. As a small non-profit, everybody has many different responsibilities. One of her’s is marketing and social media. A project she has been interested in piloting is a podcast and/or video series to help introduce the public to the many things that happen at Cottonwood.

As the former producer for the Exoticliability (RIP) podcast, I figured I could help her with the technical aspects of setting up equipment and recording. As a non-profit, budget is tight especially for a pilot project, but her MBP already has Garageband and we were able to find a couple cheap USB Mics that came with stands. That should be everything she needs to get started.

The Problem:

As we were getting everything hooked up, we discovered a problem. OS X seemed to recognize both USB mics, but would only use the most recent one plugged in. After much googling and almost finding an answer, it was determined that the problem stemmed from the fact that both Mics had identical USB descriptors, including serial number.

(the following screenshot only shows one mic because I “fixed” the first one already)

The simple solution was to buy a new USB microphone from a different brand. We would pay for the new one and I’d keep one of the originals. But, where’s the fun in that?

Can I Fix it?

If I’m gonna buy a new mic, I might as well check this one out in depth. I took the microphone apart to find a pretty small little board. The mic really only had two things of interest, an SOC and an EEPROM.

The SOC was a CM6327A (datasheet), an apparently common SOC for USB mics, and the EEPROM was labeled MX24C02.

The first page of the datasheet immediately tells us that:

Serial EEPROM programming interface supports customized
VID/PID/Product string/Manufacture string for device
name changed and configuration

This led me to believe that all I should need to do is change the data stored on the EEPROM and that should be enough for OS X to recognize it as a separate device.

Yes I can.

I removed the EEPROM from the board, soldered it to a breakout board from adafruit, and placed the breakout in the Mini Pro universal programmer.

The Mini Pro software did not have an option for an “MX24C02” but it did have an “M24C02”. Figuring that EEPROMs are all pretty much the same, I went with that option. Luckily there was no read protection set so I was able to view the data with no problems.

As you can see in the screenshot above, the data on the EEPROM matches the USB descriptors as reported by OS X. All that’s needed is to change some data and it should be good. I probably only needed to change the serial number (201505), but just incase, I changed all the ASCII data, but made sure the lengths never changes.

I programmed  the changes…

and returned the EEPROM to it’s original location on the USB mic’s board. I plugged the mic back into the MBP and checked the descriptors.

And there we have it, a brand new CAD LOL1337USB Licrophone. While I don’t have a screenshot of it, I can confirm that OS X now recognizes both microphones separately and they can both be used in Garageband at the same time (after some aggregate device stuff you have to do, which is required for multiple simultaneous inputs no matter what).

In the end, this solution saved me about $50, since I had all the tools necessary already, and I got a quick blog post out of it. But I am left with a little curiosity about what I could put in all the unused space of the EEPROM and what OS X might think of it. There’s also a ton of space inside the microphone. Could probably fit a small USB hub and a rubber ducky, but that’s a post for another day.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.