Jump to content

Fixing bluetooth audio routing for i900


Guest liads

Recommended Posts

[update, Feb 2010] Ock has made some progress with ironing the remaining issues. Check his thread.

I managed to get audio routing working for bluetooth mono headsets using drivers from the i908 ROM.

Took me about 2 weeks and 30 or so flashes to get it to the initial release :(

If you're interested in the process, check this thread.

Unfortunately, there is still one annoying problem that I'm aware of. Check the bottom of this post and decide whether it's serious for you or not.

Included files:

zylonite_wavedev2.dll - The i908 audio driver.

touch.dll - The i908 touch driver, required by the above audio driver for correct behavior.

speakerphone.dll - The i908 speakerphone driver, required for activating the speakerphone with the above audio driver. (Thanks, Khuanchai ! )

fmradio.dll - The i908 FM Radio driver, required for getting radio audio with the audio driver.

AudioGainControl.exe - Allows audio profile volume adjustments for the above audio driver. (replaces SoundTester.exe)

AudioGainControlStart.lnk - Shortcut for launching the AudioGainControl (the exe needs a "-start" argument to work).

*.rgu - Contains configuration made by AudioGainControl to lower the bluetooth routed digital audio volume. Otherwise, it's too loud and distorted.

Mini tutorial for AudioGainControl is here.

Since OEM drivers need to be replaced, the only way I was able to get this working is flashing the device with a custom ROM.

For ROM cooks:

1. Replace zylonite_wavedev2.dll, touch.dll, speakerphone.dll and fmradio.dll folders (modules) in OEMDrivers with the ones attached here.

2. Add the registry values from the attached rgu file into the OEMDrivers rgu.

3. Put the attached AudioGainControl.exe and AudioGainControlStart.lnk into OEMApps.

(if you publish your custom ROM, please give credit)

For others: (who are familiar with GrandPrix)

I created a simple custom ROM. Nothing is removed and only the above changes were made.

Named it "BTAR" (Bluetooth Audio Routing)

I only included the PDA and CSC parts for flashing using GrandPrix.

Use compatible Phone and EBoot parts with this. (If you already have them flashed, it's safer to flash just the PDA and CSC. Make sure you uncheck 'Phone Bootloader Update' when you do that)

ROM download links:

DXIA5-BTAR3 - http://www.sendspace.com/file/rjp1nn

DXIA2-BTAR3 - http://www.sendspace.com/file/ww1f7x

DXIA2-BTAR2 - http://www.sendspace.com/file/koyi48

Releases:

[1-Mar-2009] Release 3

Adds the FM Radio driver.

Known issues:

  1. Device can only be woken up from suspend mode using the power button.
[24-Feb-2009] Release 2

Adds the speakerphone driver, fixing the speakerphone issue from the last release. (Thanks, Khuanchai ! )

Known issues:

  1. Device can only be woken up from suspend mode using the power button. No matter how you set it up in control panel, no other button is able to wake up the device. (You might be able to get it to work momentarily, but once any audio is played, the issue will resume)
  2. FM Radio doesn't play audio.
[22-Feb-2009] Initial release

Known issues:

  1. Device can only be woken up from suspend mode using the power button. No matter how you set it up in control panel, no other button is able to wake up the device. (You might be able to get it to work momentarily, but once any audio is played, the issue will resume)
  2. Speakerphone cannot be turned on while in a call, and it will lock the screen if you try (i.e. screen won't respond to touch). The screen will unlock when the call ends.

BTAR_Fix_3.zip

Edited by liads
Link to comment
Share on other sites

Guest bobobird

Thanks for fixing this *major* issue with our phone.

Actually, using the power button to take a phone out of standby is not all that bad. Prevents accidental pushing of the dpad and takes away the need to install something like s2u etc.

The speakerphone issue is not much of an issue, for me at least.

Lets hope the other master chefs take this into their roms asap.

Link to comment
Share on other sites

Guest mashimus

Hi,

In regards to issue no. 2:

"Speaker cannot be turned on while in a call, and it will lock the screen if you try (i.e. screen won't respond to touch). The screen will unlock when the call ends."

does this only happen when you have a BT headset connected? Or is it with any call...?

Link to comment
Share on other sites

When the BT headset is connected, the "Speaker On" button is not available.

If you turn off the hands-free mode while in a call, the button will re-appear, and clicking it still causes the problem.

So it's basically with every call that allows you to turn the speakerphone on.

Link to comment
Share on other sites

Looking forward to minimal the errors on this :(. Great work mate.

Btw maybe you can replace the rom files with Resco Explorer.

Just click the properties on the selected file and untick ReadOnly. I managed to replace some some rom file by that! Good work though B)

Have u hexed any of those files or just extracted from i908 rom?

Link to comment
Share on other sites

I managed to get audio routing working for bluetooth mono headsets using drivers from the i908 ROM.

Took me about 2 weeks and 30 or so flashes to get it this far :(

If you're interested in the process, check this thread.

Unfortunately, there are still two annoying problems that I'm aware of. Check the bottom of this post and decide whether they're serious for you or not. (The second one I only noticed this morning)

I'm still working on these issues and will post updates to this thread

Hi Liads .... Great work, put my i900 on eBay due to this lack of feature but now put my price up :0) and if it does not sell with look forward to get voice over BT working. have so far resisted flashing with any rom but seeing you have done the hard work others may be able solve the two issues identified so far and release in their rom (of course giving you credit) so seeing you were the pioneer .... may you go down in i900 history as 'the BT over voice man' B)

Link to comment
Share on other sites

Guest happy_joe
I managed to get audio routing working for bluetooth mono headsets using drivers from the i908 ROM.

Took me about 2 weeks and 30 or so flashes to get it this far :(

If you're interested in the process, check this thread.

Unfortunately, there are still two annoying problems that I'm aware of. Check the bottom of this post and decide whether they're serious for you or not. (The second one I only noticed this morning)

I'm still working on these issues and will post updates to this thread.

Included files:

zylonite_wavedev2.dll - The i908 audio driver.

touch.dll - The i908 touch driver, required by the above audio driver for correct behavior.

AudioGainControl.exe - Allows audio profile volume adjustments for the above audio driver. (replaces SoundTester.exe)

AudioGainControlStart.lnk - Shortcut for launching the AudioGainControl (the exe needs a "-start" command line argument to work).

*.rgu - Contains configuration made by AudioGainControl to lower the bluetooth routed digital audio volume. Otherwise, it's too loud and distorted.

Since OEM drivers need to be replaced, the only way I was able to get this working is flashing the device with a custom ROM.

For ROM cooks:

1. Replace zylonite_wavedev2.dll and touch.dll folders (modules) in OEMDrivers with the ones attached here.

2. Add the registry values from the attached rgu file into the OEMDrivers rgu.

3. Put the attached AudioGainControl.exe and AudioGainControlStart.lnk into OEMApps.

(if you publish your custom ROM, please give credit)

For others: (who are familiar with GrandPrix)

I created a simple custom ROM based on DXIA2. Nothing is removed and only the above changes were made.

Named it "BTAR1" (Bluetooth Audio Routing... 1)

I only included the PDA and CSC parts for flashing using GrandPrix.

Use secany's DXIA2 Phone and EBoot parts with this. (If you already have them flashed, it's safer to flash just the PDA and CSC. Make sure you uncheck 'Phone Bootloader Update' when you do that)

I didn't create an exe updater because testing it will require me to flash my eboot and phone parts, which I don't do more than when absolutely necessary B) . (my device was bought on ebay)

ROM download link: http://www.sendspace.com/file/myh1io

Releases:

[22-Feb-2009] Initial release

Known issues:

  1. Device can only be woken up from suspend mode using the power button. No matter how you set it up in control panel, no other button is able to wake up the device. (You might be able to get it to work momentarily, but once any audio is played, the issue will resume)
  2. Speaker cannot be turned on while in a call, and it will lock the screen if you try (i.e. screen won't respond to touch). The screen will unlock when the call ends.

Great Job mate!!!

Waiting for your "ultimate" solution with no bugs!

Link to comment
Share on other sites

Guest jaguared

Thanks Liads you are the man this has been the biggest problem with the omnia since day one, why oh why does every wm phone have this problem wizard,hermes,kaiser all needed adapting to route audio basic function left out. Sorry rant over again many thanks it now does what i need i can use the phone via bluetooth when on my motorbike and i can route music to my headset fantastic Cheers Ed

Link to comment
Share on other sites

Looking forward to minimal the errors on this :(. Great work mate.

Btw maybe you can replace the rom files with Resco Explorer.

Just click the properties on the selected file and untick ReadOnly. I managed to replace some some rom file by that! Good work though B)

Have u hexed any of those files or just extracted from i908 rom?

Thanks :P

I did use Resco Explorer in my initial attempts and managed to "overwrite" files from the rom, but the drivers are just not functioning that way. Even the boot up note didn't play.

The files posted here haven't been hexed (yet :D ). Just extracted from the i908 rom.

However, I'm beginning to think that the wakeup problem may only be able to be solved by modification of the audio driver.

Edited by liads
Link to comment
Share on other sites

Guest SpiritRC

WARNING!!!

Overwriting the touch.dll in your i900 with the one from this archive will make your touch screen dead and will require a hard reset to restore its functionality.

I didn't yet go the flashing way, but overwriting definitely doesn't work as liads said.

Link to comment
Share on other sites

That's right :(

As I said, flashing is currently the only way to get it working (AFAIK).

I'm not sure what's causing these drivers to stop working when they're not part of the rom.

I even tried copying over the audio driver in another name and changing the registry reference to it, and it didn't work either.

There are other audio drivers hanging around in CAB installers, so it must be something in the drivers themselves.

Edited by liads
Link to comment
Share on other sites

That's right :(

As I said, flashing is currently the only way to get it working (AFAIK).

I'm not sure what's causing these drivers to stop working when they're not part of the rom.

I even tried copying over the audio driver in another name and changing the registry reference to it, and it didn't work either.

There are other audio drivers hanging around in CAB installers, so it must be something in the drivers themselves.

I don't know why it is so important that driver should be in ROM memory, otherwise Windows fails to load it.

I think that this could be releated to security -> if it would be possible then some nasty apps could change let's say touch screen driver and pass clicks to the world...

Link to comment
Share on other sites

Guest Stevenh

Something I found when bulding my own ROMs was that the library may be different after the ROM is built than when doing a straight copy of the extracted file. e.g. I was trying to build a cab file from the extracted ROM files and although installing the cab worked and the application worked but occassionally got error messages. However, if I use the dll files etc from a running system and build the cab files it works fine. Not sure why though.

I'm also a little curious... did you not have to replace any of the bluetooth drivers?

I might try the i908 firmware later just to have a play around... I'm sure someone mentioned that the i900/i908 firmwares are interchangeable...

Link to comment
Share on other sites

Guest Khuanchai
[22-Feb-2009] Initial release

Known issues:

  1. Device can only be woken up from suspend mode using the power button. No matter how you set it up in control panel, no other button is able to wake up the device. (You might be able to get it to work momentarily, but once any audio is played, the issue will resume)
  2. Speakerphone cannot be turned on while in a call, and it will lock the screen if you try (i.e. screen won't respond to touch). The screen will unlock when the call ends.

Regarding the #1 issue, changng the button wake up setting to "Any button" and then back to "Front button" will work. This is temporarily though.

Good job anyway, Liads!

Edited by Khuanchai
Link to comment
Share on other sites

Guest Stevenh

Ok, I tried the i908ZHIB1 ROM, couldn't get the audio routing to my handsfree for VC, but then again mines a shitty headset that came with my old phone and doesn't support voice command anyway.... When you guys press the menu button on the phone and issue a voice command, does the response come back through your headset?

Regarding issue #2, even in the IB1 ROM, if you're in a call with the headset, speaker doesn't work, don't think there is a way to transfer call back to speaker unless it is a menu option...

Steven

Link to comment
Share on other sites

Guest jaguared

Hi I have been doing some testing and found some strange things happening using your fix and VC i can make calls using the headset by pressing the call button great unfortunatly the audio is not brilliant distorted and breaks up this is also true when routing music through the bluetooth, voice is reasonable but music awfull it is working which is a massive improvment just wanted to let you know my findings also when using my Parrot carkit it stops the call being initiated from the carkit itself yet i can start vc from it.I would like to try Cyberon but cannot find what to change to make the bluetooth button start Cyberon instead of MVC i know you are still working on it so maybe these things will be fixed in time many thanks for your work already samsung should employ you!!

Can you please explain the settings in your audiocontrol?

Cheers Ed

Link to comment
Share on other sites

Guest Chris64

I'm having trouble with the quality of the sound.

"Can you here me?"......"No"

"Can you here me now?"....."Yes"

"How about now?"....... "Well..."

Right now I'm going to wait for a while.

Thanks everybody!

BTW My headset is a "Sony Erricson HBH-IV840"

Edited by Chris64
Link to comment
Share on other sites

The audio configuration might need some more tweaking. I've only changed the "not in call" digital audio volume for bluetooth to fit my headset (BlueAnt Z9i).

For this there is AudioGainControl. However, it's not very user-friendly and to use it you should have basic understanding of what a hexadecimal number is, and what's a bit-mask. Also, I can take no responsibility if anything bad happens as a result of using this tool. I have no idea if it can do any real damage, but you should still be really careful.

Start it using the AudioGainControlStart link in \Windows (if you used my files).

The main window has "List of Table" in the header and has two list boxes.

On the top one, choose the category you wish to edit: NotInCall, Incoming (ringing call), Calling (probably an outgoing call before it connects), Talking (in call).

Then on the bottom list you'll get the available "tables" for this category. Choose one of them.

Then you'll get a list of parts. You'll most likely find what you're looking for in the "Common Part".

After choosing a part, you'll get to the list of parameters which can be edited.

For example, the audio settings I edited were in "NotInCall" -> "NotInCall_Bluetooth" -> "Common Part" -> "DAC PGA Volume / Routing".

When you choose a parameter, you'll get a rather complex window. Most important are the "Mask" box and the "Value" box.

The "Mask" is a bit-mask telling which values are valid. You should never edit it, even though the tool allows it.

The "Value", is the current value of the parameter. It should not light bits that the mask doesn't allow.

For example: An "F" digit in the mask means the matching digit in the value can be from 0 to F. A "0" in the mask means the matching value digit must be "0". A "1" in the mask means "0" or "1".

If the mask digit isn't one of the above, use your calculator :( .

In certain parameters, if the "Value" is set to some known set of values, the bottom section of the window will enable itself to allow much easier editing. I just played with the values until that section became available in the parameter I edited.

Hit "Save" when you're done.

If you play with these settings and get an improved audio, please export the following key from your device registry and share with us:

HKEY_LOCAL_MACHINE\System\State\Samsung\Audio

Edited by liads
Link to comment
Share on other sites

Ok, I tried the i908ZHIB1 ROM, couldn't get the audio routing to my handsfree for VC, but then again mines a shitty headset that came with my old phone and doesn't support voice command anyway.... When you guys press the menu button on the phone and issue a voice command, does the response come back through your headset?

Regarding issue #2, even in the IB1 ROM, if you're in a call with the headset, speaker doesn't work, don't think there is a way to transfer call back to speaker unless it is a menu option...

Steven

I think the bluetooth headset needs to support voice recognition activation for VC to work with it. When the headset connects with the phone, they actually exchange information on whether voice recognition is available or not.

When I press the menu button on the phone, the response comes from the phone speaker. It's only when it's activated using the bluetooth headset, that the headset is used.

Issue #2 is about the speakerphone, when you hit "Speaker On" during a call without a headset.

You can switch back from hands-free mode during a call with Menu->"Turn Hands-Free Off" :(

Link to comment
Share on other sites

when using my Parrot carkit it stops the call being initiated from the carkit itself yet i can start vc from it.

Unfortunately, I don't have a car kit to test with. Does it work correctly when VC is not installed?

I would like to try Cyberon but cannot find what to change to make the bluetooth button start Cyberon instead of MVC i know you are still working on it so maybe these things will be fixed in time many thanks for your work already samsung should employ you!!

It's very likely that two voice recognition softwares installed in the same time will somehow conflict. The bluetooth headset button is owned by whoever his dll is referenced from "BTAGExtModule" in the registry key HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\AudioGateway

Link to comment
Share on other sites

The audio configuration might need some more tweaking. I've only changed the "not in call" digital audio volume for bluetooth to fit my headset (BlueAnt Z9i).

keep up the good work Liads .... using an Z9i myself so good to know it works... hopefully other talented people can work with you to iron out the bugs

Link to comment
Share on other sites

Guest Khuanchai
Releases:

[22-Feb-2009] Initial release

Known issues:

  1. Device can only be woken up from suspend mode using the power button. No matter how you set it up in control panel, no other button is able to wake up the device. (You might be able to get it to work momentarily, but once any audio is played, the issue will resume)
  2. Speakerphone cannot be turned on while in a call, and it will lock the screen if you try (i.e. screen won't respond to touch). The screen will unlock when the call ends.

Friends,

Good news! Replacing "OEMApps\wakeup.dll" and "OEMDrivers\speakerphone.dll" with those from i908 OEM will eliminate the bugs of wakeup and speakerphone described above.

It's possible that I will make a new customized M2D ROM incorporated with this feature soon.

Edited by Khuanchai
Link to comment
Share on other sites

Friends,

Good news! Replacing "OEMApps\wakeup.dll" and "OEMDrivers\speakerphone.dll" with those from i908 OEM will eliminate the bugs of wakeup and speakerphone described above.

It's possible that I will make a new customized M2D ROM incorporated with this feature soon.

Cool, if you have actually tested and found working cannot wait for a Rom with this feature fully working... sorry cannot give anything but moral support :( but appreciate all you talented cookers out there ... you help make our devices reach their potencial

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.