Lost my phone at the office. Claude suggested tracking Bluetooth signal strength
The Great Office Phone Hunt: How Claude and Bluetooth RSSI Saved the Day
Imagine the sudden spike of adrenaline when you reach into your pocket and find... nothing. I had managed to lose my smartphone somewhere within the sprawling confines of my office. While most people would rely on standard recovery tools, I decided to turn this into a technical challenge with the help of an AI.
🚨 The Crisis
Initially, I tried the obvious routes. I attempted to use the standard "Find My" service, but the GPS accuracy indoors is notoriously perfect abysmal. It told me I was "somewhere in the building," which is essentially the same as saying it's "somewhere on Earth."
"I need a way to know if I'm getting closer to the device in real-time, like a digital game of 'Hot or Cold'."
🤖 The AI Intervention
I turned to Claude for a creative solution. Instead of relying on GPS, Claude suggested leveraging Bluetooth signal strength. Specifically, we would track the RSSI (Received Signal Strength Indicator).
The Logic
The theory is simple: as you move closer to a Bluetooth transmitter, the signal strength increases (the number becomes less negative).
The Search Strategy:
- Identify the phone's unique MAC address.
- Run a script on a laptop to scan for that specific address.
- Monitor the RSSI value while walking.
- When the value peaks, you've found the phone.
🛠️ Technical Implementation
Before starting the hunt, I had to ensure my environment was ready.
Preparation Checklist
- Laptop with Bluetooth enabled
- Python installed
-
bleaklibrary installed (pip install bleak) - Phone's MAC address identified
The Math Behind the Signal
The relationship between the signal strength and distance isn't linear. It follows an inverse-square law, which can be roughly represented as:
Where:
- is the received power (RSSI).
- is the distance between the laptop and the phone.
- is the wavelength of the signal.
The "Hot or Cold" Script
Claude provided a Python script to automate the scanning process. Here is a simplified version of the logic used:
import asyncio
from bleak import BleakScanner
# The unique ID of the lost phone
TARGET_ADDRESS = "XX:XX:XX:XX:XX:XX"
async def find_my_phone():
print(f"Searching for {TARGET_ADDRESS}...")
while True:
devices = await BleakScanner.discover()
for d in devices:
if d.address == TARGET_ADDRESS:
print(f"Signal Strength (RSSI): {d.rssi} dBm")
await asyncio.sleep(1)
asyncio.run(find_my_phone())
📉 Interpreting the Data
As I walked through the office, I watched the rssi values fluctuate on my screen. I created a mental map of the signal strength:
| RSSI Value (dBm) | Proximity | Status |
|---|---|---|
| -90 to -100 | Very Far | ❄️ Freezing |
| -70 to -80 | Getting Closer | ☁️ Cool |
| -50 to -60 | Very Close | 🔥 Warm |
| -30 to -40 | Right Here | 🌋 Boiling |
🗺️ The Search Workflow
🏆 The Result
Following the "digital scent," I tracked the signal to a cluttered corner of the breakroom. The RSSI hit a peak of -35 dBm right next to a stack of old magazines and a stray cushion. I reached under the pile, and there it was—my phone, safely tucked away but completely silent.
Final Verdict: While "Find My" is great for finding a lost wallet in a park, for indoor precision, a bit of Python and some Bluetooth signal analysis is the way to go.