Workaround for Logitech C922 Pro Stream webcam not saving video settings

I bought one of these for streaming (here is my YouTube channel):


It’s a good webcam, but it turns out the webcam does not remember any of the video settings (the dialog below) — this includes brightness, sharpness, auto white balance, auto focus, gain, auto exposure, etc. If you unplug your webcam and plug it back in, all of these will get reset to default! Same thing if you ever reboot your computer.

Capture.PNG Capture.PNG

This might not be a problem for everyone, but for a “pro streamer” which is apparently the target audience for this (as indicated in its product name), this is a HUGE problem! Most likely, you’d want to keep the auto focus permanently disabled, use a custom white balance, and adjust exposure and gain according to your lighting.

Logitech has indicated that this is indeed by design:


Thankfully, this webcam uses the Windows in-box webcam drivers (KS + USBVideo), which means you can use the standard API set to interact with it. Github user SuslikV has already done most of the work here:

You can follow these steps:

  1. Download a release of cfg-cam from here. I’m using 1.0.
  2. Extract WebCameraConfig.exe.
  3. Open a command prompt and navigate to where you extracted it.
  4. Open your webcam settings dialog and modify settings as you desire.
  5. Run:
    WebCameraConfig.exe --savedev

    It’ll save cam_sett.cfg to the current directory. It looked like this when my Logitech C922 was plugged in:

    / WebCameraConfig settings file
    Device #1
    C922 Pro Stream Webcam
    VideoProcAmp_BacklightCompensation=0 [Manual]
    VideoProcAmp_Brightness=128 [Manual]
    VideoProcAmp_Contrast=128 [Manual]
    VideoProcAmp_Gain=29 [Manual]
    VideoProcAmp_Saturation=128 [Manual]
    VideoProcAmp_Sharpness=128 [Manual]
    VideoProcAmp_WhiteBalance=4000 [Manual]
    CameraControl_Exposure=-4 [Manual]
    CameraControl_Focus=0 [Manual]
    CameraControl_Pan=0 [Manual]
    CameraControl_Tilt=0 [Manual]
    CameraControl_Zoom=100 [Manual]
    ---end of the device #1
  6. Edit cam_sett.cfg as needed. You might have more devices in the file (such as your capture card) — erase them if you want. Make sure to keep the formatting consistent — check the “Device #1” and “–end of the device #1” part.
  7. You’re done! Whenever you want to restore these settings, run WebCameraConfig.exe from command prompt. It’ll read the file you saved and apply the saved settings to your webcam.
  8. You might want to create a small batch script for automating this. Here is mine:
    @echo off
    pushd %~dp0

I have it configured so that this script is called when I launch OBS. Maybe you’ll want to do that, maybe you want to run the script when Windows boots.

Caveats: some settings are not stored or restored – anything that isn’t listed in the file is not saved. For my purposes this wasn’t really a problem.

WinJS apps: programmatically open the App Bar, Nav Bar and the settings pane

It’s been a few years since the release of Windows 8, but teaching users how to use the edgy swipe is still difficult.

When I was first designing it, I added the search box to the top right because context-sensitive search charm is perhaps the most difficult to grasp for new users. This works really well, because a text box with a magnifying glass button next to it has good affordance.

However, I was still getting questions on how to change settings in the app, such as video quality.

So – I’m giving up. Instead of trying to explain things to users unfamiliar with edge swipes, I’ll be adding a “Gear” icon and “More” icon to Windows version of my Giant Bomb app:

GB app on Windows

See: top right corner.

Here is how you invoke a Settings pane (MSDN):

Here is how you open the nav bar (MSDN).

App bar is practically the same as nav bar (MSDN).

I noticed that this also helps with Windows 10 because edge swipes are gone.

Do a local backup of OneNote notebooks on SkyDrive

Before I begin, it’s probably worth mentioning while I’m a Microsoft employee, this is a personal blog.


You might have noticed that OneNote notebooks stored on SkyDrive or SkyDrive Pro tends to sync down to your computer as “Internet Shortcut”.  It’s basically a short cut to the URL somewhere on

You’re probably asking why – it’s because OneNote already knows how to talk over SkyDrive / SkyDrive Pro more efficiently than doing it over file-based synchronization.

Well that’s fine, until you have this problem: you have a personal requirement to always have local copies of cloud-backed services! You can easily accomplish this (for any file-based cloud syncing service, like Dropbox) by having your sync folder added to your Document Library, and having File History back these up to an external drive. However, backing up a shortcut to URL isn’t really that useful.

Here’s what you can do. Open OneNote 2013, go to File, Options, then Save & Backup.


Click on Backup Folder in the list, and click on Modify. Change the folder to be a folder that you’re backing up (My Documents\OneNote Backup is a good place).

To initiate a backup, click on [Back Up All Notebooks Now]. Optionally, change the frequency of your backups.

That’s it. I guess the only downside is that if you never open OneNote, backups won’t be initiated.

Release of Dominion Shuffler, Dominion deck randomizer app for Windows 8 / RT




This was actually released to the store about a month ago, I just forgot to put up an entry for it.

It was yet another weekend project that took slightly longer than a weekend.

This was written in WinJS. I used my Surface RT and my desktop computer as test platform, but I’m sure it scales well to various screen resolutions based on my experience with the simulator.