Just wanted to share an idea I had, in order to hope that another developer learns from my lessons, and hopefully either finds a work around or a better solution to this problem.

I wanted to find out if it was possible to locate your iPhone from your watch based on the latency of Bluetooth messages, since RSSI (signal strength) isn’t available. I made a simple app, and started sending messages back and forth between my phone and app.

After much testing, the conclusion is no. Mostly because Bluetooth is amazing and the average latency for a message is 58-62ms. And because as Erik pointed out… apple just sucks.

I am hopeful PebbleOS can be updated to see RSSI or the app can expose the notification api to the PebbleKit JS.

If anyone want me to publish my code, let me know.

The raw data is here if you want to see it: https://docs.google.com/spreadsheets/d/1Yr5XX0CXh5TifsnW3yOp10ZoaA_xx0q189f_fG8rMTU/edit?usp=sharing

  • Yeah I could have told you this wasn’t going to work. You need latency measurements accurate to the order of a nanosecond. There are way too many things in-between that have variance on the order of microseconds or more, especially thread scheduling.

    You need hardware support for something like this to work, as in WiFi RTT.

    Isn’t PebbleOS open source? I’d probably make a patch to add RSSI support to the OS.

    • Yes Pebble OS is now open source, however I think adding RSSI might only work on newer devices, since classic pebbles are just Bluetooth and Bluetooth le. Though they may have Bluetooth le as a part of pairing?

      Still a fun experiment and a good way to see why Bluetooth headphones actually are as reliable as they are.

        • If I am right I don’t think Pebble watches has Bluetooth LE, it has the ability to broadcast itself but once connected uses Bluetooth. The OS doesn’t expose LE so I don’t think getting the signal strength is possible

          • RSSI just means Received Signal Strength Indicator. Any radio system can provide it - it’s not specific to BLE.

            Bluetooth classic can provide RSSI too. Maybe the OS doesn’t expose currently it but that’s why I was suggesting modifying the OS. The only difficulty might be if the drivers are closed source, but worth a look I reckon!

  • Is there something that is in apples available api that makes sound that breaks through silent mode? Maybe an alarm or something that could be triggered from pebble watch? It wouldn’t lead you to a thief with your phone but maybe a fine replacement for dinging your phone lost in your couch.

    • The issue is:

      1. PebbleKit JS - doesn’t have access to the sound or vibration motor on iOS. Since Apple blocks that functionality unless it’s directly interacted with via the user

      2. PebbleKit iOS - Might pull it off but you’ll need a separate app on the App Store, however the Pebble watches are just Bluetooth so no guarantee that you’ll get a reading.

      3. iOS Apps are $100/year to keep up, and for that functionality… not worth it.

      There are already apps which do this on Android and works without issue.