Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save RGoooGR/d5f37ec7163b7e109833c0a7d187c569 to your computer and use it in GitHub Desktop.

Select an option

Save RGoooGR/d5f37ec7163b7e109833c0a7d187c569 to your computer and use it in GitHub Desktop.
FIX MANUAL - Sony WH-1000XM3 Headphones not working on Windows
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Sony WH-1000XM3 Fix - Step by step guide</title>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: 'Segoe UI', Arial, sans-serif;
background: #f0f4f8;
color: #1a1a2e;
line-height: 1.7;
}
header {
background: linear-gradient(135deg, #1a1a2e, #16213e);
color: white;
padding: 40px 20px;
text-align: center;
}
header h1 {
font-size: 2rem;
margin-bottom: 10px;
}
header p {
font-size: 1.1rem;
opacity: 0.85;
}
.badge {
display: inline-block;
background: #e94560;
color: white;
padding: 4px 14px;
border-radius: 20px;
font-size: 0.85rem;
margin-top: 12px;
}
.container {
max-width: 860px;
margin: 0 auto;
padding: 30px 20px 60px;
}
/* Problem explanation */
.info-box {
background: #fff8e1;
border-left: 5px solid #ffc107;
border-radius: 8px;
padding: 20px 24px;
margin-bottom: 30px;
}
.info-box h2 {
margin-bottom: 8px;
color: #e65100;
}
/* Workflow bar */
.workflow {
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: center;
margin: 30px 0;
}
.wf-step {
background: white;
border: 2px solid #dde3ea;
border-radius: 10px;
padding: 12px 18px;
text-align: center;
font-size: 0.85rem;
font-weight: 600;
color: #555;
flex: 1 1 120px;
max-width: 160px;
position: relative;
}
.wf-step .num {
display: block;
width: 28px;
height: 28px;
line-height: 28px;
background: #1a1a2e;
color: white;
border-radius: 50%;
margin: 0 auto 6px;
font-size: 0.9rem;
}
.wf-step.active {
border-color: #e94560;
background: #fff0f3;
color: #e94560;
}
.wf-step.active .num {
background: #e94560;
}
.wf-arrow {
font-size: 1.4rem;
color: #aaa;
align-self: center;
}
/* Step cards */
.step-card {
background: white;
border-radius: 14px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
margin-bottom: 28px;
overflow: hidden;
}
.step-header {
display: flex;
align-items: center;
gap: 16px;
padding: 18px 24px;
background: #1a1a2e;
color: white;
}
.step-number {
background: #e94560;
color: white;
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.1rem;
font-weight: bold;
flex-shrink: 0;
}
.step-header h2 {
font-size: 1.1rem;
}
.step-header p {
font-size: 0.85rem;
opacity: 0.75;
margin-top: 2px;
}
.step-body {
padding: 24px;
}
.step-body ol {
padding-left: 22px;
}
.step-body ol li {
margin-bottom: 12px;
font-size: 0.97rem;
}
/* Buttons to click */
.click {
display: inline-block;
background: #e94560;
border: none;
border-radius: 8px;
padding: 7px 16px;
font-weight: 600;
color: white;
font-size: 0.82rem;
font-family: 'Segoe UI', Arial, sans-serif;
cursor: default;
}
.key {
display: inline-block;
background: #f5f5f5;
border: 1px solid #bbb;
border-radius: 4px;
padding: 1px 8px;
font-family: monospace;
font-size: 0.9rem;
color: #333;
}
/* Code block */
.code-block {
background: #1e1e2e;
color: #cdd6f4;
border-radius: 10px;
padding: 16px 20px;
font-family: 'Consolas', monospace;
font-size: 0.88rem;
margin: 14px 0;
position: relative;
overflow-x: auto;
white-space: pre;
}
.copy-btn {
position: absolute;
top: 10px;
right: 10px;
background: #e94560;
color: white;
border: none;
border-radius: 6px;
padding: 4px 12px;
font-size: 0.8rem;
cursor: pointer;
}
.copy-btn:hover {
background: #c73652;
}
/* Tip / warning */
.tip {
background: #e3f2fd;
border-left: 4px solid #1976d2;
border-radius: 6px;
padding: 12px 16px;
margin-top: 14px;
font-size: 0.92rem;
color: #0d47a1;
}
.warning {
background: #fce4ec;
border-left: 4px solid #e91e63;
border-radius: 6px;
padding: 12px 16px;
margin-top: 14px;
font-size: 0.92rem;
color: #880e4f;
}
/* Visual step display */
.visual-steps {
display: flex;
flex-direction: column;
gap: 10px;
margin: 16px 0;
}
.vs-item {
display: flex;
align-items: flex-start;
gap: 14px;
background: #f8f9fb;
border-radius: 8px;
padding: 12px 16px;
}
.vs-icon {
font-size: 1.4rem;
flex-shrink: 0;
margin-top: 2px;
}
.vs-text {
font-size: 0.94rem;
}
.vs-text strong {
display: block;
margin-bottom: 2px;
}
/* Success */
.success {
background: #e8f5e9;
border: 2px solid #4caf50;
border-radius: 10px;
padding: 20px 24px;
text-align: center;
margin-top: 10px;
}
.success h3 {
color: #2e7d32;
font-size: 1.2rem;
margin-bottom: 6px;
}
/* Script file */
.file-save {
background: #f3e5f5;
border-left: 4px solid #9c27b0;
border-radius: 6px;
padding: 14px 18px;
margin: 14px 0;
}
footer {
text-align: center;
padding: 20px;
font-size: 0.85rem;
color: #888;
}
</style>
</head>
<body>
<header>
<h1>🎧 Sony WH-1000XM3 sounds bad on Windows?</h1>
<p>Follow these steps to restore great sound quality</p>
<span class="badge">Works on Windows 10 and Windows 11</span>
</header>
<div class="container">
<!-- Problem explanation -->
<div class="info-box">
<h2>πŸ€” What is the problem?</h2>
<p>
Your Sony WH-1000XM3 headphones connect to your computer, but the audio sounds
<strong>tinny, quiet, or low quality</strong> β€” like listening through an old phone.
This happens because Windows treats the headphones as a <em>headset</em> (for calls),
while you just want to listen to music in <strong>stereo (high quality)</strong>.
This guide will fix that.
</p>
</div>
<!-- Workflow overview -->
<div class="workflow">
<div class="wf-step active">
<span class="num">1</span>
Download<br>Devcon
</div>
<div class="wf-arrow">&#8594;</div>
<div class="wf-step active">
<span class="num">2</span>
Install<br>Devcon
</div>
<div class="wf-arrow">&#8594;</div>
<div class="wf-step active">
<span class="num">3</span>
Save<br>script
</div>
<div class="wf-arrow">&#8594;</div>
<div class="wf-step active">
<span class="num">4</span>
Run<br>script
</div>
<div class="wf-arrow">&#8594;</div>
<div class="wf-step active">
<span class="num">5</span>
Set up<br>audio
</div>
<div class="wf-arrow">&#8594;</div>
<div class="wf-step active">
<span class="num">6</span>
Enjoy! 🎡
</div>
</div>
<!-- STEP 1 -->
<div class="step-card">
<div class="step-header">
<div class="step-number">1</div>
<div>
<h2>Download the "Devcon Installer" program</h2>
<p>You will need this program shortly. It is free and safe.</p>
</div>
</div>
<div class="step-body">
<div class="visual-steps">
<div class="vs-item">
<div class="vs-icon">🌐</div>
<div class="vs-text">
<strong>Open your browser (Edge, Chrome, Firefox β€” any will do)</strong>
Go to the following address by copying it and pasting it into the address bar:
</div>
</div>
</div>
<div class="code-block">https://github.com/Drawbackz/DevCon-Installer/releases<button class="copy-btn"
onclick="navigator.clipboard.writeText('https://github.com/Drawbackz/DevCon-Installer/releases')">Copy</button>
</div>
<div class="visual-steps">
<div class="vs-item">
<div class="vs-icon">πŸ“₯</div>
<div class="vs-text">
<strong>Click "Assets 4" under the top version (1.4-rc)</strong>
A list will appear. Click <span class="click">Devcon.Installer.exe</span> to download it.
</div>
</div>
<div class="vs-item">
<div class="vs-icon">πŸ“</div>
<div class="vs-text">
<strong>Save it to your Downloads folder</strong>
That is the default location for downloads. Remember this folder as you will need it soon.
</div>
</div>
</div>
<div class="tip">
πŸ’‘ <strong>How to copy and paste?</strong> Click the <span class="click">Copy</span> button
next to the link above. Then click in the address bar of your browser, press <span class="key">Ctrl</span>
+ <span class="key">A</span> to select all, then <span class="key">Ctrl</span> + <span
class="key">V</span> to paste. Press <span class="key">Enter</span>.
</div>
</div>
</div>
<!-- STEP 2 -->
<div class="step-card">
<div class="step-header">
<div class="step-number">2</div>
<div>
<h2>Open PowerShell as Administrator</h2>
<p>PowerShell is a program that lets you give your computer instructions via text.</p>
</div>
</div>
<div class="step-body">
<div class="tip" style="margin-bottom:16px;">
πŸ’‘ <strong>What is PowerShell?</strong> Imagine your computer has an assistant.
Normally you use buttons and menus to make it do things. With PowerShell
you <em>type</em> commands, just like sending a text message to your computer. It then executes exactly what
you type.
</div>
<div class="visual-steps">
<div class="vs-item">
<div class="vs-icon">πŸ”</div>
<div class="vs-text">
<strong>Press the Windows key on your keyboard</strong>
That is the key with the Windows logo (&#8862;) at the bottom left of your keyboard.
</div>
</div>
<div class="vs-item">
<div class="vs-icon">⌨️</div>
<div class="vs-text">
<strong>Type: powershell</strong>
You will see it appear in the search window that opens. Don't press Enter yet!
</div>
</div>
<div class="vs-item">
<div class="vs-icon">πŸ–±οΈ</div>
<div class="vs-text">
<strong>Right-click on "Windows PowerShell"</strong>
A menu will appear. Click <span class="click">Run as administrator</span>.
</div>
</div>
<div class="vs-item">
<div class="vs-icon">βœ…</div>
<div class="vs-text">
<strong>Click "Yes" when Windows asks</strong>
Windows asks if you are sure the program is allowed to make changes. Click <span
class="click">Yes</span>.
</div>
</div>
</div>
<div class="warning">
⚠️ <strong>Note:</strong> PowerShell must be opened as "administrator", otherwise it will not work.
You can tell it worked if the title at the top of the window says: <strong>Administrator: Windows
PowerShell</strong>
</div>
</div>
</div>
<!-- STEP 3 -->
<div class="step-card">
<div class="step-header">
<div class="step-number">3</div>
<div>
<h2>Navigate to your Downloads folder</h2>
<p>You need to tell PowerShell where the file you just downloaded is located.</p>
</div>
</div>
<div class="step-body">
<div class="visual-steps">
<div class="vs-item">
<div class="vs-icon">πŸ“‹</div>
<div class="vs-text">
<strong>Copy the text below</strong>
Click the <span class="click">Copy</span> button and then paste it into PowerShell with
<span class="key">Ctrl</span> + <span class="key">V</span>, then press <span
class="key">Enter</span>.
</div>
</div>
</div>
<div class="code-block">cd "$env:USERPROFILE\Downloads"<button class="copy-btn"
onclick="navigator.clipboard.writeText('cd \" $env:USERPROFILE\\Downloads\"')">Copy</button>
</div>
<div class="tip">
πŸ’‘ <strong>What does this do?</strong> You are telling PowerShell: "go to my Downloads folder". Just like
clicking on a folder in File Explorer to open it, you do the same here with a text command.
</div>
</div>
</div>
<!-- STEP 4 -->
<div class="step-card">
<div class="step-header">
<div class="step-number">4</div>
<div>
<h2>Install Devcon via PowerShell</h2>
<p>Copy the command below and paste it into PowerShell.</p>
</div>
</div>
<div class="step-body">
<div class="visual-steps">
<div class="vs-item">
<div class="vs-icon">πŸ“‹</div>
<div class="vs-text">
<strong>Copy this command exactly as it is</strong>
Click <span class="click">Copy</span>, click in the PowerShell window, paste with <span
class="key">Ctrl</span> + <span class="key">V</span> and press <span
class="key">Enter</span>.
</div>
</div>
</div>
<div class="code-block">.\Devcon.Installer.exe install -hash
6ECFAF7042C525DDB6C0BF0501BECFBCE85CBDF2A33B1BCA67734FEA567AF3B8 -update -addpath<button
class="copy-btn"
onclick="navigator.clipboard.writeText('.\\Devcon.Installer.exe install -hash 6ECFAF7042C525DDB6C0BF0501BECFBCE85CBDF2A33B1BCA67734FEA567AF3B8 -update -addpath')">Copy</button>
</div>
<div class="visual-steps" style="margin-top:14px;">
<div class="vs-item">
<div class="vs-icon">βœ…</div>
<div class="vs-text">
<strong>Verify it works</strong>
Copy and paste this command as well and press <span class="key">Enter</span>:
</div>
</div>
</div>
<div class="code-block">devcon version<button class="copy-btn"
onclick="navigator.clipboard.writeText('devcon version')">Copy</button></div>
<div class="tip">
πŸ’‘ If you see text appear (even if it looks like an error about "Usage"), it is working correctly!
That is just the program's help text.
</div>
</div>
</div>
<!-- STEP 5 -->
<div class="step-body">
<div class="visual-steps">
<div class="vs-item">
<div class="vs-icon">πŸ”</div>
<div class="vs-text">
<strong>Step 1: Open Notepad</strong>
Press the Windows key (&#8862;) on your keyboard. Then type <strong>notepad</strong> and click
on the first result that appears.
</div>
</div>
<div class="vs-item">
<div class="vs-icon">πŸ“‹</div>
<div class="vs-text">
<strong>Step 2: Copy the code below completely</strong>
Click the red <span class="click">πŸ“‹ Copy</span> button below. Then click in the white
area of Notepad and paste the code with <span class="key">Ctrl</span> + <span
class="key">V</span>.
</div>
</div>
<div class="vs-item">
<div class="vs-icon">πŸ‘€</div>
<div class="vs-text">
<strong>Step 3: Check that the code looks correct</strong>
You will now see a lot of text in Notepad. That is correct β€” you do not need to change anything.
</div>
</div>
</div>
<div class="code-wrapper">
<div class="code-block" id="scriptCode">#Requires -RunAsAdministrator
Write-Host "=== WH-1000XM3: Switch to Stereo mode ===" -ForegroundColor Cyan
$handsFree = Get-PnpDevice -ErrorAction SilentlyContinue | Where-Object {
$_.FriendlyName -match "WH-1000XM3" -and
($_.FriendlyName -match "Hands-Free AG" -or $_.FriendlyName -match "Headset")
}
if ($handsFree) {
foreach ($dev in $handsFree) {
Write-Host " Disabling: $($dev.FriendlyName)" -ForegroundColor Yellow
try {
Disable-PnpDevice -InstanceId $dev.InstanceId -Confirm:$false -ErrorAction Stop
Write-Host " Disabled." -ForegroundColor Green
} catch {
Write-Host " Skipped (virtual device): $($dev.FriendlyName)" -ForegroundColor Gray
}
}
} else {
Write-Host " No Headset devices found." -ForegroundColor Gray
}
Restart-Service -Name bthserv -Force -ErrorAction SilentlyContinue
Write-Host ""
Write-Host "Done! Now set Headphones (WH-1000XM3) as the default playback device."
-ForegroundColor Green</div>
<button class="copy-btn" onclick="copyScript(this)">πŸ“‹ Copy</button>
</div>
<div class="file-save">
<strong>πŸ’Ύ Step 4: Save the file as a PowerShell script:</strong>
<ol style="margin-top:10px; padding-left:20px;">
<li>Click <span class="click">File</span> β†’ <span class="click">Save as</span> at the top of Notepad</li>
<li>Navigate to your <strong>Downloads folder</strong> (on the left side of the window)</li>
<li>Name the file: <strong>Fix-Sony.ps1</strong></li>
<li>Set "Save as type" to <span class="click">All files (*.*)</span></li>
<li>Click <span class="click">Save</span></li>
</ol>
</div>
<div class="warning">
⚠️ <strong>Important:</strong> The name must end with <strong>.ps1</strong> β€” not .txt. Otherwise
it will not work.
</div>
</div>
<!-- STEP 6 -->
<div class="step-card">
<div class="step-header">
<div class="step-number">6</div>
<div>
<h2>Run the fix script</h2>
<p>Now let the script do its work.</p>
</div>
</div>
<div class="step-body">
<div class="visual-steps">
<div class="vs-item">
<div class="vs-icon">πŸ”΅</div>
<div class="vs-text">
<strong>Make sure your headphones are connected via Bluetooth</strong>
Check this via Settings β†’ Bluetooth. The headphones should say "Connected".
</div>
</div>
<div class="vs-item">
<div class="vs-icon">πŸ’»</div>
<div class="vs-text">
<strong>Go back to the PowerShell window (from step 2)</strong>
Or open a new PowerShell window as Administrator again (see Step 2).
</div>
</div>
<div class="vs-item">
<div class="vs-icon">πŸ“‹</div>
<div class="vs-text">
<strong>Copy and paste these two commands one by one</strong>
Press <span class="key">Enter</span> after each line.
</div>
</div>
</div>
<div class="code-block">Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass<button
class="copy-btn"
onclick="navigator.clipboard.writeText('Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass')">Copy</button>
</div>
<div class="code-block">cd "$env:USERPROFILE\Downloads"<button class="copy-btn"
onclick="navigator.clipboard.writeText('cd \" $env:USERPROFILE\\Downloads\"')">Copy</button>
</div>
<div class="code-block">.\Fix-Sony.ps1<button class="copy-btn"
onclick="navigator.clipboard.writeText('.\\Fix-Sony.ps1')">Copy</button></div>
<div class="tip">
πŸ’‘ <strong>What does this mean?</strong> The first command gives PowerShell permission to run scripts.
The second navigates to your Downloads folder. The third starts the fix script.
</div>
</div>
</div>
<!-- STEP 7 -->
<div class="step-card">
<div class="step-header">
<div class="step-number">7</div>
<div>
<h2>Set the headphones as default playback device</h2>
<p>The final step: telling Windows that audio should go through stereo mode.</p>
</div>
</div>
<div class="step-body">
<div class="visual-steps">
<div class="vs-item">
<div class="vs-icon">πŸ”Š</div>
<div class="vs-text">
<strong>Find the speaker icon in the bottom right of your taskbar</strong>
That is the small speaker icon next to the clock, in the bottom right of your screen.
</div>
</div>
<div class="vs-item">
<div class="vs-icon">πŸ–±οΈ</div>
<div class="vs-text">
<strong>Right-click on it</strong>
A small menu will appear.
</div>
</div>
<div class="vs-item">
<div class="vs-icon">🎡</div>
<div class="vs-text">
<strong>Click "Sounds" or "Sound settings"</strong>
Go to the <span class="click">Playback</span> tab.
</div>
</div>
<div class="vs-item">
<div class="vs-icon">🎧</div>
<div class="vs-text">
<strong>Find "Headphones (WH-1000XM3)"</strong>
Right-click on it and choose <span class="click">Set as default device</span>.
</div>
</div>
<div class="vs-item">
<div class="vs-icon">βœ…</div>
<div class="vs-text">
<strong>Click OK</strong>
Done!
</div>
</div>
</div>
</div>
</div>
<!-- SUCCESS -->
<div class="success">
<h3>πŸŽ‰ Congratulations! Your headphones now sound in high quality!</h3>
<p>Put on your favourite music and enjoy the difference.</p>
</div>
<!-- FREQUENTLY ASKED QUESTIONS -->
<div class="step-card" style="margin-top:28px;">
<div class="step-header">
<div class="step-number">?</div>
<div>
<h2>Frequently asked questions</h2>
<p>Problems or questions? Read this first.</p>
</div>
</div>
<div class="step-body">
<div class="visual-steps">
<div class="vs-item">
<div class="vs-icon">πŸ˜•</div>
<div class="vs-text">
<strong>The sound is bad again after a while</strong>
This happens when an app (like Discord or Teams) uses the microphone on your headphones.
Windows then automatically switches back to "headset mode". Solution: open that app and set
the microphone to your computer's microphone instead of the headphones. Then run the script
again.
</div>
</div>
<div class="vs-item">
<div class="vs-icon">❌</div>
<div class="vs-text">
<strong>The script gives an error</strong>
Check that you opened PowerShell as Administrator (see Step 2). Also check that
the file Fix-Sony.ps1 is in your Downloads folder and ends with .ps1.
</div>
</div>
<div class="vs-item">
<div class="vs-icon">πŸ”΅</div>
<div class="vs-text">
<strong>I don't see "Headphones (WH-1000XM3)" in the sound list</strong>
Check that the headphones are connected via Bluetooth. Disconnect and reconnect them.
Then run the script again.
</div>
</div>
</div>
</div>
</div>
</div>
<footer>
Guide created for the Sony WH-1000XM3 &mdash; Based on the original fix by
<a href="https://gist.github.com/dcurgz/11b95be2ebfd47bb05d08ae389b6e5dd" target="_blank">dcurgz</a>
</footer>
<script>
function copyScript() {
const code = `#Requires -RunAsAdministrator
Write-Host "=== WH-1000XM3: Switch to Stereo mode ===" -ForegroundColor Cyan
$handsFree = Get-PnpDevice -ErrorAction SilentlyContinue | Where-Object {
$_.FriendlyName -match "WH-1000XM3" -and
($_.FriendlyName -match "Hands-Free AG" -or $_.FriendlyName -match "Headset")
}
if ($handsFree) {
foreach ($dev in $handsFree) {
Write-Host " Disabling: $($dev.FriendlyName)" -ForegroundColor Yellow
try {
Disable-PnpDevice -InstanceId $dev.InstanceId -Confirm:$false -ErrorAction Stop
Write-Host " Disabled." -ForegroundColor Green
} catch {
Write-Host " Skipped (virtual device): $($dev.FriendlyName)" -ForegroundColor Gray
}
}
} else {
Write-Host " No Headset devices found." -ForegroundColor Gray
}
Restart-Service -Name bthserv -Force -ErrorAction SilentlyContinue
Write-Host ""
Write-Host "Done! Now set Headphones (WH-1000XM3) as the default playback device." -ForegroundColor Green`;
navigator.clipboard.writeText(code);
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment