Heerkog / MicroPythonBLEHID

Human Interface Device (HID) over Bluetooth Low Energy (BLE) GATT library for MicroPython.
GNU General Public License v3.0
204 stars 28 forks source link

BLE keyboard (ESP32) sends repeating of keys after a single key due to gatts_notify( ) #13

Open vsupacha opened 1 year ago

vsupacha commented 1 year ago

Error scenario: MicroPython v1.19.1 for ESP32. async keyboard example. A single key causes non-stop repeating of keys. Defect is found to be the calling of self._ble.gatts_notify(self.conn_handle, self.h_rep, state) in notify_hid_report( ).

Preliminary fix Call Keyboard.set_keys( ) without arguments, followed by Keyboard.notify_hid_report( ) after the original code.

Heerkog commented 1 year ago

A single key causes non-stop repeating of keys.

Is the key pressed (i.e., pushed down and released) or held (i.e., continuously pushed down)?

vsupacha commented 1 year ago

The key was pressed and released. So I expect that the update in the bluetooth module may break the previous behavior.

BTW, thanks for your code. The module helps me a lot in order to make a game controller for a PC web game.

Heerkog commented 1 year ago

The key was pressed and released. So I expect that the update in the bluetooth module may break the previous behavior.

Do you have a source for this update? I don't see changes in the documentation.

BTW, thanks for your code. The module helps me a lot in order to make a game controller for a PC web game.

I'm glad my code could help you! Appreciate the feedback!