HID Radial Controller device helper library

  • Author(s): Dan Halbert

Implementation Notes


At the minimum, a radial controller is a rotary encoder plus a switch.

Documentation is available from Microsoft:

Software and Dependencies:

class adafruit_radial_controller.RadialController(devices)

Send Radial Controller HID reports.

Create a RadialController object that will send Radial Controller HID reports.

Devices can be a list of devices that includes a keyboard device or a keyboard device itself. A device is any object that implements send_report(), usage_page and usage.


Press and release the button.


Press the button.


Release the button.


Set relative rotation value, in tenths of a degree. A value of +/- 1 or 10 can be too small and cause tool selection or scrolling to not work. +/- 100 is a good value for a single increment in many cases, though it causes value sliders to change by 10 instead of 1.


  • Author(s): Dan Halbert

The radial controller report descriptor used is described by Microsoft here.

adafruit_radial_controller.device.device(report_id: int) usb_hid.Device

Create a usb_hid.Device for a radial controller.


report_id (int) – The report ID to use for the device.