[Spirit FM] mikereidis:
I had an interesting email from someone working for an org with interest in enabling OTA radio on more smartphones. I spent time giving detailed answers, so here they are for all to see.

BTW, new evidence I read today has made me a little less pessimistic about the chances for success of the ST Ericsson Android FM API. ( http://xdaforums.com/showthread.php?p=19241903 )

--------------------------------------------------------------

1. Have you spoke directly with the IC guys about getting their drivers for the chips- especially the combo chips? What was their response and who did you speak with?

Yes I tried, even after I had searched the web pretty exhaustively and found that anyone who tried to get the FM combo chip detailed technical specifications from Broadcom or TI was unsuccessful. It appears that one must sign an NDA and be a customer. For software, TI has become more open, but the chip reference docs are still not available.

I found almost no contact email info for Broadcom, or any other way to contact them by email. I didn't try their posted phone number, but I did send an email to vinceb@broadcom.com (a sales email?) on July 27. I identified myself and my app and asked "Is there an evaluation board or similar that I can purchase to get access to these datasheets ?". There was no response.

BTW, I had contact with someone working for a Broadcom customer. He had their confidential documents but said they weren't too helpful. He also had to do some reverse engineering. Between us we were unable to achieve high quality digital or Bluetooth data transfers. This is important to me because it can bypass the lack of FM analog audio paths on some devices, as well as lack of information on how to enable the paths.

For TI, I opened a "WL 1271/1273 FM Documents" thread here: http://e2e.ti.com/support/low_power_rf/f/307/p/124782/445850.aspx . There was no resolution for my question.

I also tried to get info on a Maxim MAX8899 PMIC chip (audio and power) and was told that until the chip went public I would have to be "under contract with one of the handset processor suppliers (Samsung)".

2. Short of buying the phones, how do you know what chip is in each phone? There are a lot of phone models?

There are a HUGE number of phone models, and many variants of those models, AND the sales lifespan of models is decreasing, so the hardware differences are a major challenge.

Just determining the chip "family" isn't usually too difficult though. My app has an automatic chip family detection function. In some cases it will "poke" the chip to try and determine, but it mostly looks for clues from the firmware files, running daemons, utility programs present and device driver availability.

I presume that's sufficient detail, but can give more technical info if desired.

Broadcom is the dominant FM combo chip supplier by far. Texas Instruments seems to be second; Motorola is their main customer I think. Silicon Labs discrete FM chips may be 3rd, but seem limited to Samsung Galaxy S, S2 and some variants. (Unfortunately many variants do NOT have this chip, and the Broadcom chip is not wired for FM.) In 4th and last place is Qualcomm "Tavarua" which I think is in their SOCs. I'm just seeing these now on a few (Huawei?) devices.

Of these 4, only Silicon Labs has open documents.

Note that my FM app doesn't run on MANY phones with stock ROMs/System Software, but it does run on a few, and even then if often requires Root/SU/"Jail Breaking". My app is most popular on aftermarket ROMs such as CyanogenMod or MIUI. I'm hoping to add support for the Broadcom proprietary FM API after reverse engineering it.

3. How long does it take to reverse engineer the IC and get access to the FM IC?

Difficult question. Reverse engineering is an ongoing task. I tried to use the Alternate Frequency feature on TI and Broadcom chips the other week, but after a bit of experimentation I gave up and started a software implementation. I'd estimate I've spent 300 hours on Broadcom, 200 hours on Texas Instruments, and 500 hours on audio and other phone specific issues.

And even though I've reverse engineered the most important Broadcom chip FW registers, this only works for accessing the chip through Bluetooth (HCI APIs). I have yet to reverse engineer the Broadcom proprietary FM/BT SW stack/API. I hope to do so, so I can address the majority of phones which run stock system software/ROMs. But even then I know I will have permissions issues on some devices. Without access to the manufacturer keys access to the FM APIs can be denied. The manufacturers/carriers seem to act as if FM device access is a security problem, which seems very silly to me.

One of my biggest problems is not the FM chips, but finding a way to enable FM audio paths. This can take weeks sometimes. Also, I'm continuing to try to find a solution for some Motorola devices to enable the antenna.

4. Do you think Android will ever natively support FM? Like windows mobile? Have you spoken with anyone over at Google about this?

I am not optimistic about this. Sony Ericsson was developing an FM API for I think at least around a year now. I'm not sure if it's cancelled or on hold given the recent troubles they've had. I haven't heard of a single device released that supports this device. I haven't heard any FM chip manufacturer say anything about this API. So I think it may be doomed, especially since the dominant Broadcom seems inclined to continue to keep their FM information closed, even as they release GPL code for the Bluetooth and WiFi portions of their combo chips.

There IS a standard Linux API for radio (and TV/video) called Video For Linux 2 (V4L2). Very few phones support this, although all 4 of the notable FM chip manufacturers for Android have V4L drivers. (With caveats; FM access must go through Bluetooth APIs for Broadcom and TI, unless hardware pins for I2C are usable.)

No I've never spoken with anyone at Google: Ever or about anything. There is almost no way of contacting anyone at Google and getting a reply for most things, even as a registered Market developer.

Google has specifically stated publicly over a year ago that they were doing nothing with FM, due to lack of developer resources. This was their response to the criticisms that the original Google Nexus One developer phone had working FM hardware, but no software. Google said they would leave it to "the community" to deal with FM and when MIUI and CyanogenMod created their FM app for the Nexus One on their ROMs, Google pointed to that as proof that "the community" could handle it.

This is the Google issue open on the topic: http://code.google.com/p/android/issues/detail?id=7073 . I've made a few comments there. As usual there is no further response from Google.

Market Questions;

1. Are you finding you app being downloaded more often now than in the past. I am thinking impact of a la carte data plans?

Download and sales rates are increasing, I think more due to other factors than changes to data plans. It's VERY clear however that MANY people want OTA radio because it does not require data; both for cost reasons and lack of reliable (or any) data service.

2. How many times has your Spirit FM radio app been downloaded? Do you keep stats on use pattern of users? Can you share anything about use patterns? 20 mins a day? etc.

Google dev console says: 163,452 total installs (users) and 25,585 active installs (devices). I think these stats would be much closer to each other if my app was able to run on most devices. As it is now I think most that try my app are unable to get it to work.

I don't collect such stats but have been considering it, both for my own use and possibly resale of the data. I think the stats would be similar to those who used FM on Walkman type devices and other portable radios.

3. Why do you think the OEMs disable the FM chip in the phones?

There is an excuse that Google and others have used that OTA is archaic and superseded by streaming. But I think the carriers desire to maximise their data plan profits is the main reason. Nobody in the chain makes notable income from OTA. Neither the OS creators, nor the carriers. The device and chip manufacturers/OEMs/ODMs etc. can increase income a bit for the feature, but ultimately they listen to their customers: the carriers.

Rumors have continued for years about Apple supporting FM on iPhone, including previous models that MAY have had the circuitry needed to support FM (which would imply intent) but nothing gets released. This despite Apple holding patents for the monetisation of OTA radio.

Both Apple and Google make money selling songs, and both concentrate on Internet/web based advertising. The carriers want streaming data revenues and I think this push may be getting worse. On the Galaxy S2, AT&T and T-Mobile have variants that don't have the dedicated Silicon Labs FM chip. I think they save a dollar or two omitting FM, in addition to selling data plans.

On phones with combination chips, the FM pins are often not connected, or are grounded. This DOES save some engineering costs and it may reduce the FCC or national equivalent certification costs.