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.
adding RSSI might only work on newer devices, since classic pebbles are just Bluetooth and Bluetooth le
I don’t follow. It’s extremely unlikely that the actual hardware doesn’t give you RSSI.
Hopefully the EU goes after Apple for having APIs that only their own watch can use, since it’s anticompetitive.
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:
-
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
-
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.
-
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.
-



