The Raspberry Pi has no audio input, and I had a pair of Logitech USB headphones that had gone faulty – the earth on the headset was a dis. The USB part seemed to work, but headphones live on borrowed time, connectors and wiring tend to go, and everything is sealed, So I wondered if I could reuse the circuit board as a Pi soundcard. Stereo output but mono on record, of course, but still useful. It’s all part of experimenting to make a low-cost audio field recorder that can start by itself. Nothing is designed to be repairable here, so the plastic USB module case was pinged apart with a flat-bladed screwdriver. Initially I wondered if the black stuff was a blown capacitor, but it was on both sides of the board so I figured it was probably glue from the connector, which was confirmed when I unsoldered the connectors, it came off like a gluey film.
Headphone cable uses fine strands of individually enamel insulated wires wrapped around a synthetic fibre core. The good thing about this is your headphone cable breaks later than if you used normal multi-strand audio cable, given all the flexing it has to take. The bad thing about it is it’s the devil’s own job to solder, because as you heat the strand the synthetic coating melts, robbing you of heat and re-insulating the enamel you’ve burned off. So I unsoldered the existing cable and threw it out, and soldered a stereo jack plug for the headphones and a phono line socket for the microphone. I then extracted the original microphone capsule from the headset and soldered it to a phono socket just to test this out in the original circuit conditions.
It worked fine in Windows. Getting it to work on linux was more complicated than plugging it in. First I checked it appeared in the usb stack with lsusb
[email protected] ~ $ lsusb Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 010: ID 413c:2002 Dell Computer Corp. SK-8125 Keyboard Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 050d:0234 Belkin Components F5U234 USB 2.0 4-Port Hub Bus 001 Device 011: ID 046d:0a01 Logitech, Inc. USB Headset Bus 001 Device 009: ID 413c:1002 Dell Computer Corp. Keyboard Hub
then I have to stop the Pi jumping on the USB sound card
Then test the sound card as recommended by ALSA – one gotcha I suffered was that the noise cancelling microphone worked effectively and I thought I had a problem when hollering at the mic from a distance was thin and low volume 🙂 It also picked up interference from the wi-fi. But it worked, in principle. Now to test it…
I used the freeware version of RightMark Audio Analyser. The microphone input is terribly sensitive to earth loops, which is fair enough, Logitech never expected their device to be used like this. So I had to record the Rightmark test signal onto a Olympus LS-10 and play the signal in from this, battery-powered, into the Logitech to get any decent results. Unfortunately the LS-10 uses some sort of ghastly Class D amplifier on the output, so al I can say is the noise performance is notably better than shown – in Audition the noise floor rises by 10dB when the LS10 is playing the silent intro compared to when the LS10 is not playing anything but terminating the input. On a scope set to 20MHz BW the intro silence looks like noise of about 10% FS!
You have to press F5 to get the capture settings to actually adjust the volume (or step through the play, capture, all using tab)
you mute and unmute by pressing m. I like to unmute the mic to headphones (play) section, because it would sure as hell be nice to monitor what I’m recording live in the field. This screengrab shows the mic muted in playback, which isn’t ideal.
The Rightmark summary results were
That’s not such a bad thing for a microphone, particularly one recording outside. This thing isn’t hi-fi but it isn’t terrible. It’ll do.
The record command is more details on the man page
arecord -D plughw:0 --duration=120 -f S16_LE -c1 -r44100 -vv ~/rectest.wav
the device is hw 0 record for 120s 16bit little-endian one channel rate 44.1kHz verbose output into rectest.wav
Mic circuit measurements
The microphone power settles about 2.1V into the original mic, the open-circuit voltage was 3V
0dBFS ~ 11mV RMS @ 1kHz at mixer capture setting 100, (says 29dB gain)
0dBFS ~ 27mV RMS @1kHz at mixer capture setting 54 (about halfway, says 23dB gain)
capture 0 says 16dB gain, presumably needs ~ 60mV RMS though not tested
These are my final ALSA mixer settings – I can hear the mic satisfactorily through the headphone socket
ALSA mixer final settings
The next step is to get out there and record with this.