Human Interface Device (HID) is a standard that defines the format used to communicate human inputs to a computer. It was originally created for USB keyboards, mice, joysticks, digitizers, audio controllers and so on.
You can use the HID Over GATT Profile (HOGP) to send HID information over Bluetooth Low Energy, using the same data format as USB HID.
Warning: this is not the same as the HID profile used on Classic Bluetooth.
This repository contains the HID Service implementation, example code, and various documentation.
BLE_HID/HIDServiceBase.*
: the HID Service implementation; requires BLE_API.BLE_HID/KeyboardService.h
: an example use of HIDServiceBase, which sends Keycode reports.BLE_HID/MouseService.h
: a service that sends mouse events: linear speed along X/Y axis, scroll speed and clicks.BLE_HID/JoystickService.h
: a service that sends joystick events: moves along X/Y/Z axis, rotation around X, and buttons.examples/keyboard_stream.cpp
: an example use of KeyboardService, which sends strings through a series of HID reports.examples/mouse_scroll.cpp
: an example use of MouseService, which sends scroll reports.
- doc/HID: introduction to the USB HID specification, and to the parts that are reused in BLE.
- doc/HIDService: description of the BLE HID service, and how to use this implementation.