Supporting the Microsoft Surface Pro under Mac OS X


Last updated: 8th Dec 2015


These notes refer to the Surface Pro 1 and 2, not the Surface Pro 3. The SP3 uses the i2c HID interface for its touch and pen device and our driver does not currently support this interface.


In the original Surface Pro document we wrote “This Microsoft Surface Pro utilises a rebadged Wacom Pen (VID 45E / PID 79A) and Atmel Touch device (VID 3EB / PID 8209).  We have since been advised that Surface Pro 2 uses Wacom Pen (VID 45E / PID 79C).”


However, a number of users reported that our driver did not take control of the Pen and further investigations revealed that their Pens were using different USB Product ids, being 7A7 and 7A9, so now we realise that we do not fully understand the extent of the PID range for the Pen device. Further, we have been informed that when the ‘type cover 2 detachable keyboard’ for the Surface Pro 2 is removed the Pen Product id switches to 799!  We understand that when the detachable keyboard is removed a 2nd pen entry will be created in the UPDD Console – this will also require calibrating the first time this occurs.


If you download the trial driver from the links below and the driver does not take control of the Pen please locate the SAM device in the System Profiler and let us know if the PID is different from the current list (which currently stands at 799, 79A, 79C, 7A7, 7A9 and 7DA).


Fig: System profiler screen shot showing touch and pen devices with pen properties on display


Trial drivers are available as follows:


Pen ignores proximity and reacts when in contact

Pen supports proximity and gives movement before nib touches the screen


Installation documentation is here.


Within our driver we have configured these devices as:


     Atmel, maXTouch Digitizer (8xxx), USB

     Microsoft, Surface Pen, USB.


The above installers will install both the trial version of the driver and an evaluation version of the driver gesture software. After so many touches the touch will stop working.


This trial driver will allow both devices on the system to be calibrated and tested. You will need to select each device in the UPDD console program via the Device Selector and then select the calibrate button.  Once calibrated both devices will be supported thro’ the gesture software as described here.


We have now added some custom pen processing in the driver so that the ‘nib’ activates pen down and pen up processing. To enable this function, when using the driver only (without running gesture software) please select click mode ‘Pen’ in the UPDD Console, Click Mode as per this example (not taken from a Slate system!): NOTE – due to a bug only set the Pen setting if you are using the driver only.  If using gestures do not set this.



Pen pressure range is configured and sets the theoretical range based on pressure configuration range held for the device in the driver.  In the case of a Slate device this is 0 – 1023 (10 bits) but in data logs we captured the range seemed to be nearer 900 to 100 (dropping immediately to 0 thereafter).


Gestures uses this pressure range and the actual range can be set in the gesture software using the Pen calibrate option:


Or set UPDD driver setting file (tbupdd.ini) for the pen device:


[UPDD/Parameters/n]  - n = device number

MaxPressure=0x00000nnn – hex value

MinPressure=0x00000nnn – hex value


In driver version 5.1.x you can use tbutils command line utility to set these values:

e.g. Tbutils device=2 dw MaxPressure 384 (set MaxPressure to 900)


Hopefully the driver will work sufficiently well to be a useful addition to your system.  If you would like to order the production software we are happy to offer a home/personal use license for USD 100, EUR 80, GBP 55, being over 50% off the commercial/business cost. 20% VAT will need to be added if you are in Europe and do not have a VAT number.


To order please send an email requesting a Microsoft Surface Pro Mac OS X driver and we will send a PayPal invoice to be settled on-line with a credit card or PayPal account.  Once the invoice is settled we will send a link to your personalized copy of the production version of the driver.


Important Notes:


  1. Interference with volume controls
    Some users have reported that after installing UPDD the volume controls stop working.  We currently do not know the cause of this issue.  However one Surface Pro user sent us the following:


Have just installed your full version of the driver.  I have no issues with the volume buttons on the side of the device!


For your information: I have a Surface Pro 2 (First generation, before Microsoft did their CPU upgrade with Intel 4300U CPU 1.9 GHz) Purchased in DEC 2013.


I did not remove the Windows installation from the device, I merely changed the partition layout.


I had some issues with the Voodoo audio driver that is used by the modding community instead of the AppleHDA driver.


As per the Surface/Hackintosh user forum, here are the steps to get audio working using the voodoo driver:

Follow these steps:

1. Remove AppleHDA.kext (of course, backup for later purposes) and remove your VoodooHDA.kext out of System/Library/Extensions

2. Copy VoodooHDA.prefPane (provided with this post) to System/Library/PreferencePanes

3. Open Kext Utility and type your administration password.

(It starts to repair the permissions of the current extensions and updating the system caches, wait until it's finished)

(It can take a while - about 2 minutes)

When it says : "All done, Have a nice ... day), you can proceed

4. Drag the attached VoodooHDA.kext on the window of Kext Utility

(it will ask again for your administrator password)

5. When this is finished, restart your Surface Pro 2 (boot up without caches and injected Kexts)

6. Go to your System Preferences and choose Sound

7. Make sure that the "Speaker(Analog)" is selected (in the Output-Tab)

8. Try your Sound Effects (make sure the Output Volume is up)

Audio Files Pack

It might be worthwhile mentioning this to users when they complain about your driver...  AS I SEE NO ISSUES BETWEEN THE TOUCH DRIVERS AND THE AUDIO DRIVER.  Please note this is on my device and others MAY differ.  But I suspect that it will mostly be due to user error and not driver related issues.


Touch-Base Support