Human Interface Device over Bluetooth Low Energy
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.
Content
This repository contains the HID Service implementation, example code, and
various documentation.
Code
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.
Documentation
- 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.