Request: Bluetooth LE support
Has anyone heard if they are considering putting some kind of Bluetooth LE support into Pythonista, perhaps like there is in techBASIC? I would really love to do some of the kinds of things described in Building iPhone and iPad Electronic Projects: Real-World Arduino, Sensor, and Bluetooth Low Energy Apps in techBASIC by Mike Westerfield, but I would much rather be able to work in Pythonista rather than in techBASIC!
The IOS Core Bluetooth framework (supports BLE) is pretty straightforward if you understand bluetooth. BLE is MUCH simpler than Bluetooth 1.0. I do a moderate amount of hobby bluetooth work with iOS and am willing to support such an effort in Python, including things like helping specify an easy to implement Python API (the core of the core.) I have about 10 cheap bluetooth devices some of which I would be willing to donate. Most of them come with open source xcode app code to talk to them. That's where I learned and is a good place to start. The Core framework is supported on OSX so I could prototype something up there if a Python expert could help me on how to do C based Python extensions on the Mac. Heck if I googled it I'd probably discover someone has already done an OSX BLE wrapper.
(Just did. https://gist.github.com/jeamland/11284662 might do it. I'll try it in my copious free time. ;-) Cool. Apple apparently supports MIDI via BLE. I'll keep searching.)
Several chip companies are going in big time hoping to cash in on Internet Of Things growth with BLE. You can now buy a variety of very low cost boards which have a microprocessor, BLE support and a couple of i/o pins and I2c ports to connect sensors. By low cost I mean around $5. TI has a chip family with embedded 8051 that seems lowest cost. Nordic semi sells a BLE chip for slightly more which has an embedded ARM M0. That one will run Arduino ARM code (google RFDuino for one development board.) Even though TI chips are cheaper they require $2000 compiler to do anything more than the simplest app. The Nordic is gcc based. Python wouldn't care. Interface is the same. In the air BLE is BLE. Many development boards available in $10-$100 range. Coding in Arduino on the BLE device and Python on the iOS would be perfect for me. Raspberry PI mentioned above is too big and uses too much power. These things are tiny and run a year on little watch batteries.
OMZ was right. numpy/ui etc support was much more important but BLE is much simpler and percolates to top priority about now.
Probably the best cheap Bluetooth thingie to use for API development is the TI CC2541 SensorTag. It is a $25 reference design provided by TI and sold by all the standard hardware sources (DigiKey, Mouser etc.) Looks like a keychain fob. I take the board out and carry it in my wallet. TI built in a bunch of cheap I2C sensors so it does something useful out of the box. It doesn't exercise all of BLE but probably enough to test what most Pythonista users want to play with. Can't beat the price and I'm willing to donate mine so it is even cheaper. I'm moving to the Nordic ARM devices so I can put my own code on the device.
Built in sensors:
IR temperature Sensor
Since it comes with open source (but free app store downloadable) apps that gives a reference to test against and example software methodology to copy.
(Did I mention that BLE junks the stupid defective Bluetooth Pairing process? One of the many needed simplifications that came in BLE.)
I just picked up a ti sensor tag to play with the RPi. Would love BLE in pythonista.
I've been playing with the nRF8001 on an Adafruit breakout board (http://www.adafruit.com/product/1697). Given that BLE devices don't need to go through Apple certification, this opens to door to a tremendous range of hardware connectivity apps. Using this breakout, an Arduino (or really any microcontroller) based design can become iOS app enabled with surprisingly little effort.
It turns out that since the iOS simulator doesn't simulate the Bluetooth API stack, testing connectivity and protocols is fairly onerous using the standard XCode toolchain. I've been using TechBasic's BLE API support to rapidly iterate on the app-to-device communication layer.
Still, TechBasic's weak (nonexistent) code modularity, basic editor, and generally primitive language/library capabilities are quite limiting compared to the Pythonista environment.
Getting access to the BLE API from Pythonista would open the door to a huge range of uses.
+1 please add support for BLE.
@blark, Great news for you... Read about the
cb(core bluetooth) module that is in the current Beta release of Pythonista http://omz-forums.appspot.com/pythonista/post/5792132698734592