[Spirit FM] mikereidis:
Problems:

Any problem:

- Your device may be unsupported. See 3 - Will Spirit work on my device: http://xdaforums.com/showpost.php?p=31983117&postcount=4463

Error message at startup:

- No FM driver is loaded. Semaphore or other kernel app may allow a driver to be loaded. Should be automatic, but helps in some cases.

- Spirit does not have SU permission on custom ROMs. Check the SuperUser or SuperSU app to ensure Spirit has SU. Update the SU binary, even if it says "up to date". See SuperUser section below.

- Spirit may require Bluetooth be turned on, or off. Should be automatic, but helps in some cases. Set Debug-> HCI Access to "BT Socket" to force BT on when Spirit is started.

RSSI signal strength at top left is below 10, even when tuned to known strong stations:

- The wired headset is not plugged in for an antenna. Plug it in.

- No FM driver is loaded. Same as above.

No audio, but RSSI is 20 or more when tuned to known strong stations:

- Audio Method needs to be manually set. Set Menu->Settings-> Audio-> Method to one of the many available methods. You can stay in that config screen and try several methods in a row, listening for audio. Some tips are available in the compatibility list: http://xdaforums.com/showpost.php?p=13380058&postcount=2

Problems with phone call, notifications or other audio:

- Go to your phones' System Settings and ensure there are no Sounds selected for button presses and screen lock at least. These can interfere with FM on some devices/ROMs.

- Audio problems are my main headache and task at present, particularly on devices such as Desire HD and Z or others using the "qsdp5v2" Audio-> Methods, automatically or explicitly.

These problems are occurring mostly on custom ICS and JB ROMs that do not have FM support in the audio libraries. This includes many, but not all, CM9/10 and other AOSP based ROMs.

The lack of ROM support means Spirit has to resort to low level methods, such as ALSA and many other mostly undocumented device driver IOCtl based APIs. But these methods are fragile when the audio library does not "know" about the FM routing.

The proper solution is in the audio libraries and I'm exploring the best methods to achieve this solution. Perhaps I'll post source code patches, information and/or produce a "shim" workaround. It will take me at least several months to "get moving" on this, but the previous method of adding hacks upon hacks is a bad use of time.

The hacks will be documented. They are mostly in the Debug section of the settings. They include Silent Loop, Mute kill mediaserver, Audio Focus.

Problem on GT-i9100 (and other Galaxy's) on CM 9.1 and perhaps other ROMs:

Speaker mode can stick when using speaker mode in Spirit. IE, mute or FM off from speaker mode makes music come from speaker instead of wired headset.

One solution to remove and re-insert the wired headset jack. Another is to enable Debug-> Power Restart Media. This will help after turning FM off, but won't help during mute.

Some other GS2/Note audio problems, particularly regarding speaker modes, can be solved by changing Debug-> Galaxy S2. The "June 15" selection seems to work best on stock & stock derived ROMs. The current default of "July 27" seems to work best on custom ROMs. Try them all if problems persist. A restart of Spirit is not required, but might be useful.

Audio problem on stock HTC devices:

Set Debug-> HTC to each of the settings besides "Auto (all)" and follow each with a Mute/Unmute or Speaker/Headset button press to see if one results in success.

If one works, please let me know which and I'll try to make it more automatic.

SU/root SuperUser app problems: (Similar for SuperSU)

Spirit needs SU/root access on custom ROMs. (Those that don't support the stock OEM Proprietary FM APIs that stock FM apps use.)

Open your SuperUser app. Under the "apps" tab there should be an entry for Spirit, probably under "Deny". Select Spirit and tap the broken face icon at bottom left until the page says "Status Allowed"

Also, from SuperUser, tap the wrench for settings. Select Security, then Automatic response and make sure "Prompt" is selected, although "Allow" is a bit easier, at the price of some security concerns.

Also, under the SuperUser info tab, there will be a "su binary" section and you can "tap to check for updates". Even if it says "up to date" it may be useful to select "Update anyway".

Why SU requested:

Most Spirit users are using custom "ROMs", and in most cases SU is required, generally just to open permissions on low level device drivers. On stock and stock derived ROMs, and a few custom ROMs on some devices, you can deny SU and Spirit will still work. There are Debug-> SU Type settings that can modify this behaviour. But to test properly requires a reboot after a change, since permissions will already be opened.

Reboot at startup:

Sometimes Spirit may need to be configured to prevent a crash/reboot at startup. For example, Menu-> Settings-> Audio-> Method.

To do this, you'll need to prevent automatic startup. Do this by removing and re-installing Spirit, or just clear it's app data.

When Spirit starts you'll see the Introduction screen. Press Back to get to the main screen with FM still powered off. Now you can configure. When done you can press the Spirit power button to start.

Debug info in the power up error dialog, or visible in the RDS RadioText area below the frequency numbers:

Fm:BC Sh:1 Su:1 Bt:0 Ht:0 H2:1 Mo:BCH UA Hv:4 Ma:15 BC

See: http://xdaforums.com/showpost.php?p=14391233&postcount=381

Jumping RSSI problem:

Some devices contain Broadcom chips, but appear to be unable to receive FM.

They show unusual RSSI values, that jump rapidly between such values as: -128, 0, 16, and 55.

None of these devices have a stock FM app, nor will any other FM app function.

I believe these devices lack the hardware connections to operate, and may be deliberately disabled.

RF Sensitivity / Problems with Signal Strength & Noise:

Spirit has no control over the FM sensitivity, but any Android device with a decent wired headset for antenna, should be about as good as your average dedicated FM radio at least. Generally though, FM signals aren't very useful after 50-100 Km or so, depending on transmitter strength.

If problems, try a different wired headset, preferably longer, such as 75 to 150 cm (30 - 60 inches). Stretch the cable out and try changing the orientation for best audio quality. Note that tuning for RSSI sometimes impacts audio quality negatively.

Signals tend to be better outdoors or near windows. Ideally one has "line of sight" meaning you (or the headset antenna) can see the transmitter antenna, or could if your eyes were high powered, or using a telescope.

If your phone is older, you may consider a newer device, as newer chips tend to be more sensitive.

If all else fails, you can switch the audio to mono, which can drastically reduce noise with low signals.

================================================================================

If all else fails:

If these fixes for common problems don't help, paid customers should send me a debug log.

Use Menu->Test-> Email-> Logs and after 20 seconds or so, press Send. If email is not available, send /sdcard/sprt_debug.txt .