MIC+ installation guide

This is the updated version of the MIC+ tutorial for MIC+ V2 this new version is 100% software compatible with the V1. The MIC+ V2 adds :

INSTALLATION

Hi here the updated guide !

Installing MIC+ Sound Card on current Raspberry Pi OS

  1. Edit Config File:
    You can edit the config.txt just by inserting your SD card in your desktop computer and make the following change with any file editor or make those changes within your PI OS :
  • Open a terminal window and type in:
    sudo nano /boot/firmware/config.txt
  • Comment out the existing audio line by adding a # in front of to have:
    #dtparam=audio=on
  • Add the overlay for the sound card:
    dtoverlay=googlevoicehat-soundcard
  • Reboot Your System
  1. Playing Audio
  • After rebooting, check if your sound cards are recognized. You should see the speaker icon on the desktop.
    • Speaker icon on desktop
  • To test, open a terminal window and type in:
    speaker-test -l5 -c2 -t wav
    You should hear “left” and “right” from your speakers.
  1. Recording Audio:
  • Volume control is managed by PulseAudio in Raspberry Pi OS, serving as middleware between the hardware and software.
    Enable Pulse audio in the Raspi-config menu in Advanced - Audio Config
    sudo raspi-config

  • To record audio on the Pulse device , type:
    arecord -D pulse -f S16_LE -r 48000 -c 1 -d 10 test.wav.
  • Play Your Recording:
    • To play back the recording, use:
      aplay test.wav
  1. Adjusting Volume :
    You may notice that the recording volume is a bit low.
  • To list devices, type: pactl list short sources
    it should return :

Where Device 0 is the output and device 1 is the microphone input.

  • To increase recording volume type:
    pactl set-source-volume 1 200%
    then try to record again (see previous step)
  • For playback volume, type:
    pactl set-sink-volume 0 100%

If you prefer a nice graphical interface install

  • To install a nice graphical interface for volume control, type:
    sudo apt-get install pavucontrol
    then type this to launch GUI :
    pavucontrol

Alsamixer is another way to control volume but it will just use the PulseAudio device to make volume change

  • Alsamixer PulseAudio device

  • An easily detachable microphone, you don’t have to breake anything as it uses standard 2.54mm cables you could extend it with wildely available male female 6

The pinout is lest to right as following :

  1. 3.3v
  2. GND
  3. BCLK
  4. DOUT
  5. WB
  6. SEL Used to select Left or Right (by default) so it is possible to add a microphone to have a stereo input. To select Left cut the tiny mark with on the PCB with a cutter.


This is compatible with the external microphone sold by adafruit

  • The V2 also add a 32bit dac, this is the famous PCM5102A

How to turn off the speakers (V2 update):

It is possible to disconnect the hardware speakers to enable the jack only. To do so, locate the labels ‘JP3’ and ‘JP4’ on the back of the board. Using a sharp blade, carefully cut the track associated with these labels. If you need to revert the modification later, you can use a soldering iron to reestablish the connection.

Automatic version Pi OS LEGACY version 32bits only:

-Insert your Rapsberry Pi Shield in your Raspberry pI then turn it on

-Open a terminal (yes the black window thing) and type this to download the bash file and run it:

wget -O - mic.raspiaudio.com | bash

-Say yes for the reboot

-On the next reboot you have to run the test to finish the installation (it is an ALSA oddness):

before if you are on the PI OS desktop select the device on the top right corner (sorry for the bad picture) :

wget -O - test.raspiaudio.com | bash

Push the onboard button, you should hear “Front Left” “front Right” then the recorded sequence by the microphone.

It should sound like this:

If the volume is too low you can adjust the gain of the microphone by typing:

alsamixer

A gain at 50 is a good start:

cap.png

For desktop vlume control under Raspbian:

First enable the audio control, you need to go on the desktop-preference-Audio Device settings then click on “Select Control” and check both “Master” an “Micro”, then if you want to change the volume from your desktop you need to make a right click on the bluespeake iconr to open Audi Device Setting and adjust the sliders. let me know if it helps,

Here is the script source for the test

.For references here is the script source updated for Raspbian Buster.

For Volumio:

We recently added Rapsiaudio in the dac selection, you will find it in the last version of Volumio!

Just select “Raspiaudio” in dac selection and it should work straight out of the box :sunglasses:

For UBUNTU :

1- Edit the file /boot/firmware/config.txt

 >>sudo nano /boot/firmware/config.txt

 comment the following line (add a #):

 (ligne 22) : dtparam=audio=on

 by this one:

            : #dtparam=audio=on
            : dtoverlay=googlevoicehat-soundcard

2- copy the directory “overlays”
form /lib/firmware/4.15.0-1034-raspi2/device-tree
to /boot/firmware

 >>sudo cp -r /lib/firmware/4.15.0-1034-raspi2/device-tree/overlays /boot/firmware

3- reboot

For the official Google AIY image:

-Downlowad the official Google AIY image here

-Write the image to an SD card using a card writing utility (Etcher.io is a popular tool for this)

-Insert your Rapsberry Pi Audio Shield in your Raspberry pI then turn it on

-Open a terminal (yes the black windows thing) and type:

sudo wget -O - aiy.raspiaudio.com | bash

-run the audio test “Check audio” on your desktop, reboot to allow volume control on the desktop

-Follow this guide to setup the credential to run Google’s examples here

For the references the script souce is here

For the Alexa voice assistant:

-Install a fresh version of RASPBIAN STRETCH WITH DESKTOP and follow the setup explain in the first section above “For raspbian user”

-Then follow this good instructable until the end

-You now have to setup the sound output type to edit:

sudo nano /etc/opt/AlexaPi/config.yaml 

be sure that you have the following: sound section:

sound:
  # Name of your microphone device: "raspberrypi"
  # leave empty for default
  input_device: ""

  playback_handler: "vlc"

  # you can go here with alsa, pulse or others
  # keep blank for the best audio output selected by the underlying code
  output: "alsa"
  # output device: "raspberrypi"
  # currently supports ALSA only
  output_device: ""

  # if left empty, won't be passed to the underlying library / command if it su$
  # if it doesn't 100% will be used
  default_volume: 80

  # Means the same as above, but is used for media (playing music for example)
  # Leave blank to use the same setting as for speech content
  media_output:
  media_output_device:
  media_default_volume:

  # Some device: "raspberrypi"
  # value is the number of seconds of silence to pad the beginning and end of t$
  # the sox handler supports this configuration option.
  playback_padding: 0

Also change the GPIO setting for the trigger button and led:

  raspberrypi:
    # GPIO Pin with button connected
    button: 23
    # GPIO Pin for the playback/activity light
    plb_light: 25
    # GPIO Pin for the recording light
    rec_light: 25

Then reboot, if you push on the button you can ask an important question to Alexa:

Pinout:

Please find the pinout on our friends at pinout.xyz:

Hello,

I have an RC522 module, and it already uses GPIO 25, is it possible to replace this GPIO by another?

Hi Aurel,
Indeed Pin 25 is used by the led :

It may not interfears wih your RC522 module, but if it does you will still be able to removed the led with a soldering iron or go brute force and cut/ destroy the led with a cutter.

Hope it helps!

Olivier for the Raspiaudio team

I finished the installation and then did the test. The test worked fine, as shown in the video.

But now my raspi shows ‘No volume control on this device’ on the audio icon at the top right corner. And I dont see any audio preferences.

Any advice on how to resolve this issue would be greatly appreciated!

Edit: One more issue I wanted to add to this - The test gives an ‘Overrun’ error several times. And the microphone recording is too noisy. Is there a way to resolve these issues too?

How do you control the microphone and speaker to -

  1. Record a stream of audio from the microphone.
  2. Process this stream of audio on the Rpi
  3. Output a stream of audio from the speakers, based on the processing done in step 2.

Thanks

For desktop vlume control under Raspbian:

First enable the audio control, you need to go on the desktop-preference-Audio Device settings then click on “Select Control” and check both “Master” an “Micro”, then if you want to change the volume from your desktop you need to make a right click on the bluespeake iconr to open Audi Device Setting and adjust the sliders. let me know if it helps,

this is a generic Alsa sound device, if you google “raspberry arecord” you will find plenty of examples
for example you can try:
arecord -d4 --rate=44000 test.wav

then play it:
aplay test.wav

if you prefer a software with graphic interface I recommend Audacity

thx!

Hello,

Is it possible to use Mic + with Node-red? If yes, how?

I have not tried it but you should be able to use the work from HifiBerry that is using the same I2S driver than us:
https://www.hifiberry.com/docs/projects/automating-your-hifiberry-with-node-red/

Have the Mic+ working on RPI3b+ and Ubuntu 20.04. There is a faint whizzy gurgle noise coming from both speakers when it boots and stays like that until turning it off. Note i am only using external speakers and detached the mic mini board.

Note the speakers are working perfectly and the microphone is working perfectly, it is only the faint whizzy gurgle noise that is causing issues currently.

Note is it only having the strange faint background noise on the external left speaker. The sound is similar to when one puts their ear next to a sea shell. Replaced for the backup Mic+ (lucky i ordered 2), and noise is gone. Must have been faulty.

Hello Will,
If you have noise a good temporary test to do is to try to use as USB battery pack instead of a plugged usb charger. If you have no noise with the battery it means that you could solve the issue with a different usb cable or usb wall charger. On the other hand if you still have the nois the unit might be defective so send if back to Amzon for replacement.

If you use external speaker also try to use differnet cable lenght or shielded cable as you might have an harmonic with your power supply.

Hi, is there instructions for moodeaudio or/and for runeaudio?

I tried to install into moodeaudio but in the audio configuration to select driver, raspiaudio doesn’t show up.

Thank you,

Marco

Hi Marco

For Rune Audio have you tried this (as i’m writing this message their site seems to be down)

But in the past others have done this:
-edit the file /etc/modules-load.d/raspberrypi.conf (with nano for example)
and change the line “snd-bcm2835” by “#snd-bcm2835
save

-edit /boot/config.txt
and change the line “#dtoverlay=hifiberry-dac” by “dtoverlay=hifiberry-dac”

-reboot

For Mood Audio:

As I2S dac on the market are using the same driver, so just select hifiberry-dac,
details are here https://www.hifiberry.com/docs/software/moodeaudio-installation-guide/
I will add official support to mood audio soon.

Kind regards

i am using jumper cables to connect rpi3 and mic+
(because it’s too thick if i insert shield on rpi)…

do i need to connect only highlighted gpio in the pinout picture and power?

Hi Jay, and welcome.

The MIC+ should be able to be inserted directely on the RPI3.
But if you need to connect the MIC+ away form the RPI you can off course just plug every pins mentioned in the documentation. Or I personnally like to use a 40 pins ribbon cable like that that will connect on top of the MIC+ :

Hello, I purchased several MIC+ on Amazon.
MIC+ basically works. However when I plug the cable into the LINE OUT jack, the speakers still play sound. Is it the designed behavior?
Typically when the line out is plugged the speaker should mute. It is confusing that the speakers are not muted.
Is there any way I can mute the speaker when LINE OUT is plugged in?
If there’s no way I can do it can I return the products?

Hi Wangpy,
updated :08/07/23
The MIC+ have no jack detection system (unlike the ULTRA+) so it’s not possible to mute the speaker by software. Nevertheless it is possible to disconnect the hardware, to do so on the back of the board you have 2 labels on the back of the board ‘JP3’ and ‘JP4’, using a sharp blade cut the track, if you need to revert the modification use a soldering iron to reestablish the connection.

Hello Raspiaudio,

Thanks for your prompt response and confirmation. I know you have provided the information to turn off the speaker. Just an additional question regarding this: Does unsoldering CUTL and CUTR disconnect the external speaker ports as well?

Thanks again!