Starting at Bootloader V3.0 + App V3.10, IOIO can communicate with your Android device over Bluetooth connection. This is achieved simply by attaching a standard USB Bluetooth dongle to the board.
Not every possible dongle has been tested, and some are known not to work. However, most simple ones do work. Check this page for devices that have been reported to work.
An existing application code written to work over USB does not need to change to add Bluetooth support, if it is using the IOIOLib Application Framework. However, it will need to be re-built against the Bluetooth libraries according to the instructions below.
Note that Bluetooth is only supported on Android API level 7 ("2.1-update1") and higher.
If your IOIO is running old firmware that does not support Bluetooth, you can upgrade your firmware by following the instructions on this page.
This feature uses code from the btstack Open-Source Project. This is an excellent library, especially suited for embedded devices, which enabled delivery of this feature in a timely manner. Special thanks go to Matthias Ringwald, the owner of btstack, for his wonderful code and time spent on supporting this integration!
In order for an application to be able to identify your IOIO boards within range, they first need to be "paired" with your Android device. Pairing is a one-time process done per dongle. Once paired, your Android device is going to remember the specific dongle and will not require pairing again.
IOIO (xx:xx), where
xx:xxare the last 4 digits of your IOIO's address. If you have more than one IOIO, each one will have a different address, making it possible to distinguish between them. The address comes from the dongle and not from the IOIO, so if you swap two dongles, the addresses will go with the dongles and not with the IOIOs.
You will need to use IOIOLib V3.10 or higher (available from the Android Software column of the Downloads page). The IOIOLibAndroid library supports multiple connection channels in your application, but does not add Bluetooth functionality. In order to use Bluetooth, you need to also add the IOIOLibBT library to your application (from Eclipse: Project > Properties > Android > Add... > Choose IOIOLibBT after importing it to your workspace).
Then, you will need to add the BLUETOOTH permission to your application (edit your application's
AndroidManifest.xml file, in the "permissions" tab, add a
uses-permission and select android.permission.BLUETOOTH).
Simply open the application built as explained above. You can leave the Android device connected over USB to your development PC, thus read logcat output in real-time, debug the application, etc. The connection process may take a few seconds.
If you have Android version less than 10 (2.3.3), you may be required to enter the PIN (4545) connection after every time the IOIO is powered on. You may want to change when the IOIO gets connected / disconnected in your application, or prevent your Android from sleeping in such cases.
If you are having trouble with Bluetooth, here are some things you can do with your current hardware to fix the problem: