Re: GSM buzz and gsmhandset.state

2008-10-23 Thread Andy Green
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Somebody in the thread at some point said:
| On Thu, 23 Oct 2008 22:04:36 +0800, matt_hsu wrote:
|> Can I know which hardware version do you use? A5 or A6? I used your
|> state files to try my A5. It seems that it could reduce the buzzing
|> noise.
|> But it could not get rid of it all.
|
| /proc/cpuinfo says it's A6 (0360), while frameworkd (Debian) says A5.
| It's the one with capacitor on SD clock lines. Should be A6 if I remember
| the text on the PCB correctly.

It should be an A6, right.

| Seems that I was lucky with getting no buzz at all, most of the time it
| is still audible (not hurting ears anymore though).
|
| Investigating further, I recorded Mic1 and Mic2 while calling directly on
| the FreeRunner (switched to a modified capturehandset.state with
| increased recording levels while calling):
|
| http://wiki.openmoko.org/images/3/34/Lmic1_Rmic2-interference-call.wav

Hey great work doing and documenting all this!

| (no headset connected, both mic capture volumes 3, only mic1 routed
| through ALC_MIX, mic2 directly to right PGA).
|
| Snippet of the waveform:
| http://wiki.openmoko.org/wiki/Image:Lmic1_Rmic2-interference-call.png
|
| A voicebox recording of the buzzing before the "fix":
| http://wiki.openmoko.org/images/7/71/FR_GSM_buzz.wav
|
| After the "fix", the voicebox did not record endlessly anymore and
| recognized the remaining buzz as silence.
|
| Looking at the first recording, it is visible that Mic1 signal is
| inverted by the path it takes through the wolfson chip. Sadly it does not
| seem to be possible to mix inverted Mic1 and Mic2 in hardware without
| going through ADC - doing so on the PC reduced noise somewhat... I wonder
| if that could be done in software on the FreeRunner, recording both mic
| signals, deducing from Mic1 when contamination occurs, extracting the
| according waveform from Mic2 signal, and then subtracting the extracted
| (average) buzzing waveform from Mic2 whenever Mic1 levels get over a
| certain threshold - and then playing back the resulting signal over
| either PCM or voice codec to the GSM modem. I think that plan might be
| thwarted by full duplex restrictions by the chip, as I did not succeed
| yet to play back recorded audio while still recording without heavy
| artifacts (clicking, a lot of noise).

That is a cool idea, but the match is bad comparing mic1 and mic2
waveform from your great image on the wiki page.  Mic2 seems to have
more capacitance that smooths the response to the impulses.

| Turning off sidetone mic on MONO MIXER (control 77) and playing back
| music over Hi-Fi DAC/PCM to mono interface / GSM resulted in buzz-free
| (though a little distorted, did not tweak much) music experience on the
| phone called. This basically confirms that signals get contaminated
| through MIC path.

Yes it seems to be this way: nice test.

| I did not succeed yet in playing back recorded MIC signals over the voice
| codec/voice DAC without the signals leaving the wolfson chip (loopback) -
| is that actually possible?

If I understand you mean to capture the DAC output at the ADC input?
This does seem to be possible via this recmix thing, it can bring
monomix output back into the right ADC input.

- -Andy
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iEYEARECAAYFAkkBOAAACgkQOjLpvpq7dMqxqQCfQIfjT2xxQiHAAK1drokSA+fE
7+IAn29qNaCvRF82UZ5iR1dRZ4cCHZVp
=+4lA
-END PGP SIGNATURE-

___
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community


Re: GSM buzz and gsmhandset.state

2008-10-23 Thread Jan R
On Thu, 23 Oct 2008 17:48:51 +0100, Andy Green wrote:

> As I understood what Matt explained today, it seemed there was a danger
> that what these changes did was simply attenuate all the mic audio alike
> along with the buzz.
> 
> It would be highly interesting clue if that was not the case...

If I am not horribly mistaken by all the knobs and dials that I turned, 
it is actually possible to have higher mic amplification when mic audio 
is routed through PGA than otherwise. Signal to noise ratio (or rather 
signal to buzz ratio) is getting way better!

I just made another test call with the original profile (no buzzing this 
time, bummer) and then switched to the modified gsmhandset.state and back 
repeatedly. The modified profile made a faint buzzing appear - however, 
mic audio was louder on the receiving end of the conversation. It was 
described to me to be just like the difference between being talked to by 
a person facing away from you (original profile) and a person talking to 
you face to face (modified profile).

Another point made was that mic amplification seems to be a little high 
with my new settings, resulting in a bit of distortion or clipping.

Greetings,
Jan



___
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community


Re: GSM buzz and gsmhandset.state

2008-10-23 Thread Jan R
On Thu, 23 Oct 2008 22:04:36 +0800, matt_hsu wrote:
> Can I know which hardware version do you use? A5 or A6? I used your
> state files to try my A5. It seems that it could reduce the buzzing
> noise.
> But it could not get rid of it all.

/proc/cpuinfo says it's A6 (0360), while frameworkd (Debian) says A5. 
It's the one with capacitor on SD clock lines. Should be A6 if I remember 
the text on the PCB correctly.


Seems that I was lucky with getting no buzz at all, most of the time it 
is still audible (not hurting ears anymore though).

Investigating further, I recorded Mic1 and Mic2 while calling directly on 
the FreeRunner (switched to a modified capturehandset.state with 
increased recording levels while calling):

http://wiki.openmoko.org/images/3/34/Lmic1_Rmic2-interference-call.wav

(no headset connected, both mic capture volumes 3, only mic1 routed 
through ALC_MIX, mic2 directly to right PGA).

Snippet of the waveform:
http://wiki.openmoko.org/wiki/Image:Lmic1_Rmic2-interference-call.png

A voicebox recording of the buzzing before the "fix":
http://wiki.openmoko.org/images/7/71/FR_GSM_buzz.wav

After the "fix", the voicebox did not record endlessly anymore and 
recognized the remaining buzz as silence.

Looking at the first recording, it is visible that Mic1 signal is 
inverted by the path it takes through the wolfson chip. Sadly it does not 
seem to be possible to mix inverted Mic1 and Mic2 in hardware without 
going through ADC - doing so on the PC reduced noise somewhat... I wonder 
if that could be done in software on the FreeRunner, recording both mic 
signals, deducing from Mic1 when contamination occurs, extracting the 
according waveform from Mic2 signal, and then subtracting the extracted 
(average) buzzing waveform from Mic2 whenever Mic1 levels get over a 
certain threshold - and then playing back the resulting signal over 
either PCM or voice codec to the GSM modem. I think that plan might be 
thwarted by full duplex restrictions by the chip, as I did not succeed 
yet to play back recorded audio while still recording without heavy 
artifacts (clicking, a lot of noise).

Turning off sidetone mic on MONO MIXER (control 77) and playing back 
music over Hi-Fi DAC/PCM to mono interface / GSM resulted in buzz-free 
(though a little distorted, did not tweak much) music experience on the 
phone called. This basically confirms that signals get contaminated 
through MIC path.

I did not succeed yet in playing back recorded MIC signals over the voice 
codec/voice DAC without the signals leaving the wolfson chip (loopback) - 
is that actually possible?

Cheers,
Jan


___
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community


Re: GSM buzz and gsmhandset.state

2008-10-23 Thread Andy Green
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Somebody in the thread at some point said:
| Jan R wrote:
|> Hi all!
|>
|> The GSM buzzing noise was unbearable for anybody I called, and it was
|> indeed louder than my voice - that's why I had a look at the wolfson
data
|> sheet and the ALSA channel map on the wiki and fiddled a bit...
|>
| Hi Jan,
|
| Can I know which hardware version do you use? A5 or A6?
| I used your state files to try my A5. It seems that it could reduce the
| buzzing noise.
| But it could not get rid of it all.

As I understood what Matt explained today, it seemed there was a danger
that what these changes did was simply attenuate all the mic audio alike
along with the buzz.

It would be highly interesting clue if that was not the case...

- -Andy
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iEYEARECAAYFAkkAqusACgkQOjLpvpq7dMp4FwCeIQWbLSFeLmoMQZ1hNIMc/Fq9
5+oAnA47MKkxXtVLotmUXN4s/qODJml2
=6+dU
-END PGP SIGNATURE-

___
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community


Re: GSM buzz and gsmhandset.state

2008-10-23 Thread Fox Mulder
Matthias Apitz wrote:
> El día Thursday, October 23, 2008 a las 10:04:36PM +0800, matt_hsu escribió:
> 
>> Jan R wrote:
>>> Hi all!
>>>
>>> The GSM buzzing noise was unbearable for anybody I called, and it was 
>>> indeed louder than my voice - that's why I had a look at the wolfson data 
>>> sheet and the ALSA channel map on the wiki and fiddled a bit...
>>>   
>> Hi Jan,
>>
>> Can I know which hardware version do you use? A5 or A6?
>> I used your state files to try my A5. It seems that it could reduce the 
>> buzzing noise.
>> But it could not get rid of it all.
> 
> Same here. How can I figure out which hardware version I own?

Open the case and remove the battery. There is a small label with the
revision printed on it.

Ciao,
 Rainer

___
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community


Re: GSM buzz and gsmhandset.state

2008-10-23 Thread Michael 'Mickey' Lauer
Am Donnerstag, den 23.10.2008, 16:11 +0200 schrieb Matthias Apitz:
> El día Thursday, October 23, 2008 a las 10:04:36PM +0800, matt_hsu escribió:
> 
> > Jan R wrote:
> > > Hi all!
> > >
> > > The GSM buzzing noise was unbearable for anybody I called, and it was 
> > > indeed louder than my voice - that's why I had a look at the wolfson data 
> > > sheet and the ALSA channel map on the wiki and fiddled a bit...
> > >   
> > Hi Jan,
> > 
> > Can I know which hardware version do you use? A5 or A6?
> > I used your state files to try my A5. It seems that it could reduce the 
> > buzzing noise.
> > But it could not get rid of it all.
> 
> Same here. How can I figure out which hardware version I own?

[EMAIL PROTECTED]:~# cat /proc/cpuinfo|grep Revision
Revision: 0350

:M:


___
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community


Re: GSM buzz and gsmhandset.state

2008-10-23 Thread Matthias Apitz
El día Thursday, October 23, 2008 a las 10:04:36PM +0800, matt_hsu escribió:

> Jan R wrote:
> > Hi all!
> >
> > The GSM buzzing noise was unbearable for anybody I called, and it was 
> > indeed louder than my voice - that's why I had a look at the wolfson data 
> > sheet and the ALSA channel map on the wiki and fiddled a bit...
> >   
> Hi Jan,
> 
> Can I know which hardware version do you use? A5 or A6?
> I used your state files to try my A5. It seems that it could reduce the 
> buzzing noise.
> But it could not get rid of it all.

Same here. How can I figure out which hardware version I own?

Thx

matthias

-- 
Matthias Apitz
Manager Technical Support - OCLC GmbH
Gruenwalder Weg 28g - 82041 Oberhaching - Germany
t +49-89-61308 351 - f +49-89-61308 399 - m +49-170-4527211
e <[EMAIL PROTECTED]> - w http://www.oclc.org/ http://www.UnixArea.de/
b http://gurucubano.blogspot.com/
A computer is like an air conditioner, it stops working when you open Windows
Una computadora es como aire acondicionado, deja de funcionar si abres Windows

___
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community


Re: GSM buzz and gsmhandset.state

2008-10-23 Thread matt_hsu
Jan R wrote:
> Hi all!
>
> The GSM buzzing noise was unbearable for anybody I called, and it was 
> indeed louder than my voice - that's why I had a look at the wolfson data 
> sheet and the ALSA channel map on the wiki and fiddled a bit...
>   
Hi Jan,

Can I know which hardware version do you use? A5 or A6?
I used your state files to try my A5. It seems that it could reduce the 
buzzing noise.
But it could not get rid of it all.

Cheers,

Matt
> First thing I noticed was that according to http://wiki.openmoko.org/
> images/2/2c/WM8753_BlockDiagram_GSM_handset.png , the recorded audio was 
> routed through one of the PGAs on the GTA01. For a reason I could not 
> find anywhere, it is now routed directly from MIC_MUX to the Mono mixer 
> on the right side of the diagram on GTA02.
>
> Switching 'Mic Sidetone Mux' (control 63) to either of the PGAs (left or 
> right) immediately lowers interference noise by an enormous amount at the 
> same 'Mono Playback Volume' (control 5).
>
> Routing audio through ALC_MIX and subsequently the left PGA did lower the 
> volume for the called person a bit.
>
> With the modified gsmhandset.state, the buzzing noise is occasionally 
> fading in and out and has a very low volume in comparison to the previous 
> state. With a bit of luck, buzzing fades out at some point and does not 
> return for 40 seconds or so.
>
>
> Changes to om-testing daily feed gsmhandset.state (20081020):
>
> control.4 'Speaker Playback Volume' lowered to 100 from 127 to reduce 
> echo for call(ed|ing) person.
>
> control.12 'Mono Sidetone Playback Volume' increased to 6 from 2
>
> control.48 'Mic2 Capture Volume' increased to 2 from 0
>
> control.63 'Mic Sidetone Mux' set to 'Right PGA'
>
>
>
> Hope this helps somebody apart from me to use the FreeRunner as a 
> phone. :)
>
> Greetings,
> Jan
>
>
>
> For convenience, the whole modified gsmhandset.state file:
>
> state.neo1973gta02 {
>   control.1 {
>   comment.access 'read write'
>   comment.type INTEGER
>   comment.count 2
>   comment.range '0 - 255'
>   iface MIXER
>   name 'PCM Volume'
>   value.0 0
>   value.1 0
>   }
>   control.2 {
>   comment.access 'read write'
>   comment.type INTEGER
>   comment.count 2
>   comment.range '0 - 255'
>   iface MIXER
>   name 'ADC Capture Volume'
>   value.0 0
>   value.1 0
>   }
>   control.3 {
>   comment.access 'read write'
>   comment.type INTEGER
>   comment.count 2
>   comment.range '0 - 127'
>   iface MIXER
>   name 'Headphone Playback Volume'
>   value.0 0
>   value.1 0
>   }
>   control.4 {
>   comment.access 'read write'
>   comment.type INTEGER
>   comment.count 2
>   comment.range '0 - 127'
>   iface MIXER
>   name 'Speaker Playback Volume'
>   value.0 100
>   value.1 100
>   }
>   control.5 {
>   comment.access 'read write'
>   comment.type INTEGER
>   comment.count 1
>   comment.range '0 - 127'
>   iface MIXER
>   name 'Mono Playback Volume'
>   value 103
>   }
>   control.6 {
>   comment.access 'read write'
>   comment.type INTEGER
>   comment.count 2
>   comment.range '0 - 7'
>   iface MIXER
>   name 'Bypass Playback Volume'
>   value.0 7
>   value.1 7
>   }
>   control.7 {
>   comment.access 'read write'
>   comment.type INTEGER
>   comment.count 2
>   comment.range '0 - 7'
>   iface MIXER
>   name 'Sidetone Playback Volume'
>   value.0 0
>   value.1 0
>   }
>   control.8 {
>   comment.access 'read write'
>   comment.type INTEGER
>   comment.count 2
>   comment.range '0 - 7'
>   iface MIXER
>   name 'Voice Playback Volume'
>   value.0 0
>   value.1 0
>   }
>   control.9 {
>   comment.access 'read write'
>   comment.type BOOLEAN
>   comment.count 2
>   iface MIXER
>   name 'Headphone Playback ZC Switch'
>   value.0 false
>   value.1 false
>   }
>   control.10 {
>   comment.access 'read write'
>   comment.type BOOLEAN
>   comment.count 2
>   iface MIXER
>   name 'Speaker Playback ZC Switch'
>   value.0 false
>   value.1 false
>   }
>   control.11 {
>   comment.access 'read write'
>   co

GSM buzz and gsmhandset.state

2008-10-21 Thread Jan R
Hi all!

The GSM buzzing noise was unbearable for anybody I called, and it was 
indeed louder than my voice - that's why I had a look at the wolfson data 
sheet and the ALSA channel map on the wiki and fiddled a bit...

First thing I noticed was that according to http://wiki.openmoko.org/
images/2/2c/WM8753_BlockDiagram_GSM_handset.png , the recorded audio was 
routed through one of the PGAs on the GTA01. For a reason I could not 
find anywhere, it is now routed directly from MIC_MUX to the Mono mixer 
on the right side of the diagram on GTA02.

Switching 'Mic Sidetone Mux' (control 63) to either of the PGAs (left or 
right) immediately lowers interference noise by an enormous amount at the 
same 'Mono Playback Volume' (control 5).

Routing audio through ALC_MIX and subsequently the left PGA did lower the 
volume for the called person a bit.

With the modified gsmhandset.state, the buzzing noise is occasionally 
fading in and out and has a very low volume in comparison to the previous 
state. With a bit of luck, buzzing fades out at some point and does not 
return for 40 seconds or so.


Changes to om-testing daily feed gsmhandset.state (20081020):

control.4 'Speaker Playback Volume' lowered to 100 from 127 to reduce 
echo for call(ed|ing) person.

control.12 'Mono Sidetone Playback Volume' increased to 6 from 2

control.48 'Mic2 Capture Volume' increased to 2 from 0

control.63 'Mic Sidetone Mux' set to 'Right PGA'



Hope this helps somebody apart from me to use the FreeRunner as a 
phone. :)

Greetings,
Jan



For convenience, the whole modified gsmhandset.state file:

state.neo1973gta02 {
control.1 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 255'
iface MIXER
name 'PCM Volume'
value.0 0
value.1 0
}
control.2 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 255'
iface MIXER
name 'ADC Capture Volume'
value.0 0
value.1 0
}
control.3 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 127'
iface MIXER
name 'Headphone Playback Volume'
value.0 0
value.1 0
}
control.4 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 127'
iface MIXER
name 'Speaker Playback Volume'
value.0 100
value.1 100
}
control.5 {
comment.access 'read write'
comment.type INTEGER
comment.count 1
comment.range '0 - 127'
iface MIXER
name 'Mono Playback Volume'
value 103
}
control.6 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 7'
iface MIXER
name 'Bypass Playback Volume'
value.0 7
value.1 7
}
control.7 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 7'
iface MIXER
name 'Sidetone Playback Volume'
value.0 0
value.1 0
}
control.8 {
comment.access 'read write'
comment.type INTEGER
comment.count 2
comment.range '0 - 7'
iface MIXER
name 'Voice Playback Volume'
value.0 0
value.1 0
}
control.9 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'Headphone Playback ZC Switch'
value.0 false
value.1 false
}
control.10 {
comment.access 'read write'
comment.type BOOLEAN
comment.count 2
iface MIXER
name 'Speaker Playback ZC Switch'
value.0 false
value.1 false
}
control.11 {
comment.access 'read write'
comment.type INTEGER
comment.count 1
comment.range '0 - 7'
iface MIXER
name 'Mono Bypass Playback Volume'
value 0
}
control.12 {
comment.access 'read write'
comment.type INT