jonathanwiesel
jonathanwiesel

Reputation: 1034

Creating iBeacon services in Raspberry Pi

I've been struggling a lot with Bluetooth LE for a while, I could successfully turn a Raspberry Pi into an iBeacon following one of the many tutorials online that involves using Bluez stack.

However I noticed, when testing the iBeacon with iOS apps available in the App Store, that I could connect to the iBeacons and request their services (or at least that's what some apps intended).

My intention is to broadcast a message, let's say 'Hello World', so I can see it in a custom iOS app; however since iBeacons advertise only location data based on a UUID profile I got stuck.

Based on the behaviour from the iBeacon apps mentioned above, they seem to try to read the iBeacon's services, I was thinking that maybe I can make a service in my iBeacon that can contain the message I want to broadcast so when the iOS app reads the service's description/characteristics there could be the message.

I don't know if what I'm saying it's a complete nonsense, but if it's actually possible I would like to know how to make said services in my Raspberry Pi.

Upvotes: 3

Views: 860

Answers (1)

davidgyoung
davidgyoung

Reputation: 64941

What you are describing should be possible, but it would be a custom beacon implementation and would not be a true iBeacon -- iBeacons do not report service characteristics or send anything other than their three part identifier. It's totally fine to make a custom Bluetooth LE beacon, just understand that it won't work with iOS CoreLocation APIs, but will with its CoreBluetooth APIs.

You'll need to learn a bit how program BlueZ on Linux to do this, so you can make a real service with defined characteristics.

Upvotes: 4

Related Questions