BTMAGIC(4) Kernel Interfaces Manual BTMAGIC(4)
btmagic -- Apple Magic Mouse
btmagic* at bthub?
wsmouse* at btmagic?
The btmagic driver provides support for the Bluetooth ``Magic Mouse''
from Apple, Inc. As remote devices cannot be discovered by autoconfig,
configuring a mouse is normally carried out with the btdevctl(8) program.
The Magic Mouse uses the standard USB Human Interface Device protocol to
communicate, but does not provide a proper HID Descriptor, and requires
specific initializations to enable the proprietary touch reports.
The Magic Mouse provides basic mouse functionality with two buttons, and
the btmagic driver additionally interprets the touch reports to emulate a
middle mouse button when more than one firm touch is detected during a
click event, plus horizontal and vertical scrolling for touch movements
greater than a certain distance. The mouse has a base resolution of
1300dpi, which the driver scales by default to a less sensitive 650dpi,
but this is adjustable with sysctl(8) along with the pressure needed to
discern a firm touch, the minimum distance necessary to trigger scrolling
and the additional downscale factor applied to scroll movements.
btmagic interfaces to the system as usual through the wsmouse(4) driver,
and the following properties are used during autoconfiguration:
vendor-id Must be 0x05ac.
product-id Must be 0x030d.
local-bdaddr Local device address.
remote-bdaddr Remote device address.
link-mode This optional string represents the link mode of the
baseband link, and may be one of `auth', `encrypt', or
When the btmagic driver has configured, it will attempt to open a
connection to the mouse and, if this fails or the connection is lost,
will wait for the mouse to initiate connections. The Magic Mouse
requires connections to be authenticated, and should accept a PIN of
`0000' during the pairing process.
bluetooth(4), bthub(4), wsmouse(4), btdevctl(8), sysctl(8)
The btmagic driver was written by Iain Hibbert with reference to the
Linux driver written by Michael Poole.
NetBSD 6.1.5 October 11, 2010 NetBSD 6.1.5