Wiki

Clone wiki

uBluetoothLe / Home

#Welcome

Let me know if you want something added, or there is something I have missed!

Current Issues

Click here for the current issues...

#Initial README

All of the Bluetooth Low Energy interaction is handled in the IBleBridge Interface. See the "IBleBridge.cs" file it is thoroughly commented in "StarTechPlus -> uBleBridge -> Scripts"...

The basic usage is to create a script and attach it to a GameObject. In that script instantiate an IBleBridge object then call the various IBleBridge functions with appropriate Action() callbacks to interact with Ble Devices. Add Debug.Log(..)'s to the examples in the various callbacks to see exactly what is happening...

Currently the plugin supports scanning and connecting to Peripheral devices and does not advertise as a Peripheral itself. This is currently in development however and should be released shortly hopefully around April 2019.

On iOS be sure to add the CoreBluetooth.framework to the Xcode project, then on successive build just Append to the project when asked by Unity...

There are two example Scenes one for controlling a Blue-Rx 16 channel servo controller and one for reading a TI SensorTag. There are README.txt files located with each example. "SensorTag.cs" and "BlueRx.cs" are also thoroughly commented...

If you have questions don't hesitate to email me, Jason Peterson. Also if you find a bug or improvement please let me know so I can keep the plugin updated!

Thanks!

For more info on Blue-Rx see:

For more information see: http://bitbucket.org/startechnologies/bluerx

To purchase a Blue-Rx goto: http://www.gigamint.com

For more info on the SensorTag (original version) see: http://www.ti.com/ww/en/wireless_connectivity/sensortag

Email: Jason Peterson jason@startechplus.com

#iOS

Apple has deprecated a few parts of the CoreBluetooth framework in iOS 5.0 with the release of iOS 7.1, given that iOS versions less than 7.1 are less then 4% of the market share see: https://david-smith.org/iosversionstats/ I have chosen to only support iOS 7.1 and above. If you need to support anything less then 7.1 then the calls in "UnityBleBridge.mm" will need to be modified accordingly. If you need to support both old and new versions then you are probably going to have to do run-time selection using "respondsToSelector:", if there is much interest in this let me know and I can help. This may be in vain however because Apple no longer accepts anything less than iOS 7.1 to the App Store...

#Android

...

#Device Specific Implementations

BLE has a very open and basic communication structure. Device communication is handled through "Characteristics" implemented by the device manufacture or firmware programmer. There is no "standard" or generic communication protocol like SPP (serial port protocol), each device is free to create and use Characteristics as it sees fit. As such the examples included in the package are just that, examples, they show how to implement the plugin for basic communication with the specific device. The examples are not complete device specific protocol stacks.

I can help as much as I can with your specific implementation but without your device it is very difficult to help with protocol questions. If you don't have a deadline and want to ship me your device with a prepaid return envelope I will implement an example for you and add it to the plugin and wiki. If you have a deadline or don't want the code released and want specific help with your device email me and we can make arrangements.

#Great BLE Overview https://learn.adafruit.com/introduction-to-bluetooth-low-energy/introduction

Updated