
Using the iPhone with External Devices and Adobe AIR
The iPhone SDK does not allow access to the bluetooth serial profile (SPP). This means that the iPhone can’t communicate with popular physical computing development platforms like arduino — making it difficult to use the iPhone as a medium for research in human-computer interaction.
One alternative is to enroll in the ‘made for iPhone’ program and install a special chip in your hardware, although the connectivity is still limited. Typically these sorts of programs have lots of red tape and cost $$$.
Regardless, the fundamental problem with the iPhone’s bluetooth barrier is not hardware. The iPhone comes with an incomplete ‘bluetooth stack.’ This ‘stack’ contains all of the files necessary for the various forms of bluetooth communication, and is missing the components necessary for serial communication (SPP) —required for using SPP based external devices such as cameras, audio equipment, or keyboards. In response, several projects have emerged to try and create a full bluetooth stack for the iPhone. They include:
iBluetooth Project
bluesn0w
sweetTooth (a GUI of bluesn0w)
reinforce labs
At the moment these options are only avaliable for the ‘jailbroken’ iPhone and offer no support. I can only hope that Apple gets its act together and creates a SPP bluetooth component for the iPhone so that I can develop iPhone devices for treatment of neuropsych populations.
The only piece of good news is that the Adobe Labs team that is releasing the new CS5 suite has developed the ‘Packager for iPhone’ that essentially converts you AIR application into ARM assembly code via ‘Just in Time Compilation.’ This gives you a truly native compiled iPhone application.
Now, if only the bluetooth stacks would talk to the AIR converted iPhone application, I could do anything. So, I contacted the Adobe developers and the response was “the iPhone SDK doesn’t even allow bluetooth access, how can we?!” Gah!
The plan is:
1. find out how to port the missing driver file into the bluetooth stack of a non-jailbroken iPhone. (is this possible?)
2. write a library for the new adobe air CS5 packager and get it to talk to the bluetooth.
