Create a Windows driver for the Apple Magic Trackpad

Cancelled Posted Feb 8, 2012 Paid on delivery
Cancelled Paid on delivery

A driver for the Apple Magic Trackpad shall be created. It has to support Windows XP, Windows Vista, and Windows 7, both 32-bit and 64-bit. If the driver is installed, the Trackpad shall not be used to control the mouse. Instead, the native touch information shall be made available to user-mode applications, together with a time stamp. 10 concurrent touch positions shall be supported. A simple user-mode sample application (e.g. a Visual C++ console project) shall be provided to show how to connect to the driver and receive the information.

Microsoft Visual C++ 2010 and Microsoft Windows Driver Kit for Windows 7 shall be used as development environment. The sources and binaries of both the driver (both 32 and 64 bit, if applicable) and the sample application have to be delivered. The rights of the source code will be transferred to us. In case that a part of the code is covered by some license (e.g. GPL, LGPL, BSD), it has to be communicated and agreed with us.

## Deliverables

Hints:

The Apple Magic Trackpad is a Bluetooth device that can be connected to Windows XP/Vista/7 without installing any special drivers. In this case, it operates like a simple mouse with two physical buttons, without supporting any gestures. Technically, it is a HID device that supports the HID_DEVICE_SYSTEM_MOUSE class. Therefore, it is opened by Windows in exclusive mode (see [url removed, login to view]), and we failed to write a user-mode driver for this device. Apple has created its own Windows drivers as part of the Bootcamp package. This driver is a kernel mode driver that supports additional touch gestures.

We have successfully connected and paired the Apple Magic Trackpad to the PC using the Microsoft Bluetooth stack, both on Windows XP and Windows 7. Therefore we strongly recommend using this Bluetooth stack during development. When connecting and pairing the Trackpad with Ubuntu 11.10, it will work automatically. In that case, you can peek at the raw data being transfered by CATting the file sys/kernel/debug/hid/0005:05AC:030E:0002/events.

The communication protocol on top of the HID layer can be reverse engineered by looking at the source code of the Linux driver (hid-magicmouse.c). It is able to receive and decode 10 concurrent touch positions from the Apple Magic Trackpad.

Microsoft Software Architecture Windows Desktop

Project ID: #2709515

About the project

2 proposals Remote project Active Apr 3, 2012

2 freelancers are bidding on average $1350 for this job

DavidLou

See private message.

$1200.2 USD in 40 days
(22 Reviews)
5.8
icellama

See private message.

$1500 USD in 40 days
(3 Reviews)
3.9