external Microphone

Well, I just haven’t had any time to look at it yet but any hints whatsoever that could cut down on the search would definitely help!

Let me put my findings in the other thread because this one should really be about the external microphone…


Dylan.

I hope this will be a relatively easy question to comment on, but I’m hesitant to think so based on the number of “quick questions” I have been asked in my career. :slight_smile:


Anyway, I got to wondering if a bandpass filter between the amplified Adafruit external microphone and the attenuator might help filter out various noise and rumblings that do not fall in the voice frequency range. A circuit like this is what got me curious:


http://www.paulinthelab.com/2012/09/voice-bandwidth-filter-for-podcasts.html

Could that be helpful or does MOVI already do that kind of thing in its hardware and/or firmware?


Dylan.

Dylan,


I’ve been thinking about it: Adding a band pass is worth a shot.

But the results will be a matter of experimentation.


Gerald

I tried the Voice Bandwidth Filter circuit and the results are astounding but not without some effort and one open question. I imagine you won’t be able to comment too much without trying the circuit and seeing its impact on the input to MOVI, but I’ll wrap up with it in any case for your consideration.


The longer story - I tried the Voice Bandwidth Filter without any changes to my code and MOVI became less responsive initially with anything other than a quiet room (car). I put the microphone debug on and found that it was not hearing any engine rumbling, but it would tend to cut off my callsign about half way through. So I started dropping the tolerance. Once I got all the way down to 3, MOVI started to hear my complete callsigns and commands, but continued to “ignore” the engine rumbling at idle. I was encouraged so I moved on to the next trial using 3 as a fixed tolerance.


I was amazed to find that with the Voice Bandwidth Filter circuit in play and a tolerance of 3, MOVI would hear my callsign and commands quickly and accurately while driving up to about 50MPH. I even rolled the windows down at one point and still, MOVI was disinterested in the background noise, hearing and responding only to my voice (I wore only one earbud to listen to the microphone debug which in my understanding is legal!) After 50MPH, things got less reliable and I’ll need an assistant to really listen to the microphone debug to see if it generates any ideas, but I wouldn’t be surprised if it’s just too much convoluted noise to do anything about. Regardless, I’m very impressed with the results I have achieved and would consider it a success!


The open question I have is - would it make any sense to allow us to drop the tolerance below 2 (ie. 1,0) for those of us who wish to filter the signal externally with a filter such as this Voice Bandwidth Filter?


I should probably reiterate the pieces I have in my microphone circuit here because it’s quite a chain at this point:


ADAFruit 9814 Mic -> Voice Bandwidth Filter -> Line-to-Mic level attenuator -> Ground Loop Isolator -> MOVI


Dylan.

[Last edited May 25, 2016 17:48:52]

I am assuming with ‘tolerance’ you mean the value to the THRESHOLD command? Dropping that value to 1 puts the internal noise threshold at 1%. This means that some MOVI boards will become completely unresponsive as the noise induced by the AGC will be interpreted as speech most of the time. 2% is really the lowest we can safely go. In fact, there is a reason I made the default 5%.


Having said that, let’s look at your concrete problem. I haven’t tried your circuit yet (thank you so much btw., I will!) but I wonder if you should put a small amplifier after your circuit, or for that matter, adjust the Line-to-Mic level attenuator to not be as strong. What is the peak and average voltage you get after the bandwidth filter?


Gerald


Apologies, old terminology from my previous VR board, yes I meant THRESHOLD.


I don’t really want to change anything hardware wise just yet because I have it working so well. The question about the THRESHOLD limit was more out of curiosity than a need given that I was getting close to the minimum allowed. I actually tried 2 as a threshold and I didn’t like it at all, MOVI went back to being slow and unresponsive at times. It looks like 3 is my sweet spot right now.


I don’t have the equipment necessary to measure the average/peak voltages with any accuracy. That said, I did get to thinking that the attenuation may be a little strong with the Voice Bandwidth Filter and the Line-to-Mic attenuator together. I’ll wait for your findings once you try out my Voice Bandwidth circuit and if you have any strong recommendations at that time in terms of optimizing the input level then I’ll consider it again.


I’d like to make a new video sporting MOVI in action in my car, but I’d kind of like to have the new firmware first so I can combine MOVI’s beeps (to prove it’s MOVI doing the work!) with my custom audio callsign responses.


Thanks as always for your insights!

Dylan.

Dylan, Gerald -

I am very happy Dylan shared this thread with me, I think it will solve many of the problems I see. And the bandpass filter is probably what I will need as well. As the motors on the robot are a lot noisier than I would have first thought.

Speaking of the bandpass filter thou, the link Dylan gave is dead now, luck would have it thou that it was archived with "internet archive"

https://web.archive.org/web/20150928145045/http://www.paulinthelab.com/2012/09/voice-bandwidth-filter-for-podcasts.html

Looks like “Paul” moved from having his own .com to blogspot. No need for the “Way Back Machine” after all.


https://paulinthelab.blogspot.com/2012/09/voice-bandwidth-filter-for-podcasts.html

Dylan.



Dylan: Thanks!

No problem Gerald, just trying to help a fellow hobbyist find some success.


BTW. I ended up taking a new position in Las Vegas, NV. If you’re going to be out here for CES or some other show, let me know and I’ll drive my MOVI enabled 1987 Chevy “computer controlled” (early car computer!) car over to show you!


Dylan.

Sure thing!


Gerald

Dylan -

I can see the promo now - “Before there was the Knight Thousand, Before there was K.A.R.R. - There was The E.C.C.C. or Early Computer Controlled Car. Powered by Arduino and MOVI.”


:slight_smile: Just need the sensor lights, and a few sound effects…

https://www.youtube.com/watch?v=bnjJ7bGbvts

(I’m going to change these to the black strips (to help blend into the grill), probably add more neopixels to see if I can’t get them to brighten up, and go with a 12v strip (the ones here were only 5v), probably go to a larger amplified speaker too) But it’s a concept at this point.

The wiring diagram is unusable – is there a better one?
Can you tell me the values for C1, R1 and R2? I am trying to connect the Adafruit 1713 external microphone to the MOVI.
I tried the sample circuit from the Adafruit website and this mic really is a sensitive far-field unit!
Thanks.
73, Doug

I have given up on trying to get the Adafruit 1713 working as an external microphone for MOVI. I have exhausted all the options I can think of, but no joy.
The software is version 1.10 and the onboard mic works quite well. When I connect the 1713 and run the ‘SerialMonitor’ example program, I can hear myself through the external mic However, the sound is obviously too loud. So I built an attenuator pad and tried various values for the resistors but no joy there. The mic is very sensitive (it’s a good far-field mic) but that means that it picks up room acoustics and trivial echos that you don’t normally think about, but they are present after you speak to the MOVI and it responds, I’ve tried adjusting the Threshold paramter, but that doesn’t fix the problem either (the problem being loud/soft/loud/soft echos that drive MOVI nuts).
73, Doug

Hi Doug -

Don’t give up just yet - I have that microphone working reasonably well in a noisy old 1987 muscle car and I can communicate with MOVI up to about 40MPH when the wind noise just takes over.

I cannot find the link from the old forum posts that contained the values for the attenuator components, but I THINK this is what was recommended:

https://geoffthegreygeek.com/understanding-decibels-part-2/

Scroll to the 40dB attenuator piece.

If that’s still not good enough - Try building the Voice Bandwidth filter I linked above. It helped me out a bunch with the random noises being picked up.

For me, Threshold of 3 is all that would work. 2 and MOVI doesn’t hardly hear anything. 4 and up, it just keeps listening to random noise constantly.

Good luck,
Dylan.

Hi Dylan,

Finally found this thread, Gerald pointed me at it, but I suppose I screwed up the URL before.

Sounds like we have very similar problems. My project is voice operated controls (TV, STB, AC, pager …) for a quadriplegic person. Gives them some freedom and caregivers (me :-)) a break. Could be a very nice option for others in similar situations.

Many of the same problems with an external mic. My problem doesn’t come from automotive issues, but rather room noise. People speaking, audio from TV / music.

I’ve accumulated a box of microphones with VERY little success.

Going to order parts for stuff mentioned above. Ada is out of that mic board, but they are plentiful on Amazon by other vendors.

Does anyone have recommendations for values of that attenuator circuit Gerald posted (R1,R2,C1) above. I’m a little leery of using the MOVI as a fuse :-).

Also issues with THRESHOLD, anything above 5 and it is stone deaf. I haven’t been using the internal mic so that may have something to do with that.

The main reason for the need of an external mic is that I can not have electrical stuff and wires spread on the bed. Mic needs to be mounted on the safety bar which is about a foot or so from the person talking.

Working with someone else here to see about being able to use a bluetooth headset which seems like it would be ideal, Using something like the motorola H730 (long battery life, noise canceling).

One of my MOVIs has a dead internal mic, thinking on what was said above, removing that, put in a jack and attach an electrit mic might be a plan too. Cable only has to run about three feet.

My biggest problem is time, doing caregiving 24/7 :-/. Working on this as I can.

Again, THANKS to all on this thread!!!

Vic.

Vic,

Here is a general description of attenuators with formula!

http://www.epanorama.net/circuits/line_to_mic.html

Gerald

So both Gerald and I have posted 2 separate links to a 40dB attenuator circuit diagram so you should be good to go there.

I asked Gerald once about the possibility of just desoldering the built-in microphone and replacing it with a jack, but he wasn’t a big fan of that idea for some reason. In any case, if your mic is broken on a MOVI board anyway, could be worth a shot.

Dylan.

Thanks folks!

Things have gotten hectic here and I am going to be slow responding for a while, sigh…

I did get a pile of those mics I have accumulated together and attempted to make a video, so far whatever I am doing with that isn’t suitable to show problems, working, lack of experience with it, need to play with it more.

First mic (lapel) I dug up did rather well other than chopping off beginning and ending of spoken phrase rather regularly (they all seem to do that).

Still having a problem with additional spoken phrases being noticed, it ?seems? like there has to be some delay between commands as ?MOVI? ?Due? is not ready to receive a second command right away. Working on that too. Possible there is some parameter involved?!?

I got the ada mic/amps today, I’ll try to get at them soon…

Also of interest, I got a stereo to mono 1/8" adapter and tried out the wireless headset that goes with that tour guide amp thingie. That seems to have possibilities. The headset has +/- keys that allow you to adjust the volume. No idea what the battery life (usb charge lithiums, I think for both the headset (transmitter) and receiver). Need to play with this some more. That I am sure is hackable, but it would be nice if one didn’t have to.

Dylan: Gerald says to ask you about a video you have that deals with varying noise in an environment, that might be useful with background noise (TV, etc.) in the “production environment”. Please and thank you?!

Coffee breaks over, back on my head :).

Thanks gain all!