[Android Software/Hacking General [Developers Only]] mikereidis:
Preface

Hi ! :)

In my reading of various threads it's become apparent that there are MANY people who passionately

desire a "real FM radio" app. Not all of us live in data dense areas, or can afford the costs of

streaming audio. And not all of us have given up on RF broadcasts, either due to our tastes,

local available programming, lack of commercials or whatever. And many of us very much desire

the ability to transmit on the FM band for various reasons.

I want this thread to deal with TI FM radios on all devices that contain TI chips. My observation is that

there is a great deal of commonality in the TI chips supporting FM in the last 4-6 years.

I don't generally want to deal with the Broadcom FM chips here, but the audio routing issues will be similar.

I also WOULD like to create a list of devices containing the FM chips they use, so people can more quickly

determine their FM chip type.

To non-devs who want FM yesterday: Yes, I know. No need to post about it. I'll do my best to create some

kind of app ASAP, but first some fundamentals need to be figured out. I'd think and hope that others will also

be able to create FM radio apps from the info here and elsewhere.

This thread is in a developer forum, and as such it would be preferable to limit discussion to technical

aspects, preferrably by those who are developers or thereabouts in terms of technical skills. It's hard

work sometimes to slog through near 100 page threads such as the one for the Nexus One FM radio.

If you have simple questions, comments, requests, corrections or additions to this, please consider

PMing me directly and I'll do my best to incorporate that into the thread, giving acknowledgement

if you so desire.

That said, I've posted FM Receiver and FM Transmitter scripts below. If you feel you have a reasonable

capability to try these scripts on your device, please do, and report here or via PM on success or failure

if you might be among the first few to try these on your device/model.

I will try to keep these first posts updated with the latest information, so hopefully you won't need to post

questions about whether or not your device works by referring to the "Devices" post.

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

Introduction

I've enabled the FM radio functions on my HTC Legend. It is also known to work on HTC Tattoo.

Scouring the web looking for the magic incantations to enable FM audio I'm finding myself overwhelmed with all the things I don't know.

Much of the information needed is kept under wraps by TI and their customers. To get TI's information requires signing an NDA,

and perhaps other legal documents. Signing such an NDA limits how much you can say publicly, and I'd prefer to not be under

such constraints. I'm not even sure if an NDA would be sufficient for a person not employed by TI or a TI customer.

Thus this thread, to share with you the information I've found, and to ask for your help in correcting it or adding to it.

If there is any similar thread on any site, that is TI specific, but not device model specific, please let me know.

I've seen and read through a number of mega-threads here and elsewhere that are device specific, but much of the information

contained therein is useful for all devices with TI FM chips.

The chips in question are usually named: WL1271, WL1273, WL1281 and WL1283. The first two have WF + BT + FM and the latter two add GPS.

TI also calls these WiLink or BlueLink 5.0, 6.0 and 7.0, as well as BRF6300, BRF6350 and BL6450.

TI also sells various evaluation boards carrying these chips, and some TI partners produce modules, sometimes with similar numbers.

AFAICT there is no FM functionality in some of the predecessor chips such as the WiLink 4.0 chips: BRF6100 (WL1251) & BRF6150 (WL1253).

Just so you better know my knowledge level:

- I'm new to Android, smartphones and post 1995 PDAs, although I've read some on these subjects over the years.

I'm diving straight in to learn as much as I can as quickly as I can. I'm not currently employed but hope to

transition myself to what appears to be the rapidly expanding Android world.

- I've worked in software development on "semi-embedded" Linux VOIP and security appliances since 1997, with a good bit

of low level kernel/driver stuff. Not much low level stuff recently, mostly daemons and command line utilities.

At home I've recently worked on a home Asterisk VOIP box and MythTv and XBMC based HTPCs. I also manage the 5 Ubuntu

PCs our family uses, as well as one lonely 5 year old HP WinXp tablet. :)

- My background in electronics and computing goes back to the mid 1970's with 8080 and SCMP. I designed and built a variety

of computer, electronics and even RF devices in those days, and can still wield a mean soldering pencil when needed. :)

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

Here is some information about which chips being discussed here. Note that the terms BlueLink and WiLink can be somewhat confusing as some chips are both.

TI's Wireless Connectivity Solutions page:

http://focus.ti.com/general/docs/wt...lateId=6123&navigationId=12493&contentId=4637

Note at left that GPS (NaviLink), Bluetooth (BlueLink) and Wireless (WiLink) are represented.

FM radio seems to be the neglected "step child" that gets little mention or notice.

It's a small add-on feature that just happens to come along with Bluetooth sometimes, if at all.

Generally, the WiFi, BT, FM and GPS components in these multi-function chips tend to be independent of each other.

They can be powered up or down individually and usually have seperate control paths. They are called "IP"s, eg.

the WiFi IP or BT IP. I haven't yet determined what IP stands for, LOL.

FM is the exception though; it seems to piggyback on the BT IP. To power up FM you must first power up BT

(although some doc implied BT can then be powered down). FM has it's own I2C control path, but that is usually

not used, in favor of sharing the BT HCI interface.

Some docs I've read discourage the use of FM. Perhaps it can cause issues ?

Note that some of these chips may indicate support for Wireless-N, but that doesn't mean the device manufacturer

enabled it in their stack etc. It might be possible to enable N, perhaps with different Wireless firmware or init

scripts. While an interesting prospect, despite the expectation of vastly increased battery consumption, I don't

want to get into the Wireless issues, except as they might impact FM.

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

Predecessor single function products upon which the later integrated products are based:

2004: BRF6100 / BRF6150 = BT only

http://focus.ti.com/pdfs/wtbu/TI_brf6100_6150.pdf

2005: WiLink 4.0 mWLAN (WL1251 and WL1253) = WF only

WL1251 = 802.11 b/g/e/i/d/k

WL1253 = 802.11 a/b/g/e/i/d/k/h/j

http://focus.ti.com/pdfs/wtbu/wl1251_1253_prod_bulletin.pdf

2005: BlueLink 5.0 BRF6300 = BT only

http://focus.ti.com/pdfs/wtbu/ti_bluelink_5_brf6300.pdf

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

Combined products. All seem to support FM Rx and Tx:

2007: BlueLink 6.0 BRF6350 = BT + FM

http://focus.ti.com/pdfs/wtbu/ti_bluelink_6_brf6350.pdf

200?: WiLink 5.0 = WiLink 4.0 mWLAN + BlueLink 6.0 = WF + BT + FM

http://focus.ti.com/general/docs/wt...ateId=6123&navigationId=12661&contentId=15402

2010: WiLink 6.0 = WF + BT + FM (Bluetooth (2.1?) Low Energy Specification 4.0 + EDR)

WL1271 = 802.11 b/g/n (2.4 GHz)

WL1273 = 802.11 a/b/g/n (2.4 & 5 GHz)

http://www.ti.com/lit/swmt013

2010.1: BlueLink / WiLink 7.0 BL6450 = BT 2.1 (+EDR) + FM (No WF)

http://focus.ti.com/pdfs/wtbu/BlueLink7_BL6450_swmt014d.pdf

2010.2: WiLink 7.0 = WF + BT + FM + GPS

WL1281 / WL1283 = 802.11 a/b/g/n + BT 3.0 + FM + GPS 3GPP

http://focus.ti.com/pdfs/wtbu/WiLink7_WL1283_swmt016.pdf