[Q] Spirit FM radio on NEXUS s test - General Questions and Answers

As I am a new user I can't post on specific thread so I post here my test
I installed Spirit PAK ver 01 07 and after turn on all device in my Nexus S I tried apk
Here some photos of test with stock ROM 2.3.4
It can be useful for developmetn ....
http :// imageshack.us/photo/my-images/27/dscf0009hc.jpg/
http :// imageshack.us/photo/my-images/18/dscf0011js.jpg/
http :// imageshack.us/photo/my-images/825/dscf0012su.jpg/
result : Signal are instable and no sound (
If can I help in some other way ....

The technical is in the next post.
Thanks for posting publicly. I prefer open discussion so that everyone can benefit and contribute.
I created my main thread in a forum dedicated to discussing apps, but didn't realise it was under a dev forum and thus users with less than 10 posts couldn't post. I wonder if I should create a 2nd thread...
You can't post full URLs either so here they are:
http://imageshack.us/photo/my-images/27/dscf0009hc.jpg/
http://imageshack.us/photo/my-images/18/dscf0011js.jpg/
http://imageshack.us/photo/my-images/825/dscf0012su.jpg/
BTW, screenshots are great !

The short answer is I don't think the Nexus S is capable of receiving or transmitting FM, but I would never say never without hard proof.
I've been asked a few times over the last several months, and if I recall correctly, every time I've Googled the issue I found no evidence that anyone has EVER made FM work on the Nexus S.
I think my app is probably the closest it will get. It WILL manipulate the FM registers over HCI and it will look like it works, to some extent. But no audio, not even static, will be heard.
And there will be no indications of reception, like a more or less steady RSSI reading on strong channels, and RDS data.
Samsung manufactured this phone, and it seems to be a derivative of the Galaxy S. The Galaxy S, like the Nexus S, has an FM/BT/WiFi combo chip from Broadcom. The stock Galaxy S supports FM, but via a dedicated Silicon Labs FM chip, which the Nexus S does not seem to have. (BTW, the FmTwoO app also works on Galaxy S.)
AFAICT it's not possible to use the Broadcom chip for FM on the Nexus S. The antenna and audio connections are to the Silicon Labs chip and not to the matching pins on the Broadcom chip. If the Nexus S PCB/circuitry is reasonably similar to the Galaxy S, then it probably won't work on the Nexus S either.
There are two Samsung devices that I've been trying to help owners get FM working on. that have a Broadcom chip, but no other chip. Thus far we've had no success with either the Galaxy Tab, or the Spica i5700. There are two problems:
(1) The RSSI signal strength shows strange values and may jump around. I think this is due to no antenna connection and/or some FM RF power pins may not be connected.
(2) No analog audio output has been achieved, not even static, despite trying the 8 or so Audio Methods my app currently supports, and ALSA as well.
(2) might be fixable if I ever achieve digital audio transfer or even direct audio to BT headsets within the chip.
But (1) might only be fixable with much investigation and soldering etc.
Sorry... I'd love to find out I'm wrong about this.

Other info for BCM4329 chip :
http :// www . datasheetdir.com/BCM4329+download
in these datasheet we can read
Code:
Host Interface support
- Host Controller Interface (HCI): High-speed UART
-Audio: PCM
- FM Control: HCI and BSC (I2C-compliant) ports
- FM Audio: Stereo analog input and output, bidirectional
I2S, and PCM ports
In schematic we can notice BT and wifi use same ant , FM has dedicated one ....
But SPI / I2C / I2s are the same of BT and WIFI so it's possible to comunicate with FM part in chip with no problem ....

Code:
FMHost Interface: High-speed UART, I2C for control
.....
if not mistaken spirit apk use only HCI .... not I2C !

magicko said:
Code:
FMHost Interface: High-speed UART, I2C for control
.....
if not mistaken spirit apk use only HCI .... not I2C !
Click to expand...
Click to collapse
All devices that uses the combo chip for Bluetooth support the HCI UART interface. That can be accessed via the BT stack or directly by reasonably standard and common methods.
I don't know what fraction of devices can use the other interface, but some don't. I believe the Galaxy Tab schematic showed a digital connection to the Wolfson audio chip...
The next issue would be accessing the interface, and I think that would require a device driver. If I wanted to support multiple devices and kernels by this method I'd have to create multiple device drivers.
So even if possible, I think the work required would be excessive.
But if somebody can figure this out, I'd be happy to hear about it.
EDIT: A digital audio connection MAY not be as hard as I envision, at least for some devices.
IF the ROM supports a digital / "SCO" connection to the chip, it might be possible to call an audio API to set this up.
I haven't worked with these SCO connections yet, so I don't know how easy or feasible it is, but I'll try to find out.

Hi mikereidis, I don't want flooding to be able write on developers section, as well be superfluous create a new topic on the DroidX tree so I would write here...
I tried the latest SpiritFM version on DroidX CM7. Several times I was able tune to the pre-programmed frequency and receive audio using FM_launch method. In most cases, I only get noise. To get the sound the speaker/headphones button should on and then off. Without such manipulation sound does not appear.
The big problem is that your program give low radio sensitivity. This is not a hardware problem because stock FM program allows 15 radiostations on the my area.
I also tried FM_launch2 but without success.
Here is the catlog with FM_launch, and then FM_launch2. I'm also ready to provide any logs or make any test if it helps you improve SpiritFM for Motorola phones.

evgenln said:
Hi mikereidis, I don't want flooding to be able write on developers section, as well be superfluous create a new topic on the DroidX tree so I would write here...
I tried the latest SpiritFM version on DroidX CM7. Several times I was able tune to the pre-programmed frequency and receive audio using FM_launch method. In most cases, I only get noise. To get the sound the speaker/headphones button should on and then off. Without such manipulation sound does not appear.
The big problem is that your program give low radio sensitivity. This is not a hardware problem because stock FM program allows 15 radiostations on the my area.
I also tried FM_launch2 but without success.
Here is the catlog with FM_launch, and then FM_launch2. I'm also ready to provide any logs or make any test if it helps you improve SpiritFM for Motorola phones.
Click to expand...
Click to collapse
Thanks for the log evgenln. I'll let you know what I find.
Some other people have enabled audio by toggling speaker/headset. It would be a hack, but perhaps I can create an option that toggles it automatically. But it would be better if I figure out what's happening, and fix it right.
Regarding signal strength: My guess would be that there is a function call required to enable the FM antenna, and that you are receiving without an antenna. I'll try to find out.
But since the headphone cable is the antenna, it's possible this is related to audio issues.

evgenln said:
I tried the latest SpiritFM version on DroidX CM7. Several times I was able tune to the pre-programmed frequency and receive audio using FM_launch method. In most cases, I only get noise.
Click to expand...
Click to collapse
It appears something has broken horribly for Texas Instruments FM chips. I can confirm the same errors you are having on my HTC Legend.
I can trigger the errors when I switch headset to speaker, and I'm not sure why yet.
Most phones have Broadcom chips, but I still don't understand why I haven't seen this problem before; it seems to go back at least a month.
Regardless, I've found a workaround that I hope will also work for you. If you deny SuperUser privileges to the app it will use hcitool instead of the daemon. It will consume more CPU/power when RDS is working and the screen is on though.
So, open the SuperUser app and select Spirit FM Radio and press Forget.
Then restart the app and when SuperUser asks for permission, select Deny and Remember.
Let me know, thanks !
I will determine the root cause and a fix.

Here's a preferable workaround for TI chip devices (and reason I wasn't seeing this issue).
This operation is useful for Broadcom based devices on CyanogenMod also because CM tries to use hcitool to set FM volume, so this can avoid some interference:
Remove or rename the hcitool binary. During audio switching, CyanogenMod (and likely some derivative ROMs) calls hcitool for some reason. This causes problems in the daemon mode.
The downside to this is that the CM FM app won't work.
I do this:
adb remount
adb shell mv /system/xbin/hcitool /system/xbin/hcitoo
My app can still use "hcitoo" if needed.

mikereidis said:
I do this:
adb remount
adb shell mv /system/xbin/hcitool /system/xbin/hcitoo
Click to expand...
Click to collapse
I tried this but without success. Still have on and then off the speaker/headphones button to get the sound.
In the attached files logs for the stock FM applications running on stock moto 2.2 and for the current SpiritFM on CM7.

evgenln said:
I tried this but without success. Still have on and then off the speaker/headphones button to get the sound.
In the attached files logs for the stock FM applications running on stock moto 2.2 and for the current SpiritFM on CM7.
Click to expand...
Click to collapse
OK thanks, I'm looking now.
To respond to your PM about Regional Band Russia frequency steps, it works OK for me as 100 KHz.
It's harder to see now though because the frequency up and down buttons have been removed in favor of the graphic thumbwheel. If you carefully nudge the thumbwheel you can see frequency move 0.1 MHz at a time, while for North America it's 0.2 MHz and odd frequencies.
The frequency step for seek might have a problem; it's done by the chip and there may be a problem there.

evgenln said:
I tried this but without success. Still have on and then off the speaker/headphones button to get the sound.
In the attached files logs for the stock FM applications running on stock moto 2.2 and for the current SpiritFM on CM7.
Click to expand...
Click to collapse
I've started a new thread here that should work for people with less than 10 posts: http://forum.xda-developers.com/showthread.php?p=15607830
Technically it's in a paid app forum and it's technically for the paid Unlocker (converts free app to paid app), but unless some moderator decides it's a really bad idea it's open for discussion of the free app also.

Related

Possible A2DP skipping solution!

Headset: Motorola S9-HD
ROM: Haykuro 6.0
Radio: ota-radio-2_22_19_26I
Issue: a2dp audio skips due to location of phone... or so it seemed. The audio would skip if the phone was placed across my body from the antenna or in a pocket.
Resolution: I began researching the bluez stack and found several places in the code that alluded to the hfp and a2dp being intertwined. This lead me to remember that android also attempts to switch between the hfp and a2dp for incoming calls.
I found that my headset was connected by default with both profiles active (not one at a time).
Thus after several test i found that disabling the hfp will eliminate the skipping.
Explanation: My best analysis is that the phone is keeping both profiles open at the expense of splitting the channel. Thus when the phone has gsm related events (incoming calls, tower hopping, background edge data) it is tying up the hfp by error thus causing a2dp to get reduced resources, low signal strength, and possibly packet collisions. Try for yourself. The skipping instantly stopped for me. Let me know how it goes for you! Thanks to all the devs for these great roms and info.
can i get an english translation lol jk...can u explain it in noob form
interesting, plausible explanation
where in the code do you make the change?
noob translation: turning off the headphone profile possibly frees up room for audio to stream uninterrupted...
ps. that might still confuse some... lol
alapapa said:
interesting, plausible explanation
where in the code do you make the change?
Click to expand...
Click to collapse
no changes were made yet... the bluez stack is written to have a bridge between a2dp and headphone profile. i think android is sending packets to the headset via hfp for gsm events. I would think android should discard the packets instead of sending them out and relying on the headset to ignore them.
i would think the code can't be changed without making LOTS of other changes... i would be essentially rewriting how android handles the two profiles at the same time. (ALOT of work)
if this ends up fixing it for everyone... then i might look into trying to increase a2dp's priority in transmitting or some other solutions...
crushsuitandtie said:
no changes were made yet... the bluez stack is written to have a bridge between a2dp and headphone profile. i think android is sending packets to the headset via hfp for gsm events. I would think android should discard the packets instead of sending them out and relying on the headset to ignore them.
i would think the code can't be changed without making LOTS of other changes... i would be essentially rewriting how android handles the two profiles at the same time. (ALOT of work)
if this ends up fixing it for everyone... then i might look into trying to increase a2dp's priority in transmitting or some other solutions...
Click to expand...
Click to collapse
i think I gotcha...you just killed the hfp profile on your PC or w/e...?
Menu button>Settings>Wireless Controls>Bluetooth Settings>(long press) Your headset name>Options...>uncheck phone....
thanks for that tip. i was cutting my grass the other day. g1 in rear pocket. stereo bluetooth headphones on. signal kept cutting out on me. i'm gonna try this and see if it helps.
crazythunder said:
thanks for that tip. i was cutting my grass the other day. g1 in rear pocket. stereo bluetooth headphones on. signal kept cutting out on me. i'm gonna try this and see if it helps.
Click to expand...
Click to collapse
No problem. I'm just trying to add something constructive around here. I'm still not even close to some of these guys.
Hey you're right! I just connected my S9 to "media" only (disabling the phone connection in bluetooth settings) and it doesn't skip anymore, even with wifi on! I'm going to give this a try on my sony head unit in my car when I get the chance and I'll report back.
DOHCtor said:
Hey you're right! I just connected my S9 to "media" only (disabling the phone connection in bluetooth settings) and it doesn't skip anymore, even with wifi on! I'm going to give this a try on my sony head unit in my car when I get the chance and I'll report back.
Click to expand...
Click to collapse
Glad to hear that! im back at work and its heavily laced with wifi and the building gets poor edge/3G signal.So if you walk out the entrance toward the parking lot, the phone would connect to the cell towers (plus the wifi antennas are strong here) and my headphones would skip almost non-stop. This no longer happens. I'm quite happy.
Interresting hypothesis. I have my phone relatively close to my headphones so it hasnt been a big problem. Wifi had to be off or it didnt matter how close.
Eventhough it defeats the purpose of my S9's I'm going to give it a try.
atoy74 said:
Interresting hypothesis. I have my phone relatively close to my headphones so it hasnt been a big problem. Wifi had to be off or it didnt matter how close.
Eventhough it defeats the purpose of my S9's I'm going to give it a try.
Click to expand...
Click to collapse
i kept wi-fi off because I was in the gym or walking to my car... it would skip an absurd amount and i would nearly throw my phone and headset 8 blocks from pure frustration. The crazy part is BT is easily strong enough to transmit from a pocket to a headset on my head. I like to think i am tall but not that tall and disproportionate that my pocket is over 30 feet from my head! lol.
any skipping from that short of a distance is actually indicative of a problem to me. Thats like putting on a normal earpiece and getting nothing but static from that distance.
1) tests with my Sony Ericcson K850i showed it wasn't the headset....
2) i sat the phone on the floor directly under me when i was benchpressing, and simply because i layed down and partially covered the back of the headset the music started skipping non-stop. covering the antenna can cause some interferance but honestly with the phone that close it really shouldnt matter...
Tried the same test with my K850... no skipping. Tried with hfp disabled.... no skipping. Turn on hfp and a2dp... skips heavily.
thats the short version of how i came up with the split bandwidth part of my theory.
crushsuitandtie said:
no changes were made yet... the bluez stack is written to have a bridge between a2dp and headphone profile. i think android is sending packets to the headset via hfp for gsm events. I would think android should discard the packets instead of sending them out and relying on the headset to ignore them.
i would think the code can't be changed without making LOTS of other changes... i would be essentially rewriting how android handles the two profiles at the same time. (ALOT of work)
if this ends up fixing it for everyone... then i might look into trying to increase a2dp's priority in transmitting or some other solutions...
Click to expand...
Click to collapse
The handsfree profile will periodically send out "indicators" for things such as battery status and signal strength. These are small packets, which in a well designed Bluetooth stack, should not cause any disruption in the A2DP stream. The thing to look for would be how data transmission is prioritized. If, for example, BlueZ simply sends data in a "round robin" style, then sending a small data packet may delay the transmission of an A2DP streaming packet just enough to cause the problems you are describing.
I'm using JF1.51 and am not experiencing any of the audio problems you describe, even with WiFi and Handsfree connections enabled. I ran some tests and used a Bluetooth sniffer to capture the data traffic. One time I did hear an audio dropout at about the same time that the phone sent a signal strength indicator, which doesn't exactly validate your theory, but does make me wonder. However, I only saw 5 indicators sent by the phone over a 30 minute session.
Does using this method affect you from using the headset for calls?
Am I understanding that you would use this to listen to music... and if a call comes in would would talk over the handset normal?
What I've found is using A2DP indoors works perfectly (with our without HFP.) The explanation I've read is that the 2.4GHz waves bounce off the walls enhancing reception. Once outside is when I see degradation of quality/drops which would support the theory.
You might be on to something. If the bandwidth is being cut to share data over two profiles then, once you step outside, you'll have less distance before data packets drop.
paesano said:
I'm using JF1.51 and am not experiencing any of the audio problems you describe, even with WiFi and Handsfree connections enabled. I ran some tests and used a Bluetooth sniffer to capture the data traffic. One time I did hear an audio dropout at about the same time that the phone sent a signal strength indicator, which doesn't exactly validate your theory, but does make me wonder. However, I only saw 5 indicators sent by the phone over a 30 minute session.
Click to expand...
Click to collapse
you might have misread one of my posts... what you descrribed is exactly what i was saying... gsm events are possibly clogging bandwidth for a2dp. the one time you heard it is what i am experiencing constantly in some areas.
it appears to be a combination of several factors that are somehow hitting some people all at once....
1)"gsm or phone events being broadcasted"
2) possible split BT channel for HFP and A2dp
3) weak overall BT signal strength from g1 (dialed down in drivers to save power?)
4) interference from other wifi sources (enterprise access points aka "High gain antennas")
P.S. I guess its obvious i'm a systems analyst... lol
this really does work!!!!
if you guys remember windows mobile , the BT stack by default is set with the bit pool min and max @ 31 ,it works great but the sound quality sucks.. if you use a registry editor and increase the max bit pool sound quality gets better, but if you go to high you would get the cliping that we now get . i used to do this with my wing , using this same S9 headphone ,the trick was not to go to high with max bitpool and to lower min to 12 and this worked great,, max was @ 46 min was @ 12 ,, no skipping at all.. and great sound . WE need to find a way to get these adjusted on android , this should fix
now i do believe the wing and G1 both use Broadcom stacks ,could be wrong>>
remember Schap's tools - Advanced Configuration this did the trick
crushsuitandtie said:
you might have misread one of my posts... what you descrribed is exactly what i was saying... gsm events are possibly clogging bandwidth for a2dp. the one time you heard it is what i am experiencing constantly in some areas.
it appears to be a combination of several factors that are somehow hitting some people all at once....
1)"gsm or phone events being broadcasted"
2) possible split BT channel for HFP and A2dp
3) weak overall BT signal strength from g1 (dialed down in drivers to save power?)
4) interference from other wifi sources (enterprise access points aka "High gain antennas")
P.S. I guess its obvious i'm a systems analyst... lol
Click to expand...
Click to collapse
Sorry, I must not have been very clear. I did understand what you were saying, and I confirmed seeing what you saw in the one dropout I heard. However, in my case, there were only 5 "GSM Events" during the duration of my test. Not really enough to cause a lot of trouble. I can see that if a lot of GSM events occur (The spec calls them indicators), then there could be a lot of errors. Perhaps this happens when the GSM signal is weak and constantly changing.
If you want to look at making changes to the Bluetooth software, here's my analysis of the 4 points above:
1) If a lot of indicators are being sent by the G1, then I can see that a Bluetooth stack implementation could have streaming audio problems if not properly implemented. Unfortunately, the only way to fix this problem is in software by only sending indicators (and any other data) "in between" the A2DP streaming packets. Streaming packets should never get delayed. It would be better to toss the streaming packet than to delay it.
2) When both HF and A2DP are connected, the signal is not actually split. They both have access to the full bandwidth of the Bluetooth stack. The only time that there would be a problem is when both are sending at the same time, which could cause an audio packet to get delayed in a transmit queue, causing a dropout (as described above). Perhaps BlueZ doesn't do a very good job of prioritizing data, so that audio data is never delayed by other data packets. In my opinion, #1 and #2 are the same problem.
3) A week BT signal would definitely cause this. I can reliably listen to stereo audio with my Sony headset at around 10-15 ft. Outside that range, I start to hear dropouts. Also, If I put my hands over the headset, I can cause dropouts at even 2 ft. So, your body will definitely cause problems if it gets in the way of the signal. Finally, the sensitivity of the radio on the headset will affect the range as well. It may or may not be possible to increase the TX power by sending the Bluetooth controller a command in the software. The only other solution is to try and not get in the way.
4) WiFi certainly can cause interference, as can a microwave oven. However, adaptive frequency hopping (AFH) should mitigate most problems. Perhaps AFH is not turned on for some reason, or there are multiple WiFi networks around, making it very difficult for the Bluetooth controller to find any reliable frequencies. AFH is turned on by sending the Bluetooth controller the command.

[Q] FM Radio without headset on Android.

Hi,
I own a GT540 on Android 2.1.
I was wondering if it's possible use the FM radio without headset? It appears, on Windows Mobile, you can tweak the registry to allow this. Is there's a software level solution to make FM Radio work without headset on Android?
Yes, I'm aware that headset acts as an antenna and you need it to get a good reception. But, at times, it would be convenient to use the FM Radio without headset even if the signal is weak.
It's also possible to insert a fake plug to make it appear that a headset is present but am looking for a software solution.
On my Huawei U8110 it is enough to put in just jack, without any cables ... it works very well
DJ_Uro_UE said:
On my Huawei U8110 it is enough to put in just jack, without any cables ... it works very well
Click to expand...
Click to collapse
Thanks. I know that just pushing something that fakes a headset is enough. But, am looking for a software solution.
hi ... i dnt knw yet any software like tht ... bt if u wnt to listen radio via wifi or 3g without headset so there is app called "tune In radio"
xperia9191 said:
hi ... i dnt knw yet any software like tht ... bt if u wnt to listen radio via wifi or 3g without headset so there is app called "tune In radio"
Click to expand...
Click to collapse
Data is expensive here and wifi can taken granted only at home/school/office.
yes, Data is expensive. have been searching the same for awhile. no clue.
My previous Wm6.5(Aer S200) does the job.
still looking and waiting for solution
Hmm, I will try stalking AOSP when I get the time.
nibras_reeza said:
Hi,
I own a GT540 on Android 2.1.
I was wondering if it's possible use the FM radio without headset? It appears, on Windows Mobile, you can tweak the registry to allow this. Is there's a software level solution to make FM Radio work without headset on Android?
Yes, I'm aware that headset acts as an antenna and you need it to get a good reception. But, at times, it would be convenient to use the FM Radio without headset even if the signal is weak.
It's also possible to insert a fake plug to make it appear that a headset is present but am looking for a software solution.
Click to expand...
Click to collapse
The app would have to support this, although hypothetically the system software could be modified to fool the app. Or if you could somehow crash or otherwise disable the code that detects headphone jack insertion events that could work.
I HAVE found this annoying with the HTC app. I've developed an FM app that doesn't have this restriction. See my sig for details.
On my HTC Legend I can receive some strong stations OK with no antenna. My HTC Desire HD does much better with no antenna.
FM radio and sampling.
This kind of post makes me wonder if sampling the mic input in some non periodic (not at an exact frequency) rate, and if the sample and hold before the ADC works fast enough, that the FM band maybe decoded by the correlation of multiple sample rates. For those without an FM radio. Exact timing of the sampling would be critical, so not sure if it could work on some devices. But anyhow, probly too much low pass on the mic input.
mikereidis said:
The app would have to support this, although hypothetically the system software could be modified to fool the app. Or if you could somehow crash or otherwise disable the code that detects headphone jack insertion events that could work.
I HAVE found this annoying with the HTC app. I've developed an FM app that doesn't have this restriction. See my sig for details.
On my HTC Legend I can receive some strong stations OK with no antenna. My HTC Desire HD does much better with no antenna.
Click to expand...
Click to collapse
I tried your app but it doesn't work on my phone. Perhaps, the chipset is not supported? Do you have any idea where the trigger for headset is?
jackokring said:
This kind of post makes me wonder if sampling the mic input in some non periodic (not at an exact frequency) rate, and if the sample and hold before the ADC works fast enough, that the FM band maybe decoded by the correlation of multiple sample rates. For those without an FM radio. Exact timing of the sampling would be critical, so not sure if it could work on some devices. But anyhow, probly too much low pass on the mic input.
Click to expand...
Click to collapse
Ok, was that greek? I seriously didn't get what you were saying.
duchmk and
my old xpress radio 5030 from nokia did that very well !
well, replying to the title,
is there any app/mod that can play FM without headset..?
thanks in advance.
Finally, this is possible or not..?? :/
hander13 said:
Finally, this is possible or not..?? :/
Click to expand...
Click to collapse
I found it possible on my Galaxy Mini w cyanogen mod on Spirit Radio app. Signal was weak, but with bluetooth enabled it works perfectly. Now I want to have it with standard firmware, but it's impossible, because sound is going off after turning bluetooth on.
try this
this is spirit fm radio
Where can I find/buy a fake earplug to will trick my Samsung Galaxy Note II that a real headphone has plugged in?
nit3hawk said:
Where can I find/buy a fake earplug to will trick my Samsung Galaxy Note II that a real headphone has plugged in?
Click to expand...
Click to collapse
i cant find singal...:/ but app is good
I found a very simple way to do this (at least on Sony Xperia with Android 6.0.1). Connect the headphones, open the stock radio app, tune to the frequency, then go to the Settings>Apps>FM Radio and click "Force Stop". Now you can unplug the headphones, the radio won't stop playing. The only problem with this is that you need to connect headphones to change the frequency.
Where to get app?
nibras_reeza said:
I tried your app but it doesn't work on my phone. Perhaps, the chipset is not supported? Do you have any idea whnere the trigger for headset is?
Click to expand...
Click to collapse
Where can I get the app? Thanks!
---------- Post added at 02:58 AM ---------- Previous post was at 02:55 AM ----------
mikereidis said:
The app would have to support this, although hypothetically the system software could be modified to fool the app. Or if you could somehow crash or otherwise disable the code that detects headphone jack insertion events that could work.
I HAVE found this annoying with the HTC app. I've developed an FM app that doesn't have this restriction. See my sig for details.
On my HTC Legend I can receive some strong stations OK with no antenna. My HTC Desire HD does much better with no antenna.
Click to expand...
Click to collapse
Where can I get the app? Thanks!

[Q] Use bluetooth headset mic instead of phone mic

I've searched around on the forums for an answer to this but could never find anything that seems to match up to my issue.
I have a A2DP enabled headset and want to use it with apps such as Team Speak 3 beta, Vent, and other apps. But for some reason although phone media happily plays over onto my headset. My phone continues to only use the mic built into the phone instead of the bluetooth headset mic.
Any apps designed to use the headset specifically work (ie. normal phone calls, skype, vlingo) but otherwise apps ignore the headset mic.
I already tried using apps like BT Mono and Super BT Mono Froyo but they seem to only pipe audio to the headset, but don't do anything at all with the headset mic.
Does anybody know how to get the headset mic to be selected by apps instead of just the built-in mic?
My device is a Sumsung Galaxy S II ( I9100 ). Both Stock and CyanogenMod Gingerbread
good good good
Still hoping someone may know how to get the Galaxy S II phone to use a bluetooth headset mic instead of the built-in mic on the phone.
I'm really stumped on how to do this.
I still haven't seemed to have any luck finding a way to forcefully map apps to use the headset mic. I'm beginning to wounder if it's possible with the Android OS.
I have the galaxy s2 as well and I've retired several different things and have been unsuccessful with anything I've tried so far... Really difficult to drive and use vent without a headset.
Yeah I'm wanting to do the same thing.. I don't spose you've found a way in the last couple of months? Surely it can be done - may need to get a dev to write something for it though..
Sorry Lilfellabob, still no luck. I find it odd it's so difficulty to remap audio settings.
Even in Ice Cream Sandwich I can't find a way.
The app would need to be written to accept it. Its not a matter of your phone. Its the apps. Think about it for a min. If it works on apps made to use it but another app doesn't work then where does the problem lay?
The thing is, typically other apps should be able to re-route the app to use the headset mic. Alike how there are apps that can force other apps to use bluetooth audio instead of the phone speaker, even if the phone/headset can't use a2dp.
Dav_Edward said:
The thing is, typically other apps should be able to re-route the app to use the headset mic. Alike how there are apps that can force other apps to use bluetooth audio instead of the phone speaker, even if the phone/headset can't use a2dp.
Click to expand...
Click to collapse
Only if the code is there for it to do it. If they don't code it in then it doesn't work.
I'm having a similar problem but slightly the opposite.
I pair my phone to a Bluetooth device that lets me hear phone output on my car's speakers. However, the phone tries to use Bluetooth for the microphone when none exists. I want to force it to use the on-phone microphone. I can talk and talk but no one can hear me, unless I set the phone output to speaker or handset, which implies setting the phone input to amplified built-in mic, or just built-in mic, respectively.
In the Bluetooth settings I can set to use the Bluetooth device for music or phone, but ideally I would want "Phone" to be separated into "Phone output" and "Phone input" so I could uncheck input (and thus use the built-in mic.) This should be implemented at the Android level so that the setting can apply to all apps.
The same problem occured when I wired (2-stripe phone-to-car audio only, no mic) my Palm Pre directly to my car. I just tried with my GNex and it was smart enough to use the built-in mic when a microphone-less plug was connected.
zelendel said:
Only if the code is there for it to do it. If they don't code it in then it doesn't work.
Click to expand...
Click to collapse
wrong. its in the kernel. the new firmware on the android is is capable to transmit Audio Steam to Headset device as Audio only. i wont go 100% against coding to force it to but if they wanted to theres have to be some kind of exploit to do so. lets say if skype were to find that exploit or code it, it would be probably violate android policy.
HtcEvo4gLTE said:
wrong. its in the kernel. the new firmware on the android is is capable to transmit Audio Steam to Headset device as Audio only. i wont go 100% against coding to force it to but if they wanted to theres have to be some kind of exploit to do so. lets say if skype were to find that exploit or code it, it would be probably violate android policy.
Click to expand...
Click to collapse
Actually, what's going on is Skype is using the 'bluetooth device' hook of some sort, just like other apps that support piping audio to the bluetooth headset. However most apps don't use the bluetooth device API/hook and just dumbly send their audio to 'default output device' and 'default input device' blindly and let the OS or Kernel decide where to send it.
The OS or Kernel when it senses a bluetooth device with the 'media' profile on it is present, it changes the default output device to the headset, but it doesn't seem to bother doing the same for the bluetooth mic for the default input device.
Because apps like Teamspeak 3 just blindly use default audio device because it doesn't use bluetooth APIs in the app itself, I have no way to make it use the headset mic.
I wish someone could make a mod or app that will allow mapping the default input to a bluetooth mic when present.
As far as I know, Skype has problems using the BT mike as well. In fact, they took a user survey regarding the issue for android and iOS users. However, I cannot find the results of that survey / study, and Skype recommendations thereof.
User choice to use BT mike seems so BASIC to me, I wonder how it was overlooked...!
Rooting will crack open the full power of your Android device!
Dav_Edward said:
Sorry Lilfellabob, still no luck. I find it odd it's so difficulty to remap audio settings.
Even in Ice Cream Sandwich I can't find a way.
Click to expand...
Click to collapse
zelendel said:
The app would need to be written to accept it. Its not a matter of your phone. Its the apps. Think about it for a min. If it works on apps made to use it but another app doesn't work then where does the problem lay?
Click to expand...
Click to collapse
Rooting the device would give apps or the user permissions to modify system audio controller's (idk if it is anything like ALSA or anything..) settings to make app use the audio channel for the bluetooth headset... an example for the Galaxy s2 i9100 i have is the radio app "Sprit FM" has a "volume control stream" setting which allows the user to select what volume "control" will control the volume of the app's audio output
anywho... i hope it helps a little
rwong48, I have now the same problem that you have described. Have you solved it with any app for Andorid?
Thanks!
Solution
I found an app that solves this problem on android devices, it's called btmono and you can find it in the Google store. I tried to post the link but I don't have enough posts under my belt...
Anyways, pair your device, open the program (such as ts3), connect to your server and then turn on btmono. Voila!
Well, I tried to delete this after I saw that you had already tried btmono, but I couldn't figure out how so just disregard this message.
I already tried btmono, sadly although it works for the output audio, it does *not* work with the headset mic. Programs like TS3 will still keep using the phone's built-in mic, not the headset mine despite using btmono. The only thing btmono does is pipe the output audio to the headset only.
Thanks for the suggestion though
I can't believe they haven't fixed that yet. It is so basic...
Hey guys I'm going through the same issues with my note 2. Svoice was the only one that works but its painfully slow and inaccurate.
Anyways I've tried utter! robin and aivc. Aivc works pretty good but at least it uses the mic.
Utter is really promising but no Bluetooth mic. The devs have acknowledged it though. So hopefully soon.
Update: AIVC has one downfall. The app can't open if the screen is locked like utter and svoice can when prompted from bluetooth. Also, it only listens automatically the first time. If you close it without killing the app, you'll have to press the mic icon manually every time (which takes away from the purpose of handsfree).

[Completed] [Q] Android and BT microphones

Can someone please explain why a paired BT microphone will not simply replace the internal microphone on an android device in the same way as it does for a wired headset ?
I have found that BT mics only work during a phone call, or when trying to initiate a call via a voice dialer app. Audio input for any other app is routed via the built in mic, but sound output is always routed to the paired BT speaker or earphone.
This problem seems to affect most android devices and BT headsets. It has been written about in many forums, including the google/android forum, but the reason has never been explained. Within XDA the question has been raised a number of times, but even the smart guys on this forum seem to be stumped, or are part of a general conspiracy not to answer this question .
If I am a complete idiot and have missed some basic point don't spare my feelings, but please answer the question !
Please understand the whole Bluetooth A2DP Protocol has been designed around voice communication. Conceptually the kernel allows for acceptance of inputs from any valid compatible hardware resources at its disposal. This is why you'd see Voice dialer apps being able to effectively utilize bluetooth. However, this usage of external BT devices that are not always connected to phone, requires extensive programming on part of the Application to establish a listener and check for a BT device each time. App developers potentially will have to do a balance study between benefits and amount of time, and effort involved. This does include testing for myriad variety of Bluetooth devices and phones.
You may wish to post in
Hardware Hacking > Hardware Hacking General
so that the right experts may chime in.
Perseus71 said:
Please understand the whole Bluetooth A2DP Protocol has been designed around voice communication. Conceptually the kernel allows for acceptance of inputs from any valid compatible hardware resources at its disposal. This is why you'd see Voice dialer apps being able to effectively utilize bluetooth. However, this usage of external BT devices that are not always connected to phone, requires extensive programming on part of the Application to establish a listener and check for a BT device each time. App developers potentially will have to do a balance study between benefits and amount of time, and effort involved. This does include testing for myriad variety of Bluetooth devices and phones.
You may wish to post in
Hardware Hacking > Hardware Hacking General
so that the right experts may chime in.
Click to expand...
Click to collapse
Thanks for the reply Perseus71 and I have also reposted on the link you suggested, but I have not fully understood your meaning.
The fact that my BT mics work OK when in call proves hardware and software functionality. Why can't this working code be invoked when I am using another app which requires mic input?
Does the Android kernel somehow earmark BT audio "for telephony only" and deny other apps access to the audio stream.
Why would it matter to the Android OS if BT sourced audio data is being sent a file as opposed to the telephone network?
Thread Closed. Thank you.

Apple USB-C to 3.5mm DAC dongle and Android - remove the power limit

So I finally got fed up enough to purchase a USB-C DAC dongle to overcome the unbearable hissing noise of the inbuilt 3.5mm audio jack. The first obvious choice would be a Pixel dongle, but for some reason Apple is selling a better performing dongle. Being cheaper and available in a mortar store, it was a no brainer purchase. I can definitely say that hissing is gone and sound is crystal clear. However for yet another reason, Apple dongle is by default quite limited in power, being usable mainly by sensitive IEMs. After several attempts of various methods, I found a reliable way of removing this limit.
Ingredients needed:
1. Apple DAC dongle
2. Tasker
3. Magisk
4. AlsaMixer app (https://apkpure.com/alsamixer-root/com.skvalex.alsamixer)
Recipe:
1. Extract AlsaMixer app and locate "assets\alsa\system" folder
2. Create a Magisk module from this folder with 755/755 rights
3. Install Magisk module
4. Create a Tasker event "headphones connected", task "shell script", run as root, command "alsa_amixer -c 1 sset Headphone 120"
5. Connect Apple dongle
Voila, you suddenly moved from -40dB limit to 0db for max volume. Limit is automatically reset on each DAC re-connection, so Tasker intent is mandatory.
Verification:
1. In terminal write as root "alsa_amixer -c 1" to see the current playback limit. It obviously works only with DAC connected.
Note: this method works only for USB-C DACs, not for analog audio jack of Mi A1 phone.
Default:
Code:
# [B]alsa_amixer -c 1[/B]
Simple mixer control 'Headphone',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 120
Mono:
Front Left:[B] Playback 80 [67%] [-40.00dB][/B] [on]
Front Right:[B] Playback 80 [67%] [-40.00dB][/B] [on]
Headphones with no mic:
Code:
# [B]alsa_amixer -c 1 sset Headphone 120[/B]
Simple mixer control 'Headphone',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 120
Mono:
Front Left: [B]Playback 120 [100%] [0.00dB][/B] [on]
Front Right: [B]Playback 120 [100%] [0.00dB][/B] [on]
Headset with a mic:
Code:
# [B]alsa_amixer -c 1 sset Headset,1 120[/B]
Simple mixer control 'Headset',1
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 120
Mono:
Front Left: [B]Playback 120 [100%] [0.00dB][/B] [on]
Front Right: [B]Playback 120 [100%] [0.00dB][/B] [on]
--first post updated--
Why don't you use tinymix, that is included on any Android release, instead of alsa_mixer so that you don't need to install other stuff?
drizzt said:
Why don't you use tinymix, that is included on any Android release, instead of alsa_mixer so that you don't need to install other stuff?
Click to expand...
Click to collapse
Wasn't aware of this fact, thanks. Will check tinymix, but alsa seems to be much easier to use for this purpose (at least for me ).
Edit:tinymix is just too complex to use and control commands probably aren't 100% universal with all DACs, so I'll stay with ALSA and Tasker. If I wanted to utilize tinymix, I'd just use this app (Apple dongle requires special version) https://forum.xda-developers.com/pixel-2-xl/themes/pixel-2-usb-audio-control-t3704024
Hissing sound? Bro have you checked the internals of your phone? I did and I had a snake inside, after getting him out everything was fine
Yes, I have a very inteligent snake in there, which hisses only when I connect headphones and only during music playback + about 3 seconds once it stops. Also the snake is able to distinguish between sensitive low impedance IEMs and less sensitive bigger headphones, so it adjusts volume of its hissing accordingly. What's even more interesting, he keeps quiet when I connect an external DAC. I want to keep the snake, so I won't remove it from the phone.
Well, it's that or there's ****ty audio output circuit in the phone.
Fixes the PH-1 !
I came across your thread while looking for a fix for the Apple dongle when used with the Essential PH-1. The problem is when using a TRS headset with this specific dongle+phone combo the left and right channels are at significantly different volumes. A TRRS headset does not exhibit this issue.
TRRS reports Headset,1
TRS reports PCM,0
I renamed xbin to bin. Not sure if that is the right solution, but the tools were not showing up before. A quick Tasker task and it's all set!
Thank you so much!!
numanair said:
I came across your thread while looking for a fix for the Apple dongle when used with the Essential PH-1. The problem is when using a TRS headset with this specific dongle+phone combo the left and right channels are at significantly different volumes. A TRRS headset does not exhibit this issue.
TRRS reports Headset,1
TRS reports PCM,0
I renamed xbin to bin. Not sure if that is the right solution, but the tools were not showing up before. A quick Tasker task and it's all set!
Thank you so much!!
Click to expand...
Click to collapse
Thanks for letting us know and I'm glad this guide helped you. Different phones can have different bin folder and also parameters for alsa-mixer, so you did the right thing.
Works on Oneplus 7 pro (Android 10). Just had to change "Headphone" to "Headset" in the alsa_amixer command.
Been trying to get a magisk module made for this on my Razer Phone 2 and it took me quite a while since I kept getting errors. I got fed up and decided to try Samsung's dongle since that surely would've been optimized for Androids, but it seems that it also had the same exact issue (go figure, Samsung practically copied Apple 100%). The Samsung dongle is the same quality as Apple's dongle for sound quality (albeit a tiny bit worse, practically unnoticeable) and also, the same volume output from the same set of earbuds at max. So back to figuring out the whole magisk module thing.
Anyways I got the issue resolved. I remade the module I had on my pc rather than doing it on the phone itself and the error magically went away, and the whole thing is working wonderfully now. Even works for the Samsung USB-C 3.5mm dongle, with a different value. 108 for the Samsung dongle rather than Apple's 120.
Thank you for posting the guide, super helpful to fix this issue for the Apple and Samsung dongles on Android in general.
Thanks for this thread. Could I use this stuff to fix my AirPods Pro with my OnePlus 7 Pro? I have to set the volume to max to hear something in the bus ;-;
cedricberger27 said:
Thanks for this thread. Could I use this stuff to fix my AirPods Pro with my OnePlus 7 Pro? I have to set the volume to max to hear something in the bus ;-;
Click to expand...
Click to collapse
I'm afraid that it's not possible to control external amplifier connected over bluetooth (or at least I don't know about any way how to do it). USB-C dongle can be configured because Android sees it connected "internally" as a sound card. AirPods and similar have DAC ("sound card") in the earphones and phone can use only standard Bluetooth commands to send music and perform basic control. AFAIK, changing the gain parameters isn't among them.
kenvenin said:
Works on Oneplus 7 pro (Android 10). Just had to change "Headphone" to "Headset" in the alsa_amixer command.
Click to expand...
Click to collapse
brother, i tried to make the module for my OnePlus 6 but can't get it to work. it will be great help if you please share your magisk module. thanks in advanced
Can someone upload this module here? Or maybe give some tutorial how to make a magisk module? I was searching for this, but I didn't find it.
Adamz274 said:
Can someone upload this module here? Or maybe give some tutorial how to make a magisk module? I was searching for this, but I didn't find it.
Click to expand...
Click to collapse
Not sure if it's still working (I created and installed this module while on Magisk v19 and modules format changed since then), you might need to update "META-INF\com\google\android\update-binary" script with the latest version from here https://topjohnwu.github.io/Magisk/guides.html (and maybe remove "install.sh")
EU/USA Model
_mysiak_ said:
Not sure if it's still working (I created and installed this module while on Magisk v19 and modules format changed since then), you might need to update "META-INF\com\google\android\update-binary" script with the latest version from here https://topjohnwu.github.io/Magisk/guides.html (and maybe remove "install.sh")
Click to expand...
Click to collapse
Maybe I misunderstood but from everything I have read, the EU version of the Apple Adapter is worse, much quieter. I thought that was in the hardware, the US version is full power.
'There are 2 versions of it, US version A2049 which could output 1v, and EU version A2155 which limited to 0.5v' from another source
https://www.reddit.com/r/headphones/comments/ecf1ud/apple_usbc_to_35mm_adapter_impressions/
Is this 'fix' able to achieve the full 1v power output on the EU Model ?
poster74 said:
Maybe I misunderstood but from everything I have read, the EU version of the Apple Adapter is worse, much quieter. I thought that was in the hardware, the US version is full power.
'There are 2 versions of it, US version A2049 which could output 1v, and EU version A2155 which limited to 0.5v' from another source
https://www.reddit.com/r/headphones/comments/ecf1ud/apple_usbc_to_35mm_adapter_impressions/
Is this 'fix' able to achieve the full 1v power output on the EU Model ?
Click to expand...
Click to collapse
As far as I know it's SW limitation, affecting mostly Android phones (not sure about Apple devices, I don't own any). My phone and dongle come from the official EU distribution, so I assume that it's the EU version. The fix definitely removes the power limit. I do not have an US dongle (or measurement device), so can't compare them though. All I can say for sure it's that with sensitive IEMs the dongle is dead silent, there is no hissing noise. At the same time, and after removing the power limit, the dongle can drive AKG K240MK2 (55ohms) cans without problems. It struggles a bit with Beyerdynamic DT990pro (250ohm) - depending on the sound source, volume can (Google music) or won't be enough (most Youtube videos).
Hi,
I appreciate you dont have meter to measure output but are you saying that this fix seems to increase the volume limit significantly ? The US version is supposed 1v against EU 0.5V.
Does this fix, 'feel' that much louder ?
_mysiak_ said:
As far as I know it's SW limitation, affecting mostly Android phones (not sure about Apple devices, I don't own any). My phone and dongle come from the official EU distribution, so I assume that it's the EU version. The fix definitely removes the power limit. I do not have an US dongle (or measurement device), so can't compare them though. All I can say for sure it's that with sensitive IEMs the dongle is dead silent, there is no hissing noise. At the same time, and after removing the power limit, the dongle can drive AKG K240MK2 (55ohms) cans without problems. It struggles a bit with Beyerdynamic DT990pro (250ohm) - depending on the sound source, volume can (Google music) or won't be enough (most Youtube videos).
Click to expand...
Click to collapse
techcolab said:
Hi,
I appreciate you dont have meter to measure output but are you saying that this fix seems to increase the volume limit significantly ? The US version is supposed 1v against EU 0.5V.
Does this fix, 'feel' that much louder ?
Click to expand...
Click to collapse
Yes, it sounds significantly louder. Dongle is pretty cheap, they might even let you try it in the mortar store, so just get ready your phone and try it with your headphones. In the "worst" case you can use it with a PC (Windows 10), there it works at full power with no "hacking" needed.
I am a novice. But I need a module and good explanation on how to DIY. Can u help me PLEASE?
I am on android 10 samsung tab s7 plus rooted. Alsa installation showing error too. Will be very helpful if u make a video of it.

Categories

Resources