SensorTag Displayer v1.1 live on the Mac App Store

So I’ve written a simple SensorTag application for Mac OS X.

Check it out in the Mac App Store here, its called SensorTag Displayer

I’m going to add some posts on this site with some source code for doing BLE on Mac OS X

O.

Posted in Uncategorized | 10 Comments

Android support !

So with the release of Android 4.3, BLE support has finally reached us !

Some apps have already begun to emerge.

The TI guys have added an application for the sensortag, you can find it here.

I got myself a Nexus 7 v2 and will be experimenting with it in the next couple of weeks.

O.

Posted in Uncategorized | Leave a comment

Updates from WWDC : iOS 7.0 !

So, I’ve been busy, but  I thought I should give a little update.

Apple annouced iOS 7.0, what does this mean for Bluetooth Smart ?

I watched their session and it seems that they are listening to developers and changed / added functionality that indeed looks good !

One thing I must say I’m happy with is : Finally we get rid of the CFUUIDRef used as the UUID of a device !!!

A new property called “identifier” is a new type and is also created upon first device discovery ! This makes handling devices which are only broadcasters possible without having to add device address to name and other “hacks”.

Be back with more on iOS 7.0 later, it’s gonna be good !

 

O.

Posted in News, Software | 1 Comment

Site moved !

Hi guys !

Site moved today !

Seems to be working :)

Ole A.

Posted in Uncategorized | 2 Comments

Page about CBPeripheral

Hi !

So I finally got around to writing some words about CBPeripheral, I hope it’s of some use to you all :)

Check it out in the “Howto’s and Guides” section.

Ole A.

Posted in Howto's and Guides, Software | Leave a comment

Working around the UUID problem in iOS 6.0

Hi !

So when I updated my devices to iOS 6.0 I started seeing random crashes on my apps.

The app would just crash without any warning, so I ran them in the xCode and found out that it crashed in the CFUUIDCreateString routing and that the UUID property of the peripheral was NULL.

What I found out after some research was that there was only some peripherals that crashed the app and also that the same peripherals that crashed the app on one iOS device, did not crash it on other devices.

I also saw that the application I was writing that connects to the device without showing the UUID would not crash, and that the device then could afterwards be used time and time again with the crashing apps !

My conclusion is that there is a problem with the UUID generation routine and that if one connects to the device, and then disconnects again, the device will never crash the app again.

So the workaround was simple :

When discovering devices :

In didDiscoverPeripheral run connectPeripheral.

Then when didConnectPeripheral callback is called, the UUID property is correct, and from there this device will always function on this iOS device.

I have entered this in a bug report to Apple, so we’ll se if they will fix it in their next maintenance release.

 

Ole

Posted in Uncategorized | 1 Comment

iOS 6.0 and BLE

So Apple finally released iOS 6.0, and it has gotten som big improvements to its BLE stack, there is also a bug I will write some about in it’s own post.

The improvements I’ve seen so far is :

  • Service scanning seems to be much faster than in iOS 5.1 the first time
  • Characteristic discovery also seems to be much faster the first time.
  • Services and characteristics are cached when disconnecting and reconnecting in the same CBCentralManager context.
  • Apple has added the possibility for the iOS device to be both Central and Peripheral !

The problems I’ve seen so far is :

  • First time discovery of a new device, the UUID in didDiscoverPeripheral is NULL, this makes many apps crash because they use the CFUUIDCreateString (Will write a post of how to work around this).
  • Disconnection of a device via the cancelPeripheralConnection does not disconnect the device immediately.

 

Ole

Posted in Uncategorized | 2 Comments

Long time no see

Hi !

I’ve been very long time since last update unfortunatly.

But now I’m back and hoping to update much, much more often :)

Ole

Posted in Uncategorized | 1 Comment

Update : HTC One X

I’m on vacation, but I got a lot of response and questions on how to get the HTC One X working so I decided to write a little post about it.

I have gotten it to work, without any modification or rooting, so thats GOOD :)

I have tested this with an app and together with the cc254x keyfob and it does work, I’m able to sound the proximity alert : high, low and off.

My HTC One X is the european version with the Tegra 3 chipset. This does NOT use the Broadcom chipset, and does not have any broadcom API’s on it. The bluetooth chipset on this phone is the TI Wilink.

Since I have some contacts in TI, I’ve have gotten hold of the JAR file needed for the API’s already in the phone SW. I cannot disclose any of the details of this yet, but when I get back to work again, I will talk to TI about possiblilty for getting this out.

I doubt this will work on the other phones, since the One V uses the Qualcomm Snapdragon platform I would believe that the Bluetooth radio is not TI.

 

O.

Posted in Uncategorized | 15 Comments

HTC One X !

Hi !

I got my brother in law to buy my excellent Samsung Galaxy S II so that I could get myself a BLE enabled Android phone to develop on too :)

I bought the HTC One X, it has Bluetooth 4.0 but has not been designated as “Bluetooth Smart Ready”.

I tested yesterday and got it to scan and find my devices in the bluetooth menu.

I also downloaded the “Broadcom Open BLE for android” and it seemed to work, I scanned and found the device with the correct name and so on, so it should work.

I’ll investigate further and get back :)

Meanwhile I’ve been very busy lately, but the article on CBPeripherial is in the writing, so it will come soon I promise :)

Ole A.

Posted in Uncategorized | 7 Comments