Modernizing the original Microsoft Surface

UPDATE April 17, 2015: Due to the many requests I’ve received, I’ve decided to share my compiled Multi-Touch Vista binaries and my own Surface’s calibration data. Hope this helps in getting your own Surface upgraded to a more recent Windows version!

I was recently lucky enough to receive an original Microsoft Surface through one of our great MVPs in the Netherlands, Dennis Vroegop. If you’re wondering what the fuss is about, I’m not talking about the Microsoft Surface Tablets, but the original device which was called Microsoft Surface: a 30-inch tabletop device, originally released in 2008. I was lucky enough to have worked with quite a few customers in The Netherlands between 2008 and 2010, creating solutions for Microsoft Surface in many verticals, including retail and finance. As you can imagine, I was pretty excited to get a $10,000 (original retail value) device at home and immediately replaced my coffee table in the living room with it.

Being released in 2008, the original Microsoft Surface runs on Windows Vista, which is somewhat outdated right now. After reading Joshua Blake’s blog post dating back to September 2011 on how he managed to run the Windows 8 Developer Preview on the original Microsoft Surface, I decided I’d take on the challenge of putting Windows 8.1 onto it. This blog post details the steps I’ve taken to get everything up and running, hopefully providing enough insight into what’s needed to accomplish this yourself as well.

Windows 8.1 running on the original Microsoft Surface

Creating some space

Similar to what Joshua did, I did not want to get rid of the original Operating System running on the device (especially since I didn’t know whether this whole endeavor was going to work out). Installing Windows 8.1 side by side next to the Windows Vista installation requires shrinking the volume to create some space for the Windows 8.1 installation. To do so, click on Start, right-click on Computer and select Manage. On the left side of the Computer Management console, click on Disk Management under Storage to view your existing disk configuration. You should see your C drive taking up most of the space, with some space assigned to the recovery partition of the Microsoft Surface unit. Right-clicking on the C partition and selecting Shrink Volume will cue the calculation of free space that can be removed from the partition to create a new one for the Windows 8.1 installation.

Note that if you have extensively used the device before, you may not be able to shrink enough space to install Windows 8.1. I’ve chosen to assign 80GB to the Windows 8.1 partition, so I would have enough room for apps and games, but you may choose less (I advise at least 50GB). If you can’t clear enough space, try defragmenting your disk before trying to shrink the partition, as defragmenting should clean up your disk by moving all the data to the beginning of the disk, leaving more room to clear at the end. Once you’ve shrunk the partition, you can leave the unallocated space as is, as the Windows 8.1 installation will create a partition for us in that space.

Installing Windows 8.1

Now that we have the space we need to install Windows 8.1, we can commence doing so. It’s really up to you as to how you want to install Windows 8.1, but I recommend creating a bootable USB drive through Rufus, as it’s the fastest way I know to create one. Also, make sure you install 32-bit Windows 8.1, as it’s going to make our life easier in the long run and there’s no real point in installing 64-bit on this hardware. Now, the tricky thing here is that you will need to modify the boot order in the BIOS to be able to successfully boot from the USB drive. By default, the Surface has a BIOS password on it, which I can’t share here for obvious reasons. If you’ve never obtained it before, contact the Business Desk for assistance. Once you’ve changed the boot order in the BIOS, go ahead and plug in the USB disk and commence the Windows 8.1 installation to the unallocated space on the disk.

After installing Windows 8.1 install Microsoft XNA Framework Redistributable 3.1 and turn on the .NET Framework 3.5 (includes .NET 2.0 and 3.0) feature.

Getting the Surface Shell and applications up and running again

Once you have Windows 8.1 all installed and configured, it’s time to get the Surface Shell and applications back up and running. Luckily, we have kept the Windows Vista partition intact, which allows us to access the SurfaceRuntime.exe installer in the D:\SurfaceInstallers folder (assuming D is your Windows Vista partition now). The problem here is that the installer has verification in place that prevent installation on anything other than Windows Vista with .NET 3.5 installed. Luckily, we can reuse the instructions described in Brian Peek’s blog, which was initially written to install the Surface 1.0 SP1 SDK on x64 machines. Here’s what you need to do:

  1. Copy the SurfaceRuntime.exe file from your Vista partition over to a new folder
  2. Open up a Command prompt as Administrator and extract the contents of the executable to a new folder, e.g.:
    C:\SurfaceInstallers>SurfaceRuntime.exe /extract C:\SurfaceInstallers\SurfaceRuntime
  3. Next, extract the individual files from the MSI that was extracted from the executable, e.g.:
    C:\SurfaceInstallers\SurfaceRuntime>msiexec /a SurfaceRuntime.msi /qb TARGETDIR=C:\SurfaceInstallers\SurfaceRuntime\Extracted
  4. For the next part, you will need to install the Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1, the only thing you will need is the .NET Development Tools under Developer Tools -> Windows Development Tools
  5. Once installed, go to the installed folder of the SDK (C:\Program Files\Microsoft SDKs\Windows\V7.0\bin) and install Orca.Msi
  6. Start Orca and open up the SurfaceRuntime.msi file from the Extracted directory (make sure you don’t open the one above that) and drop the following rows from the LaunchCondition table: Installed OR (VersionNT=600 AND ServicePackLevel>=1) and Installed OR VISTASKU=”Business” OR VISTASKU=”Ultimate” OR VISTASKU=”Enterprise”. Make sure you press Save and close Orca
    Removing the launch conditions from the Surface 1.0 Runtime installer
  7. Now proceed with the installation of the MSI you have just altered to install the Surface Runtime files

Last, but not least, we need to either recalibrate the Surface 1.0 unit or, if you don’t have that magnificent calibration board (anymore), copy over the calibration data from our Windows Vista installation:

  1. Reboot the machine and select the Windows Vista installation from the boot loader.
  2. Log on the Microsoft Surface unit as an administrator.
  3. Open the %ProgramData% folder, and then copy all *.DAT and *.HSH files to a removable USB flash drive.
  4. Click Start, enter regedit, and then press ENTER.
  5. In the left pane, expand HKEY_LOCAL_MACHINE, expand SOFTWARE, expand Microsoft, expand Surface, expand v1.0, right-click Calibration, and then click Export.
  6. Give the file a name, and then export it to the removable USB flash drive.
  7. Reboot back into the Windows 8.1 installation and copy the *.DAT and *.HSH files to the %ProgramData% folder and import the registry file you have created.

If all is well, you should now be able to run Surface Input and Surface Shell consecutively and should have a working Surface Shell and can start installing the Surface applications again.

Getting touch interaction across Windows 8.1 up and running

(Part of) the reason of this journey is to take advantage of all the great apps and games Windows 8.1 has to offer, but it won’t do us any good as it stands, as touch interaction through the Surface 1.0’s hardware isn’t working out of the box. Luckily, there’s a project on Codeplex called Multi-Touch Vista, which will enable this functionality when installed. So, the easiest way to get this working (in my opinion) is to have Visual Studio 2008 installed on either the Windows Vista partition of the Surface 1.0 unit or, similar to what I did, have a Virtual Machine with Windows Vista and Visual Studio 2008 installed available. The reason I chose to use a virtual machine is because I didn’t want to install Visual Studio 2008 on my Windows Vista partition (for no obvious reason) and I had already created the virtual machine previously to do Surface 1.0 development (forgetting that te Surface Simulator doesn’t work in a Virtual Machine, which I remembered the hard way).

So here’s what we need to do:

  1. Make sure you have the Windows SDK installed on the machine you will use to compile Multi-Touch Vista, along with the XNA Framework Redistributable 3.1
  2. Get the latest source for Multi-Touch Vista and unpack the ZIP
  3. Open Multitouch.Framework.sln, switch to Release mode and build the solution (uncheck the Multitouch.Framework.WPF.Tests project in the Configuration Manager if you’re using Visual C# Express)
  4. Open Multitouch.Driver.sln, switch to Release mode and build the solution
  5. Open Multitouch.Service.sln, switch to Release mode, open the Multitouch.Service.Console project Properties and change the Output path on the Build tab to ..\Output\ and build the solution
  6. Open Multitouch.InputProviders.sln, switch to Release mode, make sure the SurfaceInputProvider project is checked and the TouchLibProvider project is unchecked and build the solution
  7. Open Multitouch.Configuration.sln, switch to Release mode and build the solution
  8. Now that we’ve built all the projects, ZIP up the Output and Multitouch.Driver\Multitouch.Driver\x32 folders and extract on your Windows 8.1 installation on the Surface 1.0 unit
  9. Open up a command prompt as an Administrator, navigate to the driver directory and run Install driver.cmd
  10. Run the Multitouch.Service.Console.exe executable from the Output folder and open up the Multitouch.Configuration.WPF.exe application
  11. Select Microsoft Surface under Available devices and click on the blue arrow in the middle of the screen to activate the Surface Input Provider

Now, to test everything, run the Multitouch.Driver.Console.exe executable (making sure Multitouch.Service.Console.exe is still running) and if everything went well you can now control Windows 8.1 with touch (make sure Surface Input is running, of course). YAY!

The finshing touches

If you’re lazy like me, you don’t want to run Surface Input, Multitouch.Service.Console.exe and Multitouch.Driver.Console.exe every time you boot up Windows 8.1 on your Surface 1.0 unit. Luckily, Multi-Touch Vista comes with a way to install itself as a service, allowing for automatic startup when Windows boots. To do so, open up a command prompt as an Administrator and navigate to the C:\Windows\Microsoft.NET\Framework\v4.0.30319 folder. From that folder, execute the following command:

InstallUtil C:\YOUR_MULTITOUCH_VISTA_PATH\Multitouch.Service.exe

To run the service automatically, open up services.msc, find the service and change the startup type to Automatic. Also, as the service allows you to control Windows 8.1 through touch, make sure the Allow service to interact with desktop checkbox is checked on the Log On tab.

If you want to go full lazy-mode, follow these steps to automatically login the user account you have been using so far, making it so booting up the Surface 1.0 unit in Windows 8.1 results in a full automatic login. For me specifically, this seems perfectly acceptable, as there’s little chance someone will break into my house to do unwanted things on the Surface 1.0 unit.

That’s it! You can now use Windows 8.1 on Microsoft Surface 1.0 with touch, so start downloading some great apps and games to have some fun! As usual, let me know if you have any questions, comments or general feedback in the comments section below or via Twitter!

Pin It

83 thoughts on “Modernizing the original Microsoft Surface

  1. Pingback: Modernizing the original Microsoft Surface - Rajen's Technical Tidbits - Site Home - MSDN Blogs

  2. Interesting, curious to know how well the touch input works with normal WIndows 8.1 applications. I have a Surface 2 (SUR40) and the infrared sensor is just too sensitive for a normal touch enabled application, as it has terrible palm rejection. That isn’t as much of a problem for applications designed to use the Surface SDK, as they can tell the difference, but there isn’t any obvious way to filter non-fingertip input for normal OS and applications. Actually, my impression of the SUR40 was that it was a lot more finicky than the original Surface (which I don’t have, but used at TechEd and PDC events in the past). In any case, I’ve got a 55″ Perceptive Pixel device now, and the touch response is so much better than the SUR40 (latency, accuracy, wrist rejection, environment sensitivity) that I can live without the tag recognition.

    Another interesting subject is duplicating the Surface SDK features in a WinRT application. I have not seen anything like the ScatterView, nor have I seen any controls libraries that handle multiple users on any platform other than the Surface SDK.

    • Hey Robert,

      Touch input works well enough to be usable, but it’s not 100% perfect, naturally. Sometimes you have to tap something twice and holding the tap just a bit longer seems to help increase accuracy. I’ve had the opportunity to do the “7-year old” test over the weekend, and games and some painting apps were no problem. There’s no palm rejection, obviously, but that doesn’t seem to be a big issue for me so far.

      You’re right that there’s no ScatterView control for Store apps, but it seems people have started replicating its behavior (check out the Photo Kiosk app for example). The Surface is a very specific device, so creating multi-user controls in the WinRT libraries doesn’t seem to make much sense to me (especially when there’s still so much other cool stuff to be worked on).

      • The multi-user controls would work on any large device that supports enough inputs, like my Perceptive Pixel 55″. Because the touch input latency is so much lower, my Surface SDK applications actually work much better on it than they do on the real SUR40. Of course, I can’t get tags or finger orientation.

        I feel that large form factor devices are going to explode in the next few years. Since Microsoft bought Perceptive Pixel, the 55″ unit is down to $5K-$6K US, which is bringing it in reach of small businesses. I fully expect to see active surface tables replacing “dumb” conference room tables in the near future. Thus, it seems like a natural evolution to move the multi-user controls developed for Surface SDK to WinRT, as then we have a modern development platform and simple distribution via the Store. I love WPF, but it has significant performance limitations. I love XNA, but it is a dead end now. Smart tables powered by Windows 8.1 would rock… and be a product area not covered by iOS or Android.

        • In fact even Windows 7 would be fine – just need the ability to use the SUR40 for some basic Windows applications, like Picture Viewer and Skype.

    • Hi Robert, I have the opportunity to pick up a SUR40 this week. How easy is it to get Win 8.1 running on that device and fully controllable like a normal PC? Would I lose the touch capabilities by simply installing 8.1 onto it? Thanks!

  3. Pingback: Quora

  4. Hello Rajen,

    After receiving 2 of these units as donations, I found your blog here while searching for a way to get the “touch” part of the device working with Windows 8.1 . Seem I may be a bit over my head as it turns out the screen is not a true touch screen, but uses 5 IR cameras to “See” where your placing your hands instead. I easily installed the Windows 8.1 32 bit on an SSD for the device, and also keeped the original HDD as support for the drivers and keeped its original Vista and recovery partitions intact. I seem to get stuck on:

    “Getting the Surface Shell and applications up and running again”

    Practically getting “SurfaceRuntime.exe”. I can’t seem to find it anywhere on the original HDD. instead in the folder “D:\SurfaceInstallers” the only .exe I have is “SurfaceSDK.exe”.

    Do I just need to change the names in the command:

    “C:\SurfaceInstallers>SurfaceRuntime.exe /extract C:\SurfaceInstallers\SurfaceRuntime”

    to the name SurfaceSDK instead? I may end up going the route, but wanted to ask here first to see if I am just way off, or if I have something odd going on with my version of Vista.

    Or, if possible, just doing a factory restore on the device and calling it a day, as this device from 08′ will end up being a toy for the boss’s kids to paly mini games on and not to much else. But that’s a “last ditch effort” if I can’t get this device to work with the 8.1 fully.

    If I can just get the touch to work correctly, I could also call it a day as that would allow the kids to play there games.

    • Hi Cody,

      It sounds like someone may have changed the original files, as the SurfaceRuntime.exe is only distributed with the device itself. SurfaceSDK is not sufficient here, as it does not contain all the necessary files to run everything correctly on the machine itself. You may want to try a factory restore to see if that restores the SurfaceRuntime, otherwise I think you may have to stick with Vista, as support has ended as well.

      • Hello again, I tried to do a factory as explained in:

        But get stuck on the accessing D: part, there is not a D: to access, when going into the computer, i see the recover partition is a 20GB area on the drive itself, only its in an odd file format (EISA), and right clicking it in Disk Manager comes up with no options. Would you know what this partition is? Any Idea where I can get a copy of the recovery if thats not it and just reregister the table?

        Also, as this is looking bleak, do you know of any links that can show me how to work the surface shell? Look as if it is full of apps that were meant to be used as a demonstration, then an workable table. This one doesn’t even have the chest demo like the other 2 i repaired and resold. I do have a 4th one that came in, ill put that out and see what it had installed on it.

      • It should be noted, that there are *2* versions of the surface 1.0 tables. There is the consumer and developer. The developer edition comes with a special version of surfaceSDK which does include the hydra card drivers and it does not come with ‘surfaceruntime.exe’. You can substitute the extraction commands, use orca with it, and install it. We have 2 at my work. IIRC, the cases are different color. balck = standard and silver = developer.

  5. Hi Rajen,
    I’ve followed your instructions carefully and so far I have gotten win8.1 32-bit installed (very difficult – warning to others – do NOT purchase a windows 8.1 download as it will force you to install 64-bit. You must get a 32-bit Windows 8.0 ISO and install that, then perform the free web upgrade to 8.1) then I ran into my first difficulty – XNA 3.1 refused to install until after I had enabled .NET 3.5, and then the SurfaceRuntime installer still refused to install, saying that it needed XNA 2.0, not 3.1. I got that from Microsoft by googling it. Then the SurfaceRuntime installer ran fine.

    After starting the touch input and the Surface Shell, I found that it runs intolerably slowly on Windows 8.1, for whatever reason. There’s no obvious complaints from the Shell at the console, so I’m baffled. Touch works in the Shell but I get maybe .75fps (yes, less than 1 frame per second) which is interesting insofar as I can see the shape of my hand propagate slowly out if I lay my entire outspread hand on the screen…

    Now I’m attempting to install the touch support. First warning to others: the Multitouch-Vista zip package contains pre-compiled drivers and console apps. These will not work. Don’t waste your time. I’m going to see what steps are really required. I’m hoping Rajen’s directions for compiling work. πŸ™‚

  6. The next hurdle seems to be getting a working development environment going in order to compile Multitouch Vista. Some things not to try: First, don’t install the Windows SDK. Second, don’t install XNA 3.1, since Surface runs on 2.0 and Multitouch Vista runs on 4.0. Third, don’t install Visual Studio Express 2013. Do install Visual Studio Express 2010, which will actually install on Vista. Unfortunately it comes in ISO format, so install Virtual Clonedrive so you can mount the ISO and run the installer without adding optical media to your computing environmental disaster πŸ˜‰ So far I am guessing but I think you want the Visual C++ Express install option.

    With any luck I will get to try actually compiling things tomorrow.

    • Hi William,

      I must say I didn’t experience the issues you mentioned, following the steps I laid out in the article. Performance of touch in both the Surface Shell and Windows 8.1 is very responsive, so not sure what the issue there is. There are several people who have followed my blog and got it to work, so I’m pretty confident in the steps I described.

      • It turns out that Multitouch Vista won’t open in Microsoft Visual C++ Express 2010, and purchasing a full copy of Visual C is beyond the scope of the work I can do for my employer getting this working on Windows 8.1, so we’ll probably uninstall Windows 8.1 and stick with Vista, unless you can think of another way I can either build or acquire a working build of the software…?

        The errors reported when loading the solution:
        “Solution Folders are not supported in this version of the application”
        “… project type (.csproj) is not supported by this version of the application” x 5

          • Then it might be helpful for the rest of the people who come here if you let them know in advance that they can’t follow your directions without a full copy of Visual Studio 2008 with the C# development environment installed, so they don’t waste their time. Not everyone automatically knows what you do. πŸ˜‰

            For my own situation, this office is a Mac-only environment. Apart from a VAIO touch unit which is on display so customers can surf the web. The Pixelsense is in the staffroom as a toy for the staff to play with. Nobody here has any interest in doing professional Windows development so we won’t be buying Visual Studio. It’s really a shame that Windows 8 doesn’t come with drivers for hardware sold and marketed by Microsoft. It’s nice that there’s a community driver, but equally a shame that it can’t be built with an open toolchain.

          • I think you have a fair point in needing to specify the actual version of Visual Studio needed to compile this. The instructions over at state it should work with Express (Visual C# 2008 Express Edition to be exact), so that should work as well.

            I understand your point in not having the right licenses in place to do this, but you do have to realize that this device was released in 2008 and there was never official support for OS upgrades, not for Windows 7, not for Windows 8 and not for Windows 8.1. I thus disagree with your expectation that drivers should be included in Windows 8/8.1 for this very specific hardware, that is not present in any other product aside from this commercial unit.

            I would suggest you try following the instructions again with Visual C# 2008 Express Edition, as that’s a free version and should probably work, although I have not tried it myself.

  7. a friend updated my surface 1.0 to windows 7 and the calibration data was no where to be found so i cant use the touch feature and dont have a calibration board :(.. any idea where i could purchase the calibration board or even rent one or could you send me your calibration data so i could get the unit running at least.



  8. Rajen, Any chance you can post or E-mail a copy of the compiled Multi touch software for the surface table? I cant seem to get it to compile properly. I’m getting errors that I cant get past when I try to compile the driver portion,

  9. Rajen, your blog on this was super helpful to bad I started going to windows 8 before I read all this. I have a problem I am missing my calibration data, and I do not have that fancy calibration board. Would you be willing to send me a copy of your calibration data? Or perhaps tell me how I can get my hands on a board?

    • Hi Tom, glad it was helpful! Unfortunately, like I told Joe, I don’t have easy access to the files at the moment, so I can’t help you there. You can try contacting the Surface Business Desk to see if you can still get a calibration board.

  10. We are picking one of these up for our office. I have no experience with them, but it looks like they use a standard hard drive, so we were hoping to be able to pull that, image it and replace it with a SSD in a 3.5″ adapter. Do you see any issues with trying to do this? We figured it will give it a nice speed boost since it’s an older device.

    • Hi Tony, as there’s no more warranty, this won’t be an issue I guess. The only thing that might pose an issue is that everything is built into a “PC module”, which holds all the hardware. Assuming you’re going to take it apart, it should be fairly straightforward swapping out the parts. I never tried it myself, so I’m not sure how upgradable it actually is.

      As it’s a machine from ~2008, I’m pretty sure that the HDD isn’t going to be the bottleneck (CPU and RAM being the larger influencers here). To be fair, everything on Windows 8.1 runs fairly smooth, even with an external screen at 1080p hooked up in extended mode. Just make sure you create a good back-up of the original files, as they’re needed to keep everything in working order.

  11. Hi to All. I just nabbed a table that is lacking a HDD. I can enter BIOS and I can boot from an external device without any trouble. Sooooo…. Anyone have a handy image I can use to get this beauty up to running as original?

  12. Hello Surface Enthusiasts! I may have a lead on a number of Surface Tables, in the Toronto area. If there is interested picking up one for an upgrade to 8.1 or other develop, would welcome a contact email…

  13. I am trying to complete this but my old system disk will not spin so i am unable to get SurfaceRuntime.exe or the old folder surface folder on c. I have installed windows 8.1 on a different computer with the same video card and input card and plan on moving the install back to the original motherboard I have added a 240GB SSD and all the drivers seem to be working. any ideas what i can do to get to the next step.

    • Hi Ashur, unfortunately my best advice is to contact the Surface Business Desk ( with this request. I’m not in a position to share this myself, but hopefully they can help out!

  14. Hi, thanks for the great tutorial. I am trying to boot from USB, but for some reason it simply does not work. The USB works fine on other machines. so I was wondering whether there are any special settings needed?

    • Hi there, I was just using the default MBR/BIOS settings with Rufus and that worked for me. What method are you using the create the bootable USB? Have you changed the boot order in the BIOS?

  15. If anyone could provide compiled files and calibration data, I would be so thankful.

    Rajen, would you be able to help out in exchange for a paypal donation?


    • Hi Will, it’s not a matter of my being unwilling to upload the files, it’s just a licensing issue. As Microsoft is my employer, I have to be extra careful here and unfortunately cannot share these files.

  16. Would it be possible for you to upload a compiled SurfaceInputProvider or Multitouch.Inputprovider folder from MultiTouchVista. I’m having a terrible time compiling it and getting it operational. Jut a folder/files i can drop in to the existing release (which oddly omits the Surface).

    I ended up making my own calibration board – i would be happy to share specs for anyone wanting to build one of their own.


    • Hi Will,

      I am very much interested on the spec you have used to make a calibration board. We have lost our board also πŸ™

      Many thanks

  17. Hi Rajen, Thanks for uploading the file! It really helps people like me that are not as technically adept as you are!
    I’ve hit a snag, I have MultiTouchVista working with other input providers, and the Surface Shell is too. But when I try to run your build, or even just move the Addins\SurfaceInputProvider folder into a working build, I run Multitouch.Service.Console.exe and I get the error “Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.”

    Any thoughts on what I might have missed?

    I will post a link to my specs for the Calibration Board as soon as I can. I’m happy to help!

    • Hi Will, unfortunately I don’t have enough context to understand that error message. The files I’ve uploaded came straight from my Surface, so they should work. Have you re-ran all the steps above?

    • If I remember correctly, you don’t need the original SurfaceInput.exe, as the MultiTouchVista service will be handling input for you. Can you confirm?

  18. i have for sale is 2 Microsoft 1.0 surface. Intel Core 2 Duo.It’s coffee table build in tablet,a 30-inch tabletop device, originally released in 2008

  19. Very helpful, thanks. I’ve just inherited one of these for work purposes. Stupid question, should the touch screen feature work on the regular windows desktop, or does it just work with applications as part of the surface shell? I have turned surface input on. If the answer is no, has anyone every tried to register a browser like chrome as a surface shell application? This would help me avoid installing Win 8.

    • Under Windows Vista, only actual Surface applications will work with touch, so nothing on the desktop. For that, use the method laid out above, probably going with Windows 10 by now πŸ™‚

  20. Do someone have compiled drivers for Surface Interface for Multitouchvista? I am getting lots of compile errors as compiler doesn’t recognized Surface as an entity.

  21. I am getting the following message when run Driver console: If I remove SurfaceInputProvider from Addin service runs fine. Anyone else come across to this?

    β€œUnable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.”

  22. Is anyone familiar with the following message?

    Unable to load one or more of the requested types. Retrieve the LoaderExceptions
    property for more information.

    No matter where i tried to load MultitouchVista the above message follows only if i remove SurfaceProvider folder from Addins.

    Any help will be appreciated.

  23. Hi Rajen,

    Your OneDrive download link doesn’t seem to work anymore. Having a set of compiled drivers would make things so much easier πŸ™‚ Greatly appreciate your efforts to support and modernize this older but still useful devices.

    I’ve been having trouble compiling the SurfaceInputProvider driver for MultiTouch Vista. I haven’t been able to resolve an issue with the missing references using either the V1.0 or 2.0 SDK assemblies.

    I was missing the calibration data and the card so created and printed my own from a photograph I’d seen online (via a professional printer for $30) . Works really well.

    You can also down the Windows Touch Pack ( which won’t normally install but if you’re running Multi-Touch Vista at the time it will install.

  24. Hay I got an original surface at an action and was able to restore most of the device. The only thing I can’t figure out is the pci card going to the 5 cameras can you give any information on these?

  25. Hi, thanks for your detailed walkthrough! I was able to install a win 10 on a surface 1. At first the touch recognition was rather bad. I looked into the MultiTouch Vista source and disabled the finger recognition in the SurfaceInput addin. Now the touch works much better (nearly always on first try). Of course it now triggers when you place on object on the screen, but that is negligible for my use case.

  26. Hi Rajen,

    Thank you for this walkthrough! Using this, I managed to get Windows 10 up-and-running on my Microsoft Surface.

    However, using MultiTouchVista should not be required, as Windows 8+ has native touch support. It is only necessary to convert the input from the table to touch input.

    For that reason, I created (an alpha version of) an app that adds basic touch support to the Microsoft Surface. This app should be much easier to get up-and-running.

    You can find the app here:

  27. Hi Rajen,

    I have the 41inch Samsung Microsoft Surface SUR40 table running Windows 7 Professional.
    In Surface mode, it has the awesome water feature and Bing, that goes nowhere.
    In Windows 7 Pro mode, the touch control does not work, only mouse and keyboard.

    I would like to upgrade to Windows 10, and be able to use the touch surface capabilities within the Windows 10 environment.

    1. Do the above instructions work just as well for the Samsung SUR40?
    2. Will Windows 10 function properly on the SUR40?
    3. What more can be added, or configured to operate within the Surface environment, even Bing?
    4. What needs to be configured for Windows 10 touch to function properly?

    Are you still answering questions?

    Thank you for the many years to f accumulated knowledge featured herein, we are still out here and benefiting from your service and knowledge, seriously, thank you and all other contributors.

    Thank you

    • Hi Brandon,

      Thanks for the kind words. Unfortunately, I don’t have experience upgrading the SUR40 at all. The hardware and software are both vastly different from the original Surface, so I’m not sure the same upgrade process would apply one-to-one.

      The reason why touch only works in the immersive mode is that the touch input app is only loaded automatically in that mode (on the original Surface). Perhaps you can do the same on the SUR40, but again, I don’t have enough experience with it to tell for sure.

      My best advice would be play around with it, but make sure you back-up the recovery partition in case you need to revert back to stock, or you need drivers/files from the original partition.

      Feel free to post back when you have things up and running, it might even be worth a blog post of your own πŸ™‚

    • I too have recently acquired a SUR40 and would like to upgrade it to windows 10. If you have any luck in getting the touch to work I would be greatly appreciated if you could share the results with me.

  28. HI, does anyone know of any resources for chaining the projector bulb on a V1 unit? I think the lamp on my unit burnt out (left on for basically a year straight) and I’d like to replace it if possible. Anyone know what kind of lamp it is or where to find one?


  29. Hey Rajen,

    You seem to be well versed in this, so perhaps you are able to assist me.
    I recently obtained a non working model, (Needed an SCM board), which by a stroke of luck, I was able to find online. Fast forward, previous owner wiped the hdd. Got a copy of Vista installed as well as was able to find a database someone uploaded with all the files (except the asus wireless adapter one, which everest helped me figure out).

    Anyway, my concern is, whenever I try to calibrate the cameras, 1 and 2 don’t show up while 3/4/5 do in the black test. I see the black and white, white IR light of 3-5, but for 1 and 2, nothing. I’m not getting any SCM errors or table top errors either. Tried to pop out and put back in the ethernet cables, but got nothing as well : /. Is this normal or are those 2 camera’s giving me an issue? I didn’t have a calibration board, but used a white piece of foam-board for a basic calibration, but when I turn on ‘touch’ from desktop I get a “Filter Graph” error, but if I open it in the folder, it works fine. When I open in the folder then open the surface shell, the touch still doesn’t work. Any ideas?

    • Hi Leon,

      Unfortunately I don’t have any experience with that. It could either be a hardware issue or an issue because you built out your own image. Can you try plugging camera 1/2 in the ports for 3-5 and eliminate if it’s a hardware issue that way? Other than that, I’m afraid I won’t be much help.

      • Well something dawned on me. The camera has to work, because in the calibration setting I just realized that the image it shows is not the camera but the camera’s view. So on 1-2, if I place my hand on the screen, I see my hand, but on 3-5 I see a bright light. around the middle (which I misinterpreted that as the camera.)

        I’m currently trying to obtain a system ISO from someone to see if my table is operating correctly, because even after a basic calibration, when I try to run the image seeing software from the desktop (it has /r surface) at the end of the exe path in properties, I get a filter graph error (whatever that means). But if I run it directly from the C drive, I don’t get that error, because its missing the /r surface instruction. Either way, when its on, and I run the surface mode, i don’t get touch active :(.

  30. Hello, I’m Rep’till from France, I speak a very little bit english I’m so sorry but i need your help for my pixelsense (microsoft Surface 1.0) I need a drivers for activate a “surfaceMode” i don’t have all programs i have just windows vista edition integrale fr (ultimate) activated , all windows vista original drivers and files originally are LOST ….. I give this computeur coffee bar on the net for 100euro the ancient admin of the beast it’s a “NOOBY informatician” and he installed windows 10 ….. he forgot all files …… it’s so difficult for me write or speak english, please help me for the restoration of my coffee table (backups, restoration, driver and other) BIG THANKS

  31. hi, i need you help my hdd is empty , i’m french and i research an ISO original for my surface 1.0 please help me , it’s possible a people post/upload a link for download a image of disk drive for copy a vista with driver [help for me and lot of people….] thanks read me and your answers . p.s: sorry for orthograph i don’t speak english very well ……

  32. Hey Rajen,

    Do you know if anyone ever compiled a 64-bit driver for the Hydra 5-camera card? I think with the driver installed I could likely hack up the Surface Input to install and allow for full touch in Windows 10 64. Pretty crazy fun stuff.


Leave a Reply

Your email address will not be published. Required fields are marked *