> For the complete documentation index, see [llms.txt](https://docs.tryterra.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tryterra.co/help-center/help-topics/data-api-sdk/realtime-streaming-and-ble/ble-realtime-supported-devices.md).

# Why does BLE realtime throw 'no supported characteristics'?

Real-time BLE streaming **only works with devices that broadcast over a recognised standard BLE characteristic** (for example heart rate). Watches that don't advertise BLE HR broadcasting report `no supported characteristics`, and many budget wearables don't support third-party BLE streaming, so check the [supported integrations](https://docs.tryterra.co/reference/streaming-api/supported-integrations) list first.

Supported devices include Polar straps/sensors, Garmin watches with HR broadcasting plus an HRM strap, Wahoo TICKR, WHOOP 4.0, Xiaomi Band 5/6, Suunto and MyZone belts.

To get a stream working:

{% stepper %}
{% step %}
**Pair the device in the phone's Bluetooth settings first.**
{% endstep %}

{% step %}
Pass an explicit `dataTypes` set (e.g. heart rate) to `startRealtime`.
{% endstep %}

{% step %}
Avoid overlapping `startDeviceScan` and `startRealtimeToApp` calls. Add a state guard or a short delay.
{% endstep %}
{% endstepper %}

If data still doesn't arrive, the device likely doesn't support BLE streaming. See [connecting a wearable to the SDK](https://docs.tryterra.co/streaming-api/connect-wearable-to-sdk).
