Jump to content


smaunsell

Surface 3 WinPE touchscreen not working

Recommended Posts

I've downloaded the Surface 3 (not Pro) drivers and imported them into a Driver Package. I've edited a task sequence to add these drivers. I have configured the BIOS to boot from the official Microsoft USB NIC and have connected a USB hub with keyboard, mouse & NIC. I can successfully PXE boot and use the USB keyboard to start the process and it completes successfully. But......without the USB keyboard I'm unable to image the Surface.

When booting from the NIC it provides and on-screen keyboard to start the PXE process and that works. Once it gets into WinPE and provides the SCCM screens I can't use the touchscreen to select anything and therefore can't image the Surface.

I have edited the boot image and added the touchscreen drivers. I started with just the 'Surface Touchscreen Device (HIDClass)' but that didn't work so I began adding drivers one by one to find what was required. I ended up adding ALL the Surface drivers but it still wouldn't detect me touching the screen in WinPE.

Has anyone successfully got this to work? If so, what was required?

Share this post


Link to post
Share on other sites

hmm i'm pretty sure it works here on Surface Pro 3, haven't tried Surface 3 though, what boot image are you using (from what ADK)

Share this post


Link to post
Share on other sites
5 hours ago, keilamym said:

here when we image the Surface Pro, we just use a USB hub with an external mouse and keyboard. did you try that?

 

Yes, my original post says that's how I've been able to image the Surface. But ideally I'd like to not have to have to do this. I'd like to plug in the USB NIC, boot and press 'next, next, next' on the touchscreen.

Share this post


Link to post
Share on other sites
14 hours ago, anyweb said:

hmm i'm pretty sure it works here on Surface Pro 3, haven't tried Surface 3 though, what boot image are you using (from what ADK)

I'm not 100% sure as I didn't create it but I'd be pretty sure it's the Win10 1507 ADK. The version listed in SCCM is 10.0.10240.16384 which is 1507.

Share this post


Link to post
Share on other sites

Progress........

I mentioned that I'd started with just the 'Surface TouchScreen Device' driver (you'd think the name would give away that it's what is needed!!) but that didn't work so I added any driver starting with "Surface" eg 'Surface Accessory Device", one by one but it still didn't work.

The link from keilamym mentioned that on an HP device it need the "firmware and chipset" driver. There's nothing obviously listed as this for the Surface so I just added all 36 drivers and.....the touchscreen works. Now it'll be a process of removing them one by one to work out which one(s) are actually needed. Once I've worked it out I'll post the details.

Share this post


Link to post
Share on other sites

It's taken a while pulling them out & putting them back in one by one but I can confirm that to get the touchscreen working on a Surface 3 in WinPE it requires the following drivers be put in the boot image:

  • Surface TouchScreen Device
  • Intel Serial IO GPIO Controller
  • Intel Serial IO SPI Controller
  • Like 1

Share this post


Link to post
Share on other sites

by the way if your boot image is 10240 then they are based on the 1507 ADK, which was the first release of Windows 10, if you are on SCCM CB you should be on ADK 1607 at least

Share this post


Link to post
Share on other sites

On a side note.......is it possible to use the 'Format and Partition Disk' task and specify a model ie Surface to apply it to?

The current task sequence has:

2. Format and Partition Disk - BIOS
This group/step will run if the following conditions are met:
Task Sequence Variable   _SMSTSClientCache not exists
Task Sequence Variable   _SMSTSMediaType not equals "OEMMedia"
Task Sequence Variable   _OSDMigrateUseHardlinks not equals "TRUE"
Task Sequence Variable   _SMSTSBootUEFI not equals "TRUE"
Primary 350MB fixed
Primary 100% of remaining space on disk

3. Format and Partition Disk - UEFI
This group/step will run if the following conditions are met:
Task Sequence Variable   _SMSTSClientCache not exists
Task Sequence Variable   _SMSTSMediaType not equals "OEMMedia"
Task Sequence Variable   _OSDMigrateUseHardlinks not equals "TRUE"
Task Sequence Variable   _SMSTSBootUEFI equals "TRUE"
Recovery 300MB fixed
EFI 500MB fixed
MSR 128MB fixed
Primary 100GB fixed

The Surface is UEFI but has only 64GB so it fails trying to add a 100GB partition.

I'd like to have one task to add this 100GB on desktops but another task that uses 100% only on Surfaces. I can't find any task sequence variable that could be used to check the model (and WMI queries can't be used in WinPE).

Can this be done?

Share this post


Link to post
Share on other sites
On ‎1‎/‎04‎/‎2017 at 4:25 AM, keilamym said:

how about  _SMSTSModel. 

I notice that task sequence variables have conditions 'exists, not exists, equals, not equals etc' whereas WMI queries can have eg 'like' and use '%'. It's not clear, that I can find, if task sequence variables can use '%' eg '%surface%' to cover all Surface models.

I ran wmic csproduct get name from within Win10 and got Surface 3 so I added a task sequence variable of _SMSTSModel equals "Surface 3" and it failed. I also tried _SMSTSModel equals "%Surface%" and it failed.

Also checked the BIOS and got the serial number and added a task sequence variable of _SMSTSSerialNumber equals "12345678" and it didn't like that either.

Share this post


Link to post
Share on other sites

SUCCESS.....

New task:

Set Dynamic Variable
IF Make equals "Microsoft Corporation" AND Model equals "Surface 3" THEN
   SET MyModel = "Surface 3"

Update existing task:

Format and Partition Disk (Surface)
100% of reamining space on disk. NTFS file system.
Options:
    Task Sequence Variable MyModel equals "Surface 3"

Update existing task:

Format and Partition Disk (Standard)
100GB fixed size. NTFS file system.
Options:
    Task Sequence Variable MyModel notequals "Surface 3"

According to https://github.com/Microsoft/SCCMdocs/blob/master/sccm/osd/understand/task-sequence-steps.md

Quote

Starting in Configuration Manager version 1610, you can specify an asterisk (*) and question mark (?) as wild cards, where ***** matches multiple characters and ? matches a single character. For example, the string "DELL*900?" will match DELL-ABC-9001 and DELL9009.

but we're not on that version yet.

It looks like I'm at a point where I can image a Surface using simply a Microsoft USB Ethernet Adapter :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...