FORUMS
Remove All Ads from XDA

Spirit1, Spirit2 Real FM Radio General Thread

7,827 posts
Thanks Meter: 4,164
 
By mikereidis, Inactive Recognized Developer on 1st May 2011, 09:23 PM
Post Reply Email Thread
25th September 2012, 04:12 AM |#4461  
OP Inactive Recognized Developer
Flag Ottawa/Gatineau, Canada
Thanks Meter: 4,164
 
Donate to Me
More
Spirit FAQ:

March 24, 2013: Updates underway.

Scroll down or click.
The Following User Says Thank You to mikereidis For This Useful Post: [ View ] Gift mikereidis Ad-Free
 
 
25th September 2012, 04:13 AM |#4462  
OP Inactive Recognized Developer
Flag Ottawa/Gatineau, Canada
Thanks Meter: 4,164
 
Donate to Me
More
Warning:

Less than 1% of Galaxy S GT-I9000 users on ICS & JB ROMs have had speaker damage. There are no other cases where Spirit is associated with physical damage. But the popularity of Spirit, Galaxy S and custom ROMs produced at least 50 known cases.

There is now a very hopeful digital audio solution for the GT-I9000 problem. Time will tell. I now get 1 report a month from over 100 sales each month, plus many Free users.

Lots more info here: http://forum.xda-developers.com/show...66&postcount=3
The Following User Says Thank You to mikereidis For This Useful Post: [ View ] Gift mikereidis Ad-Free
25th September 2012, 04:14 AM |#4463  
OP Inactive Recognized Developer
Flag Ottawa/Gatineau, Canada
Thanks Meter: 4,164
 
Donate to Me
More
Phones:

Official compatibility list: http://forum.xda-developers.com/show...58&postcount=2

Try the Free variant. If Free works then Unlocked will work.

For best quality, I now focus on popular Samsung, HTC & Sony devices with custom ROMs.

For hardware and software alternatives, see: http://forum.xda-developers.com/show...postcount=4470

Tablets:

Most tablets are not capable of FM and I can't support those that are. The 5" Galaxy Note & Note2 are the largest supported.

I've heard Lenovo Thinkpad works on the stock ROM, but not on CM10, and Acer Iconia A500 works on CM10.

The 7" Lenovo IdeaTab A2107 has stock FM but no Spirit reports.

Asus TF101 10" works, but no audio: http://forum.xda-developers.com/show...postcount=4598

There is little demand for FM on tablets, as they are usually used where physical radios are available.

Car computers are among the few applications, but it's a small niche.

There's a dongle solution here, but it eats a LOT of battery, which may not be a problem in a car computer: http://forum.xda-developers.com/show....php?t=2108053
The Following User Says Thank You to mikereidis For This Useful Post: [ View ] Gift mikereidis Ad-Free
25th September 2012, 04:14 AM |#4464  
OP Inactive Recognized Developer
Flag Ottawa/Gatineau, Canada
Thanks Meter: 4,164
 
Donate to Me
More
Download:

See Download section of post #1: http://forum.xda-developers.com/show...php?p=13379669

I prefer Google Play Store purchases, despite Google's 30% cut or 43% markup.

If Play is not an option, you can email and send Paypal funds to [email protected] . I'll send you what you need to get automatic updates.

I cancel any order at any time on request, so don't worry about the Play 15 minute limit.
The Following User Says Thank You to mikereidis For This Useful Post: [ View ] Gift mikereidis Ad-Free
25th September 2012, 04:14 AM |#4465  
OP Inactive Recognized Developer
Flag Ottawa/Gatineau, Canada
Thanks Meter: 4,164
 
Donate to Me
More
Problems:

Any problem:
- Your device may be unsupported. See 3 - Will Spirit work on my device: http://forum.xda-developers.com/show...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://forum.xda-developers.com/show...58&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://forum.xda-developers.com/show...&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 .
The Following 2 Users Say Thank You to mikereidis For This Useful Post: [ View ] Gift mikereidis Ad-Free
25th September 2012, 04:15 AM |#4466  
OP Inactive Recognized Developer
Flag Ottawa/Gatineau, Canada
Thanks Meter: 4,164
 
Donate to Me
More
Requests:

I appreciate all paid customer requests, but my time is very limited.

Most common requests:
  • Support my phone: I now focus on the most popular devices.
  • User Interface: I'll build a nicer JB+ UI in Spirit2. Maybe backport.
  • Bluetooth: Supported on some phones. See BT/EQ/Record.
  • Record: Supported on some phones. See BT/EQ/Record.
  • Transmit: Very rare. See Transmit.
  • Translations: Maybe in Spirit2. Will try to use more symbols.
The Following User Says Thank You to mikereidis For This Useful Post: [ View ] Gift mikereidis Ad-Free
25th September 2012, 04:16 AM |#4467  
OP Inactive Recognized Developer
Flag Ottawa/Gatineau, Canada
Thanks Meter: 4,164
 
Donate to Me
More
Configuration:

If Spirit crashes at start, and reconfig will fix it, remove and reinstall Spirit or clear app data. Start Spirit. At Intro press Back or Stop. Re-configure and press the Spirit power button to start.

Outside North America, set Menu-> Settings-> Band to Japan or one of the "World ..." options, using local channel spacing.

Spirit tries to automatically configure for hardware and software differences.

If FM seems to work, wired headset is plugged, RSSI at top left is over 20 when tuned, but there is no audio, setting Audio-> Method may help. For more info, post on XDA or paid customers email for support.

It's best not to change Debug settings, unless instructed or understood. But in some cases, Debug-> FM Chip and Debug-> FM API may help.

For more config info, and much more, see this November 23, 2012 Spirit document: http://devhost.xda-developers.com/TxN
The Following User Says Thank You to mikereidis For This Useful Post: [ View ] Gift mikereidis Ad-Free
25th September 2012, 04:16 AM |#4468  
OP Inactive Recognized Developer
Flag Ottawa/Gatineau, Canada
Thanks Meter: 4,164
 
Donate to Me
More
BT / EQ / Record:

Spirit is now the ONLY FM app, stock or otherwise, that supports all of these digital audio features, on supported devices:
  • Bluetooth A2DP headsets in CD quality stereo.
  • Recording in CD quality stereo.
  • External visualizers, equalizers and effects.
  • Internal Wave and FFT visual: 5x8 dB & log2 43 - 22,050 Hz.


Spirit supports digital audio on:
  • Rooted International Galaxy S, S2, S3, Note, Note2.
  • Rooted HTC One XL, One S, Evo 4G LTE, Sony Xperia T.
  • Most stock Sony 2012-2013 devices.

Further info to come.
The Following User Says Thank You to mikereidis For This Useful Post: [ View ] Gift mikereidis Ad-Free
25th September 2012, 04:17 AM |#4469  
OP Inactive Recognized Developer
Flag Ottawa/Gatineau, Canada
Thanks Meter: 4,164
 
Donate to Me
More
Transmit:

With a few rare exceptions, Transmit is not possible.

FM Transmit requires a useful antenna (generally, a wired headset) connection to the transmit pins of the FM chip. This is extremely rare, for whatever reasons.

Until recently, the only Android devices confirmed to have FM transmit capability were a few Japanese market Sharp devices.

As of Sept. 2012, I finally have found a phone with unofficial FM capability: HTC T-Mobile MyTouch 4G running Froyo 2.2.1 and a never publicly released transmit app. T-Mobile was going to release with this feature, and changed their minds, but the hardware connections are still there from headset jack to FM transmit pin on the Broadcom FM/combo chip.

It's almost a fluke that this has been uncovered, so don't expect similar on other phones. That said, recently the original Motorola Milestone (I think) has been finally proven to have usable FM after years... Antenna always worked but the audio needed to be "cracked".

See FM transmit on T-Mobile myTouch 4G: http://forum.xda-developers.com/show...postcount=4391


December 20, 2012: Some European Sony Xperia P/U/Sola/Go ST-Ericsson CG2900 FM chip based devices have working transmit, but without audio. It's not clear yet if audio can be enabled. Test with Debug-> FM Chip = "STE AFM TX" and restart Spirit. Signal is weak. Wrap length of headset cable along length of FM receiver antenna to test. Change frequency to verify. Use seek up and down to change RDS info.

March 24, 2013: Sony Xperia T may support transmit. The FM chip uses the internal antenna pin, which is shared with the transmit function. No confirmation to date but I haven't asked anyone with a T to test yet.


Why No FM Transmit:

You'd think enough people have asked for FM transmit that at least one company would sell such products outside Japan. But perhaps they've all crunched the numbers and decide it wasn't worth it, due to:

- Added costs, and/or...

- Added delays (in a very quickly moving market) for FCC and other regulatory body certifications.

- Low RF coupling and low audio quality versus the superior quality of direct wired or Bluetooth connections to car stereos (likely the main marketable use case).

- Interference possibilities with one or more of the many RF systems on a modern smart device: Cell Voice/Data, WiFi, Bluetooth, NFC, GPS,... Yes the frequency bands are very different, but problems can still occur.
25th September 2012, 04:17 AM |#4470  
OP Inactive Recognized Developer
Flag Ottawa/Gatineau, Canada
Thanks Meter: 4,164
 
Donate to Me
More
Hardware Alternatives:

Sony Bluetooth A2DP Stereo headets with FM are decent.

MW-1 or new MW-1 Lite $80-$100+ on EBay: http://store.sony.com/p/Sony-Android...eless/en/p/MW1

Older MW-600 $40 on EBay: http://store.sony.com/webapp/wcs/sto...52921666492655

Smart-watches are worth a look.

Dongle based SDR drains battery: http://forum.xda-developers.com/show....php?t=2108053


Software Alternatives:

On stock devices with no FM app, the stock app from another phone may work.

There are almost no alternatives on most custom ROMs. IMO, Spirit is the only 3rd party non-stock FM app of any significance.

This is because the dominant APIs, firmware and hardware details are secret and undocumented.

ST-Ericsson had attempted to create a standard Android FM API, but 2+ years later it's gone nowhere fast. As of March 2013 it's sitting with a broken build in an experimental branch of AOSP, despite some activity near end of 2012. It's unclear what the latest ST-Ericsson organizational restructurings mean to this effort.

I hope an industry wide blessing of this API is right around the corner. But so far Google doesn't seem to care, nor do carriers. Their best interests are in data plan revenues or Internet ad revenues, and they all want to be the gatekeepers of the 21st century "TV etc. market".

Emmis Communications coming NextRadio app might use this API; I have no idea yet. Further info on the related ransom for FM in the US market is here: http://forum.xda-developers.com/show...php?p=37641690

Open Source Spirit:

My Oct 31, 2012 statement on open sourcing: http://forum.xda-developers.com/show...unt=4715System

I may release some open source for Spirit2. The intention would be to encourage others to write FM apps, widgets etc. using the ST-Ericsson proposed Android FM API natie to Spirit2.
The Following 2 Users Say Thank You to mikereidis For This Useful Post: [ View ] Gift mikereidis Ad-Free
25th September 2012, 04:18 AM |#4471  
OP Inactive Recognized Developer
Flag Ottawa/Gatineau, Canada
Thanks Meter: 4,164
 
Donate to Me
More
FAQ is finished. This is on the next of 10 pages.
The Following User Says Thank You to mikereidis For This Useful Post: [ View ] Gift mikereidis Ad-Free
Post Reply Subscribe to Thread

Tags
spirit fm radio receiver ota

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

Advanced Search
Display Modes