ULTRA++ installation & get it working with external mic

Hi Arnauld and welcome!

Push button is connected to GPIO 23 and the led GPIO25, so it is of course optional but if you write a program is could be used to perform some actions (recording for example) without the need of using a keyboard.

There are many controls with the ULTRA and it could be confusing at first. So we have made some ALSA script so you can autoconfigure it to for example preset_external_jack_microphone_input2
to enable the microphone input see here for tutorial

Thank you for your reply.

Yes, I did that, installed with the Method 2 full control.

Is the “Stereo 3.5mm MICROPHONE jack input” ok for a lavallier microphone with a trrs plug or do I need a trs one?

When I do alsactl --file preset_external_jack_microphone_input2 restore 0

I receive:

No state is present for card vc4hdmi
alsa-lib main.c:1014:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -2
Found hardware: "vc4-hdmi" "" "" "" ""
Hardware is initialized using a generic method
No state is present for card vc4hdmi

However in /usr/share/alsa/alsa.conf I added:

defaults.ctl.card 1
defaults.pcm.card 1

as card 1 is seeed2micvoicec

and in /etc/asound.conf I added:

pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}

Thank you for your suggestions.

if your device is on 1 have you tried :

alsactl --file preset_external_jack_microphone_input2 restore 1

1 Like

Thank you for trying to help me.

I uninstalled then re-installed with the Method 2 full control.

Then, as you suggested, did:

if your device is on 1 have you tried :

alsactl --file preset_external_jack_microphone_input2 restore 1

It selected the right soundcard, but I still have an error message, same kind of message:

$ alsactl --file preset_external_jack_microphone_input2 restore 1
No state is present for card seeed2micvoicec
alsa-lib main.c:1014:(snd_use_case_mgr_open) error: failed to import hw:1 use case configuration -2
Found hardware: “simple-card” “” “” “” “”
Hardware is initialized using a generic method
No state is present for card seeed2micvoicec

I am using an external Boya lavalier microphone trrs, is it ok? I know this mic is working as I can use it on my smartphone…

To be sure I used a new sd card with a fresh install of the latest Bullseye and re-install with the full method 2.

I can record with internal microphones and play back but still can’t with the external microphone;

$ alsactl --file preset_external_jack_microphone_input2 restore 1
No state is present for card seeed2micvoicec
alsa-lib main.c:1014:(snd_use_case_mgr_open) error: failed to import hw:1 use case configuration -2
Found hardware: “simple-card” “” “” “” “”
Hardware is initialized using a generic method
No state is present for card seeed2micvoicec

Could the card be faulty? What could I do now?

Thank you.

Hi
-The jack should be TRS, but maybe TTRS it works at least in mono
-No your board is not faulty, this is a matter of applying the right configuration. Another option could be to edit the file preset_external_jack_microphone_input2 and apply by hand the alsa controls

let me know

I just tried with a trs microphone and have the same error message.

Yes, please, what do I have to edit in the preset file?

I will also try the hat on a Pi 3 and a fresh Bulleseye install in the following days when I have free time to see if it works there, but I would prefer to use my Pi zero for my little project (broadcasting audio with Darkice+Icecast installed on my Pi zero).

Thank you.

I also ran the following script: http://www.alsa-project.org/alsa-info.sh (found on this web page: https://github.com/opensrc/alsa) and the results are here if it can be helpful: https://alsa-project.org/db/?f=d4e2da29155ef98d38f805c335224a774440d33d

Any help appreciated :smiley:

Thank you.

I’m going to try it agin this week

1 Like

Hello,

Any news? I would be happy to keep this card. :slight_smile:

Thank you.

I’m on it this evening!

ok so have you tried in alsamixer to manually set control input 2 (external mic) to 100%?
“Right Input Boost Mixer Rinput 2” to 100%
“Left Input Boost Mixer Linput 2” to 100%

then in F4 capture device : you could adjust the microphone bias gain using “ADC PCM”

it is working here, the thing is alsamixer is messy and you would expect Left and Right input 2 to be next to each others but it is not. Put all input 1 and 3 controls to 0 if you want to only have the exernal microphone.

1 Like

So I just followed what you said. It still doesn’t work.

“Left Input Boost Mixer Linput 2” to 100%

“Right Input Boost Mixer Rinput 2” to 100%

then in F4 capture device : you could adjust the microphone bias gain using “ADC PCM”

Then I did:
arecord -D hw:1,0 -f S32_LE -r 16000 -c 2 test.wav
aplay -D hw:1,0 test.wav

But no sound.

The two commands above work well when using the built in microphones. I also tried with two working lavallier microphones, one trs, one ttrs.

However I noticed this in alsamixer:

Thank you.

If I do alsactl --file preset_external_jack_microphone_input2 restore 1

I still have:

No state is present for card seeed2micvoicec
alsa-lib main.c:1014:(snd_use_case_mgr_open) error: failed to import hw:1 use case configuration -2
Found hardware: “simple-card” “” “” “” “”
Hardware is initialized using a generic method
No state is present for card seeed2micvoicec

Just to be sure try to use the same test condition than mine :
-I’m using the git installation indicated in the our tutorial “ultra2” the seeeds studion one does not seem to work.
-I record with Audacity it is nice as I can monitor levels while recording and when adjusting gain
-I use the most simple microphone trs jack found in a dollar store
-I use last RPI OS 32 bit desktop version
-On the desktop I’m choosing on the top right corner right click on the speaker “seed-2mic…”

I ran

alsactl -f my_preset.cfg store

so you can try my config just type :
alsactl -f my_preset.cfg restore

1 Like

Thank you for your patience. It finally worked.

I’m using the git installation indicated in the our tutorial “ultra2” the seeeds studion one does not seem to work.

You were right I stupidly used the method indicated on https://github.com/RASPIAUDIO/ultra2

git clone https://github.com/respeaker/seeed-voicecard
cd seeed-voicecard
sudo ./install.sh
sudo reboot

Instead of:

git clone https://github.com/RASPIAUDIO/ultra2
cd ultra2
sudo ./install.sh
sudo reboot

Certainly because of the excitment of receiving the card and wanting to try it…

I had to access my Pi zero remotely via VNC because I always run my Pis headless, install Audacity and followed your procedure.

But now it works. One last thing, it seems I can’t completely mute the built in 2 microphones although I set db gain for LINPUT1 & RINPUT1 to 0 in alsamixer… If I unplug the trs mic I can still record sounds… How can I completely disable the built in microphones when I use the trs mic?

Thank you.

I can see the same thing here, I can’t diasable totally the onboard mics, this is a driver issue because it was working with an outdated version of the drivers that is not anymore compatible with the current RPI OS. THe resolution could be to fork the seeed branch and fix the bug for input 2 that I beleve they do not use on their hardware.

1 Like

Ok, it’s a pitty. But anyway thank you for your help, it is a very nice soundcard for the Pi, very happy with it.

Hi,

I have a problem which is a little bit related to this topic.
I have connected an external mic to ULTRA++ card.
Generally a MIC is working, I can record WAVes using for example the arecord app. The problem is that every time I have a one second (around) delay/break in WAV files at the beginning. I use driver from RASPIAUDIO/ultra2 repository. I have Pi 4B (8 GB RAM), Linux raspberrypi 5.15.76-v8+ .

Could you help me?

Thank you in advance!!!