Quantcast
Channel:
Viewing all 34 articles
Browse latest View live

Physical/Logical CPU Frequency Reporting with Hyper-V enabled

$
0
0

I always found it curious that with Hyper-V enabled, Task manager fails to report the actual CPU frequency and instead reports the nominal frequency. People much smarter than me have noticed this too but I haven't found a compelling explanation for why it doesn't work. I thought that maybe type-1 hypervisors prevent accurate reporting of CPU frequency and that maybe task manager was just detecting hyper-v and grabbing the frequency from a regkey like:

[HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0] "~MHz"=dword:

But changing that regkey didn't change the reported frequency.

So what about 3rd-party tools? CPU-Z appears to report the CPU frequency correctly in real-time. What gives?

 

 

I was determined to find out what was going on and found some curious text on MSDN:

"Measure guest operating system processor utilization– Traditionally, processor performance can be measured using the “\Processor(*)\% Processor Time” performance monitor counter. This is not an accurate counter for evaluating processor utilization of a guest operating system though because Hyper-V measures and reports this value relative to the number of processors allocated to the virtual machine.

...

Hyper-V provides hypervisor performance objects to monitor the performance of both logical and virtual processors. A logical processor correlates directly to the number of processors or cores that are installed on the physical computer."

 

OK, so how do you just report the real-time CPU frequency of each CPU core with an easy to view graph just like task manager? Use the built-in Performance Monitor tool (perfmon.exe) and add the "\Hyper-V Hypervisor Logical Processor\Frequency" performance counter:

Add the counters for each CPU core:

Then right click on the y-axis and choose "properties" then "graph" to set the vertical scale to the max possible TurboBoost frequency. In this case my AMD A10-6700 quad-core APU goes to ~4300MHz:

I also added in the nominal processor frequency reported by the performance counter "Processor\Frequency" to get the solid line at 3700MHz as a reference point. And here is the graph showing the variable frequencies per core when loading and unloading the system with some D3D11 rendering:

Curiously, the reported frequency never goes above 3700MHz in perfmon, however, CPU-Z shows my processor peaking at around 4250MHz in turbo mode. Not sure how CPU-Z is getting those numbers. Maybe some custom assembly code for certain AMD and Intel processors? In any case, it seems like it would be simple to implement the hyper-V perf counters within Task Manager so at least you can see the frequency change in real-time. If folks would like to see this feature added to task manager, let me know and I'll reach out the appropriate team at Microsoft.

 

References:

 

Back to main blog: http://blogs.msdn.com/b/danchar/


Login to Youtube and Gmail with 2 separate accounts simultaneously -nomerge/SessionMerging

$
0
0

I loath ubiquitous targeted advertising whether it is from Bing, Google, or any number of analytics firms that treat you as a number. I like adblockers. I like to modify my hosts file to cut down on page load times. My preferred search engine is DuckDuckGo. I read Slashdot. This puts me in a clear nerdy minority. Though nerdy, I like Internet Explorer. It's not because I drink the kool-aid at work (I've come to realize that Talking Rain isn't that great) I've used FireFox, Opera, Chrome, etc., but I keep coming back to IE.

IE has great integrated dev tools [F12] that allow me to "hack" sites to my heart's content. Its not a huge memory hog, and it has a great support team that listens to feedback and doesn't arbitrarily change the UI with fancy round corners just for the hell of it. I use the InPrivate feature *always* and I have IE set to auto-delete cookies on closing. Even with these custom settings, something always bothered me about IE. If I open a window and log into gmail and then open a second window to view a youtube video, why am I already logged in at youtube? I try to always view youtube without logging in so google has a more difficult time building an advertising profile about me. So I find myself closing IE a lot and then starting it up again to make sure I'm logged out. Or I open the youtube link in Firefox just to make sure the Firefox session data isn't shared with the IE session data. Does that make me paranoid? Probably, but it doesn't mean they aren't out to track me. Well this was frustrating enough that I had to find a better solution. Turns out there is a simple workaround. Just set the following regkey:

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]

"SessionMerging"=dword:00000000

That's it. Now every single new IE window will run its own session so you won't be auto-logged into various websites automatically. If you open a link in a new tab, then that tab shares the same session and will auto-log you in just like normal so you have some flexibility here. You can also do all this by running iexplorer.exe -nomerge or use the File menu in IE to open a "new session", but you have to remember to do that each and every time. The regkey modification is much easier and I think this should be the default: any tabs inside the same window container should be part of the same session and any separate windows should be in separate sessions by default. I'm not sure how the session data is shared when tabs are merged and separated into different window containers. They probably keep whatever session data they started with, but I'll have to test that.

References:

 

Back to main blog: http://blogs.msdn.com/b/danchar/

DisplayPort->HDMI dongles/adapters - active vs passive re-visited

$
0
0

If you're a big nerd and read spec sheets or Wikipedia pages, you may know that DisplayPort signaling is 3.3 volts while HDMI/DVI signaling is 5 volts so some active conversion is always required. The word "passive" doesn't even appear in the VESA DisplayPort interoperability guide. So why do some manufacturers market their adapters as "active" vs "passive" when they are *all* active? I think this is because of the following phrase in the old VESA interop guide:

 "...an implementation guideline of a cable adapter with a built-in active protocol converter between a DisplayPort Device and a dual-link Device is covered."

I think implementers picked up on the word "active" and figured that since there is a spec for an adapter with an "active protocol converter", any adapter without that converter ought to be called "passive". Maybe it's because of my electrical engineering background, but I find this highly misleading; to me, "passive" means resistors, capacitors, and inductors without integrated circuits. All these adapters include powered integrated circuits and that makes them active.

The VESA interop guide describes a few approaches for these adapters

The "Type-1" adapters which are commonly sold as "passive" rely on the DisplayPort source (like a video card) supporting DisplayPort++ (aka Dual-mode). When certain pins are pulled up to 3.3 volts or down to ground through specific resistor values, the physical DisplayPort pins are programmed to output the HDMI/DVI TMDS protocol instead of the LVDS DisplayPort packet protocol. But the TMDS protocol is still output at 3.3 volts which won't work with a DVI/HDMI monitor designed for 5 volts. So the type-1 adapters include active electronics to level shift the 3.3 volt signaling to 5 volts. The signaling is limited to 165MHz bandwidth so screen refresh rates and resolutions are limited too. Aside from the level shifters, additional electronics are needed to regulate power - typically the 3.3 volts supplied from the DisplayPort connector on pin 20 is boost-converted to 5 volts. There is also a circuit to handle the DDC communications as well. So there is a lot of stuff inside your "passive" DisplayPort adapter. It's not just a cable:

[Picture courtesy Wikipedia]

Type-2 adapters also pass-through the existing TMDS signal and level shift it from 3.3v->5v, but include more advanced integrated circuits and are able to operate at up to 300MHz with HDMI thus enabling 4K@ 30Hz output per HDMI 1.4 spec. Depending on the vendor, these adapters may be marketed as "active" or "passive" so you really need to read the fine print to understand the specs of the adapter.

Finally there are truly "active" adapters that do not rely on DisplayPort++/Dual-Mode at all. Instead they are able to decode the LVDS DisplayPort packet protocol in real-time and re-encode it into HDMI/DVI compatible TMDS protocol. DisplayPort->Dual-link DVI-D adapters are true "active" adapters. As are "EyeFinity" certified adapters. Some active adapters need to be powered by a USB port, however, most adapters available today are powered by pin 20 on the DisplayPort source which supplies 3.3 volts at up to 500mA. These truly active adapters are expensive but allow more flexibility with refresh rates and resolutions depending on which integrated circuit is used inside. Here is a popular active adapter claiming DisplayPort 1.2 and HDMI 1.4 support: Accell B086B-007B-2. And another one that enables dual-link DVI for running 30" 2560x1600 monitors that only include a DVI-D connector: Accell UltraAV B087B-002B. Adapters supporting 600MHz signaling rates ought to be available in 2015/2016 when HDMI 2.x devices enter the market.

So which adapter should you buy? I'd get a type-2 or "active" adapter that runs at 300Mhz+ to have the most flexibility. Some video cards don't support DisplayPort++ so the type-1/type-2 "passive" adapters just won't work. On AMD EyeFininty 6-output video cards, for example, only two of the outputs support DisplayPort++, so you can only use two type-1/type-2 adapters with the remaining ports needing "active" adapters. Even if you aren't using 4K resolution or high refresh rates, the fact that type-2 and active adapters are tested at higher signaling rates is a little peace-of-mind towards their reliability with longer cables. You can certainly save a few dollars getting a lower-end adapter or get a bulk rate deal for off-brand adapters on E-bay or Alibaba, but whenever you have active electronics inside, quality *is* an issue. I would certainly go with name brand on these adapters like Accell, Apple, Surface, etc. I always give the reverse advise for truly passive cables. I would not recommend "Monster" brand cables with oxygen-free copper or anything like that since I have had great results with generic AmazonBasics and Monoprice.com cables.

References:

 

Back to main blog: http://blogs.msdn.com/b/danchar/

8K 80" video wall for under $2000

$
0
0

So you've decided 4K is old-school and you want to step up to 8K but you don't have a lot of money. Why not build an 80" 8Kx4K video wall with off-the shelf components to display 32-megapixels in all their glory:

Total cost: $1844+tax

 

[Image from http://mlm-s2-p.mlstatic.com]

 

Just add these components to any standard PC with a 500-watt power supply (with 2 75-watt PCI-E 6-pin connectors) and you'll have an 8K video wall that measures to 80" diagonal. Because you're sticking 4 panels together, there will be a slight gap in the middle of the image due to the bezel. But you can just use the AMD EyeFinity bezel compensation tools to tune it so it doesn't look weird. HDMI 1.4 limits the 4K refresh rate to 30Hz, so this will be just fine for videos and slideshows, but perhaps not so the best for interactive applications. A single Pitcairn 7870 GPU won't be enough to do high frame rate 3D graphics with this many pixels, but video playback and other regular stuff will be just fine. You can always add a few more cards in Crossfire mode to boost 3D perf per Gaven Gear's Extreme Windows blog.

Amazon only lists 6 different screens with 4K resolution *and* 70-inch panel size or larger and the prices are $5800 and up. So this solution has 4X the resolution at less than half the price. Why isn't anybody using stuff like this to build trade-show walls? All the industry video wall components seem to be standardized on 32" panels at 1366x768 or 1920x1080 (~69dpi) Sure those panels come with 3-5 year warranties and very high brightness. But they are 4-10X the cost of a Seiki with 1/4 the pixels. Even if the Seiki panels are not top-notch and don't last long, you can keep a couple spares around just in case and still be way ahead of industry video wall solutions on price and resolution. I think the value-add here is scenarios where customers may be walking within a couple feet of the video wall. With the high-dpi screens, its a lot harder to see individual pixels. Also its 8K. By next year there won't be as much value in riding the 4K buzzword, so better make the jump to 8K right away.

So... anybody want to give me $2000 so I can build this and make a video? It would be great to borrow a RED dragon or CineAlta F65 to shoot in 8K too :)

 

References:

 

Back to main blog: http://blogs.msdn.com/b/danchar/

Adblock breaks Nordstrom.com, Macys.com, Birchbox.com, Landsend.com, expedia.com, travelocity.com - easy workaround

$
0
0

I recently set up my wife's brand new Surface Pro 3 (i5/128GB) and she complained that certain shopping websites didn't work quite right in both IE and Firefox. I thought that was odd so I tried the same websites on my desktop computer and the same features were broken. After some hacking using the handy F12 dev tool in IE, I figured out that using certain tracking protection lists and adblocking tools breaks core features of some websites. I had been using a modified hosts file to accelerate page loads and to fight back against the erosion of online privacy.

In particular, Macy's and Nordstrom appear to contract with MaxyMiser.com for their web analytics / data warehousing so portions of web pages like the in-store inventory rely on IFRAMEs and javascript with content served from maxymiser.com and maxymiser.net. So if you are using a hosts file or other adblocking tools, you'll need to unblock those two domains.

Birchbox.com is similarly crippled when using ad-blocking/anti-tracking. Many links on birchbox.com are filtered through google-analytics in an odd way such that when you left-click on the link nothing happens, but if you right-click and open in a new tab it works just fine. If the right-clicking workaround bothers you, just unblock ssl.google-analytics.com and left-click will work again.

Landsend.com is dependent on javascripts from assets.adobedtm.com, Adobe's "dynamic tag management" system to track users.

Here is a running list of poorly designed websites and their dependent adware servers you need to unblock to gain full site functionality. I really hope the web developers aren't doing this deliberately and perhaps these sites serve real content in addition to ads? In any case, I have some thoughts about automating the workaround for specific sites so that these domains are not wide open and serving you ads all the time, but I'll keep my mouth shut for now just in case the ad men are watching. I hope to check in a solution to github at some point.

 
WebsiteAdware servers
macys.comcg-global.maxymiser.com, service.maxymiser.net
nordstrom.comcg-global.maxymiser.com, service.maxymiser.net, s.btstatic.com
birchbox.comssl.google-analytics.com
landsend.comassets.adobedtm.com
expedia.comtags.tiqcdn.com
travelocity.comtags.tiqcdn.com

 

 

 

 

 

 

 

 

Back to main blog: http://blogs.msdn.com/b/danchar/

 

Hi-dpi Multi-mon with Surface Pro 3 / Pro 4 - dpi-scaling tweaks - alternate 3:2 aspect ratio resolutions

$
0
0

[Want to get into our BETA test program or on the waiting list to get a 3-in-1 Dock for Surface Pro 3/4 (like the early prototype pictured below?) We'd love to learn more about how you plan to use it. Take our quick survey.

Skip down to the bottom for a regkey workaround and a tutorial on how to setup your Surface Pro 3 for a seamless multi-mon experience.

Click here for Surface Pro 4 / Surface Book regkey

Update: Check out our demo video of this hack in action with the new 3-in-1 Dock:

http://blogs.msdn.com/b/danchar/archive/2015/06/30/3-in-1-dock.aspx]

 

 

Intro:

Windows multi-monitor support has improved quite a bit over the years and provides a great productivity experience that is, frankly, superior to other operating systems on the market. The experience is excellent when using multiple monitors of the same type and pixel density (dpi). But what if you have an old low-dpi monitor and a new hi-dpi monitor and want to pair them together? Or what if you buy a new laptop or tablet like the Surface Pro 3 with a beautiful hi-dpi screen but want to use it with your old monitors? Sometimes it just doesn't look right:

You might think that it would be easy to just make stuff a bit bigger on one screen and a bit smaller on the other screen to get them to match up. But behind the scenes its quite a bit more complex than that.

 

Windows Desktop scaling:

Portions of Windows rely on a set of bitmap graphical assets that are designed to-the-pixel to look awesome. What this means is that if the asset is 40x40 pixels and displayed at 100% scaling on screen, it takes up 40x40 pixels and looks exactly as the designer intended. Depending on the physical dpi of the screen, that 40x40 pixel bitmap might be 2 inches tall (84" 1080p television) or 1/10" tall (Google Nexus 5 1080p phone). To account for different physical screen dpi and typical viewing distances, Windows has the ability to scale the size of these bitmap assets. If you scale to 200%, that 40x40 image becomes 80x80. Many of the assets in Windows are stored at multiple scaling levels so that they do not need to be scaled on the fly. This saves processing time and allows the assets to be optimized for each scaling level exactly rather than relying on a generic anti-aliasing or interpolation scheme. For Desktop, these pre-set scaling levels, or plateaus are 100%, 125%, 150%, 200%, 250% etc. When using these scaling plateaus with monitors that have different dpi, Windows 8.1 can set one scaling level for one monitor and another scaling level for a different monitor so that the sizes match up as closely as possible. This setting is done behind the scenes and uses a formula that takes into account the physical screen size and physical dpi to get the best match. Windows 8.1 does not expose an interface to the user to choose different dpi scaling per monitor. (Windows 10 does but still has some limitations.) Most of the time, the automatic matching works great, but not always. Windows has the ability to set an arbitrary system-wide scaling factor as well such as 107% but this disables the ability to set independent scaling factors per monitor and the scaling is done on the fly which can have a minor impact on performance but potentially a major impact on visual quality for some applications. Other portions of Windows use vector graphics which are suited to scaling by their very nature and work well across all scaling schemes.

Microsoft Office and many 3rd-party applications are designed with dpi-scaling in mind and work well at the various pre-set dpi-scaling plateaus. Some 3rd-party apps and legacy Microsoft apps that are dpi-unaware don't look very good when scaled. Sometimes certain UI elements or fonts look a little blurry because of the generic anti-aliasing/interpolation scheme being used. In other cases, certain portions of the UI may be scaled and other portions are not. MSDN has provided developer guidance on how to account for dpi-scaling since the Introduction of Windows Vista Beta in 2005. 9 years later, most applications are following this guidance pretty well, but some still fail miserably.

 

More on viewing distance vs physical dpi:

Typical laptop/tablet users have the screen placed about 20-25" away from their eyes. Desktop monitors are typically pushed back to 30" or so. That extra 5-10" is a big difference and the visual system has a much harder time distinguishing individual pixels at that distance. Windows takes advantage of this fact and makes assumptions about the typical viewing distance based on the monitor size, then chooses a dpi-scaling factor based on the viewing distance and physical-dpi combined. The goal is to have on-screen UI look approximately the same size across a wide variety of use cases. There are some standard approaches for choosing the ideal screen viewing distance based upon the properties of the screen, content being displayed and the abilities of the average human visual system: https://en.wikipedia.org/wiki/Optimum_HDTV_viewing_distance#Human_visual_system_limitation The key takeaway is that the closer your eyes are to the screen, the more dpi matters. What this means in practical terms is that if the screen is too far away you may not be able to see any additional detail with fancy 4k monitors.

This approach breaks down when you pair a large monitor optimized for a 30" viewing distance with a laptop optimized for 20" viewing distance and the result is that objects on one screen look larger than than on the other. The results look even worse if the physical dpi of the two screens are vastly different as is the case with modern laptops vs regular 1080p monitors. So what can be done?

Choosing monitors:

We already know that Windows works really well for most applications when the default scaling plateaus like 150%, 200% are used. What if you have a monitor with 100dpi and another with 115dpi, what scaling factor should be chosen for optimal results? Using the default scaling plateaus, it will be impossible to get the sizes to match up exactly. For example, if you have both screens at 100%, then UI will appear 13% smaller on the 115dpi screen (100/115=87%). If you choose 100% on the 100dpi screen and 125% on the 115dpi screen, the sizes match up closer but there are potential side effects. For example depending on the application, dragging a window from one screen to the other will cause an artifact where the window size will change as you cross over to the other monitor and all the text will re-align to be optimized for the other monitor. Because applications may handle this differently (FireFox vs Internet Explorer is a good example) user perception is an overall inconsistent experience. Many people don't mind, but it certainly isn't ideal.

To avoid some of these issues, you can choose monitors that either have the same physical dpi, or choose monitors with a pixel density that maps to the scaling plateaus like 125% or 150% very closely. Also there are some tricks where you can change the screen resolution to something other than the native panel resolution (something that is usually discouraged for visual quality reasons) yet achieve better results than built-in dpi-scaling.

 

Case study: Surface Pro 3 multi-mon: 

The Surface Pro 3 screen is wonderful with a 2160x1440 resolution in just 12" (216dpi). Given all the info above, how would you choose a monitor to pair with it? The ideal monitor would have the exact same dpi. Unfortunately, there are few monitors on the market with ~216 dpi:

But what if we target half that dpi? It turns out that a few standard monitor sizes are about half the dpi and quite economical:

Ok so what? Half the dpi still doesn't match. Well If we could set 100% scaling on the desktop monitor and 200% on the tablet screen that would be ideal. Unfortunately because of the assumptions Windows 8.1 makes about screen size and viewing distance, the SP3 screen is set at 150% instead, so it doesn't match up.

But there is a simple workaround. We already know that the further away the screen is, the less dpi matters. If the SP3 screen is ~30" away right next to your desktop monitors, why not avoid software dpi scaling altogether and let the GPU and panel take care of it? Instead of using the native 216dpi, you can drop that in half to 108dpi to match the external monitor. GPUs and panels are *really* good at scaling to even integer divisors of the native resolution and look quite crisp. With the SP3 oriented in portrait configuration and held by hand right next to a 21.5" panel it matches almost exactly:

 

 

Unfortunately, the Surface Pro 3 does not let you set this resolution or other 3:2 aspect ratio resolutions by default. You can set some lower-resolution 16:9 aspect ratio resolutions but that will result in letterboxing or black bars on screen. So we need to tweak things around to get the proper resolutions. The same methods can be used for other premium laptops.

 

 

Regkey method:

  • backup your system (use at own risk - modifying the registry can have side effects and precautions such as backing up your data should be taken before modifying your PC
  • download the .reg file
  • double-click the .reg file and click OK to import it into your registry
    • Having trouble importing a .reg file when downloading via the MS Edge browser in Windows 10? That's probably because it is auto-renaming to .txt for safety. You can rename it back to .reg or import the .txt file from within regedit.exe. Or just download with Internet Explorer or FireFox instead.
  • Reboot OR follow these steps to reset the Intel display driver
    • open Device Manager
    • open the Display Adapters
    • right-click "Intel HD Graphics..." GPU and click "disable"
    • click "Yes"
    • after the monitors stop flashing, right-click the Intel GPU again and click "enable"
  • open System - Display - Advanced display settings in control panel and choose your preferred resolution

 

Add custom resolution to Surface Pro 3 (manual method):

  1. disconnect all external monitors and set the Surface Pro 3 screen to default scaling settings of 150%, then log off and log on
  2. download the latest 64-bit .zip package for the Intel 4th gen Core graphics driver: https://downloadcenter.intel.com/search?keyword=Intel+HD+4600
  3. unzip the driver and use the "Have Disk" method to force install over the default Surface Pro 3 driver:
  • start Device Manager
  • expand - "Display Adapters"
  • right-click on the Intel HD Graphics entry and select "Update Driver Software"
  • click "Browse my computer for driver software"
  • click "Let me pick from a list of device drivers on my computer"
  • click "Have Disk"
  • browse to the unzipped driver driver folder \Graphics\igdlh64.inf or similar
  • click "Open" then "OK" then "Next"
  • after the driver installation completes, reboot
  • Right-click on the desktop and select "Graphics Properties"
    • click on the word "Display" in the upper-right-hand corner to reveal the drop down menu
    • select "Custom resolutions from the drop down menu
    • click yes to the warning message
    • add 1080x720, 60Hz, 32-bit color, 0% underscan and any other resolutions you wish
    • Close the custom resolution tool
  • Reboot
  • Connect all your desktop monitors and use the Display control panel to switch the Surface screen to the new 1080x720 landscape or 720x1080 portrait mode
    • On the start screen type in "adjust screen resolution" to open the Display control panel
    • Click on the representation of the Surface Pro 3 screen
    • Click the Resolution drop down box and select your newly added resolution, then click "apply"
    • Click on the representation of the external monitor and click the "make this my main display" checkbox and click "apply"
    • Move the representations of the two monitors around to your liking
    • Close the Control panel and enjoy!

     

     

    Other thoughts:

    Low res for desktop, full res for mobile - switch automatically without logoff/login!

    A benefit of this approach is that Windows remembers all the different multi-monitor configurations (topologies) that have been used in the past. So even though 1080x720 is set when connected to your specific external monitors, once you unplug those monitors, the SP3 will go back to the native 2160x1440 mode with 150% scaling. So you don't have to sacrifice the fantastic screen. You get hi-dpi when using the SP3 closer to your eyes in tablet/laptop mode, and low-dpi when using it further away where you can't see the individual pixels anyway. Its the best of both worlds! And you don't need to logoff/login to switch back and forth. Just dock and un-dock.

     

    Modern apps in Win 8.1 - use 1152x768 instead:

    When the Surface screen is in low-res docked mode at 1080x720, it is lower than the minimum resolution required to run a modern app (1024x768) and you'll get a resolution error. You can work-around this by switching the start screen to the desktop monitor and by making the external screen your main display so that apps open on that monitor instead. If you only use desktop applications, this isn't an issue. but you can also try setting one of the other 3:2 aspect ratio resolutions like 1152x768 to re-enable modern apps on the SP3 panel in docked mode.

     

    Other settings to try:

    You may want to experiment with different dpi-scaling settings in addition to the resolution settings. For example, I keep the "system dpi setting" at 150% which is the default. When the tablet is not docked, everything is scaled to 150%. When the tablet is docked, the tablet screen resolution drops and its scaling factor is set to 100% as is the external screen. But if you run dxdiag.exe in docked mode and click "save all info", you'll see the "system dpi setting" is still 150%. This way often works well but you may notice many Adobe applications look too big when run in docked mode because they are honoring the system dpi setting of 150% instead of the per-monitor dpi setting. That is the fault of the application, not the Surface or Windows. One workaround for these programs is to right-click on the .exe file, and on the compatibility tab under settings, ensure that "disable display scaling on high DPI settings" is checked. You may notice that if you keep programs open when docking and undocking, their on-screen size may change after the transition. If this bothers you, just close the app and re-start it. This gets better with the most recent Windows 10 update, but it is not entirely solved. In any case this is what works for me with Windows 8.1 and Windows 10 and I love my Surface Pro 3 even more with these simple tweaks.

     

    References:

     

    Back to main blog: http://blogs.msdn.com/b/danchar/

    $100 quad monitor workstation GPU

    $
    0
    0

    Coles notes (or Cliff notes for USA folks): get the Gigabyte GV-R725XOC-1GD or GV-N750OC

    At Microsoft, we love multiple monitor setups. It is quite rare to see developer workstations with *just* one monitor; most developers have two monitors and quite a few are using 3 or 4 these days. I have 3 Dell 1920x1200 IPS panels hooked up to a Radeon R9 290, so I’m a bit spoiled.

    In the past it was quite expensive to build these setups: either a specialized video card, multiple video cards, or USB video devices had to be added. Throwing an old video card into your system to get extra outputs is a great way to get a quad monitor setup on a budget, but depending on what cards you have laying around, compatibility may be an issue. Typically, AMD and NVIDIA only support multi-card setups if both cards are from the same generation. Using two cards from two different vendors or two different GPU generations is a “use at own risk” situation; although it may work now, future device driver updates could drop support for the older card leaving you stranded.

    Wherever possible, I like to simplify my builds. If you aren’t searching for blazing gaming performance and just want to hook up 4 regular monitors to get work done, you can try the Gigabyte GV-R725XOC-1GD. It is a Radeon R7 250X card that has two DisplayPort outputs in addition to HDMI and DVI all for $70 with sale and rebate ($100 without discounts):

    [Picture courtesy Gigabyte.com]

    There are many video cards on the market that have 4 or more video connectors on the back, including my expensive Radeon R9 290, but most cards only allow you to use 3 of the 4 connections simultaneously because of chipset limitations. In general if a card has two or more DisplayPort connections, then it can support 4 monitors seamlessly. But if it only has one DisplayPort connection, you’ll often need an MST hub or a second video card to enable the 4th display which adds expense and complication to your system build. As far as I know, Gigabyte’s version of the Radeon R7 250X is the first card to support a native quad monitor configuration for under $100.

    The GPU on this card is not screaming fast; it is just a re-packaged Radeon HD 7770 with 1GB of VRAM, a design that is now two years old. But because it is based on the “Graphics Core Next” architecture (Cape Verde XT flavor), it supports DirectX 12 according to AMD. The card maxes out at 95 watts and requires a single 6-pin PCIE power connector and uses 2 PCI slots so it won’t fit into some compact PCs. The specs recommend a 450watt system power supply, but 350-400watt supplies ought to work just fine. The PCI bus already supplies 75watts, so this card only needs 20watts more than a card without a PCIE-power connection requirement, so it’s not a big worry if you already have a quality power supply.

    NVIDIA cards are great too. The Gigabyte GV-N750OC (GTX 750) claims quad simultaneous monitor support as well for $130.

    With either of these cards if you plan to use 4 HDMI/DVI monitors, you’ll probably have to get "active" DisplayPort->HDMI/DVI adapters. These adapters are not needed if your monitors use DisplayPort natively. For more info on “active” adapters, please see DisplayPort->HDMI dongles - active vs passive re-visited. If you know of other modern graphics adapters support 4 simultaneous monitors for a budget price, please drop me a note and I’ll add to the list.

     

    Back to main blog: http://blogs.msdn.com/b/danchar/

    Multi-monitor docking with Surface Pro 3/4 and Lenovo Yoga 3 Pro

    $
    0
    0

    [My article on hi-dpi multi-mon scaling tweaks generated a ton of interest. Several enthusiasts asked questions on the forums about how to choose the best multi-monitor docking setup for their Surface Pro and other high-end laptops. This article provides an analysis of some available options and weighs them against a small set of criteria common for enterprise and consumer environments.]

    Intro

    Suppose you have a premium laptop like the Surface Pro 3 or Lenovo Yoga 3 Pro and you’d like to use it as desktop replacement with two external monitors. What accessories should you buy? To enable your laptop to fully replace a desktop computer, you need connections - lots of them. Desktops typically include 4 or more USB ports, 2 or more monitor ports, audio, Ethernet and many other options. Some ports like Ethernet are essential in enterprise settings but not so much in consumer settings. When choosing accessories to provide the ports you need, the following factors should be considered:

    • cost
    • # of USB ports
    • # of monitor ports
    • monitor resolutions supported
    • other ports (audio/Ethernet)
    • convenience of single step docking action vs manually plugging in several cables

    There are a few key accessory categories that provide these ports:

    • Factory Dock option (Surface Pro 3)
    • DisplayLink-based USB 3.0 docks
    • DisplayLink-based USB graphics adapters
    • DisplayPort MST hubs
    • USB 3.0 hubs

     

    Case Study Lenovo Yoga 3 Pro

    The Lenovo Yoga 3 Pro is a wonderfully versatile laptop that already includes a lot of connections such as 2 USB 3.0 ports and a micro-HDMI monitor output. So out of the box you can hook up a big monitor (2560x1440@ up to 50Hz) and a full size keyboard/mouse without any additional accessories. But what if you need to add a hard drive, second monitor, USB memory stick, Ethernet, USB 3-D printer, etc.?


    [Image courtesy "Yoga 3 Pro on Dell U2713hm at 2560x1440" forum contributor]

     

    Lenovo Enterprise scenario

    For Enterprise, a DisplayLink-based dock that provides two monitor outputs, Ethernet, and several USB 3.0 ports is probably the best option. Lenovo makes their own Thinkpad USB 3.0 dock that includes 5 USB ports, 2 DVI monitor connections, Ethernet and Audio. Other brands like Plugable and Targus provide docks with similar functionality at different price points, but if you are purchasing for enterprise and have a supplier that works with Lenovo already, it may be simpler to get the same brand. Using these docks is simple. Just plug in a single USB cable to your laptop and the power cable that came with your laptop for a total of 2 cables and you’re good to go. The only drawback of using these USB-based docks is that they are not natively supported by Windows and piggy-back on the Intel, AMD, or NVIDIA GPU device driver outside the best practices documented on MSDN for GPU devices. For most environments they work just fine but they may not be as robust as a dedicated GPU running the monitor directly. Because the graphical output is managed by an additional software layer, some CPU clock cycles are used. On modern laptops, this usage is not noticeable to end-users and would only be apparent when running performance benchmarks. Because many enterprises encourage their employees to use two monitors for productivity/ergonomic reasons and the laptop itself only has a receptacle for one monitor, a USB dock is the obvious choice.

     

    Lenovo Consumer scenario

    The Enterprise solution works fine for consumers too but for folks on a budget, instead of getting a full dock, you can get a simple 4-port USB 3.0 hub and a micro-HDMI->HDMI adapter. This will allow you to use a single large monitor and up to 5 USB devices with your laptop (4 plugged into the hub and one plugged directly into the laptop). You’ll need to manually plug in 3 cables with this setup: power, USB, and HDMI. If you need a second external monitor, it’s probably best to just get a full USB dock like the Plugable UD-3900.

    Case Study Surface Pro 3

    The official Surface Blog provides a lot of info on this already so I won’t try to duplicate it.

     

    [Image courtesy Surface Pro blog]

     

    Surface Enterprise scenario

    For enterprise, a DisplayLink dock works well and for budget-minded organizations the Plugable UD-3900 is probably the best choice given Plugable's reputation for stellar support. However there is an option to use the Surface brand docking stations instead. The Surface brand docks provides 4 or 5 USB connections, Ethernet, audio, etc., just like the DisplayLink docks, but it does not use a DisplayLink chipset. They use the built-in Intel GPU for all monitors so there is no CPU-usage penalty or potential compatibility concerns. Also they are premium devices with excellent build quality. Plus with integrated power, you don’t need to remember your power brick and plug in power separately. The older clamp-style Surface Pro 3 dock provides one mini-DisplayPort connection and the Surface tablet provides a second mini-DisplayPort connection. This allows 2 monitors to be connected with no additional devices. The newer brick-shaped Surface Pro 4 dock provides two miniDP connections natively for the easiest multi-monitor experience on both Surface Pro 3 and Surface Pro 4. For customers using the clamp-style dock with 2 or more external monitors that prefer a docking experience where multiple cables don’t need to be plugged in manually, there are a few options:

    • If your monitors support DisplayPort MST then you can daisy-chain one monitor to the next so that all the monitors are connected through one DisplayPort cable attached to the dock. Most customers do not have these monitors and it is silly to go buy them just for this feature if you already have working monitors.
    • You can add an MST hub which allows connecting 2 or 3 monitors via a single DisplayPort cable. (Some MST hubs from 2012-2013 had hardware flaws which blocked using 2 or more monitors. The current models have corrected these issues and support 2 or 3 monitors just fine. If you happen to buy a used MST hub where the 2nd monitor doesn’t work, contact the vendor for a replacement.) These hubs need additional cables and some require an external power supply so you may have to deal with a mess of cables.
    • You can add a DisplayLink USB Graphics adapter. These are less expensive than MST hubs but have the same limitations as the USB docks as described above. They don’t need external power so there is much less cable clutter compared to the MST hubs.

    Surface Consumer scenario

    For consumer use, the DisplayLink docks and Surface brand docks work well, but they can be a little expensive. If you don’t need a premium experience, you can make do with a 4-port USB 3.0 hub and a mini-DisplayPort-> HDMI adapter to plug into your regular monitor. If you need a second monitor, you can get an MST hub or DisplayLink-based Dock or one of the USB graphics adapters. The most economical choice is, again, the Plugable UD-3900 and similar docks. If you only need one external monitor, there is a new docking solution from ETauro which is basically a 4-port hub, Displayport extension and charger all integrated into one box, but it only works with the Surface Pro 3, not the Surface Pro 4.

    Product Summary Table

     

    Dock/adapter

    Price

    Monitors added*

    Other Ports

    Surface Pro 4 Docking Station

    $199

    2x 2560x1440 @60Hz via miniDP

    4 USB, combined audio in/out jack, Ethernet, Charging, miniDP

    Surface Pro 3 Docking Station

    $150-200

    1x 2560x1440 @60Hz via miniDP

    5 USB, combined audio in/out jack, Ethernet, Charging, miniDP

    Plugable UD-3900 or Hootoo docking station or or iClever or ETekCity

    $60-100

    2x 1920x1200 @60Hz or 1x 2560x1440 @50Hz via HDMI/DVI

    6 USB, audio in, audio out, Ethernet, HDMI, DVI

    Thinkpad USB 3.0 Dock 0A33970

    $150

    2x 1920x1200 @60Hz via DVI

    5 USB, audio in, audio out, Ethernet

    Targus ACP77USZ DV2K

    $275

    2x 2560x1440 @60Hz via DP/HDMI

    5 USB, audio in, audio out, Ethernet,

    ETauro Surface Pro 3 hub, with Ethernet

    $50-90

    0 - just a miniDP passthrough

    4 USB, Charging, optional Ethernet

    DisplayPort MST hubs

    ~$80-160

    2x 2560x1440 @60Hz via DP

    None

    ("Y-cable" models such as Club3D or Accell UltraAV docking stations add a USB hub and Ethernet)

    DisplayLink USB Graphics adapter

    $35-60

    1x 1920x1200 @60Hz via DVI

    None

    Micro-HDMI->HDMI adapter

    $6

    0 - just converts to HDMI and allows 1x 1920x1200 @60Hz or 1x 2560x1440 @60Hz

    None

    Surface miniDP->HDMI adapter

    $40

    0 - just converts to HDMI and allows 1x 2560x1440 @60Hz

    None

    4-port USB 3.0 hub

    $15

    0

    4 USB

    • Note many of these devices support alternate monitor resolutions such as 4K@30Hz, but I’ve listed the most popular premium 60Hz resolutions that folks actually use at work and home. If you have a specific monitor you’d like to use, check the specs of the device carefully to ensure it works at your desired refresh rate.

     

    References:

     

     Back to main blog: http://blogs.msdn.com/b/danchar/


    Surface Pro / Pro 2 Portrait Docking Station hack

    $
    0
    0
    [I posted this project on public forums over a year ago, but thought I'd clean it up, organize the pictures better and make it into a real blog post for posterity.]
     
    Looking for the Surface Pro 3 hack?
     
     

    Intro:

     
    Back in 2012 I got my hands on a few Surface Pro tablets to test the Intel IvyBridge GPU drivers. I thought they were solid tablets/laptops, and with the proper peripherals, capable of being full desktop replacements too. Many early adopters (self-hosters) at Microsoft used their Surface Pro tablets with external monitors. But they all had a huge problem: the main monitors were at proper eye-level but the Surface Pro was down low on the desktop. For taller folks the tablet screen would go unused in this configuration because it was just too low to view comfortably. Lifting the tablet up a few inches off the desktop with a couple reams of paper worked somewhat better but still looked rather awkward next to two big monitors.
     
    So I came up with an alternate approach that flipped the Surface Pro on its side so it could sit right next to a pair of monitors more comfortably. Rather than fiddling with a USB plug manually, I incorporated a USB 3.0 plug so the Surface Pro could just drop right in and connect to monitors and peripherals in one easy step.
     
     
     
     
     
    The initial design used a Lenovo Thinkpad USB 3.0 port replicator (0A33970) and a little box made out of scrap wood. The Lenovo device is still the most compact DisplayLink dual-monitor port replicator because it uses two small circuit boards stacked one on top of the other rather than one longer board like Plugable and Targus port replicators.
     
     
     
     
     

    Design Process:

     
    I was inspired by the MacBook docking station experts Henge Docks | Docking Stations for Apple Notebook Computers. But I saw a big problem with their vertical docking stations: you can’t use the MacBook screen while docked! What a waste because the screen is the best part of a MacBook. So I thought it was essential to keep the Surface screen visible when docking. MacBooks typically have all their connectors on one side of the machine which makes it easy to plug everything into a dock all at once. Unfortunately the Surface Pro/Pro 2 is not designed that way: the power and video is on one side and the USB on the other. I opted to dock on the USB side so power must be connected manually. The flipstand/kickstand is a key differentiating feature of the Surface brand. So I thought it was important to accentuate this in my design as well. In docked position, the flipstand is flipped out not only for aesthetics, but also to provide stability.
     
     
     
     
     
     
     

    Fabrication:

     
    I went through a few design iterations and chewed up a lot of scrap wood with my Dremel tool in the process. I also ordered a bunch of different right-angle USB 3.0 extension cables from DealeXtreme to test different layouts. After I had a working proof of concept in hand-built Dremel form, I learned the SketchUp CAD tool and made a quick 3D model. I sent the model to a friend who has a ShopBot CNC and he cut a couple test slabs out of MDF for me. They didn’t fit 100% but were close enough for prototype purposes. That is what is shown here. I’ve since tweaked the models for better fitment, but haven’t done a production run or anything.
     
    Many people asked why I didn't use 3D-printing? When I did this project, I had zero 3D-printing experience and didn't see a need for it given that CNC milling worked just fine. MDF turned out to be about $1 per dock and quite easy to mill. Besides there was so much plastic around my desk already, I thought wood was a nice alternative.
     
     
     
     
     

    Materials:

     

    Tools:

    • Saw
    • Dremel
    • Power drill/screwdriver
    • Glue gun
    • SketchUp CAD
    • ShopBot or other CNC mill
     

    Conclusion:

    The Surface Pro portrait dock was a side project I did in my spare time at home before I knew that the Microsoft Surface accessories team was working on a landscape dock. I entered my side project into the Microsoft Maker Garage Science fair, and you can see it at 1:57 in this video on the Microsoft Youtube channel: Microsoft Maker Garage, Devices Science Fair, and Maker Space unveiled - YouTube. The official Surface landscape dock was publically announced just 2 weeks after the science fair and when it was made available for sale, it sold like hotcakes. So I put this project on hold but never really forgot about portrait docking...
     
     
    At the Garage Maker Science fair [Sept 5th, 2013]:
     

    Ergonomic vertical mouse for long fingers? Scroll wheel modification hack

    $
    0
    0

    My Evoluent VerticalMouse 2 has been great at relieving wrist and arm stress for the last few years:

    [Image courtesy Bing image search]

    But a few weeks ago I was at a Microsoft retail store and played with a Razer brand gaming mouse that looked like this:

    [Image courtesy Bing image search]

    The Razer mouse lacked the vertical ergonomic option and had a bunch of silly glowing lights, but one feature I absolutely loved was the fingertip space just beyond the scroll wheel. This open space allowed quicker and more precise scrolling because my fingertip could glide over the scroll wheel into the open space rather than being forced to curl up above the wheel to avoid hitting the buttons.

    So what I really wanted was a mouse that combined these two features. My search was unsuccessful so I decided to modify my aging Evoluent mouse to have that open space. I started by getting my trusty screwdriver set and extracting the 5 bottom screws with a Philips #0 bit. Two screws are hidden under a sticker and one is hidden under a white gliding pad near the USB cable.

     

    On the inside of the mouse, there is a reverse threaded screw holding in the plastic button assembly to the case. I unscrewed it by turning clockwise. I have no idea why it was reverse-threaded:

     

    Then I took the button assembly and circuit boards out of the case and got to work with a Dremel rotary tool to make the gap between the top two buttons larger. Here is how mine looked after 3 minutes of dremmelizing and re-assembly: (It is a very well-used mouse with the paint peeling off the buttons.)

     

    Here is my hand  on the mouse. See how far my middle finger extends beyond the scroll wheel? I guess the mouse is just too small for my hand, but it feels comfortable everywhere except for the fingertips.

    This is what it used to look like when I used the scroll wheel. I had to curl my finger in order to scroll without hitting the buttons:

     

    And now after the modification I can keep my finger mostly straight and use the scroll-wheel more comfortably:

     

    I'll keep looking for a better mouse that accommodates my "medium" sized hand and my freakishly long fingers. But this hack will have to do for now.

     

    Back to main blog: http://blogs.msdn.com/b/danchar/

    Lenovo Yoga Pro 3 with external monitors 2560x1440@60Hz and higher

    $
    0
    0

    A few readers asked about using larger hi-resolution monitors with the Lenovo Yoga Pro 3. Given the general lack of info and the nebulous "specifications may vary" statement on the Lenovo website it is understandable that folks were concerned. Who wants to buy a premium laptop without knowing whether it will work with their premium monitor? Well I borrowed a Yoga Pro 3 from a colleague today to test it out with an Asus 4K monitor (PB287Q).

    First of all, for those concerned about using this laptop with a 4K monitor, it works out of the box with no issues with a $2 microHDMI->standard HDMI adapter. The only drawback of using a 4K resolution is that the refresh rate is limited to 29Hz/30Hz which for me is a bit sluggish. There is no way around this limitation with any driver tweaks as far as I could tell. The Intel Broadwell Core-M simply does not have the capability of driving a 4K panel faster.

    Using the 2560x1440 resolution also defaulted to 29Hz/30Hz, but I was able to get it to sync to 60Hz with some tweaks in the Intel Control panel. Just drop into the Intel control panel by right-clicking on the desktop and selecting "Graphics properties". After futzing with the awkward UI in this particular version of the Intel driver (whatever shipped with the Yoga) I found the custom mode settings. You need to click the down arrow next to the word "Display" to reveal all the options. Once you select Custom resolutions and click OK to the warnings about possibly blowing up your computer, you'll get an interface like this:

     

    Note the "CVT-RB" timing option which reduces the overall throughput needed to sync to the panel. Also note that I chose interlaced mode. non-interlaced works just fine too but you can try either.

    With the external monitor attached, I found that with the Yoga panel set at native resolution (3200x1800) sometimes the panel would go black or the monitor would go black. I'm not sure if it was my cables or something else since I only had the laptop for 30 minutes or so. I set the Yoga to 1600x900 and didn't see that behavior but it could have just been a random thing. Also I found that when switching between resolutions via the Intel control panel sometimes it didn't switch properly. But if I went in the Microsoft display control panel and set the resolution there it worked fine. Could just be a buggy Intel driver. In any case with just a minute or two of tweaks, I had a reliable 2560x1440@60p refresh and it looked great!

    Here are a few more screenshots of dxdiag etc. all reporting 60Hz.


     

    Here is the laptop and monitor together. Obviously the 28" Asus dwarfs the 13" laptop and the scaling is all wrong between the two monitors, but otherwise it looks OK:

     

     

    Now to use the more popular 27" 2560x1440 monitor size (109dpi) with the 13.3" 3200x1800 (276dpi) laptop screen and have all the sizes match up, you need 100% scaling on the 27" monitor and 250% scaling on the Lenovo. Unfortunately Windows 8.1 doesn't do this right. So you can either get Windows 10 for independent monitor scaling, or add the custom resolution of 1280x720 or 1366x768 to the Yoga panel using the custom resolution feature described above. For more info on matching resolutions see the dpi-scaling article. For more info on using multiple monitors see the docking article.

    Back to main blog: http://blogs.msdn.com/b/danchar/

     

     

    Surface Pro 3-in-1 VESA mounted dock sneak peek

    $
    0
    0

    [At the 2015 Microsoft Build conference, we showed a new approach to docking. Skip ahead to 22:15 in this Win2D lecture to see it in action. And make sure to check out the other cool Graphics talks at //build]

     

    [Want to get into our BETA test program or on the waiting list to get a 3-in-1 Dock for Surface Pro 3/4 (like the early prototype pictured below?) We'd love to learn more about how you plan to use it. Take our quick survey.]

     

    Updated: Click here to watch the video 

     

    Why do you need a tablet, a laptop, and a desktop?

    The Surface Pro 3-in-1 is the first device that can be all three. With our simple VESA-mounted dock, you can finally use the bright and beautiful Surface Pro 3 screen at eye-level right next to 1 or 2 desktop monitors for productivity. And with our optional lock, you can finally secure the tablet so it doesn’t go walking. Docking is easier than ever because we use the zero-insertion force 40-pin edge connector which breaks out into DisplayPort, power, and USB. So you just drop in your tablet and you're up and running with a full desktop experience in seconds. No moving parts. No cables to plug in. Simple one step docking.

      

    [photos by Scott Eklund of redboxpictures.com]

     

    At the Build Conference:

     

     Surface Pro 3-in-1 Hackathon team:

    • Dan Charlton
    • John Socha-Leialoha
    • Tom Coon
    • Govind Ramaswamy

     

    Special thanks to Simon Tao and Alison Stroll for featuring our prototype at the conference. And extra special thanks to the Microsoft Maker garage community.

     

    Ask us anything.

     

    Back to main blog: http://aka.ms/danchar

    Surface 3 - Intel Atom x7 (Cherrytrail) multi-monitor tweaks

    $
    0
    0
    [skip to the bottom for the regkey file link - to learn more about the hack check out the Surface Pro 3 article]
     
    I was excited to find the Surface 3 keeps the same 3:2 aspect ratio and high dpi of its big brother (Surface Pro 3)  and not the 16:9 ratio from its cousin (Surface 2 RT). The 1920x1280 resolution on the Surface 3 is far more practical than the 1920x1080 on the Surface 2 RT. Its wonderful to see more tablets and laptops breaking free of the 16:9 aspect ratio nonsense pushed by the movie industry and panel manufacturers.
     
    By default, Windows 8.1 chooses 150% dpi scaling on the Surface 3 screen and depending on which external monitor is paired up, the on-screen sizes of objects might not match up exactly. Most folks don't mind this and will love their Surface 3 out of the box. Others may want to tweak things a bit. Fortunately, you can use the same tweaks as the Surface Pro 3 to manually set a lower 3:2 aspect ratio resolution to better pair with certain monitors.
    [photo courtesy Microsoft.com]

    For example if you have a 21.5" 1920x1080 monitor at 103dpi, you can choose a screen resolution placing the effective Surface 3 pixel density at 107dpi to match very closely. As shown in the Surface Pro 3 tweak article, once the monitor is disconnected from the tablet, the tablet will magically spring back to full pixel density so you get the best of both worlds - hi-resolution /pixel density when using the tablet close up, and lower resolution to match your desktop monitors when docked.
     
    If you use the built in lower resolution options to avoid dpi-scaling issues in certain applications, you'll get black bars. So to avoid black bars, here are some 3:2 aspect ratio screen resolutions you can add with the regkey hack method to match your favorite monitor:
    • 1920x1280 213.7dpi 100% scaling native resolution at 10.8 inches diagonal
    • 1800x1200 200dpi 106% scaling
    • 1728x1152 192dpi 111% scaling
    • 1530x1020 170dpi 125% scaling (Intel driver may round to 1528x1020 which isn't exactly 3:2 ratio)
    • 1440x960 160dpi 133% scaling
    • 1350x900 150dpi 142% scaling (Intel driver may round to 1352x900 which isn't exactly 3:2 ratio)
    • 1278x852 142dpi 150% scaling (Intel driver may round to 1280x852 which isn't exactly 3:2 ratio)
    • 1200x800 134dpi 160% scaling
    • 1152x768 128dpi 167% scaling
    • 1080x720 120dpi 178% scaling (can't run modern apps on Surface screen)
    • 1020x680 114dpi 188% scaling (can't run modern apps on Surface screen, Intel driver may round to 1024x680 which isn't exactly 3:2 ratio)
    • 960x640 107dpi 200% scaling (can't run modern apps on Surface screen)
     
    Don't be scared away by the lower resolution options. Read the full Surface Pro 3 article to understand why low-resolution in docked mode actually works better for many people. Curiously, I noticed that when attempting to add certain resolutions, the Intel control panel added a slightly different resolution that was off by 2 pixels. I'm not sure why that is but they look just fine. I shared my findings with the Surface team a while back and they grok why all of us enthusiasts are doing these tweaks, so don't be surprised if some of these extra resolutions get baked into a future Intel driver update.
     
     

    Instructions:

    • backup your system (use at own risk - modifying the registry can have side effects and precautions such as backing up your data should be taken before modifying your PC
    • download the .reg file
    • double-click the .reg file and click OK to import it into your registry
      • Having trouble importing a .reg file when downloading via the MS Edge browser in Windows 10? That's probably because it is auto-renaming to .txt for safety. You can rename it back to .reg or import the .txt file from within regedit.exe. Or just download with Internet Explorer or FireFox instead.
    • Reboot OR follow these steps to reset the Intel display driver
      • open Device Manager
      • open the Display Adapters
      • right-click "Intel HD Graphics..." GPU and click "disable"
      • click "Yes"
      • after the monitors stop flashing, right-click the Intel GPU again and click "enable"
    • open System - Display - Advanced display settings in control panel and choose your preferred resolution

     

    Back to main blog: http://aka.ms/danchar

     

     

    What's the direct URL for a Windows Update driver?

    $
    0
    0

    I use all sorts of quirky hacks for GPU driver diagnostics. I found the new Windows 10 ETL log file process cumbersome and the Update Catalog limiting when I just needed to know driver download URLs. In %windir%\logs\WindowsUpdate\ there are several ETL log files. To find all the URLs of drivers that have been downloaded, run a regular expression match like "h t t p : \/ \/ .* d r i v e r.*. c a b" against those files. Then remove the spaces from the strings to reveal the exact URLs used to download and install drivers.

     

    Here is a more involved hack that cleans up the local Windows Update cache, removes drivers for a particular device, and forces the latest available Windows Update driver to be installed.

    Flush local Windows Update cache (use admin cmd prompt and backup first!):

    • net stop wuauserv
    • del /s /q %windir%\SoftwareDistribution\*.*
    • del /s /q %windir%\Logs\Windows Update\*.etl

    Uninstall current device driver(s):

    • Start - device manager
    • Open Display adapters
    • Right-click on the device - for example the AMD Radeon R9
    • Click Uninstall
    • At the prompt, ensure that "Delete the driver software for this device" is checked.
    • Click OK
    • Wait until the driver is uninstalled
    • On the Action menu click "scan for hardware changes"
    • The device now comes up with a Yellow-mark over it indicating a driver could not be found. If an older driver was found and installed, you can uninstall that too and repeat until the only thing left is the Microsoft Basic display adapter (MSBDA).

    Start Windows Update service (use admin cmd-prompt):

    • net start wuauserv

    Install latest available Windows Update driver:

    • Start - device manager
    • Right-click on the device and click "Update Driver software"
    • Click "Search automatically for updated driver software"
    • Wait for driver update to complete

    Check logs:

    References:

     

    Back to the main blog: http://aka.ms/danchar

    Surface Pro 3 landscape docking station teardown

    $
    0
    0

    [Skip ahead to part 2 for info on the 40-pin connector]

    Being a Surface fanatic, I wanted to see what was inside the Surface Pro 3 docking station:

    Tools:

    • #0 Philips screwdriver
    • #00 Philips screwdriver
    • 1/8” flat screwdriver
    • pliers
    • Pentalobe screwdriver (needed for non-destructive method)
    • Dremel or similar cutting tool (needed for destructive method shown)

     

     

    Disclaimer:

    Opening your Microsoft Surface Pro 3 will void your warranty. You should take every precaution when tearing apart any consumer electronic device. Even though the Surface Pro 3 dock operates at 12V, you should be careful to keep metal bits and tools away to not short out anything. If you are not familiar with the safety aspects of working with electronic projects, do not attempt this teardown. Ifixit has a good safety guide for electronic teardowns and repairs.

     

    Part 1 - Removing fasteners 

    • Flip over and pull off bottom sticker
    • Remove 5 pentalobe screws on the back of the dock
    • Here is one of the screws up close
    • If you don’t have a Pentalobe screwdriver, use a Dremel cutting wheel or similar tool to cut a slit in the screws then remove with regular slot screwdriver
    • Pry off front cover – the cover is stuck on with adhesive so it will take a little force to pry off
    • It is best to pry off with the docking clamp mechanism opened so it won't jam
    • Take a minute to check out the design and operate the docking clamp a few times to see everything work; then remove the 26 screws circled in red
    • Pry metal guide free
    • Remove bearings and free cables from white plastic guide
    • Remove 12 screws
    • Pry off bottom cover

     

    Part 2 - Separate board from chassis and cable assembly

    • Free circuit board from chassis by gently prying up at corners.
    • Push in USB retainer tabs and free the plug - wow its a standard type-A plug!
    • Free 7-pin power header (looks like a standard Foxconn part)
    • Free 3-pin DisplayPort power header with slot screwdriver or fingernails (it looks like a wake-on-lan connector)
    • Remove 4 tiny DisplayPort screws on underside of board with #00 Philips driver
    • Free DisplayPort receptacle and re-install 4 screws so they don’t get lost
    • Free at last!

     If you are building the 3-in-1 Dock put the circuit board back into that last piece of the plastic housing.

    Part 3 - Separate 40-pin charging connector

    • Remove 2 screws
    • Pry off cover to reveal 4 more screws and remove them
    • Pull each cable end through plastic opening one at a time: power, USB, then DisplayPort to free the cable assembly. I wonder how 40 tiny wires get soldered inside that fancy connector?

     If you are building the 3-in-1 Dock, Re-connect the cable to the circuit board and stop

    Part 4 - Examining the board (Optional)

    • Remove 6 screws to dislodge the main RF shields
    • Lift the individual square shields up by prying with small screwdriver at corners
    • Cut through the "+" shaped frame of the individual RF shields to expose the integrated circuits underneath
    • Left side
      • Under top left shield
        • Conexant CX20772 audio chip
        • LM352 DC-DC converter to power audio chip
      • Under bottom right shield
        • SMSC USB5537B 7-port hub (4 USB 3.0, 3 USB 2.0)
      • Atmel H340 8-pin serial EEPROM chip?
      • AP2176 8-pin power switch for USB 3.0 downstream port
    • Middle
      • 2 more AP2176 8-pin power switches for USB 3.0 downstream ports
      • NXP LPC811 16-pin microcontroller - for tablet charging circuit?
      • Undetermined tiny 8-pin chip with markings "C 40 AA" next to the LPC811
    • Right side
      • Under shield
        • 2 NCP3170A PAZZ 8-pin buck voltage regulators
        • Undetermined IC with markings "43A097U 21305SQ"
      • 2 NTMS4177P PE06 8-pin power mosfet chips for tablet charging?
      • 3540 8-pin voltage regulator (3.3v 500mA for DisplayPort?)
      • Undetermined IC with markings "4C55N RAMOE" next to large capacitor - probably some sort of power regulator or mosfet package
      • Undetermined tiny 8-pin IC with markings "ACH" next to DisplayPort power connector
    • Underside – Realtek 8153AM Gigabit Ethernet and two buffer chips

     

    Conclusion

    The clamp mechanism is a thing of beauty but I can't believe how many fasteners there are! The circuit board is surprisingly sparse with several open pad areas. It looks like one of the open pad areas is for a 48-pin IC connected to DisplayPort. Perhaps in one design there was a built-in DisplayPort repeater chip. There is a signal insertion loss at the tablet -> 40-pin connector and another loss at the dock passthrough port so that's a lot of loss to deal with.

    The board looks like it is 6 or 8 layers and being so sparsely populated, its surprising to see the Realtek 8153 chipset on the bottom given the extra manufacturing expense. There is probably a good reason for it - my guess is trying to separate the USB 3.0 high-frequency bits from the GigE as much as possible. The cable assembly is wonderful in that it allows a very modular design for everything; it breaks out from the 40-pin charging connector into mini-DisplayPort, 3-pin DisplayPort power connector, USB 3.0 type-A plug, a 7-pin power connector, and a charging indicator LED. Just imagine what else can be created with this cable...

     

    References

     

     

    Part 2 - More about the 40-pin connector

    Back to the main blog http://aka.ms/danchar


    Surface Pro 3 landscape docking station teardown (part 2)

    $
    0
    0

    Last month I shared a step-by-step teardown guide for the Surface Pro 3 docking station. This time I'll dive a little deeper into the 40-pin "surflink" aka SurfaceConnect connector. I only did this to see what was inside and ended up destroying the connector so I don't recommend repeating the process. Unlike the 12-pin connector on the factory power supply, there are no magnets or solid ferrous metal bits here. So the connector may need a little help staying seated in the SP3 tablet when not embedded in a docking station. I didn't have my regular camera with me - just my Nokia 635 Windows Phone. I think the pictures turned out pretty well for a $50 no-contract phone though.

     

    Tools:

    • Dremel or similar rotary tool
    • Pliers
    • end-cutters
    • putty knife or razor blade
    • Clamp to hold connector while working the Dremel (optional)

     

    Disassembly

    • Use the Dremel tool to slice along the injection moulding seam. Slice carefully and only cut through the black plastic. As you cut, you'll see the copper foil shield underneath. Don't cut into the shield yet:
    • With pliers and end-cutters, remove the black plastic:
    • With a putty knife or a razor blade, peel away the copper foil shield:
    • Keep going, this will take a while since what is underneath is quite sticky:
    • Finish by cutting the copper foil away from the braided shield on the USB, DisplayPort, and power cables:
    • Cut and peel away the clear stuff. I don't know what it is made out of, but I think it is there to secure all the wires and provide strain relief during assembly. It is squishy, sticky and very difficult to get off. If you try to pull it all off, you'll probably break a few of the solder connectors on the tiny wires like I did:
    • After peeling away all the sticky stuff you can see all the components on the tiny PCB:

     

    Observations

    • PCB appears to be 4-layer and has lots of vias
    • The proprietary 40-pin "surflink" connector mounts over the edge of the PCB and is reflowed on both sides - similar to how some mini-DisplayPort connectors are attached
    • 3 discrete transistors
    • 4 resistors
    • 1 diode
    • 4 8-pin integrated circuits marked "4CH". It appears that each IC has 8 pins - 4 in 4 out and a ground connection under the chip with a solder blob. I suspected these were some sort of ESD protection device for the various data channels, but it turned out there are driver chips for the highspeed differential pair lines (DP_ML and USB_SS)
    • The charging indicator LED (grey wires) appear to be connected to the discrete transistors/resistors through the "HPD2" pins from the 40-pin connector.
    • With a multi-meter I determined the pinout of 3-pin connector coming off the miniDisplayPort:
      • Pin 1 - CONFIG1/CONFIG2 pins on DisplayPort and to ground through a 1Mohm resistor
      • Pin 2 - ground/DP_PWR_Return
      • Pin 3 - +3.3v @500mA DP_PWR
    • More reverse-engineering info the 40-pin connector pinout is in the comments below thanks to other contributors!

     

     

    Back to the main blog: http://aka.ms/danchar

     

    3-in-1 Dock - A Microsoft Garage Project for Surface Pro 3

    $
    0
    0

    [Want to get into our BETA test program or on the waiting list to get a 3-in-1 Dock for Surface Pro 3/4 (like the early prototype pictured below?) We'd love to learn more about how you plan to use it. Take our quick survey.]

     

    At the //build conference earlier this year, we showed a sneak peek of the 3-in-1 Dock for Surface Pro 3. The response has been so positive to our point of view on multi-monitor/tablet integration that we've decided to release the files open source. Go grab the STL files on GitHub and build your own 3-in-1 Dock! And while those download, check out our demo video:

    https://www.youtube.com/watch?v=cXU4iK5-SNU

    Quick cut Video download

     

    3-D Printed parts:

    Laser-cut parts:

     The Hackathon team:

     

    Go grab the STL files now: https://github.com/Microsoft/3-in-1-dock

    Ask us anything.

     

     

    Back to the main blog

    Surface Book and Surface Pro 4 - high-dpi multi-monitor optimization regkey for alternate 3:2 aspect ratio resolutions

    $
    0
    0

    [Want to get into our BETA test program or on the waiting list to get a 3-in-1 Dock for Surface Pro 4 (like the early prototypes pictured below?) We'd love to learn more about how you plan to use it. Take our quick survey.]

    [Getting things working in the lab - please excuse the rat's nest of cables and ream of copy paper]

    [Setting up a demo at the Seattle Maker Faire (EMP Museum)]

     

    The Surface Pro 4 and Surface Book have 3:2 aspect ratio screens. Certain customers prefer to set the screen to a lower resolution rather than use the built-in scaling feature in Windows 10 especially when plugging in an external monitor or using legacy apps/games. But all the resolution options built-in from the factory are 16:9 or 16:10 aspect ratio like 1680x1050. When you select these options, you'll see black bar letterboxing which means you're not using the full screen! Get back your full 3:2 aspect ratio screen with this simple regkey modification.

    Let me know how the regkey works for you and what resolution you're using. For me, 720x1080 on the SP4 works brilliantly next to an old 1080P Samsung monitor in Windows 10. Its amazing how crisp it is even at that super low setting - a testament to the Microsoft Surface team and Intel for splendid integration of high quality GPU, LCD panel and software in a super sexy tablet form factor. To learn more about how this works, check out my previous blog articles (links below).

    Remember, use at own risk - modifying the registry can have side effects and precautions such as backing up your data should be taken before modifying your PC.

     

    Instructions:

    • backup your system
    • download .reg file: http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-65-02-47/SP4_2D00_SB_2D00_custom_2D00_resolutions5.reg
    • double-click the .reg file and click OK to import it into your registry
      • Having trouble importing a .reg file when downloading via the MS Edge browser in Windows 10? That's probably because it is auto-renaming to .txt for safety. You can rename it back to .reg or import the .txt file from within regedit.exe. Or just download with Internet Explorer or FireFox instead.
    • Reboot OR follow these steps to reset the Intel display driver
      • open Device Manager
      • open the Display Adapters
      • right-click "Intel HD Graphics..." GPU and click "disable"
      • click "Yes"
      • after the monitors stop flashing, right-click the Intel GPU again and click "enable"
    • open System - Display - Advanced display settings in control panel and choose your preferred resolution

     

    Resolutions added:

    • 2704x1800 (* not quite 3:2 - limited by TCON)
    • 2400x1600
    • 2304x1536
    • 2160x1440
    • 2056x1368
    • 2040x1360
    • 1920x1280
    • 1800x1200
    • 1728x1152
    • 1600x1066
    • 1536x1024
    • 1504x1000 (* not quite 3:2 - limited by TCON)
    • 1496x1000 (* not quite 3:2 - limited by TCON)
    • 1440x960
    • 1368x912
    • 1200x800
    • 1152x768
    • 1080x720

     

    Manual method:

    If you'd rather add resolutions manually you can follow the Surface Pro 3 guide. Grab the .zip version of the Intel HD drivers and hop on over to the guide.

     

    References:

     

    Back to the main blog http://aka.ms/danchar

    Surface Dock teardown (brick-shaped dock for SP3/SP4/SurfaceBook)

    $
    0
    0

    [I'm a Surface Fanatic. I *love* all the Surface devices, accessories, and the rich ecosystem built around this brand. I also love tearing devices apart. So in the spirit of my last teardown series lets do a teardown of the new brick-shaped Surface Dock. I'd also love to learn more about how you plan to use the Surface Dock so I can help improve the experience. Please take a quick survey to help with this mission.]

    Tools

    • pliers
    • T6 torx screwdriver
    • 1/8" slot screwdriver

    Disclaimer

    Opening your Surface Dock will likely void your warranty. You should take every precaution when tearing apart any consumer electronic device. Even though the Surface Dock operates at 15V, you should be careful to keep metal bits and tools away to not short out anything. If you are not familiar with the safety aspects of working with electronic projects, do not attempt this teardown. Ifixit has a good safety guide for electronic teardowns and repairs.

    Part 1 - pull the plug

    This is probably the toughest part of the teardown. Surface marketing material notes that the Surface Dock includes a "SurfaceConnect" cable. At first glance it looks like the cable is removable, but tug on it lightly and it doesn't budge. This is because it is glued in. You need to tug on it really hard to free it. I recommend gripping the strain relief with pliers thicker than what I'm using and prying against the case to get a little leverage. Be careful. Its possible to destroy the end of the cable if you crimp the wires or pull the insulation off.

    Here is the proprietary connector on the dock side of the SurfaceConnect cable. Note the kapton tape around the housing which snugs the connector into the dock. The glob of glue chipped off, but you can see the residue partially covering the printed text "IAJRADG" on the housing.

     

    Part 2 - remove bottom cover

    Now that the cable is free, its time to open up the mystery brick. Just like the last generation clamp dock, you need to pull off the bottom cover. This time instead of a plastic sheet with sticky residue, its a rubber sheet with sticky residue. Pull the sheet off to reveal the adhesive:

    Poke 4 holes in the corners to reveal four T6 torx screws. Loosen the screws - they should stay put with all the adhesive around the holes:

    Gently shake the dock and lift off the bottom cover. You may need to use the flathead screwdriver to pry it free. Flip it over to reveal one of the weights:

     

    Part 3 - remove the circuit board

    Use the T6 torx screwdriver to remove the 4 screws holding in the circuit board and the 2 screws holding the SurfaceConnect receptacle shell:

    The circuit board is now held in with a little friction at the USB ports but is mostly being held in place at the audio port which protrudes through the chassis and the SurfaceConnect receptacle shell. Gently pry the board on the corner opposite the audio port and the SurfaceConnect receptacle to tilt it and pull it out. It may help to bend the long edges of the plastic chassis slightly to give a little extra clearance for the audio port. If it doesn't come out easily, don't force it - you can bend the board and ruin it.

     

    You'll notice the shell around the main SurfaceConnect receptacle has a magnet on it with a red dot and the whole assembly falls right off:

    Here is a close-up of the connector shell:

    More weight on the other side:

     

     

    Part 4 - Examining the circuit board

    You can gently pry off the integrated circuit shields with a 1/8" slot screwdriver to reveal the interesting chips.

    Under the top shield:

     

    Under the bottom shields:

     

    The circuit board part number is "PCB X898350-001". It is very densely populated compared to the older docking station. The board appears to be 6 or 8 layer and has a gazillion 8-pin ICs everywhere. I suspect these are VRMs and power switches. I didn't take the time to look to closely at them. Let me know if you have any questions and I'll try to answer.

     

    Thanks to my colleague Jon for providing the Dock and doing most of the initial teardown.

     

    Back to the main blog http://aka.ms/danchar

    Ergonomic vertical mouse for long fingers? Scroll wheel modification hack

    $
    0
    0

    My Evoluent VerticalMouse 2 has been great at relieving wrist and arm stress for the last few years:

    [Image courtesy Bing image search]

    But a few weeks ago I was at a Microsoft retail store and played with a Razer brand gaming mouse that looked like this:

    [Image courtesy Bing image search]

    The Razer mouse lacked the vertical ergonomic option and had a bunch of silly glowing lights, but one feature I absolutely loved was the fingertip space just beyond the scroll wheel. This open space allowed quicker and more precise scrolling because my fingertip could glide over the scroll wheel into the open space rather than being forced to curl up above the wheel to avoid hitting the buttons.

    So what I really wanted was a mouse that combined these two features. My search was unsuccessful so I decided to modify my aging Evoluent mouse to have that open space. I started by getting my trusty screwdriver set and extracting the 5 bottom screws with a Philips #0 bit. Two screws are hidden under a sticker and one is hidden under a white gliding pad near the USB cable.

     

    On the inside of the mouse, there is a reverse threaded screw holding in the plastic button assembly to the case. I unscrewed it by turning clockwise. I have no idea why it was reverse-threaded:

     

    Then I took the button assembly and circuit boards out of the case and got to work with a Dremel rotary tool to make the gap between the top two buttons larger. Here is how mine looked after 3 minutes of dremmelizing and re-assembly: (It is a very well-used mouse with the paint peeling off the buttons.)

     

    Here is my hand  on the mouse. See how far my middle finger extends beyond the scroll wheel? I guess the mouse is just too small for my hand, but it feels comfortable everywhere except for the fingertips.

    This is what it used to look like when I used the scroll wheel. I had to curl my finger in order to scroll without hitting the buttons:

     

    And now after the modification I can keep my finger mostly straight and use the scroll-wheel more comfortably:

     

    I’ll keep looking for a better mouse that accommodates my “medium” sized hand and my freakishly long fingers. But this hack will have to do for now.

     

    Back to main blog: http://blogs.msdn.com/b/danchar/

    Viewing all 34 articles
    Browse latest View live


    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>