<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jonas HOPP</title>
	<atom:link href="https://jonas.hopp.fr/feed/" rel="self" type="application/rss+xml" />
	<link>https://jonas.hopp.fr</link>
	<description>Photographer &#38; Digital Strategist</description>
	<lastBuildDate>Thu, 05 Nov 2026 11:58:50 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>
	<item>
		<title>Why Your Brother Wi-Fi Printer Shows &#8216;Offline&#8217; When Turned On (The 0.0.0.0 DHCP Bug) — And a 1-Click Fix</title>
		<link>https://jonas.hopp.fr/why-your-brother-wi-fi-printer-shows-offline-when-turned-on-the-0-0-0-0-dhcp-bug-and-a-1-click-fix/</link>
					<comments>https://jonas.hopp.fr/why-your-brother-wi-fi-printer-shows-offline-when-turned-on-the-0-0-0-0-dhcp-bug-and-a-1-click-fix/#respond</comments>
		
		<dc:creator><![CDATA[Jonas Hopp]]></dc:creator>
		<pubDate>Thu, 05 Nov 2026 11:57:55 +0000</pubDate>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[Tips et autres astuces]]></category>
		<guid isPermaLink="false">https://jonas.hopp.fr/?p=567</guid>

					<description><![CDATA[Deep dive into why Brother wireless laser printers (HL-1210W / NC-8400w) randomly wipe their IPv4 address to 0.0.0.0 while keeping Wi-Fi Link OK, why Windows WSD ports get stuck Offline, and how to permanently fix both with a 1-command PowerShell or Python script.]]></description>
										<content:encoded><![CDATA[
<p><style>
.jh-code-card {
  margin: 1.5rem 0;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #2d3748;
  background: #0f172a;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.jh-code-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.55rem 1rem;
  background: #1e293b;
  border-bottom: 1px solid #334155;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.82rem;
  color: #e2e8f0;
}
.jh-code-title {
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.jh-code-lang {
  background: #334155;
  color: #38bdf8;
  padding: 0.1rem 0.45rem;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 500;
}
.jh-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: #2563eb;
  color: #ffffff;
  border: none;
  border-radius: 5px;
  padding: 0.32rem 0.7rem;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.1s ease;
}
.jh-copy-btn:hover {
  background: #1d4ed8;
}
.jh-copy-btn.copied {
  background: #16a34a;
}
.jh-code-pre {
  margin: 0 !important;
  padding: 1rem 1.15rem !important;
  overflow-x: auto;
  background: #0f172a !important;
  color: #f8fafc !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace !important;
  font-size: 0.85rem !important;
  line-height: 1.55 !important;
  border: none !important;
}
.jh-code-pre code {
  background: transparent !important;
  color: inherit !important;
  padding: 0 !important;
  font-family: inherit !important;
}
</style> <script>
function jhCopyCode(btn, codeId) {
  var el = document.getElementById(codeId);
  if (!el) return;
  var text = el.innerText || el.textContent;
  var span = btn.querySelector('span');
  function markCopied() {
    btn.classList.add('copied');
    if (span) span.textContent = 'Copied!';
    setTimeout(function() {
      btn.classList.remove('copied');
      if (span) span.textContent = 'Copy code';
    }, 2000);
  }
  if (navigator.clipboard && navigator.clipboard.writeText) {
    navigator.clipboard.writeText(text).then(markCopied).catch(function() {
      var ta = document.createElement('textarea');
      ta.value = text;
      document.body.appendChild(ta);
      ta.select();
      document.execCommand('copy');
      document.body.removeChild(ta);
      markCopied();
    });
  } else {
    var ta = document.createElement('textarea');
    ta.value = text;
    document.body.appendChild(ta);
    ta.select();
    document.execCommand('copy');
    document.body.removeChild(ta);
    markCopied();
  }
}
</script></p>



<p class="wp-block-paragraph">If you own a compact Brother wireless laser printer—such as the <strong>Brother HL-1210W</strong>, <strong>HL-1110W</strong>, <strong>HL-L2300D/W</strong>, or any model built around Brother&rsquo;s <strong><code>NC-8400w</code></strong> / <strong><code>NC-8000w</code></strong> embedded 802.11b/g/n network card—you have probably experienced this maddening scenario:</p>



<ol class="wp-block-list">
<li>The printer is turned on, sitting right next to your router with a solid green Ready LED.</li>
<li>Windows shows the printer as <strong><code>Offline</code></strong>.</li>
<li>Pinging the printer&rsquo;s IP address returns <code>Destination host unreachable</code> (ARP state: <code>Unreachable</code>).</li>
<li>Even scanning your entire local subnet (<code>192.168.x.1–254</code>) confirms the printer hasn&rsquo;t simply picked up a new DHCP address—it has completely vanished from Layer 3.</li>
</ol>



<p class="wp-block-paragraph">Instead of endlessly power-cycling the printer every few days, I decided to inspect both the <strong>Windows Print Spooler / WSD stack</strong> and the <strong>printer&rsquo;s embedded network firmware</strong>. What I found was a two-headed bug—and thankfully, both halves can be permanently fixed in 10 seconds with a single script (complete with a 1-command rollback to factory defaults and manufacturer hardware reset instructions).</p>



<h2 class="wp-block-heading">1. The Smoke: Wireless <code>Link OK</code>, IP Address <code>[Blank]</code></h2>



<p class="wp-block-paragraph">On the Brother HL-1210W, pressing the <strong>Power/Start button 3 times rapidly</strong> prints the internal 3-page <code>PRINTER SETTINGS</code> diagnostic report. Printing this report while the printer was turned on—yet completely unreachable on the network—revealed the exact state of the internal network card on Page 3 (<code>&lt;&lt;NETWORK CONFIGURATION&gt;&gt;</code>):</p>



<figure class="wp-block-image size-full"><a href="https://jonas.hopp.fr/wp-content/uploads/2026/11/brother_hl1210w_network_config_0000_bug.jpg"><img fetchpriority="high" decoding="async" width="768" height="1024" class="wp-image-566" src="https://jonas.hopp.fr/wp-content/uploads/2026/11/brother_hl1210w_network_config_0000_bug.jpg" alt="Brother HL-1210W Network Configuration Report showing Wireless Link OK on Channel 6 while IP Address is blank and IP Gateway is 0.0.0.0" srcset="https://jonas.hopp.fr/wp-content/uploads/2026/11/brother_hl1210w_network_config_0000_bug.jpg 768w, https://jonas.hopp.fr/wp-content/uploads/2026/11/brother_hl1210w_network_config_0000_bug-480x640.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 768px, 100vw" /></a>
<figcaption class="wp-element-caption">Page 3 of the Brother HL-1210W Network Configuration Report (printed via 3x Power button press): Layer-2 Wi-Fi is associated (green box: Link OK, 11n 72Mbps, Ch=6), while Layer-3 IPv4 has wiped its own IP and Subnet Mask to blank / 0.0.0.0 (red box).</figcaption>
</figure>



<p class="wp-block-paragraph">Here is the exact transcription of the diagnostic printout:</p>



<div class="jh-code-card">
<div class="jh-code-header"><span class="jh-code-title">PRINTER SETTINGS (3/3) — Diagnostic Extract <span class="jh-code-lang">TEXT</span></span> <button class="jh-copy-btn" type="button"> Copy code </button></div>
<pre class="jh-code-pre"><code id="code-diag-extract">&lt;Interface&gt;             WirelessLAN on
&lt;Node Type&gt;             Brother NC-8400w, IEEE 802.11b/g/n (Active)
&lt;Node Firmware Ver.&gt;    Firmware Ver.Q

&lt;IP Settings&gt;
IP Address                              (via DHCP)
Subnet Mask
IP Gateway              0.0.0.0
Boot Method             AUTO
Boot Tries              3
Primary DNS Server      192.168.3.1

&lt;Comm. Mode&gt;            Infrastructure
&lt;Authentication Mode&gt;   WPA/WPA2-PSK
&lt;Encryption Mode&gt;       AES
&lt;Wireless Link Status&gt;  Link OK, 11n(72Mbps), Receiving Signal=3, Operating Ch=6</code></pre>
</div>



<p class="wp-block-paragraph">Compare <code>&lt;Wireless Link Status&gt;</code> (green box) against <code>&lt;IP Settings&gt;</code> (red box):</p>



<ul class="wp-block-list">
<li><strong>Layer 2 (Wi-Fi 802.11n) is completely healthy:</strong> The printer is associated with the 2.4 GHz access point on Channel 6 at 72 Mbps (<code>Link OK</code>).</li>
<li><strong>Layer 3 (TCP/IPv4) has crashed and zeroed itself out:</strong> <code>IP Address</code> and <code>Subnet Mask</code> are literally blank, <code>IP Gateway</code> is <code>0.0.0.0</code>, while <code>Primary DNS Server</code> still holds <code>192.168.3.1</code> from its previous lease!</li>
</ul>



<h3 class="wp-block-heading">Why Does the Brother NC-8400w Wipe Its Own IP Address?</h3>



<p class="wp-block-paragraph">The Brother HL-1210W uses a 2.4 GHz-only (<code>802.11b/g/n</code>) radio paired with an embedded TCP/IP stack (<code>Firmware Ver.Q</code>). On modern dual-band or tri-band Wi-Fi 6 / Wi-Fi 7 routers, four things combine to break it:</p>



<ol class="wp-block-list">
<li><strong>Deep Sleep &amp; Dual-Band Radio Cycling / WPA2 Re-Keying:</strong> When the printer enters Deep Sleep, or when a modern router briefly steers bands or rotates WPA2 Group Temporal Keys (GTK) on the 2.4 GHz radio, the printer triggers a DHCP lease renewal or link renegotiation.</li>
<li><strong>The <code>Boot Tries: 3</code> Trap:</strong> By default, <code>Boot Method</code> is set to <code>AUTO</code> with <code>Boot Tries = 3</code>. If the printer&rsquo;s DHCP renewal (<code>DHCPDISCOVER</code> / <code>DHCPREQUEST</code>) does not complete within those 3 rapid attempts while the 2.4 GHz link is re-handshaking, the DHCP client gives up.</li>
<li><strong>Zeroing the Stack Without Retry:</strong> Even though <code>APIPA</code> is marked <code>Enabled</code>, instead of keeping its last valid lease or scheduling a background DHCP backoff timer, the <code>NC-8400w</code> zeroes out its IP address and subnet mask (<code>0.0.0.0</code>) and stays there indefinitely—associated to Wi-Fi at Layer 2, but unreachable on any IP port (<code>80</code>, <code>515</code>, <code>631</code>, <code>9100</code>) or via mDNS/NetBIOS.</li>
<li><strong>The 1-Hour <code>Auto Power Off</code> Default:</strong> Out of the box, the printer is also configured to trigger <code>Auto Power Off</code> after <strong>1 hour</strong> of inactivity, shutting down the network card instead of staying in low-power network standby (<code>Sleep</code>).</li>
</ol>



<h2 class="wp-block-heading">2. Another Culprit: Windows WSD (<code>Web Services for Devices</code>)</h2>



<p class="wp-block-paragraph">Even when the printer <em>does</em> have a valid IP address, Windows 10 and Windows 11 automatically register network printers on a <strong>WSD Port</strong> (<code>WSD-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</code> pointing to <code>http://&lt;ip&gt;:80/WebServices/Device</code>).</p>



<p class="wp-block-paragraph">WSD relies on multicast discovery packets (<code>UDP 3702</code> / <code>WS-Discovery</code>). If your PC is connected to a 5 GHz or 6 GHz SSID and the printer is on the 2.4 GHz radio—or if the printer takes two seconds to wake from sleep when Windows queries it—Windows marks the WSD device as <strong><code>Offline</code></strong> and refuses to send the print job that would otherwise wake the printer up.</p>



<p class="wp-block-paragraph">Even if you manually create a Standard TCP/IP port in Windows, Windows enables <strong>SNMP Status Enabled</strong> by default (<code>UDP 161</code>). If the printer fails to answer an SNMP poll fast enough while sleeping, Windows <em>still</em> blocks the print queue as <code>Offline</code>.</p>



<h2 class="wp-block-heading">3. The Fix (Firmware NVRAM + Windows Print Stack)</h2>



<p class="wp-block-paragraph">To make a Brother Wi-Fi printer 100% reliable, we need to change <strong>three settings inside the printer&rsquo;s NVRAM</strong> (via its Embedded Web Server) and <strong>one setting in Windows</strong>:</p>



<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>Layer / Component</th>
<th>Default (Buggy) Setting</th>
<th>Hardened Setting</th>
<th>Why It Fixes the Bug</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Printer TCP/IP Boot Method</strong></td>
<td><code>AUTO</code> (DHCP, <code>3</code> tries)</td>
<td><strong><code>STATIC</code></strong> (Fixed IP / Mask / Gateway)</td>
<td>Bypasses the buggy DHCP state machine so the printer never wipes its IP to <code>0.0.0.0</code> on wake-up or Wi-Fi re-keying.</td>
</tr>
<tr>
<td><strong>Printer DNS Method</strong></td>
<td><code>AUTO</code></td>
<td><strong><code>STATIC</code></strong> (Router IP + <code>1.1.1.1</code>)</td>
<td>Prevents DNS config drift when switching away from DHCP.</td>
</tr>
<tr>
<td><strong>Printer Auto Power Off</strong></td>
<td><code>1 hour</code></td>
<td><strong><code>Off</code></strong> (Uses <code>Sleep</code> mode instead)</td>
<td>Keeps the Wi-Fi card listening on TCP <code>9100</code> in low-power Sleep (~0.8W) instead of powering down after 60 minutes.</td>
</tr>
<tr>
<td><strong>Windows Print Port</strong></td>
<td><code>WSD-...</code> (Multicast)</td>
<td><strong><code>Standard TCP/IP</code></strong> (<code>RAW 9100</code>, <code>SNMP=False</code>)</td>
<td>Sends print streams directly to port <code>9100</code> and disables SNMP status polling so Windows never falsely flags the queue <code>Offline</code>.</td>
</tr>
</tbody>
</table>
</figure>



<h2 class="wp-block-heading">4. Automated 1-Command PowerShell Fixer &amp; Rollback Script (<code>Fix-BrotherPrinter.ps1</code>)</h2>



<p class="wp-block-paragraph">Instead of clicking through 20-year-old HTML frames in the printer&rsquo;s web interface and digging through legacy Windows Print Management dialogs, here is a standalone PowerShell script that automates both the <strong>printer NVRAM hardening</strong> and the <strong>Windows TCP/IP port migration</strong>—and includes a <code>-RevertToDefault</code> switch to roll everything back to factory defaults whenever you want.</p>



<h3 class="wp-block-heading">Step 0: If Your Printer Is Currently Stuck at <code>0.0.0.0</code></h3>



<ol class="wp-block-list">
<li><strong>Unplug the power cable</strong> from the back of the printer for 10 seconds, then plug it back in (tapping the soft power button only toggles Standby and does not reset the <code>NC-8400w</code> network stack).</li>
<li>Wait 30 seconds for it to boot and grab a fresh DHCP lease.</li>
<li>Look at the bottom of your 3x-Power-button Network Configuration printout to find your printer&rsquo;s admin password under <code>&lt;Default Password&gt; Pwd:</code> (or use <code>access</code> on older firmware).</li>
</ol>



<h3 class="wp-block-heading">Step 1: Run <code>Fix-BrotherPrinter.ps1</code> (Harden or Revert to Default)</h3>



<p class="wp-block-paragraph">Save the script below as <code>Fix-BrotherPrinter.ps1</code>:</p>



<p class="wp-block-paragraph"><strong>To apply the permanent hardening fix:</strong></p>



<div class="jh-code-card">
<div class="jh-code-header"><span class="jh-code-title">Apply Permanent Fix <span class="jh-code-lang">POWERSHELL</span></span> <button class="jh-copy-btn" type="button"> Copy code </button></div>
<pre class="jh-code-pre"><code id="code-ps1-cmd-harden">.\Fix-BrotherPrinter.ps1 -PrinterIP "192.168.3.8" -AdminPassword "YOUR_PRINTER_PASSWORD"</code></pre>
</div>



<p class="wp-block-paragraph"><strong>To revert all printer &amp; Windows settings back to factory defaults (<code>-RevertToDefault</code>):</strong></p>



<div class="jh-code-card">
<div class="jh-code-header"><span class="jh-code-title">Revert to Factory Defaults <span class="jh-code-lang">POWERSHELL</span></span> <button class="jh-copy-btn" type="button"> Copy code </button></div>
<pre class="jh-code-pre"><code id="code-ps1-cmd-revert">.\Fix-BrotherPrinter.ps1 -PrinterIP "192.168.3.8" -AdminPassword "YOUR_PRINTER_PASSWORD" -RevertToDefault</code></pre>
</div>



<p class="wp-block-paragraph"><strong>Full PowerShell Script (<code>Fix-BrotherPrinter.ps1</code>):</strong></p>



<div class="jh-code-card">
<div class="jh-code-header"><span class="jh-code-title">Fix-BrotherPrinter.ps1 <span class="jh-code-lang">POWERSHELL</span></span> <button class="jh-copy-btn" type="button"> Copy code </button></div>
<pre class="jh-code-pre"><code id="code-ps1-full">&lt;#
.SYNOPSIS
    Permanent Network &amp; Windows Print Stack Fixer (and Rollback Tool) for Brother HL-1210W / NC-8400w Printers.

.DESCRIPTION
    Resolves (or reverts) the two root causes of Brother wireless printers randomly showing "Offline":
    1. Embedded Firmware Bug (Brother NC-8400w / HL-1210W):
       - Default Mode: Locks Boot Method to STATIC, sets Static DNS, and disables 1-hour Auto Power Off
         so the printer stays in low-power Sleep mode with its Wi-Fi stack active.
       - Revert Mode (-RevertToDefault): Restores Boot Method to AUTO (DHCP), Boot Tries to 3, DNS Method
         to AUTO, and Auto Power Off to 1 hour.
    2. Windows Print Stack:
       - Default Mode: Creates a Standard TCP/IP Port (RAW 9100, SNMP=False) and binds the Brother queue.
       - Revert Mode (-RevertToDefault): Rebinds the Windows print queue back to its WSD port (if present).

.PARAMETER PrinterIP
    The IPv4 address of the Brother printer (e.g., 192.168.3.8).

.PARAMETER AdminPassword
    The printer's Embedded Web Server password (printed at the bottom of the 3x Power-button Network
    Configuration Report under "&lt;Default Password&gt; Pwd:", or "access" on older firmware).

.PARAMETER RevertToDefault
    Switch to restore the printer's network settings and Windows port back to factory defaults.

.EXAMPLE
    .\Fix-BrotherPrinter.ps1 -PrinterIP "192.168.3.8" -AdminPassword "YOUR_PRINTER_PASSWORD"

.EXAMPLE
    .\Fix-BrotherPrinter.ps1 -PrinterIP "192.168.3.8" -AdminPassword "YOUR_PRINTER_PASSWORD" -RevertToDefault
#&gt;
[CmdletBinding()]
param(
    [Parameter(Mandatory = $true, HelpMessage = "IPv4 address of the Brother printer")]
    [ValidatePattern('^\d{1,3}(\.\d{1,3}){3}$')]
    [string]$PrinterIP,

    [Parameter(Mandatory = $true, HelpMessage = "Admin password from the printer's Network Config page (or 'access')")]
    [string]$AdminPassword,

    [string]$SubnetMask = "255.255.255.0",
    [string]$Gateway = "",
    [string]$PrimaryDNS = "",
    [string]$SecondaryDNS = "1.1.1.1",
    [string]$PrinterName = "",

    [switch]$RevertToDefault
)

$ErrorActionPreference = "Stop"

$octets = $PrinterIP.Split('.')
if ([string]::IsNullOrWhiteSpace($Gateway)) {
    $Gateway = "$($octets[0]).$($octets[1]).$($octets[2]).1"
}
if ([string]::IsNullOrWhiteSpace($PrimaryDNS)) {
    $PrimaryDNS = $Gateway
}

Write-Host "`n==================================================================" -ForegroundColor Cyan
if ($RevertToDefault) {
    Write-Host " Brother HL-1210W / NC-8400w — Factory Default Rollback" -ForegroundColor Yellow
} else {
    Write-Host " Brother HL-1210W / NC-8400w — Network &amp; Windows Stack Hardener" -ForegroundColor Cyan
}
Write-Host "==================================================================`n" -ForegroundColor Cyan

# ---------------------------------------------------------------------------
# STEP 1: Verify Network Reachability
# ---------------------------------------------------------------------------
Write-Host "[1/3] Checking connectivity to $PrinterIP..." -ForegroundColor Cyan
if (-not (Test-Connection -ComputerName $PrinterIP -Count 2 -Quiet -ErrorAction SilentlyContinue)) {
    throw "Printer at $PrinterIP is unreachable. Unplug its power cord for 10 seconds, plug it back in, wait 30s, and re-run."
}
Write-Host "  [+] Printer is reachable at $PrinterIP." -ForegroundColor Green

# ---------------------------------------------------------------------------
# STEP 2: Authenticate to Brother Embedded Web Server (EWS)
# ---------------------------------------------------------------------------
Write-Host "[2/3] Authenticating to Brother Embedded Web Server (http://$PrinterIP)..." -ForegroundColor Cyan
$statusUrl = "http://$PrinterIP/general/status.html"
$r1 = Invoke-WebRequest -Uri $statusUrl -SessionVariable ews -UseBasicParsing -TimeoutSec 10

if ($r1.Content -match 'type="password"[^&gt;]*name="([^"]+)"') {
    $pwdField = $matches[1]
} else {
    throw "Could not detect login password field on $statusUrl."
}

$rLogin = Invoke-WebRequest -Uri $statusUrl -Method Post -WebSession $ews -UseBasicParsing -TimeoutSec 10 -Body @{
    $pwdField  = $AdminPassword
    "loginurl" = "/general/status.html"
}
if ($rLogin.Content -notmatch '/net/net/net\.html') {
    throw "Authentication failed. Check the password printed at the bottom of your 3x-Power-button Network Config report."
}
Write-Host "  [+] Authenticated successfully (field: $pwdField)." -ForegroundColor Green

if (-not $RevertToDefault) {
    # --- HARDEN MODE ---
    # 1. Lock TCP/IP Wireless Boot Method to STATIC (B128 = 7)
    Invoke-WebRequest -Uri "http://$PrinterIP/net/wireless/tcpip.html" -Method Post -WebSession $ews -UseBasicParsing -TimeoutSec 10 -Body @{
        pageid = "250"; transition = "0"
        B124 = "1"; B125 = $PrinterIP; B126 = $SubnetMask; B127 = $Gateway
        B128 = "7"; B129 = "1"; B1f9 = "0"
    } | Out-Null
    Write-Host "  [+] Boot Method locked to STATIC ($PrinterIP / $SubnetMask / GW $Gateway)." -ForegroundColor Green

    # 2. Lock DNS Server Method to STATIC (B139 = 1) &amp; Boot Tries = 5
    Invoke-WebRequest -Uri "http://$PrinterIP/net/wireless/tcpip_detail.html" -Method Post -WebSession $ews -UseBasicParsing -TimeoutSec 10 -Body @{
        pageid = "251"; B147 = "5"; B14b = "5"
        B139 = "1"; B14c = $PrimaryDNS; B14d = $SecondaryDNS; B14e = "21"
    } | Out-Null
    Write-Host "  [+] DNS locked to STATIC ($PrimaryDNS, $SecondaryDNS)." -ForegroundColor Green

    # 3. Disable 1-Hour Auto Power Off (B1f8 = 0) so Sleep Mode keeps Wi-Fi alive
    Invoke-WebRequest -Uri "http://$PrinterIP/general/powerdown.html" -Method Post -WebSession $ews -UseBasicParsing -TimeoutSec 10 -Body @{
        pageid = "6"; postif_registration_reject = "1"; B1f8 = "0"
    } | Out-Null
    Write-Host "  [+] Auto Power Off disabled (low-power Sleep stays active)." -ForegroundColor Green

    # 4. Windows Standard TCP/IP Port (RAW 9100, SNMP=False)
    Write-Host "[3/3] Migrating Windows Print Queue from WSD to Standard TCP/IP (RAW 9100, SNMP=False)..." -ForegroundColor Cyan
    $portName = "IP_$PrinterIP"
    if (-not (Get-PrinterPort -Name $portName -ErrorAction SilentlyContinue)) {
        Add-PrinterPort -Name $portName -PrinterHostAddress $PrinterIP -PortNumber 9100
    }
    $printer = if ($PrinterName) {
        Get-Printer -Name $PrinterName -ErrorAction SilentlyContinue
    } else {
        Get-Printer | Where-Object { $_.Name -like "*Brother*" -or $_.DriverName -like "*Brother*" } | Select-Object -First 1
    }
    if ($printer) {
        Set-Printer -Name $printer.Name -PortName $portName
        Write-Host "  [+] Bound '$($printer.Name)' to '$portName' (RAW 9100, SNMP=False)." -ForegroundColor Green
    }
    Write-Host "`nDone! Your Brother printer is permanently hardened.`n" -ForegroundColor Cyan

} else {
    # --- REVERT TO DEFAULT MODE ---
    # 1. Restore TCP/IP Wireless Boot Method to AUTO (B128 = 0)
    Invoke-WebRequest -Uri "http://$PrinterIP/net/wireless/tcpip.html" -Method Post -WebSession $ews -UseBasicParsing -TimeoutSec 10 -Body @{
        pageid = "250"; transition = "0"
        B124 = "1"; B125 = $PrinterIP; B126 = $SubnetMask; B127 = $Gateway
        B128 = "0"; B129 = "1"; B1f9 = "0"
    } | Out-Null
    Write-Host "  [+] Restored Boot Method to AUTO (DHCP + APIPA)." -ForegroundColor Yellow

    # 2. Restore DNS Server Method to AUTO (B139 = 2) &amp; Boot Tries = 3
    Invoke-WebRequest -Uri "http://$PrinterIP/net/wireless/tcpip_detail.html" -Method Post -WebSession $ews -UseBasicParsing -TimeoutSec 10 -Body @{
        pageid = "251"; B147 = "3"; B14b = "5"
        B139 = "2"; B14c = $PrimaryDNS; B14d = "0.0.0.0"; B14e = "21"
    } | Out-Null
    Write-Host "  [+] Restored DNS Server Method to AUTO (Boot Tries = 3)." -ForegroundColor Yellow

    # 3. Restore Auto Power Off to 1 hour (B1f8 = 1)
    Invoke-WebRequest -Uri "http://$PrinterIP/general/powerdown.html" -Method Post -WebSession $ews -UseBasicParsing -TimeoutSec 10 -Body @{
        pageid = "6"; postif_registration_reject = "1"; B1f8 = "1"
    } | Out-Null
    Write-Host "  [+] Restored Auto Power Off to default (1 hour)." -ForegroundColor Yellow

    # 4. Rebind Windows Printer to WSD Port if available
    Write-Host "[3/3] Reverting Windows Print Queue Port..." -ForegroundColor Cyan
    $wsdPort = Get-PrinterPort | Where-Object { $_.Name -like "WSD-*" } | Select-Object -First 1
    $printer = if ($PrinterName) {
        Get-Printer -Name $PrinterName -ErrorAction SilentlyContinue
    } else {
        Get-Printer | Where-Object { $_.Name -like "*Brother*" -or $_.DriverName -like "*Brother*" } | Select-Object -First 1
    }
    if ($printer -and $wsdPort) {
        Set-Printer -Name $printer.Name -PortName $wsdPort.Name
        Write-Host "  [+] Rebound '$($printer.Name)' back to WSD port '$($wsdPort.Name)'." -ForegroundColor Yellow
    } else {
        Write-Host "  [i] Kept current Windows port (no WSD port found to revert to)." -ForegroundColor Gray
    }
    Write-Host "`nRollback complete! Printer settings are back to factory defaults.`n" -ForegroundColor Yellow
}</code></pre>
</div>



<h2 class="wp-block-heading">5. Cross-Platform Python 3 Script (Harden &amp; Revert for Linux / macOS / Windows)</h2>



<p class="wp-block-paragraph">If you use Linux or macOS—or want to harden or revert the printer&rsquo;s firmware directly from a home server without PowerShell—here is the zero-dependency Python 3 equivalent (<code>fix_brother_printer.py</code>):</p>



<div class="jh-code-card">
<div class="jh-code-header"><span class="jh-code-title">Harden via Python 3 <span class="jh-code-lang">BASH</span></span> <button class="jh-copy-btn" type="button"> Copy code </button></div>
<pre class="jh-code-pre"><code id="code-py-cmd-harden">python3 fix_brother_printer.py 192.168.3.8 "YOUR_PRINTER_PASSWORD"</code></pre>
</div>



<div class="jh-code-card">
<div class="jh-code-header"><span class="jh-code-title">Revert to Defaults via Python 3 <span class="jh-code-lang">BASH</span></span> <button class="jh-copy-btn" type="button"> Copy code </button></div>
<pre class="jh-code-pre"><code id="code-py-cmd-revert">python3 fix_brother_printer.py 192.168.3.8 "YOUR_PRINTER_PASSWORD" --revert</code></pre>
</div>



<div class="jh-code-card">
<div class="jh-code-header"><span class="jh-code-title">fix_brother_printer.py <span class="jh-code-lang">PYTHON 3</span></span> <button class="jh-copy-btn" type="button"> Copy code </button></div>
<pre class="jh-code-pre"><code id="code-py-full">#!/usr/bin/env python3
"""
Harden (or Revert to Default) Brother HL-1210W / NC-8400w Embedded Network Stack via HTTP.

Usage:
  Harden: python3 fix_brother_printer.py 192.168.3.8 YOUR_ADMIN_PASSWORD
  Revert: python3 fix_brother_printer.py 192.168.3.8 YOUR_ADMIN_PASSWORD --revert
"""
import argparse
import http.cookiejar
import re
import sys
import urllib.parse
import urllib.request


def configure_brother(
    ip: str,
    password: str,
    netmask: str = "255.255.255.0",
    gw: str = "",
    revert: bool = False,
) -&gt; None:
    gw = gw or ".".join(ip.split(".")[:3] + ["1"])
    cj = http.cookiejar.CookieJar()
    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))

    # 1. Discover dynamic password input field name &amp; authenticate
    status_url = f"http://{ip}/general/status.html"
    html = opener.open(status_url, timeout=10).read().decode("latin1")
    match = re.search(r'type="password"[^&gt;]*name="([^"]+)"', html)
    if not match:
        raise RuntimeError(f"Could not find login password field on {status_url}")
    pwd_field = match.group(1)

    login_data = urllib.parse.urlencode(
        {pwd_field: password, "loginurl": "/general/status.html"}
    ).encode("utf-8")
    res = opener.open(status_url, data=login_data, timeout=10).read().decode("latin1")
    if "/net/net/net.html" not in res:
        raise RuntimeError("Authentication failed: check your printer admin password.")

    if not revert:
        # --- HARDEN MODE ---
        # Lock Boot Method = STATIC (7)
        tcp_data = urllib.parse.urlencode({
            "pageid": "250", "transition": "0", "B124": "1",
            "B125": ip, "B126": netmask, "B127": gw,
            "B128": "7", "B129": "1", "B1f9": "0",
        }).encode("utf-8")
        opener.open(f"http://{ip}/net/wireless/tcpip.html", data=tcp_data, timeout=10)

        # Lock DNS Server Method = STATIC (1) &amp; Boot Tries = 5
        dns_data = urllib.parse.urlencode({
            "pageid": "251", "B147": "5", "B14b": "5",
            "B139": "1", "B14c": gw, "B14d": "1.1.1.1", "B14e": "21",
        }).encode("utf-8")
        opener.open(f"http://{ip}/net/wireless/tcpip_detail.html", data=dns_data, timeout=10)

        # Disable 1-Hour Auto Power Off (B1f8 = 0) to keep low-power Sleep active
        pwr_data = urllib.parse.urlencode({
            "pageid": "6", "postif_registration_reject": "1", "B1f8": "0",
        }).encode("utf-8")
        opener.open(f"http://{ip}/general/powerdown.html", data=pwr_data, timeout=10)
        print(f"[+] Hardened Brother printer at {ip} (Boot=STATIC, DNS=STATIC, AutoPowerOff=Off).")
    else:
        # --- REVERT TO FACTORY DEFAULTS MODE ---
        # Restore Boot Method = AUTO (0)
        tcp_data = urllib.parse.urlencode({
            "pageid": "250", "transition": "0", "B124": "1",
            "B125": ip, "B126": netmask, "B127": gw,
            "B128": "0", "B129": "1", "B1f9": "0",
        }).encode("utf-8")
        opener.open(f"http://{ip}/net/wireless/tcpip.html", data=tcp_data, timeout=10)

        # Restore DNS Server Method = AUTO (2) &amp; Boot Tries = 3
        dns_data = urllib.parse.urlencode({
            "pageid": "251", "B147": "3", "B14b": "5",
            "B139": "2", "B14c": gw, "B14d": "0.0.0.0", "B14e": "21",
        }).encode("utf-8")
        opener.open(f"http://{ip}/net/wireless/tcpip_detail.html", data=dns_data, timeout=10)

        # Restore Auto Power Off = 1 hour (B1f8 = 1)
        pwr_data = urllib.parse.urlencode({
            "pageid": "6", "postif_registration_reject": "1", "B1f8": "1",
        }).encode("utf-8")
        opener.open(f"http://{ip}/general/powerdown.html", data=pwr_data, timeout=10)
        print(f"[+] Reverted Brother printer at {ip} to factory defaults (Boot=AUTO, DNS=AUTO, AutoPowerOff=1h).")


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Harden or revert Brother HL-1210W / NC-8400w network settings.")
    parser.add_argument("ip", help="IPv4 address of the Brother printer (e.g. 192.168.3.8)")
    parser.add_argument("password", help="Printer EWS Admin password (or 'access')")
    parser.add_argument("--netmask", default="255.255.255.0", help="Subnet mask (default: 255.255.255.0)")
    parser.add_argument("--gateway", default="", help="Gateway IP (default: .1 of printer subnet)")
    parser.add_argument("--revert", action="store_true", help="Revert printer settings back to factory defaults")
    args = parser.parse_args()
    configure_brother(args.ip, args.password, args.netmask, args.gateway, args.revert)</code></pre>
</div>



<h2 class="wp-block-heading">6. Reset the Network Settings to the Factory Default (Manufacturer Procedure)</h2>



<p class="wp-block-paragraph">What if you move to a new house, replace your router with a different subnet (for example switching from <code>192.168.3.x</code> to <code>192.168.1.x</code>), and forgot to run <code>-RevertToDefault</code> / <code>--revert</code> beforehand?</p>



<p class="wp-block-paragraph">Per Brother&rsquo;s official documentation, you can use your machine&rsquo;s <strong>Power On/Off</strong> button to reset the print server to its default factory settings. This resets all network information, such as the password and IP address (you can also reset the print server to its factory settings using <strong>BRAdmin Light</strong>, <strong>BRAdmin Professional 3</strong>, or <strong>Web Based Management</strong>):</p>



<ol class="wp-block-list">
<li>Make sure the power cord is plugged in, the top cover is closed, and the machine is <strong>turned off</strong>.</li>
<li><strong>While holding down <code>Power On/Off</code></strong>, <strong>open and close the top cover</strong>.</li>
<li><strong>Release <code>Power On/Off</code></strong>. Make sure that all the LEDs turn off.</li>
<li><strong>Press <code>Power On/Off</code> six times</strong>.</li>
<li>The machine will restart automatically with its network settings restored to factory defaults.</li>
</ol>



<h3 class="wp-block-heading">Pro-Tip: Add a DHCP Lease Reservation on Your Router Too</h3>



<p class="wp-block-paragraph">Even though the printer now uses <code>Boot Method = STATIC</code> in its NVRAM, it is good practice to also bind its MAC address to that IP address in your router&rsquo;s DHCP table (or choose an IP outside your router&rsquo;s dynamic DHCP pool) so the router never assigns that address to another device while the printer is powered off.</p>

<p>&nbsp;</p>]]></content:encoded>
					
					<wfw:commentRss>https://jonas.hopp.fr/why-your-brother-wi-fi-printer-shows-offline-when-turned-on-the-0-0-0-0-dhcp-bug-and-a-1-click-fix/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Réparer un Antlion ModMic Wireless : Rétro-ingénierie du PCB, piège des 23,6 Ω et sauvetage du circuit de charge</title>
		<link>https://jonas.hopp.fr/reparer-antlion-modmic-wireless-retro-ingenierie-pcb-circuit-charge/</link>
					<comments>https://jonas.hopp.fr/reparer-antlion-modmic-wireless-retro-ingenierie-pcb-circuit-charge/#respond</comments>
		
		<dc:creator><![CDATA[Jonas Hopp]]></dc:creator>
		<pubDate>Wed, 04 Nov 2026 12:06:18 +0000</pubDate>
				<category><![CDATA[Tips et autres astuces]]></category>
		<guid isPermaLink="false">https://jonas.hopp.fr/?p=556</guid>

					<description><![CDATA[Compte rendu de réparation et rétro-ingénierie complète du PCB ANTLION 2574E09 Rev d'un ModMic Wireless : cartographie des composants, valeurs de référence au multimètre, décryptage du faux court-circuit à 23,6 Ω et radiographie logicielle du vernis épargne.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Le <strong>ModMic Wireless</strong> d&rsquo;Antlion Audio est un excellent microphone sans fil à faible latence, mais comme beaucoup de périphériques de sa génération, il souffre d&rsquo;un point faible mécanique classique : son connecteur de charge <strong>Micro-USB (<code>J1</code>)</strong>. Lorsqu&rsquo;il finit par fatiguer ou s&rsquo;arracher avec ses pastilles, le remplacement par une prise nue câblée sur fils fins semble être une formalité… jusqu&rsquo;au moment où le multimètre se met à biper en continu entre le <code>+5V</code> (<code>VBUS</code>) et la masse (<code>GND</code>).</p>



<p class="wp-block-paragraph">Comme il n&rsquo;existe <strong>aucun schéma électrique ni <em>boardview</em> public</strong> pour ce circuit imprimé (<strong><code>ANTLION 2574E09 Rev</code></strong>, <code>© 2017-18</code>, FCC ID <code>2AP9OMICROPHONE</code>), voici mon retour d&rsquo;expérience complet sur cette réparation menée en binôme avec une IA (Antigravity) : cartographie fonctionnelle du PCB, valeurs de référence au multimètre sur une carte saine, décryptage du piège des <code>23,6 Ω</code> et méthode de « radiographie » logicielle du vernis épargne pour retrouver les pistes cachées.</p>



<h2 class="wp-block-heading">1. Le symptôme initial et le piège du « faux court-circuit » à 23,6 Ω</h2>



<figure class="wp-block-image size-full"><a href="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_01_pcb_recto_verso_clair.jpg"><img loading="lazy" decoding="async" width="2400" height="1450" class="wp-image-558" src="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_01_pcb_recto_verso_clair.jpg" alt="Vue recto et verso annotée du PCB ANTLION 2574E09 Rev du microphone sans fil ModMic Wireless" srcset="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_01_pcb_recto_verso_clair.jpg 2400w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_01_pcb_recto_verso_clair-1280x773.jpg 1280w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_01_pcb_recto_verso_clair-980x592.jpg 980w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_01_pcb_recto_verso_clair-480x290.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2400px, 100vw" /></a>
<figcaption class="wp-element-caption">Planche 01 : Vue d&rsquo;ensemble Recto / Verso et repérage des blocs fonctionnels du PCB ANTLION 2574E09 Rev.</figcaption>
</figure>



<p class="wp-block-paragraph">En préparant la carte pour remplacer le connecteur Micro-USB d&rsquo;origine par une prise nue reliée avec des fils fins, deux problèmes se sont succédé :</p>



<ol class="wp-block-list">
<li>Un premier pont d&rsquo;étain accidentel côté composants — entre la résistance <strong><code>R3</code></strong> et le trou traversant de masse droit du port USB — faisait biper <code>R3</code> à la masse des deux côtés et <strong>allumait en fixe la LED bleue <code>D2</code></strong>.</li>
<li>Une fois ce pont nettoyé au fer à souder, <code>R3</code> ne bipait plus avec la masse… mais sur l&#8217;empreinte du port Micro-USB <code>J1</code> (côté verso), la <strong>Piste 1 (<code>VBUS +5V</code>, repérée par le point blanc <code>•</code>) continuait de biper en continu avec la masse <code>GND</code> (<code>TP22</code>)</strong> !</li>
</ol>



<h3 class="wp-block-heading">Premier apprentissage : ne jamais se fier au seul « bip » de continuité</h3>



<p class="wp-block-paragraph">Un multimètre en mode continuité déclenche son buzzer dès que la résistance mesurée descend sous un seuil compris entre <strong><code>30 Ω</code> et <code>50 Ω</code></strong>. En basculant successivement en <strong>mode Diode</strong> puis en <strong>Ohmmètre (<code>Ω</code>)</strong> :</p>



<ul class="wp-block-list">
<li>Le <strong>mode Diode</strong> affiche <strong><code>025</code> (<code>0,025 V</code>)</strong> entre la Piste 1 et la masse <code>TP22</code>.</li>
<li>L&rsquo;<strong>Ohmmètre</strong> révèle non pas <code>0,0 Ω</code> (comme un court-circuit franc d&rsquo;étain), mais exactement <strong><code>23,6 Ω</code></strong> — et ce <strong>dans les deux sens de polarité</strong>, que l&rsquo;on mesure par rapport à <code>TP22</code> ou à n&rsquo;importe quelle pastille de masse du PCB.</li>
</ul>



<p class="wp-block-paragraph">Sous une tension USB de <code>5 V</code>, la loi d&rsquo;Ohm donne un courant de <code>I = 5 V / 23,6 Ω ≈ 212 mA</code>. Il ne s&rsquo;agissait donc pas d&rsquo;un court-circuit franc destructeur, mais de l&rsquo;impédance interne présentée par l&rsquo;étage d&rsquo;entrée/détection lorsque l&rsquo;accumulateur Li-Po est connecté à la carte !</p>



<h2 class="wp-block-heading">2. Anatomie et fonctionnement normal du PCB (ANTLION 2574E09 Rev)</h2>



<figure class="wp-block-image size-full"><a href="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_02_architecture_alimentation_clair.jpg"><img loading="lazy" decoding="async" width="2400" height="1450" class="wp-image-559" src="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_02_architecture_alimentation_clair.jpg" alt="Schéma de l'architecture d'alimentation, circuit de charge D4/U6 et régulateur DC-DC Q2/L1/L2 du ModMic Wireless" srcset="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_02_architecture_alimentation_clair.jpg 2400w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_02_architecture_alimentation_clair-1280x773.jpg 1280w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_02_architecture_alimentation_clair-980x592.jpg 980w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_02_architecture_alimentation_clair-480x290.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2400px, 100vw" /></a>
<figcaption class="wp-element-caption">Planche 02 : Cartographie des tensions, circuit d&rsquo;aiguillage/charge (D4, U6, R26) et régulateur abaisseur DC-DC (Q2, L1, L2).</figcaption>
</figure>



<p class="wp-block-paragraph">Faute de documentation constructeur, nous avons reconstitué le schéma fonctionnel complet de la carte à partir des mesures au multimètre et de l&rsquo;inspection des deux faces :</p>



<h3 class="wp-block-heading">A. Brochage du port Micro-USB (J1, face verso)</h3>



<ul class="wp-block-list">
<li><strong>Piste 1 (à gauche, sous le point blanc <code>•</code>) :</strong> Entrée <strong><code>VBUS (+5V)</code></strong>. C&rsquo;est la <strong>seule et unique piste active</strong> du connecteur USB.</li>
<li><strong>Pistes 2, 3 et 4 (<code>D-</code>, <code>D+</code>, <code>ID</code>) :</strong> <strong>Non connectées (<code>NC</code>)</strong>. Aucune piste ni aucun via n&rsquo;en part : le port USB sert exclusivement à la charge. Un pont de soudure entre les pistes 4 et 5 est donc sans incidence.</li>
<li><strong>Piste 5 (à droite), les 2 trous ronds traversants et les 4 pastilles carrées du bord inférieur :</strong> Reliés directement au plan de masse général <strong><code>GND</code> (<code>TP22</code>)</strong>.</li>
</ul>



<h3 class="wp-block-heading">B. Batterie, aiguillage +5V (D4) et circuit de charge (U6 / R26)</h3>



<ul class="wp-block-list">
<li><strong><code>TP22</code> :</strong> Pôle négatif de la batterie Li-Po (<strong><code>BAT-</code> / <code>GND</code></strong>).</li>
<li><strong><code>TP21</code> :</strong> Pôle positif de la batterie Li-Po (<strong><code>BAT+</code></strong>, <code>3,7 V</code> à <code>4,2 V</code>).</li>
<li><strong><code>R26</code> (<code>5,0 Ω</code>) :</strong> Résistance shunt de limitation et de mesure placée en série directe avec <code>TP21</code> (<code>BAT+</code>). <em>Piège classique : sa faible valeur de <code>5 Ω</code> la fait biper avec <code>TP21</code> en mode continuité, ce qui est tout à fait normal !</em></li>
<li><strong><code>D4</code> (boîtier SOT-23 à 3 pattes à gauche de <code>TP21</code>) :</strong> Étage d&rsquo;entrée et d&rsquo;aiguillage du rail de charge :
<ul>
<li><strong>Patte Bas-Gauche :</strong> Reçoit directement le <strong><code>+5V USB</code> (<code>VBUS</code>)</strong> venant du port <code>J1</code> via <code>Via_1</code> (continuité directe à <code>0,0 Ω</code> avec <code>Via_1</code>, et lecture de <code>025</code> / <code>23,6 Ω</code> par rapport à <code>TP22</code>).</li>
<li><strong>Patte Haut-Gauche :</strong> Reliée à <code>R26</code> (<code>5 Ω</code>) vers <code>TP21</code> (<code>BAT+</code>) et <code>C70</code>.</li>
<li><strong>Patte Droite (contre le texte <code>TP21</code>) :</strong> Isolée de l&rsquo;entrée <code>VBUS</code> (<code>1 / OL</code>).</li>
</ul>
</li>
<li><strong><code>U6</code> (CI 6 broches en haut à gauche) + <code>C71</code>, <code>C70</code>, <code>R41</code>, <code>R10</code> :</strong> Contrôleur de charge Li-Ion et ses composants passifs associés.</li>
</ul>



<h3 class="wp-block-heading">C. Convertisseur DC-DC abaisseur (Q2 + L1 / L2) et SoC sans fil (U1)</h3>



<ul class="wp-block-list">
<li><strong><code>Q2</code> (CI 6 broches en haut à droite, sous <code>TP16</code>) :</strong> Étage de découpage Step-Down associé aux deux inductances bobinées <strong><code>L1</code></strong> et <strong><code>L2</code></strong> et à la rangée de condensateurs de filtrage (<code>C7</code>, <code>C1</code>, <code>C4</code>, <code>C3</code>, <code>C5</code>, <code>C14</code>, <code>C6</code>).</li>
<li><strong><code>U1</code> (QFN central) + Quartz <code>Y1</code> :</strong> SoC audio et radio 2,4 GHz à faible latence.</li>
</ul>



<h3 class="wp-block-heading">D. Interface utilisateur (S1, D1, D2, D3) et astuces de diagnostic</h3>



<ul class="wp-block-list">
<li><strong><code>D2</code> (LED bleue) + <code>R3</code> :</strong> Témoin de fonctionnement et d&rsquo;appairage. <em>Astuce : mettre momentanément <code>R3</code> à la masse allume la LED bleue <code>D2</code>, ce qui valide immédiatement que la batterie est chargée et présente sur le rail principal.</em></li>
<li><strong><code>D1</code> et <code>D3</code> (LEDs oranges) + <code>R2</code> :</strong> Témoins lumineux de mise en charge USB.</li>
<li><strong><code>S1</code> (Bouton poussoir central) + <code>R37</code> (<code>987 Ω</code>) :</strong> Bouton Marche / Appairage. <em>Anecdote : en maintenant les pointes du multimètre quelques secondes sur <code>R37</code> en mode test de continuité, le courant de test du multimètre suffit à simuler un appui long sur le bouton et fait passer le ModMic en mode appairage !</em></li>
</ul>



<h2 class="wp-block-heading">3. Tableau de référence des mesures sur un PCB ModMic Wireless sain</h2>



<p class="wp-block-paragraph">Pour aider ceux qui tenteraient la même réparation, voici l&rsquo;ensemble des valeurs relevées au multimètre (avec la <strong>pointe noire sur <code>TP22</code> <code>GND</code></strong> et la batterie connectée) :</p>



<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>Composant</th>
<th>Position / Broche</th>
<th>Mode Diode (V)</th>
<th>Ohmmètre (Ω) / Continuité avec GND</th>
<th>Rôle identifié</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong><code>J1</code> (Piste 1)</strong></td>
<td>Sous le point blanc <code>•</code></td>
<td><code>0.025 V</code></td>
<td><code>23,6 Ω</code> (bip)</td>
<td>Entrée <code>+5V USB</code> (<code>VBUS</code>)</td>
</tr>
<tr>
<td><strong><code>J1</code> (Pistes 2, 3, 4)</strong></td>
<td>Broches centrales</td>
<td><code>OL</code> (<code>1</code>)</td>
<td><code>OL</code> (circuit ouvert)</td>
<td>Non connectées (<code>NC</code>)</td>
</tr>
<tr>
<td><strong><code>J1</code> (Piste 5 &amp; blindage)</strong></td>
<td>Droite + 2 ronds + 4 carrés</td>
<td><code>0.000 V</code></td>
<td><code>0,0 Ω</code> (masse franche)</td>
<td>Masse USB (<code>GND</code>)</td>
</tr>
<tr>
<td><strong><code>D4</code></strong></td>
<td>Patte Bas-Gauche</td>
<td><code>0.025 V</code></td>
<td><code>23,6 Ω</code> (<code>0,0 Ω</code> avec <code>Via_1</code>)</td>
<td>Arrivée directe du <code>+5V USB</code> (<code>VBUS</code>)</td>
</tr>
<tr>
<td><strong><code>R26</code></strong></td>
<td>Entre ses 2 bornes</td>
<td>—</td>
<td><code>5,0 Ω</code> (bip avec <code>TP21</code>, isolé de <code>GND</code>)</td>
<td>Résistance shunt sur <code>BAT+</code> (<code>TP21</code>)</td>
</tr>
<tr>
<td><strong><code>C71</code></strong></td>
<td>Gauche (<code>U6</code>) / Droite (<code>GND</code>)</td>
<td><code>0.350 V</code> / <code>0.000 V</code></td>
<td><code>OL</code> à gauche / <code>0,0 Ω</code> à droite</td>
<td>Découplage <code>U6</code></td>
</tr>
<tr>
<td><strong><code>C70</code></strong></td>
<td>Haut (<code>GND</code>) / Bas (<code>U6</code>)</td>
<td><code>0.000 V</code> / <code>OL</code></td>
<td><code>0,0 Ω</code> en haut / <code>OL</code> en bas</td>
<td>Découplage <code>U6</code></td>
</tr>
<tr>
<td><strong><code>R41</code></strong></td>
<td>Gauche (<code>GND</code>) / Droite (<code>U6</code>)</td>
<td><code>0.000 V</code> / —</td>
<td><code>0,0 Ω</code> à gauche / <code>OL</code> à droite</td>
<td>Configuration courant <code>U6</code></td>
</tr>
<tr>
<td><strong><code>R38</code></strong></td>
<td>Haut / Bas (près de <code>Q2</code>)</td>
<td><code>0.330 V</code> / <code>0.518 V</code></td>
<td><code>OL</code> des deux côtés</td>
<td>Polarisation étage <code>Q2</code></td>
</tr>
<tr>
<td><strong><code>Q2</code></strong></td>
<td>6 broches (3 G / 3 D)</td>
<td>—</td>
<td>Broche Bas-Droite = <code>GND</code> (<code>0,0 Ω</code>), autres = <code>OL</code></td>
<td>Régulateur DC-DC</td>
</tr>
<tr>
<td><strong><code>L1</code></strong></td>
<td>Gauche et Droite</td>
<td><code>0.322 V</code></td>
<td><code>0,0 Ω</code> entre ses bornes, <code>OL</code> vers <code>GND</code></td>
<td>Inductance Buck #1</td>
</tr>
<tr>
<td><strong><code>L2</code></strong></td>
<td>Gauche et Droite</td>
<td><code>0.335 V</code></td>
<td><code>0,0 Ω</code> entre ses bornes, <code>OL</code> vers <code>GND</code></td>
<td>Inductance Buck #2</td>
</tr>
<tr>
<td><strong><code>C7</code>, <code>C1</code>, <code>C4</code></strong></td>
<td>Gauche (<code>GND</code>) / Droite</td>
<td><code>0.000 V</code> / Actif</td>
<td><code>0,0 Ω</code> à gauche (<code>GND</code>)</td>
<td>Filtrage régulateurs</td>
</tr>
<tr>
<td><strong><code>C3</code></strong></td>
<td>Gauche / Droite (<code>GND</code>)</td>
<td>Actif / <code>0.000 V</code></td>
<td><code>0,0 Ω</code> à droite (<code>GND</code>)</td>
<td>Filtrage (orienté en sens inverse de <code>C4</code>)</td>
</tr>
<tr>
<td><strong><code>C5</code></strong></td>
<td>Gauche (<code>GND</code>) / Droite</td>
<td><code>0.000 V</code> / <code>0.450 V</code></td>
<td><code>0,0 Ω</code> à gauche (<code>GND</code>)</td>
<td>Découplage rail secondaire</td>
</tr>
<tr>
<td><strong><code>C14</code></strong></td>
<td>Gauche (<code>GND</code>) / Droite</td>
<td><code>0.000 V</code> / <code>0.350 V</code></td>
<td><code>0,0 Ω</code> à gauche (<code>GND</code>)</td>
<td>Découplage rail <code>U1</code></td>
</tr>
<tr>
<td><strong><code>C6</code></strong></td>
<td>Gauche (<code>GND</code>) / Droite</td>
<td><code>0.000 V</code> / Actif</td>
<td><code>0,0 Ω</code> à gauche (<code>GND</code>)</td>
<td>Découplage rail <code>U1</code></td>
</tr>
<tr>
<td><strong><code>R37</code></strong></td>
<td>Entre ses 2 bornes</td>
<td>—</td>
<td><code>987 Ω</code> (~<code>1 kΩ</code>)</td>
<td>Tirage du bouton d&rsquo;appairage <code>S1</code></td>
</tr>
</tbody>
</table>
</figure>



<h2 class="wp-block-heading">4. « Radiographier » le vernis épargne vert pour suivre les pistes cachées</h2>



<figure class="wp-block-image size-full"><a href="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_03_radiographie_pistes_vbus_clair.jpg"><img loading="lazy" decoding="async" width="2400" height="1450" class="wp-image-560" src="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_03_radiographie_pistes_vbus_clair.jpg" alt="Radiographie logicielle par filtrage passe-haut du vernis épargne révélant le routage de la piste VBUS +5V vers D4 et U1" srcset="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_03_radiographie_pistes_vbus_clair.jpg 2400w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_03_radiographie_pistes_vbus_clair-1280x773.jpg 1280w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_03_radiographie_pistes_vbus_clair-980x592.jpg 980w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_03_radiographie_pistes_vbus_clair-480x290.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2400px, 100vw" /></a>
<figcaption class="wp-element-caption">Planche 03 : Détection passe-haut du cuivre sous le vernis épargne et décryptage de l&rsquo;impédance de 23,6 Ω.</figcaption>
</figure>



<p class="wp-block-paragraph">Sur un PCB double face photographié à travers une loupe d&rsquo;atelier, le suivi des pistes d&rsquo;alimentation se heurte à deux difficultés : la distorsion optique entre les clichés recto/verso (pris avec un angle de rotation de 32°) et le vernis épargne vert qui dissimule les pistes fines passant sous les boîtiers CMS.</p>



<ul class="wp-block-list">
<li><strong>Recalage géométrique par constellation de vias :</strong> En calculant une matrice affine calée sur les trous traversants locaux (<code>J1_GND_L</code>, <code>J1_GND_R</code>, <code>TP16</code> et les vias bordant <code>C7</code>/<code>C1</code>), chaque via du verso a pu être projeté sur le recto à moins de <code>0,5 pixel</code> près.</li>
<li><strong>Filtrage passe-haut local (« Radiographie » du vernis) :</strong> En soustrayant un flou gaussien à large rayon sur le canal vert de l&rsquo;image, les gorges d&rsquo;isolation gravées dans l&rsquo;époxy FR4 ressortent en noir franc et révèlent le tracé exact du cuivre :
<ul>
<li>La <strong>Piste 1 de <code>J1</code></strong> monte immédiatement vers le petit via <strong><code>Via_1</code></strong> (juste en haut à gauche du <code>J</code> de <code>J1</code>).</li>
<li>Côté composants, <code>Via_1</code> débouche au coin inférieur gauche de <code>D2</code>, file à gauche sous l&rsquo;inscription <code>TP21</code>, <strong>passe sous le corps en plastique noir de <code>D4</code></strong> (isolé de la patte de droite par une gorge horizontale bien visible sur la radiographie) et rejoint directement la <strong>patte Bas-Gauche de <code>D4</code></strong> !</li>
<li>En parallèle, une piste diagonale part de <code>Via_1</code> côté verso jusqu&rsquo;au via situé à droite de <code>R37</code>, puis traverse le corridor entre <code>L2</code> et <code>C4</code> jusqu&rsquo;à une broche de détection de la puce <strong><code>U1</code></strong>.</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">5. Le protocole de sauvetage final : grattage du via, soudure sur fils fins et époxy</h2>



<figure class="wp-block-image size-full"><a href="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_04_protocole_reparation_usb_clair.jpg"><img loading="lazy" decoding="async" width="2400" height="1450" class="wp-image-561" src="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_04_protocole_reparation_usb_clair.jpg" alt="Guide pas-à-pas d'isolation du Pad 1, grattage du Via_1 (Zone A), test de continuité et scellement époxy" srcset="https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_04_protocole_reparation_usb_clair.jpg 2400w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_04_protocole_reparation_usb_clair-1280x773.jpg 1280w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_04_protocole_reparation_usb_clair-980x592.jpg 980w, https://jonas.hopp.fr/wp-content/uploads/2026/11/blog_04_protocole_reparation_usb_clair-480x290.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2400px, 100vw" /></a>
<figcaption class="wp-element-caption">Planche 04 : Protocole opératoire en 4 étapes : isolation du Pad 1, grattage du Via_1, contrôle à 0 Ω vers D4 et soudure scellée à l&rsquo;époxy.</figcaption>
</figure>



<p class="wp-block-paragraph">Le collet de cuivre à la sortie haute du vieux <strong>Pad 1</strong> étant mécaniquement endommagé, le sauvetage propre a consisté à isoler la pastille d&rsquo;origine pour venir se repiquer directement sur <strong><code>Via_1</code> (<code>Zone A</code>)</strong> :</p>



<ol class="wp-block-list">
<li><strong>Isolation du vieux Pad 1 au cutter :</strong> Une entaille franche juste au-dessus du Pad 1 (à droite du point blanc <code>•</code>) l&rsquo;isole définitivement du reste du circuit. Au multimètre, le Pad 1 passe immédiatement à <code>1</code> (circuit ouvert / <code>OL</code>), tandis que la <code>Zone A</code> conserve ses <code>23,6 Ω</code> (<code>0,025 V</code> diode), confirmant que cette impédance est bien celle du circuit en aval.</li>
<li><strong>Mise à nu du cuivre sur <code>Zone A</code> (<code>Via_1</code>) :</strong> Grattage très léger du vernis épargne vert à la pointe du cutter sur le petit rond <code>Via_1</code> et le début de la piste diagonale (juste en haut à gauche du <code>J</code> de <code>J1</code>) jusqu&rsquo;à voir briller le cuivre doré.</li>
<li><strong>Contrôle de continuité traversante avant soudure :</strong> Le test à l&rsquo;ohmmètre entre le cuivre dénudé de la <code>Zone A</code> (face verso) et la <strong>patte Bas-Gauche de <code>D4</code></strong> (face composants) affiche un <strong><code>0,0 Ω</code></strong> franc (et toujours <code>1 / OL</code> sur la patte de droite).</li>
<li><strong>Soudure des fils fins et scellement à la résine époxy :</strong>
<ul>
<li>Soudure du fil fin <strong><code>+5V</code></strong> de la prise USB nue sur la <strong><code>Zone A</code> (<code>Via_1</code>)</strong> et du fil <strong><code>-</code> (<code>GND</code>)</strong> sur l&rsquo;une des pastilles carrées de masse du bord inférieur.</li>
<li>Au branchement du câble USB : <strong>la LED orange de charge s&rsquo;allume instantanément !</strong></li>
<li>Pour finir, dépôt de <strong>résine époxy</strong> sur les soudures et les fils fins afin de créer un serre-câble mécanique définitif et protéger la piste dénudée contre tout arrachement futur.</li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading">Annexe : Photos d&rsquo;atelier brutes (Recto / Verso sous loupe)</h2>



<figure class="wp-block-gallery has-nested-images columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://jonas.hopp.fr/wp-content/uploads/2026/11/media_1793738890156_d9cc4a4c.jpg"><img loading="lazy" decoding="async" width="768" height="1024" data-id="554" class="wp-image-554" src="https://jonas.hopp.fr/wp-content/uploads/2026/11/media_1793738890156_d9cc4a4c.jpg" alt="Photo brute sous loupe de la face composants du PCB ModMic Wireless" srcset="https://jonas.hopp.fr/wp-content/uploads/2026/11/media_1793738890156_d9cc4a4c.jpg 768w, https://jonas.hopp.fr/wp-content/uploads/2026/11/media_1793738890156_d9cc4a4c-480x640.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 768px, 100vw" /></a>
<figcaption class="wp-element-caption">Photo d&rsquo;atelier brute — Face Recto (côté composants).</figcaption>
</figure>



<figure class="wp-block-image size-large"><a href="https://jonas.hopp.fr/wp-content/uploads/2026/11/media_1793738895306_4f8fdc00.jpg"><img loading="lazy" decoding="async" width="768" height="1024" data-id="555" class="wp-image-555" src="https://jonas.hopp.fr/wp-content/uploads/2026/11/media_1793738895306_4f8fdc00.jpg" alt="Photo brute sous loupe de la face verso du PCB ModMic Wireless avec empreinte J1" srcset="https://jonas.hopp.fr/wp-content/uploads/2026/11/media_1793738895306_4f8fdc00.jpg 768w, https://jonas.hopp.fr/wp-content/uploads/2026/11/media_1793738895306_4f8fdc00-480x640.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 768px, 100vw" /></a>
<figcaption class="wp-element-caption">Photo d&rsquo;atelier brute — Face Verso (empreinte du connecteur Micro-USB J1).</figcaption>
</figure>
</figure>
]]></content:encoded>
					
					<wfw:commentRss>https://jonas.hopp.fr/reparer-antlion-modmic-wireless-retro-ingenierie-pcb-circuit-charge/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Listes d&#8217;outils et ressources utiles (surtout pour Windows)</title>
		<link>https://jonas.hopp.fr/listes-doutils-et-ressources-utiles-surtout-pour-windows/</link>
					<comments>https://jonas.hopp.fr/listes-doutils-et-ressources-utiles-surtout-pour-windows/#respond</comments>
		
		<dc:creator><![CDATA[Jonas Hopp]]></dc:creator>
		<pubDate>Tue, 05 May 2020 18:52:09 +0000</pubDate>
				<category><![CDATA[Tips et autres astuces]]></category>
		<guid isPermaLink="false">https://jonas.hopp.fr/?p=428</guid>

					<description><![CDATA[Ressources Virtual-Key Codes NirCmd helper FireFox MacOS 10.8.5 Programmes NirCmd : pour interagir avec l&#8217;OS Windows via des scripts et des raccourcis claviers.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Ressources</h2>



<p class="wp-block-paragraph"><a href="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes?redirectedfrom=MSDN">Virtual-Key Codes</a></p>



<p class="wp-block-paragraph"><a href="https://www.nirsoft.net/utils/nircmd2.html#using">NirCmd helper</a></p>



<p class="wp-block-paragraph"><a href="https://apple.stackexchange.com/questions/237271/is-there-a-google-chrome-version-50-supporting-mac-os-10-8-5">FireFox MacOS 10.8.5</a></p>



<h2 class="wp-block-heading">Programmes</h2>



<p class="wp-block-paragraph"><a href="https://www.nirsoft.net/utils/nircmd.html">NirCmd</a> : pour interagir avec l&rsquo;OS Windows via des scripts et des raccourcis claviers.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jonas.hopp.fr/listes-doutils-et-ressources-utiles-surtout-pour-windows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Comment ajouter n&#8217;importe quel application/processus au démarrage de Windows</title>
		<link>https://jonas.hopp.fr/comment-ajouter-nimporte-quel-application-processus-au-demarrage-de-windows/</link>
					<comments>https://jonas.hopp.fr/comment-ajouter-nimporte-quel-application-processus-au-demarrage-de-windows/#respond</comments>
		
		<dc:creator><![CDATA[Jonas Hopp]]></dc:creator>
		<pubDate>Tue, 05 May 2020 13:21:09 +0000</pubDate>
				<category><![CDATA[Tips et autres astuces]]></category>
		<guid isPermaLink="false">https://jonas.hopp.fr/?p=425</guid>

					<description><![CDATA[En Anglais: Press Windows+R to open the “Run” dialog box. Type “shell:startup” and then hit Enter to open the “Startup” folder. Create a shortcut in the “Startup” folder to any file, folder, or app&#8217;s executable file. It will open on startup the next time you boot. Depuis howtogeek.com Langue de Molière : Appuyez sur Windows+R [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">En Anglais:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Press Windows+R to open the “<strong>Run</strong>” dialog box. Type “shell:<strong>startup</strong>” and then hit Enter to open the “<strong>Startup</strong>” folder. <strong>Create a shortcut</strong> in the “<strong>Startup</strong>” folder to any file, folder, or app&rsquo;s executable file. It will open on <strong>startup</strong> the next time you <strong>boot</strong>.</p><cite>Depuis <a href="https://www.howtogeek.com/208224/how-to-add-programs-files-and-folders-to-system-startup-in-windows-8.1/">howtogeek.com</a></cite></blockquote>



<p class="wp-block-paragraph">Langue de Molière :</p>



<p class="wp-block-paragraph">Appuyez sur Windows+R pour ouvrir la boite de dialogue « <strong>Exécuter</strong>« . Tapez ensuite « <strong>shell:startup</strong> » et puis faites <strong>Entrer</strong> pour ouvrir le répertoire « <strong>Démarrage</strong>« . Créez/déplacez n&rsquo;importe quel raccourci désiré dans ce répertoire pour ouvrir l&rsquo;élément au démarrage de l&rsquo;ordinateur.</p>



<p class="wp-block-paragraph">J&rsquo;y ai personnellement déplacé un raccourci généré par Nvidia Inspector pour appliquer automatiquement  l&rsquo;overclock de ma carte graphique depuis que Riot Vanguage empêche MSI Afterburner de fonctionner correctement.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jonas.hopp.fr/comment-ajouter-nimporte-quel-application-processus-au-demarrage-de-windows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>IPD, SDE, Sweet Spot&#8230; Les acronymes spéciaux casques VR (réalité virtuelle) expliqués.</title>
		<link>https://jonas.hopp.fr/ipd-sde-sweet-spot-les-acronymes-speciaux-casques-vr-realite-virtuelle-expliques/</link>
					<comments>https://jonas.hopp.fr/ipd-sde-sweet-spot-les-acronymes-speciaux-casques-vr-realite-virtuelle-expliques/#respond</comments>
		
		<dc:creator><![CDATA[Jonas Hopp]]></dc:creator>
		<pubDate>Sat, 04 Apr 2020 13:34:23 +0000</pubDate>
				<category><![CDATA[Tips et autres astuces]]></category>
		<guid isPermaLink="false">https://jonas.hopp.fr/?p=416</guid>

					<description><![CDATA[En bonus, explication spéciales pour régler l&#8217;IPD sur casques Windows Mixed Reality. Que signifie « IPD » ? Il s&#8217;agit d&#8217;un acronyme pour « interpupillary distance » en anglais, soit l&#8217;écart pupillaire en français. Dans le cas des casques de VR, tels que l&#8217;Oculus Rift S, régler l&#8217;écart pupillaire permet que s&#8217;assurer que les deux yeux du porteur de [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">En bonus, explication spéciales pour régler l&rsquo;IPD sur casques Windows Mixed Reality.</p>



<h2 class="wp-block-heading">Que signifie « IPD » ?</h2>



<p class="wp-block-paragraph">Il s&rsquo;agit d&rsquo;un acronyme pour « <em>interpupillary distance</em> » en anglais, soit l&rsquo;écart pupillaire en français. Dans le cas des casques de VR, tels que l&rsquo;<a href="https://amzn.to/3aAUehr">Oculus Rift S</a>, régler l&rsquo;écart pupillaire permet que s&rsquo;assurer que les deux yeux du porteur de casque soit parfaitement en face des lentilles qui sont placées devant les images présentées par les écrans.</p>



<h2 class="wp-block-heading">Qu&rsquo;est-ce que le « Sweet Spot »</h2>



<p class="wp-block-paragraph">Il s&rsquo;agit de la zone de la lentille qui permet un vision nette. Pour que le Sweet Spot soit bien positionnée, cette zone doit être alignée avec l&rsquo;oeil, d&rsquo;où la nécessite de coordonner son écart pupillaire avec un casque de VR adapté. Le Sweet Spot peut couvrir une surface plus ou moins étendue, permettant à l’œil de pivoter un petit peu dans cette zone nette et de ne pas devoir bouger la tête pour garder une vision nette.</p>



<p class="wp-block-paragraph"><a href="https://www.valvesoftware.com/fr/index/headset">Valve</a> en parle en ces termes : [une bonne géométrie optique] « permet de regarder autour de vous en bougeant les yeux (et pas seulement la tête) avec une absence quasi totale de distorsion. »</p>



<h2 class="wp-block-heading">Que signifie « SDE » ?</h2>



<p class="wp-block-paragraph">SDE est un acronyme anglais pour « <em>screen door effect</em>« , qui peut se traduire par l&rsquo;effet « de porte-écran ». Il s&rsquo;agit en fait de la distance avec les lentilles qui couvre plus ou moins du champ de vision. L&rsquo;humain peut naturellement percevoir un champ visuel d&rsquo;environ 180°, et le meilleur casque du marché pour ceci serait le <a href="https://store.steampowered.com/valveindex">Valve Index</a> avec près de 130°, alors que le <a href="https://amzn.to/2wgPSgA">HTC Vive</a> ne présente que 110°. Certains casques comme le <a href="https://amzn.to/2X7xBgB">Pimax 5K XR OLED</a> présenteraient eux près de 200°, mais certains testeurs indiquent que le suivi de mouvement et certains autres aspects sont en retraits par rapport au Valve Index.</p>



<h2 class="wp-block-heading">Régler l&rsquo;IPD de façon logicielle via Regedit (l&rsquo;éditeur de registre, pour Windows 10)</h2>



<p class="wp-block-paragraph">Il est possible de régler manuellement (via le menu Headset Display ou « Affichage du casque ») l&rsquo;IPD dans les options Windows via un slider nommé « Calibration », mais celui-ci s&rsquo;arrête à 67mm.</p>



<p class="wp-block-paragraph">La deuxième option vous permet de rentrer des valeurs plus élevés via l&rsquo;éditeur de registre.<br>Faites « Windows + R », puis tapez « regedit », puis la touche « Entrée ».<br>Naviguez dans Computer\HKEY_USERS\S-1-5-21-830549709-2298230702-1299955731-1001\Software\Microsoft\Windows\CurrentVersion\Holographic\ Vous pourrez alors rentrer une valeur décimale. Par exemple, pour 70 mm il faudra rentrer 70000 en valeur décimale.</p>



<p class="wp-block-paragraph">Sources : <br><em>Software IPD not enough</em>, consulté le 29/03/2020, https://steamcommunity.com/app/719950/discussions/0/3183345176711387716/<br><em>What Is « screen door effect » in VR?</em>, consulté le 29/03/2020, https://www.howtogeek.com/404491/what-is-the-screen-door-effect-in-vr/<br><em>so what&rsquo;s « sweet spot » really? : oculus &#8211; Reddit</em>, consulté le 29/03/2020, https://www.reddit.com/r/oculus/comments/8gacgm/so_whats_sweet_spot_really/<br><em>Interprétation des anomalies du champ visuel</em>, consulté le 04/04/2020, http://acces.ens-lyon.fr/acces/thematiques/neurosciences/actualisation-des-connaissances/perception-sensorielle-1/vision/comprendre/cas_anomalies_vision/tech_explo_vision/interpretationAnomalie</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jonas.hopp.fr/ipd-sde-sweet-spot-les-acronymes-speciaux-casques-vr-realite-virtuelle-expliques/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Failed to create D3D device! Error Message (Source Engine Game) like CSGO or Left For Dead 2 (RADEON FIX!) &#8211; December 2019 fix</title>
		<link>https://jonas.hopp.fr/failed-to-create-d3d-device-error-message-source-engine-game-like-csgo-or-left-for-dead-2-radeon-fix-december-2019-fix/</link>
					<comments>https://jonas.hopp.fr/failed-to-create-d3d-device-error-message-source-engine-game-like-csgo-or-left-for-dead-2-radeon-fix-december-2019-fix/#respond</comments>
		
		<dc:creator><![CDATA[Jonas Hopp]]></dc:creator>
		<pubDate>Sun, 01 Dec 2019 13:16:58 +0000</pubDate>
				<category><![CDATA[Tips et autres astuces]]></category>
		<guid isPermaLink="false">https://jonas.hopp.fr/?p=377</guid>

					<description><![CDATA[Maybe you have encountered this issue « Failed to create D3D device! ». My brother did during our last game session with an AMD Radeon 5700XT in December 2019. The fix for us was to disable AMD Radeon Anti-Lag feature in the Graphics Control Panel. You should also make sure you have all drivers and GPU BIOS [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Maybe you have encountered this issue « Failed to create D3D device! ». My brother did during our last game session with an AMD Radeon 5700XT in December 2019. The fix for us was to <span style="text-decoration: underline;"><strong>disable AMD Radeon Anti-Lag feature</strong></span> in the Graphics Control Panel.</p>



<p class="wp-block-paragraph">You should also make sure you have all <strong>drivers and GPU BIOS updated</strong> before trying this kind of fix, just in case it was fixed in a later version of the drivers. It&rsquo;s not mandatory but why hack something that was fixed by the official developers?</p>



<p class="wp-block-paragraph">Then check the integrity of the cache of the game: <br><strong>Steam</strong> > <strong>Library </strong>> right click your game > <strong>Properties</strong> > <strong>Local Files</strong> > <strong>Verify Integrity of Game Files</strong><br>Then let Steam do it&rsquo;s job. It may eventually reacquire some files.</p>



<p class="wp-block-paragraph">You should also make sure you have DirectX properly installed:<br><em>C:\Program Files (x86)\Steam\SteamApps\common\Counter-Strike Global Offensive\directx_installer</em> and start <strong>dxsetup.exe</strong></p>



<h2 class="wp-block-heading">How to disable the AMD Radeon Anti-Lag feature?</h2>



<p class="wp-block-paragraph">Go to <strong>AMD software</strong> > <strong>Games</strong> ><strong> CS-GO</strong>, then toggle off Radeon Anti-lag. Now the game should work properly.</p>



<p class="wp-block-paragraph">You can always activate again it in-game if you really need to.</p>



<h2 class="wp-block-heading">If this doesn&rsquo;t work, you can also try to change the launch options of the game.</h2>



<p class="wp-block-paragraph">Some people on internet and the Steam FAQ also suggested to add the following launch-options:<br> -dxlevel 90</p>



<p class="wp-block-paragraph">Sources:<br><a href="https://community.amd.com/thread/242511">https://community.amd.com/thread/242511</a><br><a href="https://support.steampowered.com/kb_article.php?p_faqid=772&amp;l=french">https://support.steampowered.com/kb_article.php?p_faqid=772&amp;l=french</a></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jonas.hopp.fr/failed-to-create-d3d-device-error-message-source-engine-game-like-csgo-or-left-for-dead-2-radeon-fix-december-2019-fix/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to redirect an url to another one to be more productive, or anything else.</title>
		<link>https://jonas.hopp.fr/how-to-redirect-an-url-to-another-one-to-be-more-productive-or-anything-else/</link>
					<comments>https://jonas.hopp.fr/how-to-redirect-an-url-to-another-one-to-be-more-productive-or-anything-else/#respond</comments>
		
		<dc:creator><![CDATA[Jonas Hopp]]></dc:creator>
		<pubDate>Mon, 17 Sep 2018 10:42:18 +0000</pubDate>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[Tips et autres astuces]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">https://jonas.hopp.fr/?p=334</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_0 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_0">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_0  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_0  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>I was searching for a solution to redirect an url to another one to be more productive, or switch webapp tools easily without thinking about it.</p>
<p>First, I tried editing hosts file (windows only solution), but the thing is you can only redirect to an IP. It&rsquo;s not so convenient!</p>
<p>I suggest you to try, instead of editing the hosts file in windows, to use a plugin like <a href="https://addons.mozilla.org/fr/firefox/addon/redirector/">Redirector for Firefox</a> or <a href="https://chrome.google.com/webstore/detail/redirector/pajiegeliagebegjdhebejdlknciafen">Redirector for Chrome</a>.</p>
<p>It&rsquo;s working great to keep me from browsing some websites when I don&rsquo;t want, in exemple for productivity purposes, or to force myself to use a new service. One could imagine using a redirector to stop using hotmail.com and use any another custom service, without changing any other habits.</p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jonas.hopp.fr/how-to-redirect-an-url-to-another-one-to-be-more-productive-or-anything-else/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>« Couldn&#8217;t install System Update » Nexus 6 &#8211; Le Renouveau de mon Nexus 6</title>
		<link>https://jonas.hopp.fr/couldnt-install-system-update-nexus-6-le-renouveau-de-mon-nexus-6/</link>
					<comments>https://jonas.hopp.fr/couldnt-install-system-update-nexus-6-le-renouveau-de-mon-nexus-6/#respond</comments>
		
		<dc:creator><![CDATA[Jonas Hopp]]></dc:creator>
		<pubDate>Sat, 07 Oct 2017 09:18:22 +0000</pubDate>
				<category><![CDATA[Tips et autres astuces]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">https://jonas.hopp.fr/?p=260</guid>

					<description><![CDATA[Je suis l&#8217;heureux possesseur d&#8217;un Nexus 6, nom de code SHAMU, et j&#8217;ai été victime de mon utilisation intensive et complète de mon téléphone durant des mois. Lenteur, freeze, bugs UI, mon téléphone n&#8217;avait plus rien de réactif depuis trop longtemps ! Pré-requis : Un Smartphone Android avec les droits root. Si vous ne savez [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Je suis l&rsquo;heureux possesseur d&rsquo;un Nexus 6, nom de code SHAMU, et j&rsquo;ai été victime de mon utilisation intensive et complète de mon téléphone durant des mois.</p>
<blockquote><p>Lenteur, freeze, bugs UI, mon téléphone n&rsquo;avait plus rien de réactif depuis trop longtemps !</p></blockquote>
<p>Pré-requis :</p>
<ul>
<li>Un Smartphone Android avec les <a href="http://www.phonandroid.com/quest-ce-que-le-root-pourquoi-rooter-android.html">droits root</a>. Si vous ne savez pas comment faire, il y a pleins d&rsquo;excellents tutoriels sur internet.</li>
<li>Un peu de temps.</li>
</ul>
<p>Dans mon cas, je soupçonnais qu&rsquo;une mise à jour qui ne se faisait pas (et une saturation de la ram) posaient problème.</p>
<p>J&rsquo;ai donc installé l&rsquo;application <a href="https://play.google.com/store/apps/details?id=cn.wq.myandroidtools&amp;hl=fr">MyAndroidTools</a> afin de pouvoir désactiver le service de mise à jour expérimentale de mon Nexus. Je les installerais moi-même. Après installation de l&rsquo;application j&rsquo;ai sélectionné « Broadcast Receiver » &gt; « Third Party » &gt; « Google Play services for Instant Apps » et j&rsquo;ai désactivé le service « ExperimentUpdateReceiver ».</p>
<p>Un redémarrage du téléphone, et je m&rsquo;attaque à la suite.</p>
<p>Installation de <a href="https://play.google.com/store/apps/details?id=com.oasisfeng.greenify&amp;hl=fr">Greenify</a>, qui permet de mettre en hibernation les applications choisies. Cela évite de désinstaller les applications, mais de les garder sous contrôle et de ne les laisser travailler que lorsque vous les utilisez activement.</p>
<p>Pour ma part, j&rsquo;avais Line, WeChat, Whatsapp, Facebook Messenger, Facebook, Hangouts, Snapchat qui cohabitaient. J&rsquo;ai décidé d&rsquo;hiberner Wechat, Line, Facebook, Spotify, CrowdSource, iDTGV, WhatsApp, que j&rsquo;utilise ponctuellement.</p>
<p>Pour ce faire, il faut lancer Greenify, appuyer sur le « + », et appuyer une fois sur chaque application (afin de les rendre « verte »), à partir de là, l&rsquo;application va s&rsquo;occuper de la meilleure marche à suivre pour chaque suceur de batterie..</p>
<p>Le résultat est très net ici.. Je peux enfin utiliser mon appareil photo normalement, switcher d&rsquo;une application à l&rsquo;autre sans souffrir de ralentissements de plusieurs secondes, l&rsquo;appui sur la touche Home n&rsquo;est plus une épreuve ! Mon téléphone vient de gagner un beau sursis&#8230; !</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jonas.hopp.fr/couldnt-install-system-update-nexus-6-le-renouveau-de-mon-nexus-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pourquoi les Découvertes de la semaine Spotify proposent des pistes de vos playlists&#8230; (selon toute vraisemblance)</title>
		<link>https://jonas.hopp.fr/pourquoi-les-decouvertes-de-la-semaine-spotify-proposent-des-pistes-de-vos-playlists-selon-toute-vraisemblance/</link>
					<comments>https://jonas.hopp.fr/pourquoi-les-decouvertes-de-la-semaine-spotify-proposent-des-pistes-de-vos-playlists-selon-toute-vraisemblance/#respond</comments>
		
		<dc:creator><![CDATA[Jonas Hopp]]></dc:creator>
		<pubDate>Fri, 08 Sep 2017 08:39:41 +0000</pubDate>
				<category><![CDATA[Musique]]></category>
		<category><![CDATA[Tips et autres astuces]]></category>
		<guid isPermaLink="false">https://jonas.hopp.fr/?p=252</guid>

					<description><![CDATA[Le mystère des Découvertes de la semaine Spotify est enfin résolu ! A ce jour (septembre 2017), et ce depuis l&#8217;introduction de la fonctionnalité Découvertes de la semaine, chers lecteurs et utilisateurs de Spotify, vous avez certainement remarqué que la fonction « Découvertes de la semaine » vous propose des morceaux de musique déjà présents dans vos [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>Le mystère des Découvertes de la semaine Spotify est enfin résolu !</h2>
<p>A ce jour (septembre 2017), et ce depuis l&rsquo;introduction de la fonctionnalité <strong>Découvertes de la semaine</strong>, chers lecteurs et utilisateurs de <strong>Spotify</strong>, vous avez certainement remarqué que la fonction « Découvertes de la semaine » vous <strong>propose des morceaux de musique déjà présents dans vos playlists</strong>.</p>
<p>Plutôt <strong>ennuyeux</strong> quand on pense que le but de la découverte est, dans ce cas, de faire écouter des musiques inconnues à nos oreilles attentives.</p>
<p>Selon mes recherche sur le sujet, la fonctionnalité « Découverte de la semaine » est indexée non pas sur vos listes de lecture, <strong>mais sur votre bibliothèque</strong>. La différence pourrait paraître minime, cependant <strong>la bibliothèque n&rsquo;est pas automatiquement mise à jour</strong> avec les morceaux que vous insérez dans des playlists, mais uniquement lorsque vous cliquer sur l&rsquo;icône plus (+) situé à gauche de chaque piste, ou sur le bouton « <strong>SAUVEGARDER</strong> » quand vous parcourez un album.</p>
<p><strong>Il vous suffira donc de cliquer sur la dite icône « + » dans vos playlists pour ne plus voir des morceaux de vos playlists en Découvertes de la semaine.</strong></p>
<p><div id="attachment_254" style="width: 524px" class="wp-caption aligncenter"><a href="https://jonas.hopp.fr/wp-content/uploads/2017/09/Spotify-.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-254" class="wp-image-254" title="Spotify - Sauvegarder un morceau dans votre bibliothèque" src="https://jonas.hopp.fr/wp-content/uploads/2017/09/Spotify-.jpg" alt="Capture d'écran du logiciel Spotify montrant où cliquer pour ajouter (sauvegarder) une piste dans la bibliothèque." width="514" height="329" srcset="https://jonas.hopp.fr/wp-content/uploads/2017/09/Spotify-.jpg 1185w, https://jonas.hopp.fr/wp-content/uploads/2017/09/Spotify--300x192.jpg 300w, https://jonas.hopp.fr/wp-content/uploads/2017/09/Spotify--768x492.jpg 768w, https://jonas.hopp.fr/wp-content/uploads/2017/09/Spotify--1024x656.jpg 1024w, https://jonas.hopp.fr/wp-content/uploads/2017/09/Spotify--1080x692.jpg 1080w" sizes="(max-width: 514px) 100vw, 514px" /></a><p id="caption-attachment-254" class="wp-caption-text">Spotify &#8211; Sauvegarder un morceau dans votre bibliothèque</p></div></p>
<p>Ainsi, avec cette simple astuce, vous bénéficierez dorénavant de recommandations plus pertinentes et novatrice.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jonas.hopp.fr/pourquoi-les-decouvertes-de-la-semaine-spotify-proposent-des-pistes-de-vos-playlists-selon-toute-vraisemblance/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>La troisième&#8230; Days being a fish &#8211; Festival d&#8217;Avignon Off 2017</title>
		<link>https://jonas.hopp.fr/la-troisieme-days-being-a-fish-festival-davignon-off-2017/</link>
					<comments>https://jonas.hopp.fr/la-troisieme-days-being-a-fish-festival-davignon-off-2017/#respond</comments>
		
		<dc:creator><![CDATA[Jonas Hopp]]></dc:creator>
		<pubDate>Sun, 16 Jul 2017 13:56:55 +0000</pubDate>
				<category><![CDATA[Non classé]]></category>
		<guid isPermaLink="false">https://jonas.hopp.fr/?p=214</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_1 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_1">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_1  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_1  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p><a href="https://jonas.hopp.fr/wp-content/uploads/2017/07/spectacle_18766.jpg"><img loading="lazy" decoding="async" class="alignleft wp-image-215 size-medium" src="https://jonas.hopp.fr/wp-content/uploads/2017/07/spectacle_18766-252x300.jpg" alt="" width="252" height="300" srcset="https://jonas.hopp.fr/wp-content/uploads/2017/07/spectacle_18766-252x300.jpg 252w, https://jonas.hopp.fr/wp-content/uploads/2017/07/spectacle_18766.jpg 446w" sizes="(max-width: 252px) 100vw, 252px" /></a>Difficile d&rsquo;appréhender ce qu&rsquo;est d&rsquo;être un poisson à Hong Kong&#8230; Days being a Fish (Des jours en poisson) est une métaphore onirique de la vie en méga-ville, de l&rsquo;insignifiance qu&rsquo;on peut y ressentir. Un bain dans la culture chinoise, entre concept du bol de soupe de la chère maman, et de la difficulté à être soi dans ce monde si exigeant et compétitif. Famille, amis, collègues, une pièce touchante pour peu qu&rsquo;on puisse ouvrir son cœur à une autre culture. Se joue au Théatre Laurette, sur toute la durée du Festival OFF ! (du 6 au 30 juillet, à 14 h 25 et 18 h 35, plus d&rsquo;info sur le <a href="http://www.avignonleoff.com/programme/2017/des-jours-en-poisson-days-being-a-fish-s18766/">site du OFF</a>)</p></div>
			</div><div class="et_pb_module et_pb_code et_pb_code_0">
				
				
				
				
				<div class="et_pb_code_inner">&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/uJ4dG6rh0Es" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;</div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jonas.hopp.fr/la-troisieme-days-being-a-fish-festival-davignon-off-2017/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
