I own a Raspberry Pi 3B and want to extend the sound capabilities. So what I need is sound output for speakers and headphones via a 3.5mm phone jack. In addition to that, I want to add an internal mic and mic-in jack for headphones.

What I already have is sound output support for both headphones and speakers with the IQaudio DAC+. Currently I'm struggling with microphone input. Of course, I could buy an external USB sound card, but 1. the mic quality isn't that good, 2. I only need input jacks not both I/O and 3. I'd still need an internal mic. This might sound a bit confusing, so to sum up my question is as follows:

How can I add both internal mic and external mic (via jack) to the RPi 3B without using USB ports and external power sources?


Internal mic refers to a mic which is always present like the mic in a smartphone. On the contrary, an external mic is a mic which can only be connected via phone jack. I'm sorry if these terms were misleading.

  • Shopping suggestions are off-topic. – joan Dec 5 '17 at 20:10
  • This is by no means a shopping question. – Overblade Dec 5 '17 at 20:10

I suggest that you look into a sound card which has all of the features which you require. The reason why I suggest this is that generally you can only have one sound card on the GPIO headers.

There are several sound cards on the market which support both input and output, some of which also have on board microphones+ input RCA connectors.

Elinux has a short list of some such sound cards. It should be possible to record from both a microphone and line input with some of them.

Finally To solve the problem of requiring an external microphone over the RCA input lines, you will need to find yourself a suitable microphone preamp. If for example you are using a dynamic microphone, there are plenty of balanced or unbalanced options out there which let you plug the microphone into the preamp and give you RCA outputs. Alternatively, if you are using a condenser microphone, you will need to plug a phantom power unit prior to the microphone preamp. Some preamps come out of the box with phantom power. Finally, if you are using an electret microphone, you will need to find a suitable external preamp which supports electret microphones.


To be perfectly honest USB devices should fit most of your requirements - and there are a range of devices out there so it is just a cost vs. quality & features trade-off - and USB devices are more likely to handle a multiple instances of the same type situation that you look to be heading for...

As Matt has suggested there are dedicated sound cards that may also provided multiple input and outputs but many will only have one (possibly stereo) input and output pairs (which is what you might get from even the cheapest USB unit) and it would be unlikely to provide more. One interesting exception I found is the (kick-starter funded) Audio Injector's Octo Raspberry pi sound card which seems to have 8 channels out and 6 channels in and can provide amplification with additional plug in units. It is NOT clear how those channels are divided up into, say, stereo pairs. The downside is that it does cost a fair bit more than a couple of USB units...

  • this doesn't allow an "internal mic" option ... it doesn't solve the problem posed in the original question. – Matt Dec 24 '17 at 5:14
  • What do you think is meant by "internal mic" - the RPi does not itself contain a device to convert sound waves to an electrical signal - it does not contain an internal microphone. It is thus reasonable to assume that the OP wanted more than a single audio input (as well as multiple outputs) which is something that can be done with (multiple) USB units! – SlySven Dec 24 '17 at 8:23
  • The octo sound card has 6 input channels ... in the ALSA sense of channels, which means there are no stereo pairs ... it allows you to record and play anything from 1 to 6 /8 channels. – Matt Jan 11 '18 at 7:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.