BLEShark Nano · product photo. The project visuals below are AI-prepared illustrations based on my original screenshots.

The problem

BLE advertisements reveal only part of a device’s behavior, and raw Wi-Fi signal measurements need interpretation before they become useful observations. I wanted to move beyond discovery and understand the data exposed by my test devices.

The solution

I built two Rust-based tools with the BLEShark Nano SDK: a GATT inspector to examine services, characteristics, and readable values, and a motion-detection experiment that analyzes short-term variation in Wi-Fi RSSI. The lab notes below document the setup, results, and limitations.

The idea

Learn what Bluetooth Low Energy devices expose, and turn raw observations into a useful lab notebook.

On the workbench

I’ve been experimenting with the BLEShark Nano and its Rust SDK, inspecting GATT services and characteristics and working through connection and address-type behavior.

What I’m documenting

Device services and characteristic values
SDK experiments and connection troubleshooting
Questions to investigate in controlled lab tests

Next steps

Keep recording reproducible observations and develop small scripts for my own test devices.

01 / PROJECT

Wi-Fi motion detection with RSSI

I built a small Rust-based motion detector using the BLEShark Nano SDK. It monitors the RSSI of a fixed 2.4 GHz Wi-Fi access point and uses short-term signal variation to distinguish stable conditions from movement.

How it works

Wi-Fi access point → RSSI samples → rolling standard deviation → motion score → STABLE / MOTION / HIGH MOTION.

What I observed

In the experiment documented in my screenshots, RSSI standard deviation stayed around 0.5–1.1 under stable conditions and rose to approximately 1.9–2.9 when someone moved through the RF path. These are observations from this setup, rather than universal motion thresholds.

02 / PROJECT

Rust BLE & GATT inspector

I wrote a custom Rust script using the BLEShark Nano SDK from InfiShark Technologies to inspect Bluetooth Low Energy devices at the GATT/protocol level.

From discovery to inspection

Rank scan results by RSSI, connectability, and advertised services.
Use the correct BLE address type when connecting to a selected device.
Enumerate GATT services and characteristics, decode standard UUIDs, and inspect raw values.
Identify READ, WRITE, NOTIFY, and INDICATE properties and monitor notification channels.

Results from the screenshots

A 15-second active scan reported 275 unique BLE addresses; that does not necessarily mean 275 physical devices. A selected Buds2 Pro connection used a random address type and returned 15 GATT services.

The output includes Battery Service (0x180F) and Battery Level (0x2A19), with a raw hexadecimal value of 0x63 decoded as 99%. Another battery read timed out, which is also shown in the adapted visual. Finding a service or characteristic does not by itself establish access to every operation it advertises.