Bluetooth Bracelet Hacked

[Jeffery] hacked the Bluetooth standard in order to use this bracelet as a custom display. He took up our challenge to hack the device when we first saw it back in February.

In order to display his own messaged he looked into how the HFP is implemented in the Bluetooth stack. The details are shared in his readme file but it goes something like this: The Bluez package needs to be compiled with a dummy backend that is not phone-specific and that will then allow external manipulation of the data being sent. This provides something of an API that a Python script can manipulate. His proof-of-concept allows for the script to be called with the message you want displayed as the command line argument. This should be simple enough to incorporate for just about any purpose that suits your fancy. Unfortunately, messing with the Bluetooth package in this way makes it impossible to use other devices with your phone, but that’s a hack for another day.

25 thoughts on “Bluetooth Bracelet Hacked

  1. I’d love to see a smart phone navigation program that used two of these (one for each arm) which vibrated the direction and possibly told you the street name as you came to your turn.

  2. Hmm. I have a similar bluetooth bracelet that I’ve never used because it didn’t work with my phone – it has no display, it just vibrates, but when it’s paired to my phone I can’t answer or make calls and it doesn’t vibrate when I receive them either. Entirely useless. I’ve been wondering for a while if there was something I could hack it to do.

  3. i like this. finally, a jumpstart for my spy career.

    i didn’t check, but does the wristband know what devices it connects to? like, could a remote user send messages to multiple bands (even if they have to cycle through them because of bluetooth pairing) without the wristband needing to confirm each connection?

  4. clinton: The wristband I had I _believe_ required you to push a button on the band to connect. (though I haven’t seen the thing in almost a year, so I could be mistaken) So, you could cycle through several bands, but you’d have to press (or hack) that button on each connection. They also have a security code that needs to be entered on the connecting device, but that is hardwired into the band and I’m 99% sure that it’s the same for all of them.

  5. Urza9814:
    I don’t have the screen-less band, but the one I’m working with allows you to accept or reject the call with the button, or just pick up the handset to take a call. Does yours not work that way?
    clinton:
    The bands all use the same port, and (re)connection is not instantaneous, so you’d probably need multiple radios to make it practical. Also note that the range is quite short, so anything aside from a single user wearing it may not be useful.
    – Jeffery

  6. The Ffejery:
    I think my phone may have been too old – I _think_ what happened was it thought the wristband was a headset, and was trying to push the phone’s audio over the bluetooth connection. I could answer the call, but I couldn’t hear anything when I did.

  7. According to the Readme, this hack blocks using other HFP devices, but not ALL devices. That isn’t too terrible if you are using this on a computer, but would probably be a deal breaker if you were running it on a Linux smartphone.

    Still, he says this could be fixed with a little work. It would be interesting to see this developed a little more, have it turn into a fully functional BlueZ addon.

  8. Urza9814:
    Maybe your device is different. You are completely correct about the way it works, but the bracelet I have doesn’t have that issue, IIRC.
    MS3FGX:
    As I said in the readme, the issue is that I’m currently using a backend that does not include phone integration. If someone could patch the Maemo telephony backend to allow external access to the IndicateCall and CancelCall functionality, then it should be doable. This is not something that I can work on right now, but I’d welcome help.
    I intend to work on this more to provide a useful notification service for Maemo 5 – this was just a PoC demo. Speaking of, the script needs to be tweaked a bit.

  9. @Joe Hughes:

    Very nice work. I have been looking at OpenWatch since I got my Droid, and have had my eyes on the Sony watch for awhile now. I had no idea OpenWatch included an API for developing your own apps, that is very interesting, I will have to look into that.

  10. Oh, how I wish I was good at programming and hardware hacks… It would be fun to make this bluetooth bracelet work with my G1. My thoughts were to make it show a clock by default, and if I had a missed call, or new text it would display it on this screen, and for fun, I could make it display custom things.

    I’ll keep dreaming.

  11. flyordie2:
    I’ve heard that the new model from DX has a clock built in, but I haven’t confirmed it, and I can’t afford it just to find out. :P The thing is that the clock would have to be built into the firmware of the bracelet to work properly, especially since you would run down the battery in no time otherwise. Also, you need pretty low-level access to the bluetooth stack. If you can do that on Android, that’s awesome, but I don’t have an Android phone to check.

  12. I’ve noticed that $company has come out with one (or two?) new models, which sport a clock and a charge level indicator. They also appear to be LCD, rather than OLED. This makes me wonder how different the other hardware might be, and whether or not it’s more hackable… As I mentioned, the CSR chip in the model I was working with is a no-go as far as I’m concerned – even if I got access to the info I need, I’d be under an NDA /and/ have to fork out more than my tuition for some proprietary IDE. :/ (The ToS disallows using anything else with their sample code. Enforceable? No idea – but they know who I am, and I don’t really want to find out)
    Ideally I would like to get some bare-bones SPP firmware on something like this, so I could just bang bits at it with a rudimentary control set suited for message scrolling, and use the button as a generic input. Whether or not this is feasible on the more recent models, I have no idea. I’m not able to buy them, but if anyone is interested in them and wants me to send me one to take a poke at it, I’d be more than happy to do so. :)

  13. I just got the newest one, with the clock. It displays in military time and doesn’t show how to change it.
    I have mine paired with a blackberry 8300 curve and it will vibrate with calls only. How do I get this to work with SMS/texting or aim or anything else?
    That is what I really need it for.
    So far though for $30 it’s a great product. What they don’t tell you is (I have the black one) that is it a little big, but you can unhook the silicone strap and cut them shorter and recrimp them. Took me all of 10seconds and it fits much better now. Just don’t cut it too short.

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.