Turning A Pi Into An IBeacon


Nowadays, if you want to ‘check in with Foursquare’ at your local laundromat, deli, or gas station, you need to take out your phone and manually ‘check in with Foursquare’. It’s like we’re living in the stone age. iBeacon, Apple’s NFC competitor that operates over Bluetooth 4.0 changes all that. iBeacon can automatically notify both iOS and Android users of where they are. [Kevin Townsend] over at Adafruit came up with a tutorial that turns a Raspberry Pi into an iBeacon, perfect for telling you that you’re somewhere in the proximity of a Raspberry Pi, and some other cool stuff too.

The iBeacon protocol is actually very simple. Basically, the only thing the iBeacon transmits is a 128-bit company/entity value, and an optional major and minor values (to differentiate between locations and nodes within locations, respectively). After plugging in a Bluetooth 4.0 USB dongle into the Pi, it’s a simple matter of installing BlueZ and entering the iBeacon data.

iBeacon by itself doesn’t really do anything – the heavy lifting of figuring out exactly which Panera Bread or Starbucks you’re in is left to the apps on your phone. If you’re a mobile developer, though, this is a great way to set up a very useful testing rig.

13 thoughts on “Turning A Pi Into An IBeacon

    1. Not if you’re providing the software on the phone too…

      Typical use case would be iBeacons strewn round a supermarket, and the Walmart app then tells you where you are, where special offers are etc.

      Retail geolocating is going to be big…

    2. !00% correct. Apple had a good idea, but locked it up under a subscription service so normal people cant use it the bacon can not send any information, you have to pay apple several hundred a month to have your beacon to actually show up with meaningful info.

      1. Based on what? There is no subscription service at work here. It just requires an app that will respond to the beacon’s ID. These apps can be on ios or android. Beacons just advertise their ID via Bluetooth Low-Energy; that’s the size restriction, straight from the standard as part of BLE’s proximity profile.

        The expectation is that apps respond to the identifier and then continue the interaction online, not via the bluetooth device.

    1. I see this being really useful on a router running OpenWrt or DD-WRT. If you have wifi anyway you might as well just plug a BT Dongle into your router.
      Of course one of these would work as well http://www.amazon.com/New-Media-sharing-device-black-POGOP21/dp/B005FNDJHS/ref=pd_sim_e_4
      Or if a network connection is not needed one of these. http://www.kickstarter.com/projects/kytelabs/bleduino-bluetooth-40-ble-made-easy-arduino-compat
      On a Pi? Well it makes development and testing really easy. You could use a Pi for a WAP or router if you really wanted to but the network connection will be slow.

  1. Remember: when logging your position with any app KEEP YOUR PERSONAL INFORMATION PERSONAL. If you’re writing “LOL going on vacation in the Bahamas for a week”, or if you check into a hotel out of town; you risk coming home to a cleaned apartment and a note signed “kthx for notifying us, love thieves”. Happened to a guy i knew at a dorm. He went to Finland for a week and wrote it on his public facebook profile :)

  2. Ironic how many folks complain about the “invasion of privacy” of modern technology.
    Yet, they blabber everything about their personal lives to the world (and sometimes
    even PAY services to give them that venue to air their details!).

    No one probably saw this clip, but in the sitcom “Melissa & Joey”, one of the kids
    was calling the 80’s “the stone age, how did you live back then?”.. and Joey made
    an insightful comment “oh when we had some useless piece of information – guess

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.