Raspberry Pi Soundcard From Logitech Headset

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.

Logitech A-0365A USB headphones control board
Logitech A-0365A USB headphones control board

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

pi@sable ~ $ 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!

1408_alsamixer

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

RightMark results
RightMark results

The frequency response shows a rolloff at low frequencies – about -6dB at 200 Hz. 1408_freqresp

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

1408_alsamixer_final

ALSA mixer final settings

The next step is to get out there and record with this.

7 thoughts on “Raspberry Pi Soundcard From Logitech Headset”

  1. Very good effort. I was trying to figure out if we could use the USB headphone audio card as DAC for Pi to be used as a Music Player. Not sure how it will perform with Volumio or Rune. Any idea?

    1. It sounds pretty good on playback to me, and the playback is stereo, unlike the record which is mono only. But it is a Class D amp to drive the headphones which are presumably the usual 32 ohm sort of thing. You’d probably want a regular DAC with a class-A or class A/B opamp output stage if you were driving into a hi-fi amplifier.

      But if you’re driving headphones from your Pi then the original sounded good to me before. I had no trouble with drivers. Should work as long as you do the mod I linked to so you get to use the USB sound card.

    1. Interesting – then from the datasheet it’s not a Class D headphone driver. Which is nice, as I ended up using the audio out in an APRS interface into a radio

Leave a Reply

Your email address will not be published. Required fields are marked *