Dragonboard being Bluetooth 2.1 Client with SPP


#1

I have this nifty project where I need a high datarate to transmit all my sensor data from the Dragonboard to an Android phone, but I need my phone’s Wi-Fi for communication to the Internet. Bluetooth 4.0 is too slow. That leaves Bluetooth 2.1 Serial Port Profile (SPP). I have tried pairing the Dragonboard 410c with my Samsung Galaxy S5 and do not observe the SPP service available in the pairing screen. Is there a way to enable it? Or am I looking in the wrong place?


#2

Uhm… not really sure where you came up with bluetooth 4.0 being too slow… bluetooth protocol versions are cumulative. They implement all the features of previous versions, and add on new stuff.

You know that wifi can make multiple connections simultaneously, right? Also be aware that if you are operating your bluetooth and wifi on the same frequency (2.4 GHz), that bluetooth will pretty much murder your wifi. Especially on the dragonboard, which doesn’t seem to actually implement bt/wifi coex properly. I.e., if you are transferring data at a moderate to high rate over bluetooth on the dragonboard, it will pretty effectively kill any wifi communications in the area, unless that wifi is on a different frequency, like a 5 GHz.

I think your simplest bet is to use bluetooth 3.0 or higher with HS (wifi transport), since I think that btcoex won’t actually be needed there, and leaving it to the bt part of the software will simplify vs trying to convince the samsung to run two wifi connections simultaneously.

The difficult part about using two wifi connections would be that the UI on Android won’t permit it. You would have to do it from the commandline, and would need root.

Now let me ask you this; if your phone has a wifi connection to some AP for internet access, why not connect the dragonboard to that same AP and communicate through it over TCP?

To answer your question about SPP… the problem that you are running into is that one of the devices would have to advertise itself AS an SPP device. Two devices can’t just decide to talk over SPP, it just doesn’t work that way. So if you wanted to use SPP, you’d probably have to buy TWO of something like this, and wire them together;
https://www.adafruit.com/products/1588 – OR, one of those, and wire it into a USB-to-RS232 dongle plugged into the dragonboard, then the bluetooth connection will be handled by the samsung exclusively, which probably implements btcoex decently. No guarantees on the btcoex on the samsung though, they hire less than an infinite number of monkeys to do their coding for them, and do the coding in a finite amount of time.

Also be aware that SPP is SLOW. Like RS-232 slow, since its purpose is to emulate RS-232.