Calibrate Vision System Tool

The most essential part of the Microsoft Surface unit is the vision system. There are five cameras in the unit that capture information when contacts (or touches) are made on the Microsoft Surface screen. The cameras send the data that they capture to the Microsoft Surface Vision System software, which processes that data so that the Microsoft Surface SDK can generate touch-enabled applications.

The Microsoft Surface unit detects input by using infrared light. Microsoft Surface units include a calibration tool that you can use when necessary to optimize vision-system performance by compensating for non-uniform infrared illumination (that is, uneven lighting) on the Microsoft Surface screen. The tool works by measuring the levels of pure white and pure black. (Technically, "black" means the Microsoft Surface screen is blank.)

Types of Calibration

You can run the calibration tool in administrator mode on a Microsoft Surface unit. There are two calibration modes:

  • Basic calibration is the calibration process for black-and-white levels. You can run this type of calibration by double-clicking the Calibrate Vision System shortcut on the Microsoft Surface desktop or by running the "%ProgramFiles%\Microsoft Surface\v1.0\CalibrateVS_v1.exe" /w command.

    Typically, you should run basic calibration whenever you first receive or subsequently move a Microsoft Surface unit. (You should also run the Ambient Light Indicator tool after you put a Microsoft Surface unit in its location in a venue.)

  • Full calibration is a more complex calibration mode that runs the basic calibration procedure and then runs additional diagnostic tools. You can run full calibration only by running the "%ProgramFiles%\Microsoft Surface\v1.0\CalibrateVS_v1.exe" /a command or by changing the properties of the Calibrate Vision System shortcut.

    A full calibration is run on every Microsoft Surface unit before the unit is shipped. You should have to run a full calibration only when touch performance is incorrect (that is, your touch does not affect the location directly under your finger or the touch does not respond as quickly and as easily as it should). This problem should rarely occur.

Calibration Tools

Both calibration modes require a calibration board, and full calibration also requires two corner guides.

Calibration Board

The calibration board helps the Vision System accurately adjust the cameras for each environment. There are two sides to the calibration board:

  • The white side of the board enables the cameras to take a snapshot that helps the Microsoft Surface Vision System build a contrast range between white and black. You use this side of the calibration board in basic and full calibration.

  • The black-and-white checkered side of the board enables all five cameras to align themselves properly. You use this side of the calibration board only during full calibration.

A calibration board

Corner Guides

Your Microsoft Surface unit also includes two corner guides. The corner guides help you place the calibration board in the correct location on the Microsoft Surface screen so that the cameras are aligned properly for the Microsoft Surface Vision System.

Corner guide
If you do not have a corner guide to complete the new calibration procedure, contact Microsoft Surface Support.

Preparing for Calibration

Calibration does not compensate for the unpredictable changes in the overall ambient light conditions in a venue. You might need to adjust your environmental lighting by removing the Microsoft Surface unit from direct sunlight and harsh lighting.

Also, for the best result, make sure that Surface Input (the desktop shortcut that enables touch) is not running before you run any type of calibration process. To close Surface Input, right-click the SurfaceInput icon in the notification area (on the right side of the Microsoft Windows taskbar), and then click Exit. (This action applies only if you were previously running Microsoft Surface applications.)

SurfaceInput icon in the notification area

Running Calibration

To run calibration, complete the appropriate procedure:

Calibration Data

The calibration application generates data that consists of the following items:

  • Black (environment light) and white (saturated) snapshots that Microsoft Surface uses to normalize the raw camera image. This normalization sets the extreme values so the camera registers all user input.

  • The coordinates of the checkered side of the calibration board, as seen by the cameras. These coordinates are used for UV mapping when the Microsoft Surface vision system corrects distortion and interpolates between multiple camera images.

  • The UV coordinates of the 1" × 1" squares on the calibration board. These coordinates enable the vision system’s filters to map 16 × 16 pixel cells from the Digital Signal Processor (DSP) to the polygons that the filters use to process and render camera images.

  • Other data that Surface Input uses, which includes the dimensions of the screen, video card ports, the debug and application displays, and so on.


This data is stored in the \ProgramData\TableParameters.dat file and is about 30 MB. Most of this file is raw images; no compression is currently being done. You might need to know where TableParameters.dat is being stored for other work that you might do.

ProgramData is a hidden folder in Windows Vista. To view hidden folders, do the following:

  1. Open Control Panel, click Appearance and Personalization, and then click Show hidden files and folders under Folder Options.

  2. In the View tab, under Hidden files and folders, select Show hidden files and folders, and then click OK.


When the calibration application creates or modifies the \ProgramData\TableParameters.dat file, the calibration application also creates the \ProgramData\TableParameters.hsh file. The TableParameters.hsh file is a hash of TableParameters.dat. The calibration application and Surface Input examine TableParameters.hsh every time that they are run to make sure that TableParameters.dat is not corrupted. If the calibration application or Surface Input detects that TableParameters.dat is corrupted, you will see an error message and you must delete \ProgramData\TableParameters.dat and \ProgramData\TableParameters.hsh and then calibrate the Microsoft Surface unit again.

Did you find this information useful? Please send us your suggestions and comments.

© 2009 Microsoft Corporation. All rights reserved.

Community Additions