Skip to content
HID service implementation for mbed's BLE API
Branch: master
Clone or download
jpbrucker Version 0.4
This commit only fixes examples (and enables Windows 10 support), no
change to the library.
Latest commit fc15164 Apr 4, 2016

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.


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.
You can’t perform that action at this time.