Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
USBHIDCTL(1)		FreeBSD	General	Commands Manual		  USBHIDCTL(1)

     usbhidctl -- manipulate USB HID devices

     usbhidctl -f device [-t table] [-alv]
     usbhidctl -f device [-t table] [-v] -r
     usbhidctl -f device [-t table] [-lnv] name	...
     usbhidctl -f device [-t table] -w name=value ...

     usbhidctl can be used to output or	modify the state of a USB HID (Human
     Interface Device).	 If a list of items is present on the command line,
     then usbhidctl prints the current value of	those items for	the specified
     device.  If the -w	flag is	specified usbhidctl attempts to	set the	speci-
     fied items	to the given values.

     The options are as	follows:

     -a	     Show all items and	their current values.  This option fails if
	     the device	does not support the GET_REPORT	command.  This is the
	     default, if no parameters other than -f are given to usbhidctl.

     -f	device
	     Specify a path name for the device	to operate on.	If device is
	     numeric, it is taken to be	the USB	HID device number.  If it is a
	     relative path, it is taken	to be the name of the device under
	     /dev.  An absolute	path is	taken to be the	literal	device path-

     -l	     Loop and dump the device data every time it changes.  Only	'in-
	     put' items	are displayed in this mode.

     -n	     Suppress printing of the item name	when querying specific items.
	     Only output the current value.

     -r	     Dump the USB HID report descriptor.

     -t	table
	     Specify a path name for the HID usage table file.

     -v	     Be	verbose.  Repeating this option	increases verbosity.

     -w	     Change item values.  Only 'output'	and 'feature' kinds can	be set
	     with this option.

     usbhidctl parses the names	of items specified on the command line against
     the human interface items reported	by the USB device.  Each human inter-
     face item is mapped from its native form to a human readable name,	using
     the HID usage table file.	Command	line items are compared	with the gen-
     erated item names,	and the	USB HID	device is operated on when a match is

     Each human	interface item is named	by the "page" it appears in, the
     "usage" within that page, and the list of "collections" containing	the
     item.  Each collection in turn is also identified by page,	and the	usage
     within that page.

     On	the usbhidctl command line the page name is separated from the usage
     name with the character `:'.  The collections are separated by the	char-
     acter `.'.

     As	an alternative notation	in items on the	command	line, the native nu-
     meric value for the page name or usage can	be used	instead	of the full
     human readable page name or usage name.  Numeric values can be specified
     in	decimal, octal or hexadecimal.

     /usr/share/misc/usb_hid_usages  The default HID usage table.

     On	a standard USB mouse the item


     reflects the current status of button 2.  The "button 2" item is encapsu-
     lated within two collections, the "Mouse" collection in the "Generic
     Desktop" page, and	the "Pointer" collection in the	"Generic Desktop"
     page.  The	item itself is the usage "Button_2" in the "Button" page.

     An	item can generally be named by omitting	one or more of the page	names.
     For example the "button 2"	item would usually just	be referred to on the
     command line as:

	   $ usbhidctl -f /dev/wsmouse0	Mouse.Pointer.Button_2

     Items can also be named by	referring to parts of the item name with the
     numeric representation of the native HID usage identifiers.  This is most
     useful when items are missing from	the HID	usage table.  The page identi-
     fier for the "Generic Desktop" page is 1, and the usage identifier	for
     the usage "Button_2" is 2,	so the following can be	used to	refer to the
     "button 2"	item:

	   $ usbhidctl -f /dev/wsmouse0	1:Mouse.1:Pointer.Button:2

     Devices with human	interface outputs can be manipulated with the -w op-
     tion.  For	example, some USB mice have a Light Emitting Diode under soft-
     ware control as usage 2 under page	0xffff,	in the "Mouse" collection.
     The following can be used to switch this LED off:

	   $ usbhidctl -f /dev/wsmouse0	-w Mouse.0xffff:2=0

     usbhidaction(1), usbhid(3), uhid(4), usb(4)

     The usbhidctl command first appeared in OpenBSD 3.0.

     David Sainty <>

     Some USB HID devices report multiple items	with exactly the same usage
     identifiers.  The current naming scheme does not provide the means	to
     specify which of a	set of identically named items you are referring to.

FreeBSD	13.0			 July 16, 2013			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help