Bluetooth module to have microcontroller communicate with Android phone

androidarduinoavrbluetoothcommunication

Found couple of fairly inexpensive Bluetooth modules based on CSR chipset that do Bluetooth 2.1 + EDR, and connect to uC over TTL, however the cheaper variety supports only "slave mode", which the more expensive (almost double the price) variety supports user selectable "slave" or "master" modes.

My use case is to transfer information (bi-directionally) between a uC performing data-logging and an Android phone. Preferably, a pairing should be done once, or very infrequently. Following that, a connection should be established automatically, everything Android phone and the uC+BT-module are in range. Once connected, I'd like an application on Android to pull the data from the uC, and send back few commands, s.a. clear the SD-card, place "read-time" and "reader-signature" in a access-log on the uC.

I've read somebit about Bluetooth, but probably not enough. My present challenge is to know for sure, if a "slave" module will serve my purpose, or I should go for one which can switch to "master" mode, as an option.

Also, wondering if the module should be able to support RFCOMM and SPP, or is it that RFCOMM alone would suffice?

Best Answer

I know this is an old thread, but it might still deserve some attention...

Bluetooth on Android is mainly used for connecting to wireless headsets. Wireless headsets are slave (not master) devices. This means you'll be able to connect to your slave-only cheap-o Bluetooth module. In fact, I have one of those modules ($6 on Ebay), and I just successfully paired with it from my Nexus S.

It also seems like you can program your Android phone to do anything you want with a Bluetooth link (see this question on StackOverflow for instance). The slave-only Bluetooth module should be sufficient for your needs: you do not need Master mode to transfer data bi-directionally.