Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-83363

BLE notifications not working with broken AT-09/HM-10 modules

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reported
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.9, 5.12.0
    • Fix Version/s: None
    • Labels:
      None
    • Platform/s:
      Linux/Other display system

      Description

      Qt's Bluetooth library does not forward notifications on unknown handles on economic AT-09/HM-10 modules (https://medium.com/@yostane/using-the-at-09-ble-module-with-the-arduino-3bc7d5cb0ac2) equipped with a somewhat broken firmware.

      The problem has been raised in various forum posts: https://www.qtcentre.org/printthread.php?t=65959&pp=20&page=1, https://forum.qt.io/topic/75559/ble-notification

      Basically these modules expose the read, write and notification feature on a single BLE characteristic with handle 35 (0x23) but in the end they send it over a "virtual not-announced" characteristic with handle 53 (0x35).

      Considering the source code (qlowenergycontroller_bluez.cpp, https://github.com/RSATom/Qt/blob/master/qtconnectivity/src/bluetooth/qlowenergycontroller_bluez.cpp#L1832) line 1845 would yield the announced characteristic with the lower handle (since the check is actual handle >= characteristics handle).

      But in line 1846 we have if (ch.isValid() && ch.handle() == changedHandle) { where the check is done stricter (handle == characteristics handle) and the notification gets bailed out.

      So I would suggest to drop this second if clause to make also these broken modules work, since they are very common and obtaining a firmware upgrade is mostly improbable.

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            ablasche Alex Blasche
            Reporter:
            mdw Matthias Wallnoefer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:

                Gerrit Reviews

                There are no open Gerrit changes