FORUMS
Remove All Ads from XDA

Audio problems during (Bluetooth) phone calls PARTLY SOLVED!

22 posts
Thanks Meter: 7
 
By averjans, Junior Member on 4th September 2011, 04:29 PM
Post Reply Email Thread
UPDATE: Title changed to PARTLY SOLVED, because some users report this procedure is not working for them.

!WARNING!
Before you enter the service menu and you go to experiment with one of these settings, keep in mind that some settings will NOT reset after a reboot or reflash and you can bring your phone in a state that it will not work as you expect.
KEEP YOUR HANDS OF THE SERVICE MENU IF YOU DO NOT KNOW WHAT YOU ARE DOING!

At least I solved my phone audio problems as described below....

Exact problem: I paired my SGS2 with a Parrot MKi9200 car kit. Music is perfect, phonebook is synced, voice dialing perfect, calling number in display, DTMF tones and other calling notifications are well.....but no audio during phone call...I could not hear anything and the caller couldn't hear me neither......

After 7 days googling, analyzing, headaches, to less sleeping hours ( )....I finaly found the solution this afternoon...

.... It is (of course) a very simple solution....but due to lack of service mode documentation I had to find out how this works exactly.

I found out that the Bluetooth audio level to my earpiece (Jabra BT500v) could easily be adjusted AND it actually stays the way I adjusted it after a power down (including removing battery).
The next step was to look for the Bluetooth audio level on my car kit. This was not the same (Bluetooth) setting ().

Well, a long story short.... here we go...

These are the steps I did to solve the phone call audio problem:

First of all REBOOT your phone so most (not all) values in service mode will be set to default value.

Second adjust the correct volume for a Bluetooth earpiece:

1. Go into service mode by the known code *#*#197328640#*#*
2. Select [5] AUDIO
3. Select [1] NB (VOICE CALL)
4. Select [4] BLUETOOTH
5. Select [1] Volume
6. Select [5] Sidetone: ..... (Could be any value, don't care about this value)
7. Select "MENU" - "Key input" and type 8000 and hit OK
8. Select [6] Rx Gain: ..... (Could be any value, don't care about this value)
9. Select "MENU" - "Key input" and type 0 and hit OK
10. Select [7] Tx Gain: ..... (Could be any value, don't care about this value)
11. Select "MENU" - "Key input" and type 0 and hit OK
12. Hit "MENU" and "Back" after each other until you are left out of the service mode
This will write the values into the audio chip.
I can confirm that because I tested it with reloading (and wiping) another ROM and the sound stayed exactly the same.

Third adjust the correct volume for a car kit like the Parrot MKi9200:
1. Go into service mode by the known code *#*#197328640#*#*
2. Select [5] AUDIO
3. Select [1] NB (VOICE CALL)
4. Select [4] BLUETOOTH(NREC OFF)
5. Select [1] Volume
6. Select [5] Sidetone: ..... (Could be any value, don't care about this value)
7. Select "MENU" - "Key input" and type 8000 and hit OK
8. Select [6] Rx Gain: ..... (Could be any value, don't care about this value)
9. Select "MENU" - "Key input" and type 0 and hit OK
10. Select [7] Tx Gain: ..... (Could be any value, don't care about this value)
11. Select "MENU" - "Key input" and type 0 and hit OK
12. Hit "MENU" and "Back" after each other until you are left out of the service mode
This will write the values into the audio chip.

NOTE: It is very important to go out of the servicemode by MENU and Back. This is the only way the values are written. I checked this in the log file of my SGS2. (By Android System Info app).

I can confirm the writing to the audio chip because I tested it with reloading (and wiping) another ROM and the Bluetooth audio phone volumes stayed exactly the same.

The other volume values are restored after a reboot (I checked a few of them), so that is easy.

Well, give it a try and let me and other users know the results.

UPDATE 04-09-2011:
Important notes about I2S values ("Sidetone", "RX Gain" and "TX Gain") in ALL audio menus:

- They are ONLY used for audio levels during phone calls. They will NOT change the volume when you listen to music or recording audio.
- They are ONLY saved by pressing "MENU" and "Back" until you have left the servicemode. My advice is to change them group by group, not all together.
- They are WRITTEN into the Audio Codec module. Rebooting, flashing other ROM's, wipe caches, wipe data, the secret code for factory reset WILL NOT RESET these values.

So when you messed around with these values and your audio during a phone call isn't working anymore (or the levels are too soft or too loud) you have to go into servicemode and put the values back into the Audio Codec module.

If you want to convince yourself of not resetting these values after reboot then try this:
- Set the levels ("Sidetone", "RX Gain" and "TX Gain") for the SPEAKER on 1000 (yeah, very high, gives a very loud annoying tone) as described above.
- Make a call to any number and put the speaker on..... beware of the loud noise then.
- You can try to play some music, and you will notice that the music is ok through the speaker, so this setting has no effect on playing music.
- Now switch of the phone and remove the battery
- After 5 minutes put the battery back and switch on the phone.
- make a call again and put the call on the speaker.... very loud noisy tone again.
- OOPS now you messed up your settings in servicemode....
- NO WORRY... put back value 0x35 and your speaker is working again.
(You can also try to reflash or wipe your phone, but believe me these settings do not reset to default).

UPDATE 05-09-2011:
Some notes on setting and reviewing values:
- All values set at "Sidetone", "RX Gain" and "TX Gain" settings will NOT show up again if you re-enter servicemode and check them. Actually you will see other (mostly much larger) values.
- If you made a phone call and used a specific device, for instance the speaker, and you re-enter the servicemode afterwards, the value will always show up as 0xffff.

Important: If you re-enter the servicemode and enter a specific device to check the "Sidetone", "RX Gain" and "TX Gain" settings, do not leave the servicemode by multiple 'MENU" and "Back". This will reprogram the Audio Codec with incorrect values. If you still want to look in this menu, then always enter the correct value for these 3 settings before leaving servicemode. If you leave servicemode by END or hard Back key, then nothing happens to these settings.

UPDATE 10-09-2011:
Devices: It seems that only one device can be set by the servicemode menu. The other devices will be set to some (unknown) values. (johho, Thanx for reporting this).
Echo during call: If I enter another value for sidetone (8000), then the echo is completely gone on my BT car kit and (almost) gone on the phone itself. If I enter 0 for sidetone, then there is a loud echo.
Levels: I now enter 0 for each device. This works for all devices I use (BT earpiece, BT car kit, Phone and wired earphone).

UPDATE 11-09-2011:
Sidetone and echo: sidetone is the effect of sound that is picked up by the telephone's microphone and feedback into the earpiece. If the value is to high, you will hear an echo due too the combination of the sidetone level and latency. Here you will find more interesting info about sidetone and echo: http://www.voip-info.org/wiki/view/Echo+and+Sidetone
Final solution working for me: I adjusted each device separately and now I got every device (wired earphone, handset, speaker, BT earpiece and BT car kit) working properly. All levels are OK and there is almost no echo anymore.
Because the BT car device resets to some defaults at which the car kit doesn't work anymore I adjust this device BLUETOOTH(NREC OFF) last.
I set 0x0 for TX and RX gain and 0x8000 for sidetone for all devices.
I adjusted the devices separately following this particular order:
[1] HANDSET
[2] HEADSET
[3] SPEAKER
[4] BLUETOOTH
[7] HANDSET(2MIC)
[6] HEADSET(3P5PI)
[5] BLUETOOTH(NREC OFF)
The Following 4 Users Say Thank You to averjans For This Useful Post: [ View ] Gift averjans Ad-Free
 
 
5th September 2011, 05:11 AM |#2  
Junior Member
Thanks Meter: 0
 
More
I am afraid that actually problem is more serious that we expected
1. I able to set those values in single audio device, but they reset to some stupid "defaults" as soon as I try to set the same item in another device. For example I have tried to set value for HEADSET(3P5PI) and then to regular HEADSET (or SPEAKER - no matter) and HEADSET(3P5PI) values reset to some defaults. With this defaults I don't hear anyone in my headphones.
2. Unable to change values for HANDSET(2MIC). No matter what I put there no changes in HANDSET calls. I able to adjust HANDSET settings (call with noise cancellation off), but as side effect #1, they will reset to defaults as soon as I put something for other devices. Looks like service menu has a bug and time to go to service (of course don't say anything about service menu).
BTW. this menu actually implemented as part of modem code. So it could behave differently on different modems. averjans, what modem are you using?
5th September 2011, 08:00 AM |#3  
OP Junior Member
Flag Heythuysen
Thanks Meter: 7
 
More
Hi vyurin,

Please look at my update on my previous post.
I'm using Lite'ning ROM PDA:XXKH3, PHONE:XXKH3, CSC:XAKH3

The modem is software is it? The hardware is the same for all SGS2's I guess?

It's a bit strange how the values are programmed by the servicemode. I think this software actually programs some registers into the Audio Codec which will retain after boot, flash and/or wipe data. I'm also quite sure that these values are read-only, because they never show up if I re-enter the settings.
5th September 2011, 02:45 PM |#4  
Junior Member
Thanks Meter: 0
 
More
Yes, I am talking about software. I also think so that we are directly programming some write-only registers (not sure now about audio chip, probably some output from modem part). But issues described in my post above make it impossible to properly program it. Do you able to confirm the same behavior during programming?

Btw, presence of background noise on high gains may indicate that output from modem is analog. I don't think that digital output could have a noise.

Btw2, In my case values will be saved as soon as I enter them, even if I leave service menu by home key, or Menu or End or Hard back key.

Could you attach headphones (one without microphone) and try to make a call? I afraid you will not hear anything, since by setting up bluetooth values, other one will reset to default. In this case making call using handset you probably can notice some background noise (noticeable in quite environment only) as well.
5th September 2011, 03:53 PM |#5  
Member
Thanks Meter: 21
 
More
That's not gone well for me. I've gone from having quiet audio to no audio over bluetooth earpiece and the bluetooth in my car.
5th September 2011, 04:53 PM |#6  
OP Junior Member
Flag Heythuysen
Thanks Meter: 7
 
More
kcaz, Did you exactly follow my procedure? You should always hear something. If the values are too high, then you will hear nothing because the gain is much too high.
Be sure you program each value (BLUETOOTH and BLUETOOTH(NREC OFF) separate.

Procedure in short:
- Enter servicemode
- Go to BLUETOOTH audio setting
- Enter the 3 values
- Leave servicemode by multiple MENU and Back touch keys
Then program next value (BLUETOOTH(NREC OFF)

If it still doesn't work, check the other volume settings, they shoul be default after reboot.

I tried this a lot of times with different values and it always worked for me.

I assume you have a SGS2. What type of earpiece and car kit do you use?

I hope I can help you with this. I know it is an annoying problem and it must be solved...
The Following User Says Thank You to averjans For This Useful Post: [ View ] Gift averjans Ad-Free
5th September 2011, 05:07 PM |#7  
Member
Thanks Meter: 21
 
More
Got it. I had programmed BLUETOOTH but didn't touch BLUETOOTH(NREC OFF).

I just went through the same procedure but did one after the other before testing. Works fine now, and it's a little louder.
5th September 2011, 05:52 PM |#8  
OP Junior Member
Flag Heythuysen
Thanks Meter: 7
 
More
Ok, great!.:)
If you want it louder, just put 0x32 in BLUETOOTH(NREC OFF).
If you follow the procedure correct, you can put higher or lower values until you are satisfied. If you go too high, it wil give a loud high tone or you hear nothing.

Cheers...
5th September 2011, 06:08 PM |#9  
Junior Member
Thanks Meter: 0
 
More
Hi Averjans,

Could you please check following scenario:
1. Set some high values for Speaker.
2. Then set high values for Handset(2MIC).

Make a call using Speaker. Do you still hear those high values?

My point that:
1. I able to set values only for one of devices, rest of them get some default values.
2. Unable to set any values for HANDSET(2MIC). They just doesn't work.
6th September 2011, 08:15 AM |#10  
OP Junior Member
Flag Heythuysen
Thanks Meter: 7
 
More
Hi vyurin,

I did some tests and indeed the speaker values reset to something default. Even when I set values for the speaker, the Bluetooth car kit doesn't work anymore because these values are also set to some default values which are too high for my car kit.
I'm going to find out more about this, but that can take a while.

Advise: adjust only the values for the device you need to work. I noticed that the phone itself (speaker, handset) always resets to defaults which will work. So when I set my values for the Bluetooth car kit, BLUETOOTH (NREC OFF), I have all necessary devices working.

I guess the servicemode is buggy OR we don't know how it works exactly.

When a device has been used and you go into service mode, the shown values are always set to 0xffff. This will ONLY be shown the first time you start servicemode after the call and enter directly the correct device. If you select a not-used device other values will be shown and you will not find the 0xffff values anymore. You have to make another call to set the 0xffff values again for the used device.
Maybe this can help you to find the correct device you should adjust.
6th September 2011, 10:32 PM |#11  
Senior Member
Flag Mainz
Thanks Meter: 18
 
Donate to Me
More
Quote:
Originally Posted by averjans

Hi vyurin,

I guess the servicemode is buggy OR we don't know how it works exactly.

.



..same here, I can only enter the values for one device..

I have problems with BT Headset AND Headphone.. With both i hear nothing.
When i enter the "32" value for bluetooth, the Headset works again!!! , but when I enter the "32" on headsed values after this, the BT Headset doesn't work anymore.. the "normal" cable headset doesnt work too, no mater which values I enter.
So it seems that i can only "fix" BT device..
Post Reply Subscribe to Thread

Tags
audio, bluetooth, phone call, samsung galaxy sii

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes