Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is Serial Port Profile (SPP) supported on iOS 7 over Bluetooth Low Energy (v4.0)?

Can I use Serial Port Profile (SPP) to communicate with iOS devices over Bluetooth Low Energy (v4.0) without the need for MFi Chip?

like image 647
user2548414 Avatar asked Jul 22 '13 18:07

user2548414


2 Answers

If you're designing something from scratch (rather than trying to interface to an existing SPP-enabled device), there is a possible solution.

Laird Technologies make a Bluetooth Low Energy Module (BL600), which can be loaded with a virtual serial port application. This creates a service which is similar to the SPP; at the remote end it can just be treated as a plain serial port (albeit rather low speed). You could roll your own service to do something similar on other devices.

It's not the most elegant solution, but seems to work okay, and far easier than trying to get MFi certification.

like image 108
user2205880 Avatar answered Oct 22 '22 05:10

user2205880


  1. If you cannot control the peripheral's protocol choice:

    • The Serial Port Profile (SPP) is still supported by Bluetooth 4.0. However, Bluetooth 4.0 Low Energy uses different pysical and link layer protocols that are not backwards compatible with older Bluetooth standards. Current iOS and Android devices use "dual mode" interfaces that support the backward compatible part of BT 4.0 and the Low Energy standard.

    • Bluetooth 4.0 Low Energy does not support SPP whereas regular Bluetooth 4.0 does!

    • I found a Cordova/Phonegap Plugin on GitHub that might serve as a source of inspiration for you. They advertise to support SPP on iOS and Android alike.

  2. If you are in control of the peripheral, i.e. you implement the peripheral's software:

    • Bluetooth 4.0 Low Energy communication makes use of the Generic ATTribute Protocol. Based on GATT there exist a number of profiles but no serial port profile.
    • The good news is that implementing your own proprietary serial port profile on iOS, Android and your device is fairly simple. The API instructions for your BTLE module/SoC should provide some examples for existing profiles.
    • As soon as you see how simple implementing your own profile is, you will probably choose to go for a more use case specific profile which will save you lots of power on your (battery powered?) peripheral.
like image 33
everclear Avatar answered Oct 22 '22 04:10

everclear