<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Site-Server v@build.version@ (http://www.squarespace.com) on Thu, 07 May 2026 22:28:05 GMT
--><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://www.rssboard.org/media-rss" version="2.0"><channel><title>Min Max Geek</title><link>https://www.minmaxgeek.com/</link><lastBuildDate>Mon, 06 Apr 2026 18:24:33 +0000</lastBuildDate><language>en-US</language><generator>Site-Server v@build.version@ (http://www.squarespace.com)</generator><description><![CDATA[]]></description><item><title>Solar Integrated Office (2026.1)</title><category>DIY</category><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Mon, 06 Apr 2026 13:15:03 +0000</pubDate><link>https://www.minmaxgeek.com/blog/solar-office-2026-1</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:69c48897e4f98c6f909c22b0</guid><description><![CDATA[After having a small power station offset the draw of my work laptop for a 
few months, I was ready to try and tackle a much bigger load — the entire 
office.

When thinking about this conceptually, it makes sense: use a battery to 
offset the power draw during the expensive/peak periods of the day and 
recharge said battery during cheaper/off-peak periods. Peak-shaving is not 
a hard idea to wrap your head around.

The fun (challenge? frustration?) angle is trying to determine what your 
needs are and what product and/or strategy best matches them. In other 
words, an exercise in spreadsheet-hell.]]></description><content:encoded><![CDATA[<p data-rte-preserve-empty="true" class="">After using a portable power station to offset the draw on my (admittedly puny) work laptop, I was ready to try a much bigger test — some (or all?) of my office. At the very least, I wanted to provide a much longer emergency runtime for my network cart (specifically, my NAS) but if I can also cover my entire office? That would be <em>awesome</em>.</p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p data-rte-preserve-empty="true" class=""><a target="_blank" href="#start">Where we started</a></p></li><li><p data-rte-preserve-empty="true" class=""><a target="_blank" href="#goals">Goals and Objectives</a></p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true" class=""><a href="#goals-1">Needs and wants</a></p></li><li><p data-rte-preserve-empty="true" class=""><a href="#goals-2">Power station metrics</a></p></li><li><p data-rte-preserve-empty="true" class=""><a href="#goals-3">Strategies and options</a></p></li></ul></li><li><p data-rte-preserve-empty="true" class=""><a href="#options">Finding a power station</a></p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true" class=""><a href="#options-1">Anker Solix</a></p></li><li><p data-rte-preserve-empty="true" class=""><a href="#options-2">Ecoflow</a></p></li><li><p data-rte-preserve-empty="true" class=""><a href="#options-3">Bluetti</a></p></li><li><p data-rte-preserve-empty="true" class=""><a href="#options-4">A point about standalone batteries</a></p></li><li><p data-rte-preserve-empty="true" class=""><a href="#options-5">Picking a power station</a></p></li></ul></li><li><p data-rte-preserve-empty="true" class=""><a href="#theorycrafting">Now, theorycrafting</a></p></li><li><p data-rte-preserve-empty="true" class=""><a href="#roi">About ROI...</a></p></li><li><p data-rte-preserve-empty="true" class=""><a href="#my-setup">My current setup</a></p></li><li><p data-rte-preserve-empty="true" class=""><a href="#milestone">Milestone</a></p></li></ul>


  






  



<hr />
  
    <h3 id="start">Where we started</h3>
  


  
  <p data-rte-preserve-empty="true" class="">When I <a href="https://www.minmaxgeek.com/blog/mini-network-rack-mk3">rebuilt my network cart</a> a few years ago, I had originally planned for having <em>two</em> UPS units. I had hoped to deploy a maintenance-bypass (<em>$$</em>) or automatic-transfer switch (<em>$$$</em>) so I could actually do staggered <em>testing</em> of the units without having to first power everything down. Powering down everything beforehand is a necessity - should the UPS <em>fail</em> the test, it would actually drop everything it was meant to power up. </p><p data-rte-preserve-empty="true" class="">A dual-UPS setup (specifically with an ATS) has the additional benefit of [nearly] <em>doubling the runtime</em>. According to the manufacturer, with my network cart pulling 300W, I should expect somewhere in the range of 20-25 minutes however, real-world outages are slightly less optimistic — <em>definitely</em> less than 20 minutes. Considering the fact that it it takes a non-insignificant (in reality, a <strong><em>substantial</em></strong>) amount of time for my NAS to <em>actually power down</em> once the determination has been made, I realistically plan for having a measly 7 minutes before things get <em>exciting</em>.</p><p data-rte-preserve-empty="true" class="">Even hypothetically <em>doubling</em> that runtime doesn’t exactly give me a ton of breathing room.</p><p data-rte-preserve-empty="true" class="">Currently, I do have an <a target="_blank" href="https://egopowerplus.com/nexus-portable-power-station/">EGO Power+ Nexus Portable Power Station</a> and four 5Ah batteries: a cumulative 1120Wh of power. This can (and has!) easily kept the network cart running for <strong><em>over two hours</em></strong>.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c78c446c-156a-4df2-ba12-862e426bf0ae/IMG20230925074123_s.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c78c446c-156a-4df2-ba12-862e426bf0ae/IMG20230925074123_s.jpg?format=1000w" width="2500" height="1875" sizes="(max-width: 640px) 100vw, (max-width: 767px) 33.33333333333333vw, 33.33333333333333vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c78c446c-156a-4df2-ba12-862e426bf0ae/IMG20230925074123_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c78c446c-156a-4df2-ba12-862e426bf0ae/IMG20230925074123_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c78c446c-156a-4df2-ba12-862e426bf0ae/IMG20230925074123_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c78c446c-156a-4df2-ba12-862e426bf0ae/IMG20230925074123_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c78c446c-156a-4df2-ba12-862e426bf0ae/IMG20230925074123_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c78c446c-156a-4df2-ba12-862e426bf0ae/IMG20230925074123_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c78c446c-156a-4df2-ba12-862e426bf0ae/IMG20230925074123_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">EGO Power Station holding up the network cart</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p data-rte-preserve-empty="true" class="">So, when the power goes out for more than a blip, I need to do a mental evaluation of whether this will end up being an extended outage or not. Once the determination has been made to transition over to this separate power station, the process is:</p><ol data-rte-list="default"><li><p data-rte-preserve-empty="true" class="">Grab the EGO power station from the garage and bring them to the office</p></li><li><p data-rte-preserve-empty="true" class="">Grab four batteries, bring them to the office and plug it in</p></li><li><p data-rte-preserve-empty="true" class="">Power up the power station</p></li><li><p data-rte-preserve-empty="true" class="">Move the network cart over to the EGO power station</p></li></ol><p data-rte-preserve-empty="true" class="">Luckily I have been home for every major power outage, so I just handle this — it’s definitely doable within 7 minutes, but there certainly isn’t a lot of wiggle room.</p>


  






  



&nbsp;<hr />&nbsp;
  
  <p data-rte-preserve-empty="true" class="">Last fall, I got around to deploying a small <a href="https://www.minmaxgeek.com/blog/solar-office-2025-1">proof of concept</a> for using solar/batteries to peak-shave a work laptop. Even with the reduced solar generation over the winter months, for such a small draw (mostly averaging 30W), the power station has easily been able to peak- (and mid-) shave the laptop for my entire work day without any intervention. It’s been great.</p><p data-rte-preserve-empty="true" class="">Thinking about how easily the EGO power station handles the load, I started thinking about deploying a dedicated power station for the office…</p><p data-rte-preserve-empty="true" class="">At a high level, I wanted some kind of battery system that I could use to carry some (or all) of the office electrical load for <em>some </em>(to be determined) amount of time. I wanted to address both backup-power and peak-shaving. There was a bit of wiggle-room in the final requirements to account for cost, complexity, scalability, ease of use etc.</p><p data-rte-preserve-empty="true" class="">There are three broad solution categories:</p><ol data-rte-list="default"><li><p data-rte-preserve-empty="true" class="">An off the shelf, ready-to-go solution. You pay a premium for the convenience but you have to fit your needs inside the manufacturer’s product stack (and there is the risk of being locked in an ecosystem)</p></li><li><p data-rte-preserve-empty="true" class="">A fully DIY solution where you mix and match inverters, batteries, charge controllers etc. In the long-run, this ends up being a <em>much </em>more cost effective solution, but getting to the first (and possibly <em>each</em>) checkpoint costs more (absolutely) and brings with it a lot of complexity</p></li><li><p data-rte-preserve-empty="true" class="">A professionally installed, home-level system. This is something we’d like to consider down the line but definitely not at this time and definitely outside of the scope of what I want to do</p></li></ol><p data-rte-preserve-empty="true" class="">Although the DIY route is definitely appealing and I think I will eventually get there, this isn’t my only project — having a power station is just a checkpoint on a much more complicated journey. For the time being, I need the simplicity of ‘open the box and go’.</p><p data-rte-preserve-empty="true" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="goals">Goals and Objectives</h3>
  


  
    <h4 id="goals-1">Needs and wants</h4>
  


  
  <p data-rte-preserve-empty="true">Whatever system (or systems) I landed on, I absolutely wanted</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true">To have a “substantial” amount of runtime to the network cart. While I didn’t initially have a specific runtime I wanted to hit, after seeing that my EGO power station could run the network cart for <strong>2 hours</strong>, I set that as my starting target (as this would be largely influenced by cost)</p></li><li><p data-rte-preserve-empty="true">To be able to peak-shave as much as a I can (and to do it robustly, without minimal fiddling on automations)</p></li></ul><p data-rte-preserve-empty="true">Dependant on pricing, system complexity etc., I wanted to extend both of the previous goals to the computers in my office</p>


  





  

  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/91fa086c-733f-4f75-a4a1-97159011e293/tou_s.jpg" data-image-dimensions="2505x1004" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/91fa086c-733f-4f75-a4a1-97159011e293/tou_s.jpg?format=1000w" width="2505" height="1004" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/91fa086c-733f-4f75-a4a1-97159011e293/tou_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/91fa086c-733f-4f75-a4a1-97159011e293/tou_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/91fa086c-733f-4f75-a4a1-97159011e293/tou_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/91fa086c-733f-4f75-a4a1-97159011e293/tou_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/91fa086c-733f-4f75-a4a1-97159011e293/tou_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/91fa086c-733f-4f75-a4a1-97159011e293/tou_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/91fa086c-733f-4f75-a4a1-97159011e293/tou_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Time of use electricity rate windows</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p data-rte-preserve-empty="true">Looking at the on-peak windows for the above pie charts:</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true"><strong>Winter: </strong>I need to be able to carry the office for <strong>4 hours</strong> in the morning (0700-1100). There’s a 6-hour window mid-day where I can either solar-charge (winter solar will be a challenge) or AC-charge (at a lower rate). My experience in the winter will largely be determined by the <em>battery capacity</em>.</p></li><li><p data-rte-preserve-empty="true"><strong>Summer: </strong>here, I need to be able to carry the office for a continuous 6-hours (1100-1700) but summer solar generation is more promising; my experience in the summer will largely be determined by <em>solar input</em>.</p></li></ul><p data-rte-preserve-empty="true" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="goals-2">Power station metrics</h4>
  


  
  <ol data-rte-list="default"><li><p data-rte-preserve-empty="true" class=""><strong>Inverter size</strong>. This is measured in <em>watts</em> and the metric sets the limit on <strong><em>what</em></strong> you can do. For example, something like a hair dryer might need 1500W to operate — if you have a 200W inverter, you’ll never be able to run it.</p></li><li><p data-rte-preserve-empty="true" class=""><strong>Battery capacity</strong>. Now that you can run whatever it is you’re trying to run, this determines <strong><em>how long </em></strong>you can run it for. Measured in <em>watt-hours</em>, and continuing our example, <br class="ProseMirror-trailingBreak"></p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true" class="">If your battery has a capacity of 500Wh, then you could run your 1500W hair dryer for 1/3rd of an hour (20-minutes)</p></li><li><p data-rte-preserve-empty="true" class="">If your battery capacity was 1500Wh, then you could run it for 1 hour</p></li><li><p data-rte-preserve-empty="true" class="">If your battery capacity was 3000Wh, then you could run it for 2 hours</p></li></ul></li><li><p data-rte-preserve-empty="true" class=""><strong>Solar input capacity</strong>. Measured in <em>watts</em>, this expresses how fast you can recharge your battery capacity (even while actively draining it). By focusing on solar input, we are looking at how fast (or how much) we can recharge the battery <em>for free.</em> Indirectly, this value affects <strong><em>how long</em></strong> you can run things for. Assuming we have a 500Wh battery and continuing our example:</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true" class="">If we have 500W of solar-input, then our 1500W hair dryer effectively only pulls 1000W, extending our runtime from 1/3 hour to 1/2 hour</p></li><li><p data-rte-preserve-empty="true" class="">If we have 1000W of solar-input, then our hair dryer effectively only pulls 500W, extending our runtime from 1/3 hour to 1 hour</p></li><li><p data-rte-preserve-empty="true" class="">If we have 1500W of solar-input, then our hair dryer effectively pulls 0W, meaning we can run <em>indefinitely</em> (while the sun is shining of course)</p></li></ul></li></ol>


  






  



&nbsp;<hr />&nbsp;
  
  <p data-rte-preserve-empty="true" class="">As I <a href="https://www.minmaxgeek.com/blog/solar-office-2025-1#design-3">alluded to previously</a>, there is a bit of a ‘soft-limit’ on battery size determined by:</p><p data-rte-preserve-empty="true" class=""><strong>(1440W - Continuous Draw) x 12-hours (of off-peak)</strong></p><p data-rte-preserve-empty="true" class="">or</p><p data-rte-preserve-empty="true" class=""><strong>(1440W - Continuous Draw) x 18-hours (of off-peak + mid-peak)</strong></p><p data-rte-preserve-empty="true">With zero draw, this gives us a (silly) hypothetical peak of <strong>17.3-25.9kWh</strong> for battery capacity - any larger and we wouldn’t (really) be able to recharge it within a 24-hour period on a typical 15A residential circuit. Note that for safety purposes, even though a 15A circuit <em>can</em> pull 1800W, we shouldn’t be doing so continuously.</p><p data-rte-preserve-empty="true">More importantly though — my draw is <em>never</em> going to be zero. But can come back to this later when we go down the theory-crafting rabbit hole.</p><p data-rte-preserve-empty="true" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="goals-3">Strategies and options</h4>
  


  
  <p data-rte-preserve-empty="true" class="sqsrte-large">Option 1</p><p data-rte-preserve-empty="true" class="">I would get a smaller power station <em>exclusively</em> for the network cart; I can integrate it into the cart directly and this would be the end of the project. This gives me a self-contained starting point that fulfills my core requirement of giving the cart extended runtime and peak-shaving. <br>For the main computers in the office, I could follow up with a more substantial setup (either DIY or a larger off-the-shelf solution). The downside with this option is that, down the road, there will be two separate systems to manage and I would want to try and find a way to charge both systems with a single solar array.</p>


  






  




  
  <p data-rte-preserve-empty="true" class="sqsrte-large">Option 2</p><p data-rte-preserve-empty="true" class="">Here, I get substantially larger power station — with enough oomph to drive everything I need. In addition to the higher initial cost, I would need to accept that initially, my runtime may be sub-optimal — since I’d be loading the everything in the office on battery power.</p><p data-rte-preserve-empty="true" class="">I would need to limit myself to models that support expansion batteries (either officially or DIY) and I would have to prioritize power-stations that more usable solar input (as there is more draw to try and offset).</p>


  






  




  
  <p data-rte-preserve-empty="true" class="">For both strategies, I wanted to tie this into <a target="_blank" href="https://www.home-assistant.io/">Home Assistant</a> - with or without official support (but obviously, platforms with official integration support would be prioritized). Ultimately, despite the jump in price, it made a bit more sense to go with Option 2 — this way I only have one system to worry about maintaining, integrating and automating.</p><p data-rte-preserve-empty="true" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="options">Finding a power station</h3>
  


  
  <p data-rte-preserve-empty="true">I definitely wanted a ‘open the box and go’ solution (and recognized that I would be paying a premium for that). One advantage of going this route is having access to operating modes out of the box, without having to further do custom automation work. Specifically, I was looking to do some level of basic time-of-use/peak-shaving natively with whatever app the power station came with.</p>


  





  

  




  
    <h4 id="options-1">Anker Solix</h4>
  


  
  <p data-rte-preserve-empty="true" class="">Since I already have an Anker Solix C300, I naturally started my search with Anker products. When I initially looked into this, there was an <a target="_blank" href="https://github.com/thomluther/ha-anker-solix">unofficial</a> integration to get Solix power stations into Home Assistant. Since then, Anker now has an <a target="_blank" href="https://github.com/anker-charging/ha-anker-solix-official">official</a> integration. At this time, there’s only support for a single product, so the official route is something to keep an eye on.</p>


  






  
























  
  





<ul data-should-allow-multiple-open-items="true" data-accordion-icon-placement="left" data-is-last-divider-visible="" data-is-expanded-first-item="true" data-is-divider-enabled="true" data-accordion-title-alignment="left" class="accordion-items-container" data-is-first-divider-visible="" data-accordion-description-alignment="left" data-accordion-description-placement="left"
>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            [$] C1000 Gen 2
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p data-rte-preserve-empty="true">This is the smallest, most cost-effective power station of the bunch. It <em>technically </em>has enough oomph to handle the entire office but only just.</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true"><strong>Inverter: 2000W</strong>. My nominal load for the office is 1100W so this can carry everything</p></li><li><p data-rte-preserve-empty="true"><strong>Battery capacity: 1024Wh</strong>. Without considering solar, I have less than 1-hour of battery-based runtime — not enough to meaningfully do any peak-shaving. Since the Gen 2 model doesn’t support expansion batteries, I’m at a dead end here.</p></li><li><p data-rte-preserve-empty="true"><strong>Solar Input: 600W</strong>. Even with maximum solar input, with my 1100W load, I’m draining my battery at a rate of 500W. This puts my hypothetical best case runtime at roughly 2 hours.</p></li><li><p data-rte-preserve-empty="true"><strong>Price point:</strong><a target="_blank" href="https://amzn.to/4bQJBb6"><strong> ~$600</strong></a></p></li></ul><p data-rte-preserve-empty="true">Even if I were to use a standalone battery to act as faux-server, the built-in battery will continue to drain — and once the built-in battery drains down to empty, the inverter will shut off.</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            [$$] C2000 Gen 2
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p data-rte-preserve-empty="true">Bigger in every way compared to the C1000G2, this unit realistically represents the smallest offering I would consider.</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true"><strong>Inverter: 2400W</strong>. With a [slightly] bigger inverter, my hope is that, because my nominal load represents a lower utilization (of the inverter), there’s less <em>noise</em> in the office (fans, inverter whine etc.). Unless the noise is extreme, this is just a nice perk.</p></li><li><p data-rte-preserve-empty="true"><strong>Battery Capacity: 2048Wh</strong>. Doubling the battery capacity is only half the equation: this unit support expansion batteries as well. Out of the box this gives me just under 2-hours of runtime</p></li><li><p data-rte-preserve-empty="true"><strong>Solar input: 800W</strong>. Although it’s a small bump in the solar rating, it does have a meaningful impact on my runtime. With a nominal 1100W load, the (peak) 800W solar input makes the effective drain only 300W. This gives me a runtime of roughly <strong>6 hours</strong>.</p></li><li><p data-rte-preserve-empty="true"><strong>Price point:</strong><a target="_blank" href="https://amzn.to/47ZY5UY"><strong> ~$1000</strong></a></p></li></ul><p data-rte-preserve-empty="true">To <em>actually hit 800W </em>is a different challenge: I would probably do this via standalone battery (at additional cost) acting as faux-solar. But at least it’s <em>possible. </em>Like the C1000G2 though, with a 1100W load and only 800W solar input, I will eventually run the battery down and then the inverter cuts off.</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            [$$$] F3000
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p data-rte-preserve-empty="true">This is the biggest/most-expensive power station I wanted to consider. This does ‘all of the above’ and more.</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true"><strong>Inverter: 3600W</strong>. For the office, I definitely don’t <em>need </em>the extra oomph here, but my hope is that the fans would be minimal</p></li><li><p data-rte-preserve-empty="true"><strong>Battery capacity: 3072Wh</strong>. Out of the box I’m looking at roughly 3-hours of run time (for the entire office, no less). With the tons of options for battery expansion this power station has a lot of points for scalability (if you have the money to spend)</p></li><li><p data-rte-preserve-empty="true"><strong>Solar input: 2400W</strong>. Here we finally start getting into some seriously big numbers. Here I can (theoretically) run the office entirely on solar.</p></li><li><p data-rte-preserve-empty="true"><strong>Price point:</strong><a target="_blank" href="https://amzn.to/4s2qW1W"><strong> ~$2000</strong></a></p></li></ul><p data-rte-preserve-empty="true">The F3000 brings a bit more to the table too (at additional cost).</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true">Multiple units can be paired together for 240V power</p></li><li><p data-rte-preserve-empty="true">There’s more support for directly tying into your breaker-box to act as an automatic peak-shaving transfer-switch</p></li></ul>
        
      

      
        
      

    </li>
  
</ul>

  
  <p data-rte-preserve-empty="true">I was <em>really</em> torn between between the C2000G2 and the F3000. For what I wanted to do, the C2000G2 was a near-perfect fit — the only limiting factor was the solar input. The F3000 is clearly a <strong>much</strong> more capable unit - but to unlock that extra solar, I was paying for a lot of [awesome] features I wasn’t going to use; also, some of the awesome features (like 240V/home-transfer switch) required buying an <em>additional</em> F3000 to capitalize on…</p><p data-rte-preserve-empty="true" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="options-2">Ecoflow</h4>
  


  
    
  
  <p data-rte-preserve-empty="true">Ecoflow was one of the two brands I <u>wanted</u> to look into. They seem to be positioned as a premium, tier-1 power station option. The downside? Their entire 3rd Gen product stack is a disaster. I did some spot-checks for some models but there was no way I was going to deep-dive into their product stack (and there was no way I was going to spend a ton of money <em>without</em> doing a deep dive). Just for this post, I did a very quick blast through the three attributes I care about and loosely grouped things (without considering price) by solar input:</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true">Minimal solar</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true">Delta 3 1000 Air: 500W, 960Wh, 500W solar</p></li><li><p data-rte-preserve-empty="true">Delta 3 Classic: 1800W, 1024Wh, 500W solar</p></li><li><p data-rte-preserve-empty="true">Delta 3 1500: 1800W, 1536Wh (expandable), 500W solar</p></li><li><p data-rte-preserve-empty="true">Delta 3 Max: 2400W, 2048Wh, 500W solar</p></li></ul></li><li><p data-rte-preserve-empty="true">Medium Solar</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true">Delta 3 Plus: 1800W, 1024Wh (expandable), 1000W solar</p></li><li><p data-rte-preserve-empty="true">Delta 3 Ultra: 3600W, 3072Wh (expandable), 800W solar</p></li><li><p data-rte-preserve-empty="true">Delta 3 Max Plus: 3000W, 2048Wh (expandable), 1000W solar</p></li></ul></li><li><p data-rte-preserve-empty="true">Plenty</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true">Delta 3 Ultra Plus: 3600W, 3072Wh (expandable), 1600W solar</p></li><li><p data-rte-preserve-empty="true">Delta Pro 3: 4000W, 4096Wh (expandable), 2600W solar</p></li></ul></li><li><p data-rte-preserve-empty="true">Crazy</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true">Delta Pro Ultra: 7200W, 6144Wh (expandable), 5600W solar</p></li><li><p data-rte-preserve-empty="true">Delta Pro Ultra X: 12000W, 12288Wh (expandable), 10000W solar</p></li></ul></li></ul><p data-rte-preserve-empty="true">As someone who was struggled to make sense of <a target="_blank" href="https://www.qnap.com/en/product">QNAP’s NAS offerings</a>, I find the entire 3rd Gen EcoFlow product stack to be triggering.  </p><p data-rte-preserve-empty="true">From an automation perspective, there’s an <a target="_blank" href="https://github.com/TarasKhust/ecoflow-api-mqtt">unofficial</a> Home Assistant integration.</p><p data-rte-preserve-empty="true" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  





  

  




  
    <h4 id="options-3">Bluetti</h4>
  


  
  <p data-rte-preserve-empty="true">After the disappointment that was the Ecoflow product stack, I was mostly resigned to going back to debating the C2000G2 vs F3000 but for completeness sake I decided to look at Bluetti. Until this point, I hadn’t considered Bluetti as my impression at the time was solidly Tier-2 vibes: “everything works but the polish isn’t there”. After looking at their product stack, I was refreshingly surprised…</p><p data-rte-preserve-empty="true">One really compelling point in Bluetti’s favor is <a target="_blank" href="https://github.com/bluetti-official/bluetti-home-assistant"><em>official</em> support</a> for Home Assistant. To make <em>my </em>life easier on the automation front, I specifically wanted to focus on models with Wi-Fi, which rules out the more affordable AC-line of power stations and mostly restrict myself to Elite (or more upmarket) models. </p>


  





  

  
























  
  





<ul data-should-allow-multiple-open-items="true" data-accordion-icon-placement="right" data-is-last-divider-visible="" data-is-expanded-first-item="true" data-is-divider-enabled="true" data-accordion-title-alignment="left" class="accordion-items-container" data-is-first-divider-visible="" data-accordion-description-alignment="left" data-accordion-description-placement="left"
>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 30px;
            padding-bottom: 30px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            [$] Elite 100 V2
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p data-rte-preserve-empty="true">On paper, this appears to be similar to the C1000 Gen 2 but with a much more substantial 1000W solar input</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true"><strong>Inverter: 1800W. </strong>While this is the smallest inverter, it <em>can</em> carry all my needs. The only concern is how hard the fans might run</p></li><li><p data-rte-preserve-empty="true"><strong>Battery Capacity: 1024Wh</strong>. By itself, the battery capacity only affords me ~1hr so my only hope is too leverage the substantial solar to increase this.</p></li><li><p data-rte-preserve-empty="true"><strong>Solar Input: 1000W.</strong> This is a <em>massive</em> amount of solar for such a tiny unit. At peak solar input, my runtime increases to <em>~10</em> hours.</p></li><li><p data-rte-preserve-empty="true"><strong>Price Point: </strong><a target="_blank" href="https://amzn.to/4bXMPd5"><strong>&lt;$600</strong></a></p></li></ul><p data-rte-preserve-empty="true">Looking at just these core metrics, this is an easy win over the C1000G2. My only concern whether or not my inverter utilization% will cause any fans to run and how loud they might be.</p><p data-rte-preserve-empty="true">Since there is no way to expand the battery here, the most practical strategy would be to use a standalone battery and hook it up as a 1000W faux-solar. Doing things this way would give me nearly 10 hours theoretical run time for the whole office. Very compelling.</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 30px;
            padding-bottom: 30px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            [$$] Elite 200 V2
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p data-rte-preserve-empty="true">Double the battery, and a bit bigger of an inverter, on paper this is better ’value’ than the 100V2. Compared to the C2000G2, has a 200W solar input advantage but loses the ability to expand the battery.</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true"><strong>Inverter: 2600W</strong></p></li><li><p data-rte-preserve-empty="true"><strong>Battery Capacity: 2074Wh</strong></p></li><li><p data-rte-preserve-empty="true"><strong>Solar Input: 1000W</strong></p></li><li><p data-rte-preserve-empty="true"><strong>Price Point: </strong><a target="_blank" href="https://amzn.to/4sHUKlR"><strong>$1000</strong></a></p></li></ul><p data-rte-preserve-empty="true">Again, using a standalone battery as a 1000W faux-solar setup, this can give my office a theoretical peak run time of <em>20 hours</em>. Despite this being an absolutely bonkers runtime, this doesn’t seem like a compelling option for me (as 10-hours from the 100V2 is already plenty sufficient).</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 30px;
            padding-bottom: 30px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            [$$$] Elite 300
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p data-rte-preserve-empty="true">Despite the existence of the 200V2, <em>this</em> power station feels like it would be a better option.</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true"><strong>Inverter: 2400W</strong></p></li><li><p data-rte-preserve-empty="true"><strong>Battery Capacity: 3014Wh</strong></p></li><li><p data-rte-preserve-empty="true"><strong>Solar Input: 1200W</strong></p></li><li><p data-rte-preserve-empty="true"><strong>Price Point: </strong><a target="_blank" href="https://amzn.to/4bGfXqf"><strong>$1700</strong></a></p></li></ul><p data-rte-preserve-empty="true">With this power station, I have the option (using a standalone battery configured as faux-solar) to run my office ‘indefinitely’ from solar. The asking price for this is a lot though.</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 30px;
            padding-bottom: 30px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            [$$$$] Apex 300
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p data-rte-preserve-empty="true">W solar input</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true"><strong>Inverter: 3840W</strong></p></li><li><p data-rte-preserve-empty="true"><strong>Battery Capacity: 2765Wh</strong></p></li><li><p data-rte-preserve-empty="true"><strong>Solar Input: 2400W / 6400W</strong></p></li><li><p data-rte-preserve-empty="true"><strong>Price Point: </strong><a target="_blank" href="https://amzn.to/3Ob5DgU"><strong>$1900</strong></a></p></li></ul><p data-rte-preserve-empty="true">Now this is an <em>interesting </em>option. The inverter on this power station is a <em>tank </em>and can do a ton more than I need at this time (but all within the wish-list of what I might want down the road).</p><p data-rte-preserve-empty="true">The super attractive point is the dual high-wattage solar charge controllers for a very respectable 2400W solar (out of the box). With a unique option to add an additional 4000W of solar input via an <a target="_blank" href="https://www.bluettipower.ca/products/solarx-4k-solar-charge-controller?_pos=1&amp;_sid=4709e22e4&amp;_ss=r&amp;variant=43479741792316">accessory</a>, a power station like this could grow with me over time.</p><p data-rte-preserve-empty="true">Compared to the Elite 300, this is <em>clearly</em> the better strategic option to go for.</p>
        
      

      
        
      

    </li>
  
</ul>

  
  <p data-rte-preserve-empty="true" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  





  

  




  
    <h4 id="options-4">A point about standalone batteries</h4>
  


  
  <p data-rte-preserve-empty="true" class="is-empty">So far I’ve considered the idea of using a standalone-battery as faux-solar: the idea here is to connect the battery to the solar-input port on the power station. Under the hood, this is DC-DC power transfer — the power station distinguish (or care) that the power is coming from a standalone battery versus a solar panel. When doing this, the power station happily charges its internal battery using the ‘solar’, subject to solar-input limits. This is why I’ve focused so much on the solar-input of the power stations.</p><p data-rte-preserve-empty="true" class="is-empty">Something to note though: if the power station is net-draining (i.e., Load &gt; Solar Input), then <em>eventually</em> the battery on the power station will hit zero — when this happens, the inverter on the power station will shut off, regardless of how much power is remaining on the standalone-battery. Since the standalone battery is providing ‘solar’, the power station will continue to charge and eventually it will turn back on. Assuming your load is consistently bigger than the solar input, you will enter a loop where the power station runs down, shuts off, charges back up, turns on, runs down, turns off…</p>


  






  




  
  <p data-rte-preserve-empty="true" class="is-empty">Using the C1000 Gen 2 just as an example, it has</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true" class="is-empty">1024Wh battery</p></li><li><p data-rte-preserve-empty="true" class="is-empty">600W solar-input</p></li></ul><p data-rte-preserve-empty="true" class="is-empty">Given my nominal 1100W draw, this means that I would have a constant drain of 500W on the battery which would yield a theoretical runtime of just over <strong>2-hours</strong>. </p><p data-rte-preserve-empty="true" class="is-empty">Without any way to expand the battery, this is a hard limit no matter how big our standalone battery is. </p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2216fc2b-11d7-4a16-8b44-863bde3ed653/FauxSolar1_s.jpg" data-image-dimensions="2424x986" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2216fc2b-11d7-4a16-8b44-863bde3ed653/FauxSolar1_s.jpg?format=1000w" width="2424" height="986" sizes="(max-width: 640px) 100vw, (max-width: 767px) 41.66666666666667vw, 41.66666666666667vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2216fc2b-11d7-4a16-8b44-863bde3ed653/FauxSolar1_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2216fc2b-11d7-4a16-8b44-863bde3ed653/FauxSolar1_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2216fc2b-11d7-4a16-8b44-863bde3ed653/FauxSolar1_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2216fc2b-11d7-4a16-8b44-863bde3ed653/FauxSolar1_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2216fc2b-11d7-4a16-8b44-863bde3ed653/FauxSolar1_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2216fc2b-11d7-4a16-8b44-863bde3ed653/FauxSolar1_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2216fc2b-11d7-4a16-8b44-863bde3ed653/FauxSolar1_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Using a standalone battery as faux-solar</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p data-rte-preserve-empty="true" class="is-empty">There is one more thing we <em>could</em> do: double-dip the standalone battery with a separate inverter. The C1000 Gen 2 has a limit of 1200W AC charging, so a small 2000W inverter is plenty for our experiment. With 600W faux-solar and 1200W AC charging (or really, with <em>just</em> the AC charging alone), we can run our loads entirely off battery power (of course, until the standalone battery runs out).</p><p data-rte-preserve-empty="true" class="is-empty">Between the solar and inverter, we would only be pulling 55A — well within the 100-200A operational limit of most standalone batteries. There is one minor downside: the power station has no way to directly query the standalone battery (remaining life, etc.). While many standalone batteries do have their own [Bluetooth] app, this becomes an additional complication to consider from an automation perspective.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c111f510-add0-479d-ac98-0d0abb1541db/FauxSolar2_s.jpg" data-image-dimensions="2436x1287" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c111f510-add0-479d-ac98-0d0abb1541db/FauxSolar2_s.jpg?format=1000w" width="2436" height="1287" sizes="(max-width: 640px) 100vw, (max-width: 767px) 41.66666666666667vw, 41.66666666666667vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c111f510-add0-479d-ac98-0d0abb1541db/FauxSolar2_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c111f510-add0-479d-ac98-0d0abb1541db/FauxSolar2_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c111f510-add0-479d-ac98-0d0abb1541db/FauxSolar2_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c111f510-add0-479d-ac98-0d0abb1541db/FauxSolar2_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c111f510-add0-479d-ac98-0d0abb1541db/FauxSolar2_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c111f510-add0-479d-ac98-0d0abb1541db/FauxSolar2_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c111f510-add0-479d-ac98-0d0abb1541db/FauxSolar2_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Double-dipping the inverter</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p data-rte-preserve-empty="true" class="is-empty">While double-dipping <em>technically works</em>, it’s really inefficient: we would be taking DC power, converting it to AC via the inverter, just to have the power station convert it back to DC as part of the charging process.</p><p data-rte-preserve-empty="true" class="is-empty">Another thing to consider is the potential for noise: both the inverter and the dedicated charger (for the standalone battery) have fans that will likely be running in addition to the fans on the power station. For my first go at this, I wanted to keep things a bit simpler, so I’m not considering double-dipping.</p><p data-rte-preserve-empty="true" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="options-5">Picking a power station</h4>
  












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c583f809-6943-4d4a-a3b7-84431bba8495/Option+Summary_s.jpg" data-image-dimensions="2269x313" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c583f809-6943-4d4a-a3b7-84431bba8495/Option+Summary_s.jpg?format=1000w" width="2269" height="313" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c583f809-6943-4d4a-a3b7-84431bba8495/Option+Summary_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c583f809-6943-4d4a-a3b7-84431bba8495/Option+Summary_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c583f809-6943-4d4a-a3b7-84431bba8495/Option+Summary_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c583f809-6943-4d4a-a3b7-84431bba8495/Option+Summary_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c583f809-6943-4d4a-a3b7-84431bba8495/Option+Summary_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c583f809-6943-4d4a-a3b7-84431bba8495/Option+Summary_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c583f809-6943-4d4a-a3b7-84431bba8495/Option+Summary_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Power station short list…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p data-rte-preserve-empty="true" class="is-empty">Putting all of the models under consideration in a spreadsheet, we get can narrow things down a bit:</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true" class="is-empty">The Elite 100V2 beats out the C1000G2 based on the substantial jump in solar input</p></li><li><p data-rte-preserve-empty="true" class="is-empty">Between the Elite 200V2 and the C2000G2, it’s <em>much</em> closer. Entirely by itself, I think the Elite 200V2 takes the win here with the not-insignificant advantage in solar-input however, the <em>option </em>to get an expansion battery on the C2000G2 should not be ruled out (despite OEM expansion batteries being silly expensive).</p></li><li><p data-rte-preserve-empty="true" class="is-empty">In the context of the available options, the Elite 300 is a bit of an odd duck and only really makes sense if you were considering the C2000G2 with the expansion battery (~2200CAD). If we scale the price of C2000G2+Expansion down to match the battery capacity of the Elite 300, it is roughly 1620CAD. In that context, the Elite 300’s substantial advantage in solar input makes it a compelling alternative.</p></li><li><p data-rte-preserve-empty="true" class="is-empty">The F3000 and Apex 300 are fairly evenly matched: the F3000 has more battery capacity out of the box vs the Apex 300 being able to do 240V natively.  Having the option to get an <em>additional </em><a target="_blank" href="https://www.bluettipower.com/products/bluetti-solarx-4k-solar-charge-controller">4000W of solar input</a> into the Apex 300 is really unique.</p></li></ul><p data-rte-preserve-empty="true" class="is-empty">My final short list was:</p><ol data-rte-list="default"><li><p data-rte-preserve-empty="true" class="is-empty"><strong>Apex 300</strong> — the most expensive option of the three, but it’s a ‘do everything’ option</p></li><li><p data-rte-preserve-empty="true" class="is-empty"><strong>Elite 100V2</strong> — going with this option means that I would definitely have to get a standalone battery (the sooner the better)</p></li><li><p data-rte-preserve-empty="true" class="is-empty"><strong>C2000G2</strong> — this unit is ‘medium’ at everything; I think I would value the potential for an official ($$) expansion battery versus not having the option at all</p></li></ol><p data-rte-preserve-empty="true" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="theorycrafting">Now, theorycrafting</h3>
  


  
  <p data-rte-preserve-empty="true">Now that I have a power station in mind, we can start to do the fun theory-crafting. I went down a bit of a rabbit hole to try and model power-usage in a spreadsheet. My scenario is a bit unique in that I’m modelling power-draw that is relatively stable - my computer is <em>always</em> doing something.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Define our conditions" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Here, we define the time of use rates and describe our power station as well as the itemizing the different loads that the power station might need to carry.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775230853612-HRB2CF1PBPZK6UGWPEBM/Theory1_s.jpg" role="button" aria-labelledby="69cfdf850a79a6166b87a8dc-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775230853612-HRB2CF1PBPZK6UGWPEBM/Theory1_s.jpg" data-image-dimensions="1674x798" data-image-focal-point="0.5,0.5" alt="Define our conditions" data-load="false" data-image-id="69cfdf850a79a6166b87a8dc" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775230853612-HRB2CF1PBPZK6UGWPEBM/Theory1_s.jpg?format=1000w" /><br>
                </a>
                
                  Define our conditions
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Set the ToU &amp;amp; Sunshine Window" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This is where we set which ToU rates apply to what hours of the day. &lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I also, throw in a number (0-1) that tries to describe “is the sun out?”.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775230354848-GMG0VZLM23ZGCWE044DD/Scenario1_s.jpg" role="button" aria-labelledby="69cfdd92a33d44134fe8f7cd-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775230354848-GMG0VZLM23ZGCWE044DD/Scenario1_s.jpg" data-image-dimensions="530x856" data-image-focal-point="0.5,0.5" alt="Set the ToU &amp;amp; Sunshine Window" data-load="false" data-image-id="69cfdd92a33d44134fe8f7cd" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775230354848-GMG0VZLM23ZGCWE044DD/Scenario1_s.jpg?format=1000w" /><br>
                </a>
                
                  Set the ToU &amp; Sunshine Window
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Describing our load(s)" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Here, we take the different loads that we defined and describe what time of day those loads might be running.&lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Ultimately, we’re looking to find out “for this hour of the day, how much energy do we need”. We can tie in the ToU rate for that hour to determine an hourly (and then daily) cost.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775230355847-13XY0FD4X7P8GW4FZ6GG/Scenario2_s.jpg" role="button" aria-labelledby="69cfdd93adc7696ddaa57c79-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775230355847-13XY0FD4X7P8GW4FZ6GG/Scenario2_s.jpg" data-image-dimensions="636x888" data-image-focal-point="0.5,0.5" alt="Describing our load(s)" data-load="false" data-image-id="69cfdd93adc7696ddaa57c79" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775230355847-13XY0FD4X7P8GW4FZ6GG/Scenario2_s.jpg?format=1000w" /><br>
                </a>
                
                  Describing our load(s)
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Strategizing" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;For each scenario, we need to play around with the strategy of how to best leverage the power station for peak shaving.&lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;The specific strategy will vary depending on how much solar and the amount of battery capacity is available.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322163095-JKOC7IGUY4XQ624HA081/Setup4_s.jpg" role="button" aria-labelledby="69d1443290cd66134265fc9b-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322163095-JKOC7IGUY4XQ624HA081/Setup4_s.jpg" data-image-dimensions="4070x1859" data-image-focal-point="0.5,0.5" alt="Strategizing" data-load="false" data-image-id="69d1443290cd66134265fc9b" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322163095-JKOC7IGUY4XQ624HA081/Setup4_s.jpg?format=1000w" /><br>
                </a>
                
                  Strategizing
                
              
            
          

          
        

      
    
  

  











  
  <p data-rte-preserve-empty="true" class="">For each scenario, I tackle them in the same way: </p><ol data-rte-list="default"><li><p data-rte-preserve-empty="true" class="">See how much of an on-peak period we can offset using the battery</p></li><li><p data-rte-preserve-empty="true" class="">If there’s remaining battery capacity, try and offset mid-peak where applicable. Otherwise, allow the battery to recharge during mid-peak</p></li><li><p data-rte-preserve-empty="true" class="">During off-peak periods, switch the power station to AC charging</p></li></ol><p data-rte-preserve-empty="true" class="">The two variables at play are: the amount of starting energy available (i.e., whether we have an expansion battery or not) and the amount of solar generation available. The following pictures provide a bit of context in the thinking behind each strategy</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Power station, No Solar" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322278078-CTBPUM4VAM5MSVX6S7U1/2a_0_annotated_s.jpg" role="button" aria-labelledby="69d144a5bbb3132bcce066f7-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322278078-CTBPUM4VAM5MSVX6S7U1/2a_0_annotated_s.jpg" data-image-dimensions="4349x2007" data-image-focal-point="0.5,0.5" alt="Power station, No Solar" data-load="false" data-image-id="69d144a5bbb3132bcce066f7" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322278078-CTBPUM4VAM5MSVX6S7U1/2a_0_annotated_s.jpg?format=1000w" /><br>
                </a>
                
                  Power station, No Solar
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Power station, 100W Solar" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322300442-DDB3VKLFLTH1RSR0GJG1/2a_100_annotated_s.jpg" role="button" aria-labelledby="69d144bcaf797e778cfb6215-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322300442-DDB3VKLFLTH1RSR0GJG1/2a_100_annotated_s.jpg" data-image-dimensions="4922x1460" data-image-focal-point="0.5,0.5" alt="Power station, 100W Solar" data-load="false" data-image-id="69d144bcaf797e778cfb6215" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322300442-DDB3VKLFLTH1RSR0GJG1/2a_100_annotated_s.jpg?format=1000w" /><br>
                </a>
                
                  Power station, 100W Solar
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Power station, 2000W Solar" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322322311-60FH04MP4NKRRXJV9RYH/2a_2000_annotated_s.jpg" role="button" aria-labelledby="69d144d2094b54285974802e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322322311-60FH04MP4NKRRXJV9RYH/2a_2000_annotated_s.jpg" data-image-dimensions="4934x1634" data-image-focal-point="0.5,0.5" alt="Power station, 2000W Solar" data-load="false" data-image-id="69d144d2094b54285974802e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322322311-60FH04MP4NKRRXJV9RYH/2a_2000_annotated_s.jpg?format=1000w" /><br>
                </a>
                
                  Power station, 2000W Solar
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Power station + 1x Expansion Battery, 100W Solar" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322336982-21IZSF3GCQN91MMHNWR4/2b_100_annotated_s.jpg" role="button" aria-labelledby="69d144e05a9c73683fd199bf-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322336982-21IZSF3GCQN91MMHNWR4/2b_100_annotated_s.jpg" data-image-dimensions="4597x1328" data-image-focal-point="0.5,0.5" alt="Power station + 1x Expansion Battery, 100W Solar" data-load="false" data-image-id="69d144e05a9c73683fd199bf" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322336982-21IZSF3GCQN91MMHNWR4/2b_100_annotated_s.jpg?format=1000w" /><br>
                </a>
                
                  Power station + 1x Expansion Battery, 100W Solar
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Power station, 2x Expansion Batteries, 500W Solar" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322360868-MOPUDUUSCT9I1TELXQJR/2c_500_annotated_s.jpg" role="button" aria-labelledby="69d144f85a9a455f1792937e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322360868-MOPUDUUSCT9I1TELXQJR/2c_500_annotated_s.jpg" data-image-dimensions="4560x1513" data-image-focal-point="0.5,0.5" alt="Power station, 2x Expansion Batteries, 500W Solar" data-load="false" data-image-id="69d144f85a9a455f1792937e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322360868-MOPUDUUSCT9I1TELXQJR/2c_500_annotated_s.jpg?format=1000w" /><br>
                </a>
                
                  Power station, 2x Expansion Batteries, 500W Solar
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Power station, 2x Expansion Batteries, 1500W Solar" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322394575-P4UKIH6LVTV7SN8YY3NV/2c_1500_annotated_s.jpg" role="button" aria-labelledby="69d1451abd791b45ca6b1a75-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322394575-P4UKIH6LVTV7SN8YY3NV/2c_1500_annotated_s.jpg" data-image-dimensions="4570x1330" data-image-focal-point="0.5,0.5" alt="Power station, 2x Expansion Batteries, 1500W Solar" data-load="false" data-image-id="69d1451abd791b45ca6b1a75" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775322394575-P4UKIH6LVTV7SN8YY3NV/2c_1500_annotated_s.jpg?format=1000w" /><br>
                </a>
                
                  Power station, 2x Expansion Batteries, 1500W Solar
                
              
            
          

          
        

      
    
  

  











  
  <p data-rte-preserve-empty="true">When we start going down the strategy rabbit-hole, there are few details we need to remember:</p><ol data-rte-list="default"><li><p data-rte-preserve-empty="true"><strong>Inverters consume power</strong>. Even if there’s nothing plugged in, just the fact that the inverter is enabled and standing by consumes power; how much power is ‘wasted’ depends on the model. In our spreadsheet-model, we can account for this a bit by reducing the ‘efficiency’ number for our power station.</p></li><li><p data-rte-preserve-empty="true"><strong>Solar generation can be <em>very </em>fickle</strong>. In all but the most intensely sunny days, solar production will not be consistent - a single cloud rolling by, branches swaying in the wind and casting shadows or even <em>bird poop</em> can impact solar generation. We can tackle this two ways: either over-panelling ($$) or reducing the numbers around solar input in the spreadsheet.</p></li><li><p data-rte-preserve-empty="true"><strong>We don’t (and probably shouldn’t) run the power station down to absolutely empty</strong>. For my testing, I set my operating mode to bottom out at 15%; this means that if the battery drops below 15%, the power station will cut-over to grid-pass through to keep the battery from going lower. This ensures that there is always a minimum amount of power available in case there is an <em>actual power outage</em>. We can tackle this by either using additional expansion batteries or by reducing the efficiency metric in the spreadsheet even further to give us some buffer.</p></li></ol><p data-rte-preserve-empty="true">All this to say that the spreadsheet is very much a dynamic, work in progress that also may be very uniquely dialed into my specific use case.</p>


  





  

  








   
    <a href="https://www.minmaxgeek.com/s/Power-Station-Theory-crafting-56wh.xlsx" class="sqs-block-button-element--medium sqs-button-element--primary sqs-block-button-element" data-sqsp-button target="_blank"
    >
      Download Theorycrafting Spreadsheet (XLSX)
    </a>
    

  


  
 
    <a href="https://www.minmaxgeek.com/s/Power-Station-Theory-crafting-56wh.xlsx" class="sqs-block-button-element--medium sqs-button-element--primary sqs-block-button-element" data-sqsp-button target="_blank"
    >
      Download Theorycrafting Spreadsheet (XLSX)
    </a>
    
  





  
  
  <p data-rte-preserve-empty="true" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="roi">About ROI...</h3>
  


  
  <p data-rte-preserve-empty="true">After all the scenario work, we can pull all the aggregate data together and try and draw some conclusions. We can see from the summary below that theoretically, the best options are ‘<em>power station with lots of solar input</em>’ and the distinctly second-best options are “<em>power station with an expansion battery but also lots of solar input</em>”. For my electrical needs, it seems that two expansion batteries are definitely <em>not</em> the way to go.</p>


  






  






  

  



  
    
      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775323489976-8OLRXOP3RRDGKO8IBDD4/Summary1_s.jpg" data-image-dimensions="1895x1206" data-image-focal-point="0.5,0.5" alt="Raw Data Summary" data-load="false" data-image-id="69d1496124bbbc638d3bb952" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775323489976-8OLRXOP3RRDGKO8IBDD4/Summary1_s.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Raw Data Summary
                      <p data-rte-preserve-empty="true">Here, we composite all of the daily-operating costs of my office across all of the different scenarios, accounting for both winter- and summer- billing schedules.</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775323490051-3HM2AIIRYUL9XWOC43G6/Summary2_s.jpg" data-image-dimensions="1183x1123" data-image-focal-point="0.5,0.5" alt="Graphed out" data-load="false" data-image-id="69d14962e0bcf8686070dd0f" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775323490051-3HM2AIIRYUL9XWOC43G6/Summary2_s.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Graphed out
                      
                    
                  
                
              
              
            
          
          
        

        

        

      
    
  

  
    
    
    
      
      
        
          <a tabindex="0" role="button" class="previous" aria-label="Previous Slide"
          ></a>
          <a tabindex="0" role="button" class="next" aria-label="Next Slide"
          ></a>
        
      
    
    
     
  




  

    
      
          

        

        
      
          

        

        
      
    

  






  
  
<p data-rte-preserve-empty="true">This spreadsheet is a bit of a work in progress and I’ll need to do some fine-tuning over time both to tailor the baseline settings (assumptions), change strategies and/or correct formula errors. Despite the raw numbers suggesting otherwise, my gut feeling is that going for an expansion battery is the better option for three reasons:</p><ol data-rte-list="default"><li><p data-rte-preserve-empty="true">The expansion battery gives me additional runtime outside of any of this cost-optimization stuff</p></li><li><p data-rte-preserve-empty="true">It’s possible that the factors I’ve built into my theory-crafting around the sun are unrealistic/optimistic</p></li><li><p data-rte-preserve-empty="true">Even if my assumptions around sunlight are reasonable, any additional capacity allows me to offset load without the additional variability of depending on the sun</p></li></ol><p data-rte-preserve-empty="true" class="is-empty">That being said, price (and availability) obviously plays a massive part in this equation. </p>
<p data-rte-preserve-empty="true" id="yui_3_17_2_1_1775330389404_24397" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="my-setup">My current setup</h3>
  


  
  <p data-rte-preserve-empty="true">So I went with the <a target="_blank" href="https://amzn.to/4crqk1i">Bluetti Apex 300</a> and currently, I’ve only got <a target="_blank" href="https://www.minmaxgeek.com/blog/solar-office-2025-1#step-3">100W of solar</a> feeding it. I’ve defined the following in my configuration of the power station:</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true" class=""><strong>Custom Mode</strong> [SoC 15-100%, with time-of-use and schedule defined]</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true" class="">The 15% means that no matter what, if the power station goes below 15%, then <em>AC pass-through</em> will be enabled. This won’t <em>charge</em> the battery, it just keeps the battery from draining any lower</p></li><li><p data-rte-preserve-empty="true" class="">The 100% is the point where, if the battery level goes higher than this, it stops the grid input with the idea being that the grid will top up the battery to the specified percentage and then solar power will fill up the rest of the way: if you have some decent solar available, you might set this to 80% (or lower!). In my case, I’ve got such an insignificant amount of solar input, it doesn’t really make a difference. I’ll revisit this later on.</p></li><li><p data-rte-preserve-empty="true" class="">The schedule allows me to define two types of time blocks: [a] charge the battery and [b] discharge/use the battery. Times not explicitly falling in that window will use AC-pass  through (where the grid powers the load but doesn’t charge the battery). Note that even when the battery is in discharge/use mode, it still have the 15% safety net</p></li></ul></li><li><p data-rte-preserve-empty="true" class=""><strong>Backup Mode</strong></p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true" class="">I use this mode as a “make it charge now”</p></li></ul></li></ul>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/af62f331-ff95-44c9-97a4-8c7b85fa89eb/schedule_s.jpg" data-image-dimensions="1427x2871" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/af62f331-ff95-44c9-97a4-8c7b85fa89eb/schedule_s.jpg?format=1000w" width="1427" height="2871" sizes="(max-width: 640px) 100vw, (max-width: 767px) 16.666666666666664vw, 16.666666666666664vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/af62f331-ff95-44c9-97a4-8c7b85fa89eb/schedule_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/af62f331-ff95-44c9-97a4-8c7b85fa89eb/schedule_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/af62f331-ff95-44c9-97a4-8c7b85fa89eb/schedule_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/af62f331-ff95-44c9-97a4-8c7b85fa89eb/schedule_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/af62f331-ff95-44c9-97a4-8c7b85fa89eb/schedule_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/af62f331-ff95-44c9-97a4-8c7b85fa89eb/schedule_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/af62f331-ff95-44c9-97a4-8c7b85fa89eb/schedule_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Time of use scheduling</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p data-rte-preserve-empty="true" class="">For my locale, in the winter-months, I have two on-peak time windows (0700-1100 and 1700-1900) and as such, I need to find a way to get the battery topped up before the second on-peak window. The behavior (of ‘Custom Mode’) is only to provide pass-through power during mid-peak periods.</p><p data-rte-preserve-empty="true" class="">Ideally, I would like to charge the power station during the mid-peak period but specifically avoiding charging more than necessary to handle that second on-peak window. This way, I can leave the majority of the charging to be done during the off-peak period. One way to work around the limitation of the app is to define <strong><em>some</em></strong> of that mid-peak period as off-peak. While this would <em>work</em>, it’s not a clean way of doing it. The second problem I have with this app is that it doesn’t support seasonal TOU scheduling so in the long run, this means I’ll need to handle the automations myself.</p><p data-rte-preserve-empty="true" class="">To get started, I know that if I have 75% or more remaining, I can <em>definitely</em> handle that second on-peak period regardless of what loads might be on the power station. To do what I want, I setup a few automations in Home Assistant:</p><ul data-rte-list="default"><li><p data-rte-preserve-empty="true" class="">1100h - If the battery is less than 65%, then I switch to Backup Mode allowing the power station to charge. I’m always running on empty (treading 15%) at 1100 so this always happens.</p></li><li><p data-rte-preserve-empty="true" class="">1330h and every half-hour after - If the battery is at least 75%, then I switch back to Custom Mode. This effectively stops charging the battery and just does AC pass through</p></li><li><p data-rte-preserve-empty="true" class="">1700h - Since the power station is already in Custom Mode and 1700h is defined as on-peak, it now uses the battery to power everything</p></li></ul><p data-rte-preserve-empty="true" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="milestone">Milestone</h3>
  


  
  <p data-rte-preserve-empty="true" class="">For the time being, the Apex 300 has been great - with the quick Home Assistant automations, the day to day operations are entirely hands-off.</p><p data-rte-preserve-empty="true" class="">Based on my theory-crafting, I knew that, even in the most optimistic scenarios, the power station doesn’t have enough juice to carry the office through the initial [winter] 4-hour on-peak period. Empirically, I’ve found that I can carry my office for 2.5-4 hours (most of the time, it lasts to 3.5 hours) — and this is running down to 15% reserve. The deviation comes from tweaking user-behaviour: I can explicitly chose to scale down intensive operations during the morning peak window.</p><p data-rte-preserve-empty="true" class="">That being said, with the summer ToU scheduling coming up, I know that I absolutely can’t offset the entire 6-hour continuous block.</p><p data-rte-preserve-empty="true" class="">I’d like to get a DIY expansion battery ($$) but I’m actually waiting for pricing and availability to go down that road.  As the theory-crafting has already identified, a single 5kWh battery would allow me to offset the <em>entire work day</em>. </p><p data-rte-preserve-empty="true" class="">A much cheaper option would be to get started with one (or two!) 500W-class solar panels. My office is already ‘plumbed’ to run a panel in — it’s just a matter of identifying a specific panel to get and then the harder task of <em>finding </em>a vendor to order it from. That will be a the focus of another post ;)</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6665df5f-7991-44f9-a8a2-2d79efd8ae55/DPN06195_s.jpg" data-image-dimensions="2500x1777" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6665df5f-7991-44f9-a8a2-2d79efd8ae55/DPN06195_s.jpg?format=1000w" width="2500" height="1777" sizes="(max-width: 640px) 100vw, (max-width: 767px) 41.66666666666667vw, 41.66666666666667vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6665df5f-7991-44f9-a8a2-2d79efd8ae55/DPN06195_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6665df5f-7991-44f9-a8a2-2d79efd8ae55/DPN06195_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6665df5f-7991-44f9-a8a2-2d79efd8ae55/DPN06195_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6665df5f-7991-44f9-a8a2-2d79efd8ae55/DPN06195_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6665df5f-7991-44f9-a8a2-2d79efd8ae55/DPN06195_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6665df5f-7991-44f9-a8a2-2d79efd8ae55/DPN06195_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6665df5f-7991-44f9-a8a2-2d79efd8ae55/DPN06195_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Apex 300 all squared away</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p data-rte-preserve-empty="true" id="yui_3_17_2_1_1775330389404_384083" class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1775499510821-A3WSBB36T9DPI8JLJ2CH/cover_s.jpg?format=1500w" medium="image" isDefault="true" width="1500" height="1000"><media:title type="plain">Solar Integrated Office (2026.1)</media:title></media:content></item><item><title>Automation Alley (2026.1) - Another Rabbit Hole</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Mon, 16 Feb 2026 15:00:13 +0000</pubDate><link>https://www.minmaxgeek.com/blog/automation-alley-2026-1</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:698d47659fbc9e53414b9909</guid><description><![CDATA[After my recent post about bringing solar into my office to offset the 
(admittedly minuscule) power draw of a work laptop, I started to think more 
about how to reduce the power draw of my definitely-not-minuscule network 
cart, and main PCs. This is a good starting point to start talking about 
home automation]]></description><content:encoded><![CDATA[<p class="">For the last ten years or so, I’ve had a random assortment of smart-home devices (mostly smart plugs). As a follow up to my <a href="https://www.minmaxgeek.com/blog/solar-office-2025-1">Solar Office</a> post, I’m putting a bit more thought in how I can reduce my power bill (without a substantial change in actual behavior because computers still need to be power on, and <em>doing things</em>). To tackle this, I need to approach it from two directions:</p><ul data-rte-list="default"><li><p class="">Data collection — <em>what</em> is using power? how much is it using? when is it using it? and</p></li><li><p class="">Automation — what can I do about it? (without having to change my behavior)</p></li></ul><p class="">And this is the perfect way to start talking more about home automation. This first post is intended to set the historical context and layout the groundwork for future posts on this.</p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#step-1">Phase 1: Smart:Life</a></p></li><li><p class=""><a href="#phase2" target="_blank">Phase 2: KASA</a></p></li><li><p class=""><a href="#phase3" target="_blank">Phase 3: Home Assistant</a></p></li><li><p class=""><a href="#zigbee" target="_blank">Actual Zigbee deployment</a></p></li><li><p class=""><a href="#milestone">Milestone</a></p><p data-rte-preserve-empty="true" class=""></p></li></ul>


  






  



<hr />
  
    <h3 id="phase1">Phase 1: SmartLife</h3>
  


  
  <p class="">About ten years ago, I got my first ‘smart device’ — a Wi-Fi controlled RGB strip. At the time I was just looking for a cheap RGB strip that I could stick onto a bed-frame that I had hastily built in a weekend. It wasn’t long before I moved onto ‘smart plugs’ and (compared to old-school mechanical timers), the advantages were obvious:</p><ul data-rte-list="default"><li><p class="">Can remotely trigger them on/off</p></li><li><p class="">Can set multiple schedules!</p></li><li><p class="">Don’t t have to worry about daylight savings or power outages throwing schedules out of whack</p></li><li><p class="">I wasn’t limited to a 30-minute scheduling resolution</p></li></ul><p class="">When I learned that some models could do <em>power monitoring</em>, I was sold: this was a [somewhat] practical way to get insight into the instantaneous power draw for arbitrary devices around my home. It was non-invasive: I could just drop a smart plug in between an existing device and the wall. Over the next few years, I deployed almost 50 smart plugs — enough to start running into <a href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-1#why-upgrade">issues with my networking setup</a>.</p><p class="">I started with <a href="https://www.tuya.com/" target="_blank">Tuya</a> devices and used the <a href="https://smartlifeapp.org/" target="_blank">SmartLife</a> app platform to manage them (I’ll use Tuya/SmartLife somewhat interchangeably to refer to these IoT devices). I explored a few other categories of products (contact sensors, RGB bulbs, etc.) but the overwhelming majority of this phase was deploying smart plugs everywhere.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21358666-3ad3-49bb-8c5f-6cb997829c5d/Phase1.jpg" data-image-dimensions="1812x1072" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21358666-3ad3-49bb-8c5f-6cb997829c5d/Phase1.jpg?format=1000w" width="1812" height="1072" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21358666-3ad3-49bb-8c5f-6cb997829c5d/Phase1.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21358666-3ad3-49bb-8c5f-6cb997829c5d/Phase1.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21358666-3ad3-49bb-8c5f-6cb997829c5d/Phase1.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21358666-3ad3-49bb-8c5f-6cb997829c5d/Phase1.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21358666-3ad3-49bb-8c5f-6cb997829c5d/Phase1.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21358666-3ad3-49bb-8c5f-6cb997829c5d/Phase1.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21358666-3ad3-49bb-8c5f-6cb997829c5d/Phase1.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">My IoT device distribution when I first got started…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">Looking back, there was one glaring problem I had noticed but didn’t fully understand (and overlooked): every batch of devices seemed to come with it’s own (dead-end) firmware! I would faithfully initialize each device and it would report that it already had the latest available firmware, but you never knew what features you’d get until you actually went and used it. Obviously the most basic functionality (turn on/off) was consistent but beyond that, it seemed like everything was fair game:</p><ul data-rte-list="default"><li><p class="">On some, you could only do double-bound scheduling (i.e., power-on from 07:00 to 07:30) whereas others allowed you to do ‘one-way’ scheduling (i.e., turn-on at 07:00, turn-off at 07:30)</p></li><li><p class="">In addition to ‘on’ and ‘off’, some firmware released also have a ‘toggle’ action</p></li><li><p class="">‘Away mode’ where the switch randomly toggles on and off to try and simulate someone being home</p></li><li><p class="">‘Auto off timers’ which turn a switch off after a predetermined time, no matter what</p></li><li><p class="">Timers: some allowed you to set a countdown timer (turn off in 5 minutes), some allowed you to set count-up timers (turn <em>on </em>in 5 minutes)</p></li><li><p class="">Some smart plugs exposed ‘current power draw’ as an actionable data point — you could react to plug A drawing more than 50W by turning on plug B</p></li></ul><p class="">The frustrating part is that these feature differences were all from the ‘same product’ — where I would just go to an Amazon page and reorder the same smart plugs.</p><p class="">The biggest pain point across all the hardware was that there was no elegant (or consistent) way to <em>do anything </em>with the power monitoring data. It was largely designed to do spot-checking of power consumption rather than long term monitoring. Even with that in mind, there was no way to get an Android desktop widget to be able to display this data at a glance, so you truly had to go into the app, connect to each smart plug and check them one at a time.</p>


  






  



<hr />
  
  <p class="">Compared to mechanical timers, I accepted that I was trading a bit of that bulletproof reliability for fancy IoT features and I was okay with that. I was however, a bit surprised at how many smart plugs failed over time (with no readily identifiable failure patterns). Of the almost 50 smart plugs I had in rotation, 25% of them were substantially defective enough that I ended up recycling them. </p><p class="">Anecdotally, only two seemed to have a failure in the the electrical relay whereas the rest seemed to have issues just on the software side - the thought that the companies were soft-killing their switches to ‘encourage’ additional sales of new products <em>did</em> cross my mind. Sometimes, you could rescue a smart device by doing a hard reset and re-initialize it, but as the number of misbehaving devices tallied up, I started to make plans for my second go at this. </p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="phase2">Phase 2: KASA</h3>
  


  
  <p class="">For my second go around (~2023) , I had a better picture of what I wanted from my IoT devices:</p><ul data-rte-list="default"><li><p class=""><strong>Hardware</strong></p><ul data-rte-list="default"><li><p class="">I was done with surprise-feature sets - I no longer wanted to deal with differing features for the same devices</p></li><li><p class="">I wanted to be able to reliably buy replacement/additional parts as needed</p></li></ul></li><li><p class=""><strong>App/UX</strong></p><ul data-rte-list="default"><li><p class="">I wanted a much more modern UX for the app with high scores for usability (subjective)</p></li><li><p class="">I wanted an app/ecosystem that was big enough that I was no longer bouncing between multiple apps to manage my devices</p></li><li><p class="">Ultimately, I wanted to make a move to <a href="https://www.home-assistant.io/" target="_blank">Home Assistant</a> as my home-automation platform</p></li></ul></li><li><p class=""><strong>Power Monitoring</strong></p><ul data-rte-list="default"><li><p class="">I wanted a convenient way to export my data for analysis if needed</p></li><li><p class="">In addition to instantaneous power draw (W), I wanted to be able to tally power consumption over time (kWh)</p></li><li><p class="">Bonus points if there was a [basic] way for me to build <em>pricing</em> into the monitoring</p></li><li><p class="">Bonus points if there was a way I could have an Android widget to have quick monitoring</p></li></ul></li><li><p class=""><strong>Forward compatibility</strong></p><ul data-rte-list="default"><li><p class="">Where available, the devices must support/implement <a href="https://csa-iot.org/all-solutions/matter/" target="_blank">Matter</a> in some way and</p></li></ul></li></ul><p class="">Despite knowing that my long-term plan was to transition to Home Assistant, I still put a lot of emphasis on the native app-experience because it was going to be some time before I even started my Home Assistant deployment let alone get my system anywhere close to ‘final form’ and until that time, my primary means of interacting with the IoT devices was going to be via the native app. Even after getting a Home Assistant deployment “finished”, I suspect for “one off” interactions with smart plugs etc. will be quicker to do with the native app.</p>


  






  



<hr />
  
  <p class="">I ultimately settled on TP-Link’s <a href="https://www.kasasmart.com/us/products" target="_blank">KASA</a> as my platform of choice, specifically starting with the <a href="https://amzn.to/4tFnGM3" target="_blank">KP125M Smart Plug</a>. </p><p class="">Compared to the SmartLife experience, KASA was a breath of fresh air:</p><ul data-rte-list="default"><li><p class="">Device initialization and setup was quite painless; you could even do soft-resets easily and without losing any customizations you already setup</p></li><li><p class="">The app experience was snappy and modern</p></li></ul><p class="">Even if I didn’t want to go down the Home Assistant route, the KASA UX is something I could definitely live with — and I did, for a few years. So, every time the KASA plugs went on sale, I bought a bunch and slowly replaced my SmartLife plugs. At the tail end of 2025, I had finally decommissioned all my remaining SmartLife plugs and only had a small handful of ancillary SmartLife devices left to migrate. </p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dd56a173-578f-4d40-ae0e-6636992c40a2/Phase2.jpg" data-image-dimensions="1606x967" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dd56a173-578f-4d40-ae0e-6636992c40a2/Phase2.jpg?format=1000w" width="1606" height="967" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dd56a173-578f-4d40-ae0e-6636992c40a2/Phase2.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dd56a173-578f-4d40-ae0e-6636992c40a2/Phase2.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dd56a173-578f-4d40-ae0e-6636992c40a2/Phase2.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dd56a173-578f-4d40-ae0e-6636992c40a2/Phase2.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dd56a173-578f-4d40-ae0e-6636992c40a2/Phase2.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dd56a173-578f-4d40-ae0e-6636992c40a2/Phase2.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dd56a173-578f-4d40-ae0e-6636992c40a2/Phase2.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">By the end of 2025, I had transitioned away from SmartLife (almost!)</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">I had just a handful of devices that required the SmartLife (or other) app:</p><ul data-rte-list="default"><li><p class="">SmartLife</p><ul data-rte-list="default"><li><p class="">Door contact sensor (super reliable)</p></li><li><p class="">Plug-in leak-sensor (super <em>un</em>reliable)</p></li><li><p class="">A switch for an outdoor outlet</p></li><li><p class="">The RGB strips that I started with all those years ago - still connected to the bed!</p></li><li><p class="">I had a couple other RGB strips that I stuck on my <a href="https://www.minmaxgeek.com/blog/leveled-floor">Leveled Floor</a> to reduce toe-stubbing at night</p></li></ul></li><li><p class="">Other</p><ul data-rte-list="default"><li><p class="">An outdoor Govee Hygrometer</p></li><li><p class="">An Inkbird thermostat controller for my indoor <a href="https://www.minmaxgeek.com/blog/grow-station#appendix-1">Grow Station</a></p></li></ul></li></ul><p class="">There were some other miscellaneous RGB strips that I had configured as static colors and have no intention of interacting with again, so I’ve left them off this. My migration away from SmartLife was largely complete.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="phase3">Phase 3: Home Assistant</h3>
  


  
  <p class="">Over this year end break, I finally bit the bullet and deployed a <a href="https://csa-iot.org/all-solutions/zigbee/" target="_blank">Zigbee</a> network; after doing some initial validation, I was able to move some of my KASA plugs around for better usability targeting. From a power-monitoring and Home Assistant perspective, both my KASA and Zigbee smart plugs were mostly equivalent, but the direct usability of the KASA app lends itself better to some situations where I might need to ‘quickly set a schedule’ or ‘manually turn on/off a plug’.</p><p class="">The overarching ethos was to reserve the KASA plugs for when scenarios where I might want to directly interact with a plug and leverage Zigbee for when I just wanted quiet data collection or automation that could be driven by Home Assistant. As an hypothetical example, consider something like this where I have a combination of KASA and Zigbee devices nested together.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/318e7aec-5e7c-4230-8c46-b673173ed077/Example.jpg" data-image-dimensions="2500x940" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/318e7aec-5e7c-4230-8c46-b673173ed077/Example.jpg?format=1000w" width="2500" height="940" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/318e7aec-5e7c-4230-8c46-b673173ed077/Example.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/318e7aec-5e7c-4230-8c46-b673173ed077/Example.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/318e7aec-5e7c-4230-8c46-b673173ed077/Example.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/318e7aec-5e7c-4230-8c46-b673173ed077/Example.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/318e7aec-5e7c-4230-8c46-b673173ed077/Example.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/318e7aec-5e7c-4230-8c46-b673173ed077/Example.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/318e7aec-5e7c-4230-8c46-b673173ed077/Example.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">A hypothetical scenario where I might have KASA and Zigbee plugs nested together</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">One limitation of KASA (and traditional WiFi based devices) is the lack of <em>sensors</em>. The reason is largely because WiFi just chews up so much power that it is untenable to apply for devices that need to constantly report a state. Being a low-power protocol, Zigbee is well suited to filling that gap and now that I’m finally getting around to using my Home Assistant setup, I can start to introduce additional sensors into my house.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/00dd7e29-fd9f-4861-bb73-86317a8f3e3e/Phase3.jpg" data-image-dimensions="1601x970" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/00dd7e29-fd9f-4861-bb73-86317a8f3e3e/Phase3.jpg?format=1000w" width="1601" height="970" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/00dd7e29-fd9f-4861-bb73-86317a8f3e3e/Phase3.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/00dd7e29-fd9f-4861-bb73-86317a8f3e3e/Phase3.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/00dd7e29-fd9f-4861-bb73-86317a8f3e3e/Phase3.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/00dd7e29-fd9f-4861-bb73-86317a8f3e3e/Phase3.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/00dd7e29-fd9f-4861-bb73-86317a8f3e3e/Phase3.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/00dd7e29-fd9f-4861-bb73-86317a8f3e3e/Phase3.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/00dd7e29-fd9f-4861-bb73-86317a8f3e3e/Phase3.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Quick snapshot (Feb 2026). We can see the rapid spike in Zigbee devices.</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">One valid question is why I’m bothering with Zigbee smart plugs when I’m quite happy with KASA ones. This is for three reasons:</p><ol data-rte-list="default"><li><p class="">Zigbee is a mesh protocol and non-battery devices (like bulbs and smart plugs) contribute to the resiliency of that mesh network - so the more of them I deploy, the better my Zigbee connectivity will be for battery devices</p></li><li><p class="">Cost effectiveness. KASA Matter plugs, after taxes, come out to just under $16 each while my Zigbee plugs come out to $12.50 each.</p></li><li><p class="">As mentioned before, the KASA UX is pretty great, so having some Zigbee plugs, where it might (currently) be more of a burden to directly interact with, allows me to redeploy my KASA plugs to devices where I might want to directly interact with more</p></li></ol><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="zigbee">Actual Zigbee deployment</h3>
  


  
  <p class="">At this point in time, my Home Assistant is run off a dedicated Raspberry Pi 5; I have future plans to move this to x86 for the horsepower jump, but I’m still playing around for now. With that in mind, I specifically wanted an IP-based Zigbee coordinator to avoid having to deal with migrating a USB-based one down the road. I settled on the <a href="https://smlight.tech/manual/slzb-06/guide/slzb-models-overview/#slzb-mr-models" target="_blank">SMLite SLZB-06MR series</a> and specifically got the <a href="https://smlight.tech/global/slzbmr3" target="_blank">SLZB-06MR3</a></p><blockquote><p class="sqsrte-large">Fun Story</p><p class="">I actually ordered the SLZB-06MR2 but I received the SLZB-06MR3 (<a href="https://amzn.to/4kEC0Ah" target="_blank">this</a> was where I got mine). I’m not complaining. :)</p></blockquote>


  






  



<hr />
  
  <p class="">I got lucky in that we have a water line for the fridge — and there is a super convenient hole in the wall for me to access the stud bay and drill down into the basement where I can run my ethernet down to the network cart.</p>


  






  






  

  



  
    
      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258802495-F2YJU6EC2H3AWH2QRX73/DPN06101.jpg" data-image-dimensions="2500x2048" data-image-focal-point="0.5,0.5" alt="Convenient water line" data-load="false" data-image-id="699343b22b2de675ee52b9e5" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258802495-F2YJU6EC2H3AWH2QRX73/DPN06101.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Convenient water line
                      <p data-rte-preserve-empty="true">This gives me direct access into the basement drop-ceiling</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258896370-1J29O35II7J6JNYCMDI7/DPN06074.jpg" data-image-dimensions="2500x1673" data-image-focal-point="0.5,0.5" alt="3/4&quot; Hole" data-load="false" data-image-id="69934410ea7fc001a87462c4" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258896370-1J29O35II7J6JNYCMDI7/DPN06074.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      3/4" Hole
                      <p data-rte-preserve-empty="true">Easy access into the basement</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258803137-HON6MZQF4S6GICA5Z47I/DPN06102.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="Command hook" data-load="false" data-image-id="699343b3841102069bc4ccb3" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258803137-HON6MZQF4S6GICA5Z47I/DPN06102.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Command hook
                      <p data-rte-preserve-empty="true">A quick command hook keeps the ethernet cable out of the way and deflects the slack so the cable is tidy</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258799182-O54QIA56VGFVVK5G5ZRC/DPN06076.jpg" data-image-dimensions="2500x1553" data-image-focal-point="0.5,0.5" alt="Hiding above the fridge" data-load="false" data-image-id="699343affdb8373ee69bcaf5" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258799182-O54QIA56VGFVVK5G5ZRC/DPN06076.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Hiding above the fridge
                      <p data-rte-preserve-empty="true">There’s plenty of space up there to place the coordinator</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258800158-TV3QSK6D2EKCGZVHH4OL/DPN06077.jpg" data-image-dimensions="2500x1972" data-image-focal-point="0.5,0.5" alt="Plenty of line" data-load="false" data-image-id="699343b09ee0330e738221f4" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258800158-TV3QSK6D2EKCGZVHH4OL/DPN06077.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Plenty of line
                      <p data-rte-preserve-empty="true">I left enough slack in the line that I could bring the coordinator down for troubleshooting/replacement purposes if needed.</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258800363-6S6GP9N9DUIRPYOL98GB/DPN06078.jpg" data-image-dimensions="2500x1769" data-image-focal-point="0.5,0.5" alt="Quick scrap jig" data-load="false" data-image-id="699343b04aa55d2e7cc012b4" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258800363-6S6GP9N9DUIRPYOL98GB/DPN06078.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Quick scrap jig
                      <p data-rte-preserve-empty="true">Just a couple pieces of scrap and a hook</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258801137-06ZJ7KX1XWWMU2AIDHAK/DPN06079.jpg" data-image-dimensions="2500x1358" data-image-focal-point="0.5,0.5" alt="Neat and tidy" data-load="false" data-image-id="699343b1c7f3360691dfed43" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258801137-06ZJ7KX1XWWMU2AIDHAK/DPN06079.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Neat and tidy
                      <p data-rte-preserve-empty="true">The wire holding jig manages the tension and spring force in the ethernet wire.</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258799070-F5F98V14GJ5PU32L9B0R/DPN06103.jpg" data-image-dimensions="2500x1745" data-image-focal-point="0.5,0.5" alt="Barely know it's there" data-load="false" data-image-id="699343ae36c5102dc6a3bf5d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1771258799070-F5F98V14GJ5PU32L9B0R/DPN06103.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Barely know it's there
                      <p data-rte-preserve-empty="true">I can push it further back so you don’t see it at all, but I like being able to see it just barely as a reminder that it’s there.</p>
                    
                  
                
              
              
            
          
          
        

        

        

      
    
  

  
    
    
    
      
      
        
          <a tabindex="0" role="button" class="previous" aria-label="Previous Slide"
          ></a>
          <a tabindex="0" role="button" class="next" aria-label="Next Slide"
          ></a>
        
      
    
    
     
  




  

    
      
          

        

        
      
          

        

        
      
          

        

        
      
          

        

        
      
          

        

        
      
          

        

        
      
          

        

        
      
          

        

        
      
    

  






  
  <p class="">Since I already have my own MQTT server, it was a no-brainer to connect my coordinator via <a href="https://www.zigbee2mqtt.io/" target="_blank">Zigbee2MQTT</a>. Everything just worked the first time.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="milestone">Milestone</h3>
  


  
    
  
  <p class="">To me, home automation has always been a game of interconnected building blocks: to do &lt;something&gt; when &lt;some condition&gt; has been met etc. By leveraging Home Assistant and manufacturer-agnostic (and sometimes platform-agnostic) systems like Matter and Zigbee[2MQTT] I can start to finally get creative with my automations. Without the core infrastructure to connect the basic building blocks and test things out, I find it really hard to come up with things to automate, so I’m grateful that getting all of this spun up was super painless.</p><p class="">Before I close off, I think it’s worth addressing a really important question: <span data-text-attribute-id="a3235793-93fb-4f8d-92ee-3df1a98125b9" class="sqsrte-text-highlight"><em>why</em>? </span></p><ul data-rte-list="default"><li><p class=""><strong>Why go through so much effort to try and spin up automations?</strong> This is a fun question because the real question being asked is “what kind of automations are you making? [that you can’t use something easy like Google Home]”. The answer is fun because ultimately it requires thinking outside of the box [provided by things like Google Home] and when you go outside of that box, I find that the limiting factor is what inputs you have access to — it’s very difficult to imagine reacting to something if you don’t know <em>what</em> or <em>how </em>you can react to something. For some tangible examples:</p><ul data-rte-list="default"><li><p class="">Turn on the lights, speakers and accessories at my desk while I’m sitting there and to turn them off when I’m gone</p></li><li><p class="">When someone comes to the door, flash status lights (in various places around the house) to [silently] indicate that someone is at the door (handy if you’re on a remote call)</p></li><li><p class="">When my HTPC spins up, detect the power spike and turn on my powered subwoofer, power on the receiver, switch to the corresponding input and send an IR signal to the TV to turn it on (because, for some reason HDMI CEC doesn’t work for my combination in that scenario); do the reverse when the HTPC powers down</p></li><li><p class="">I have two heaters in a room (on a single circuit): when one heater powers up, the other powers down and vice versa</p></li><li><p class="">If it’s dark outside and the curtains are open, close the curtains</p></li><li><p class="">Water my plants, but only if they need it</p></li></ul><p class="">It’s also important to consider that platforms like Google Home require cloud connectivity — they won’t work during Internet/power disruptions and without getting into the privacy angle, they are reliant on those providers continuing to allow access to their systems without changes to the terms of service, addition of paywalls etc.</p></li></ul><ul data-rte-list="default"><li><p class=""><strong>The actions you are automating are so simple, does it really kill you to do it manually? Why does it need to be automated?</strong> The simple answer is they <em>don’t</em> need to be automated and I <em>won’t</em> die if I have to do things manually but that’s not my bar — if the task truly is easy and mundane, why I am I doing it in the first place?</p></li><li><p class=""><strong>All of this seems really complicated, why does it have to be so hard? Can’t we do something similar, but without the complexity!</strong> I talked about leveraging super reliable motion triggers in a <a href="https://www.minmaxgeek.com/blog/smart-home">previous post</a> — and for my setup, I intend to continue using them</p></li></ul><p class="">Yes, a lot of this can be construed as a solution in search of a problem, but I didn’t call it a rabbit hole for nothing…</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/png" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770866476739-TVM6KELWUT5GICPC7LWP/Automation-Alley-Logo_s.png?format=1500w" medium="image" isDefault="true" width="451" height="279"><media:title type="plain">Automation Alley (2026.1) - Another Rabbit Hole</media:title></media:content></item><item><title>Upgrading my Networking Gear (2026.1)</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Tue, 03 Feb 2026 12:45:05 +0000</pubDate><link>https://www.minmaxgeek.com/blog/networking-upgrade-2026-1</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:6980d491733d7021cd81f2e9</guid><description><![CDATA[I finally bite the bullet and migrate my remaining unmanaged network gear 
to managed networking gear. I also used the ‘opportunity’ (of taking the 
network stack apart) to do some maintenance and tidying all around.]]></description><content:encoded><![CDATA[<p class="">Over the winter break, I finally bit the bullet and migrated my remaining unmanaged network gear to managed gear. I took this as an opportunity to do some tidying and optimization of the network stack: doing physical tasks (i.e., swapping out network cables) and also management ones (i.e., finally getting my device auditing done). These upgrades (and downstream benefits) will set things up for some future plans I have.</p>


  






  



<hr />&nbsp;
  
  <p class="sqsrte-large">Networking Series</p><p class="">This post is part of a series, check out the other posts!</p>


  






  



<hr />&nbsp;
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#starting-point">Starting point</a></p></li><li><p class=""><a href="#decisions" target="_blank">Deciding on a switch</a></p></li><li><p class=""><a href="#newswitch" target="">New switch!</a></p></li><li><p class=""><a href="#installation" target="_blank">Re-racking</a></p></li><li><p class=""><a href="#additions" target="_blank">Additions to the rack</a></p></li><li><p class=""><a href="#network-management" target="_blank">Leveraging my managed switch</a></p></li><li><p class=""><a href="#future">Looking ahead</a></p></li></ul>


  






  



<hr />
  
    <h3 id="starting-point">Starting point</h3>
  


  
  <p class="">Early on in my network journey, I made a very deliberate choice <em>not</em> to use a POE switch and instead, explicitly went with <a href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-2#thoughts-3">POE injectors</a> to handle my access points. The huge selling point was that it was dead simple to forcibly reboot an access point if it was acting up — you’d just have to flip a power switch. This actually came in handy when my original outdoor AP was acting up and Nicole was able to just power cycle it - no having to fiddle around with management portals, the entire process was under 5 seconds: locate the appropriate switch and hit it.</p><p class="">Since then, some things have changed:</p><ul data-rte-list="default"><li><p class="">My replacement AP has been quite stable; this removes my requirement for quick-and-easy power-cycling</p></li><li><p class="">I wanted to start scheduling some of my APs to only be active during certain hours: I <em>probably </em>don’t need full-house Wi-Fi saturation at 0500h…</p></li><li><p class="">I wanted to migrate my two remaining unmanaged switches to managed ones</p></li></ul><p class="">As something that has been bugging me for a few years now, I would use this opportunity to swap out all of the front-to-back cables (primarily, ethernet but HDMI and USB as well) from 2ft to 3ft. The extra slack would better allow me to do live-servicing of the cart.</p><p class="">I had a few other punch list items I wanted to do (or have done and I’m just getting around to writing about it)…</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="decisions">Deciding on a switch</h3>
  


  
  <p class="">In my network stack, I had two unmanaged switches that I was hoping to consolidate. I knew that no matter what, I needed to get a 1G POE switch to handle the IP cams and APs so that was supposed to be the easy part. What I was trying to avoid, was sinking money into a big, expensive, 10G switch…</p><p class="">Luckily, I had <em>just enough </em>ports on my SX3008F that I can kick that can down the road a little bit longer: right now I only need three 10G ports (1xNAS, 2xPC) but I imagine in the future, that will expand to a second 10G-capable NAS. After that, I’ll need to either pony up, or get creative. But that is a problem for future me :)</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3f2bcadb-94f9-40c3-9d79-1728a4bd7cd4/Before.jpg" data-image-dimensions="2201x1220" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3f2bcadb-94f9-40c3-9d79-1728a4bd7cd4/Before.jpg?format=1000w" width="2201" height="1220" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3f2bcadb-94f9-40c3-9d79-1728a4bd7cd4/Before.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3f2bcadb-94f9-40c3-9d79-1728a4bd7cd4/Before.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3f2bcadb-94f9-40c3-9d79-1728a4bd7cd4/Before.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3f2bcadb-94f9-40c3-9d79-1728a4bd7cd4/Before.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3f2bcadb-94f9-40c3-9d79-1728a4bd7cd4/Before.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3f2bcadb-94f9-40c3-9d79-1728a4bd7cd4/Before.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3f2bcadb-94f9-40c3-9d79-1728a4bd7cd4/Before.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">The two unmanaged switches I was hoping to consolidate…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">In searching for a 1G POE switch, I had a passing thought that perhaps I could find a switch where I could just do an in-place swap of my existing 24-port 1G switch. This would have the benefit of not ‘using up’ my precious few 10G SFP+ ports. After setting my criteria, the options were a bit depressing:</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6f93a180-0821-4ff3-a26a-2846831d3ed7/Options.jpg" data-image-dimensions="1737x535" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6f93a180-0821-4ff3-a26a-2846831d3ed7/Options.jpg?format=1000w" width="1737" height="535" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6f93a180-0821-4ff3-a26a-2846831d3ed7/Options.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6f93a180-0821-4ff3-a26a-2846831d3ed7/Options.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6f93a180-0821-4ff3-a26a-2846831d3ed7/Options.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6f93a180-0821-4ff3-a26a-2846831d3ed7/Options.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6f93a180-0821-4ff3-a26a-2846831d3ed7/Options.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6f93a180-0821-4ff3-a26a-2846831d3ed7/Options.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6f93a180-0821-4ff3-a26a-2846831d3ed7/Options.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Definitely not affordable switch options…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">The 52-port switches were easier to rule out: the SG3452XP was more money than I wanted to spend and for the SG2452LP, I <em>really</em> didn’t want to drop down to 1G. This left the two 28-port switches: was it better to have fan-less or an additional 8xPOE ports? It wasn’t clear if the ‘full-fat’ switch had a well-defined power-threshold where the fans would cut-off or not - that would have swayed my decision process. With the uncertainty, I went to the truly fan-less option - one less thing to fail over time.</p><blockquote><p class="sqsrte-large">If I had a time machine…</p><p class="">While I don’t regret my original 1G switch purchase, in hindsight, I probably should have went with the SG3452XP right off the hop as I ultimately spent ~$750 between my original 1G switch and now this 1G POE switch. I’m sure it’s not an uncommon reaction, but I <em>really</em> didn’t think I would come close to exhausting the number of available ports!</p></blockquote><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="newswitch">New switch!</h3>
  


  
  <p class="">With the decision made, I can consolidate my two unmanaged switches and this still leaves me with a scant <em>three</em> remaining POE ports. For the time being, I can’t think of anything I would want to power with POE - famous last words! I <em>had</em> previously considered racking up Raspberry Pi’s and running them via POE, but I don’t think I’ll really go down that road. Time will tell if I come back in a few years with a follow up on this ha.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8885c1f4-7e5d-4f75-812a-b60aed9bd24e/After.jpg" data-image-dimensions="1771x681" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8885c1f4-7e5d-4f75-812a-b60aed9bd24e/After.jpg?format=1000w" width="1771" height="681" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8885c1f4-7e5d-4f75-812a-b60aed9bd24e/After.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8885c1f4-7e5d-4f75-812a-b60aed9bd24e/After.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8885c1f4-7e5d-4f75-812a-b60aed9bd24e/After.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8885c1f4-7e5d-4f75-812a-b60aed9bd24e/After.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8885c1f4-7e5d-4f75-812a-b60aed9bd24e/After.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8885c1f4-7e5d-4f75-812a-b60aed9bd24e/After.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8885c1f4-7e5d-4f75-812a-b60aed9bd24e/After.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Consolidating my two unmanaged switches…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="installation">Re-racking</h3>
  


  
  <p class="">Popping in a new switch is pretty straightforward: I did a quick test and firmware update when switch arrived but I needed to wait for the winter time off to perform the actual install as there were some additional punch-list tasks I wanted to do:</p><ul data-rte-list="default"><li><p class="">Swap the 2ft ethernet/HDMI/USB cables running front-to-back with 3ft ones — the extra reach allows me to completely pull out the patch panel from the rack</p></li><li><p class="">For the 8 devices I was now powering via POE, I wanted to switch to full-thickness ethernet </p></li><li><p class="">Since I was eliminating the POE injectors from the equation, I no longer needed one of the PDUs</p></li><li><p class="">Install emergency lighting</p></li><li><p class="">Install an exhaust fan</p></li></ul><blockquote><p class="sqsrte-large">Why on earth do I need to be able to pull the patch panel out?</p><p class="">Not all of the slots on the patch panel are ethernet — some are USB and HDMI and allow me to connect to the Raspberry Pi units and the USB ports on my NAS through the front of the rack. While swapping out ethernet keystones for USB/HDMI <span><em>can</em></span><em> </em>be done without pulling the panel out entirely, it’s so much easier when I can directly access the entire back side of the port.</p><p class="">I’ve also run into a few scenarios where the keystone itself was popping loose (falling backwards, into the network rack) so being able to easily get to the back side to replace/fix this is so much nicer than trying to work <em>through </em>the panel.</p></blockquote>


  






  






  

  



  
    
      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121619437-RS9WOQZQG0MNZCSAG7YE/IMG20251224162354.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Popping cables!" data-load="false" data-image-id="6981e9924e195e724a105bde" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121619437-RS9WOQZQG0MNZCSAG7YE/IMG20251224162354.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Popping cables!
                      <p data-rte-preserve-empty="true">Every cable is labelled to indicate which port on the patch panel it belongs to, so it’s easy to just leave the cable plugged into the device and disconnect the patch-panel side.</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121621390-63U7D4X3S3Q218CCKJ01/IMG20251224163807.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Just plopped" data-load="false" data-image-id="6981e994c8bb6f512653c9b6" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121621390-63U7D4X3S3Q218CCKJ01/IMG20251224163807.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Just plopped
                      <p data-rte-preserve-empty="true">Setting things aside while I focus on the rack first</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121613603-9984AXSYZ6CQDPCE27PK/IMG20251224165012.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Cord Dotz" data-load="false" data-image-id="6981e98d40db7e2bb45200a3" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121613603-9984AXSYZ6CQDPCE27PK/IMG20251224165012.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Cord Dotz
                      <p data-rte-preserve-empty="true">A better angle of the labels indicating where exactly the cable needs to be plugged into</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121620907-OJD0GFJ0CNUQZA5WQCVM/IMG20251224163802.jpg" data-image-dimensions="2500x3324" data-image-focal-point="0.5,0.5" alt="What remains" data-load="false" data-image-id="6981e994c32f550a9196bea9" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121620907-OJD0GFJ0CNUQZA5WQCVM/IMG20251224163802.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      What remains
                      <p data-rte-preserve-empty="true">Now we’re down to the 2ft front-to-back connections.</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121614283-NOBA6JFEEYHOICY3UJNT/IMG20251224192238.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Swapped for 3ft" data-load="false" data-image-id="6981e98d00e843417f92cb1a" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121614283-NOBA6JFEEYHOICY3UJNT/IMG20251224192238.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Swapped for 3ft
                      <p data-rte-preserve-empty="true">For the non-POE connections, I stayed with thin cables as they are nicer to bundle up. For the [active] POE connectors, I went with regular ethernet wires.</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121615629-RXEI1KQ8SVZP06FMWYIG/IMG20251224195133.jpg" data-image-dimensions="2500x3324" data-image-focal-point="0.5,0.5" alt="Re-racking" data-load="false" data-image-id="6981e98ef8bc8d7cc89b02b7" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121615629-RXEI1KQ8SVZP06FMWYIG/IMG20251224195133.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Re-racking
                      <p data-rte-preserve-empty="true">Here I was testing out having all of the network devices stacked in a series. It <em>works</em>, but it’s not as neat as I’d like it.</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121616792-6PIET88U150T9EUMD4X1/IMG20251224201223.jpg" data-image-dimensions="2500x3324" data-image-focal-point="0.5,0.5" alt="Splitting the POE rack" data-load="false" data-image-id="6981e98f512cd91ca60c14ee" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121616792-6PIET88U150T9EUMD4X1/IMG20251224201223.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Splitting the POE rack
                      <p data-rte-preserve-empty="true">It was neater to have the new POE switch separated by the patch panel.</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121617285-F7KZ20LL24RGEPF5QS35/IMG20251224201230.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Front side done, time for the back" data-load="false" data-image-id="6981e990056e1302cda2dccc" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121617285-F7KZ20LL24RGEPF5QS35/IMG20251224201230.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Front side done, time for the back
                      <p data-rte-preserve-empty="true">This is pretty easy - every cable is explicitly marked with where i needs to go.</p>
                    
                  
                
              
              
            
          
          
        

        

        

      

        
          
            
              
                <img class="thumb-image" elementtiming="system-gallery-block-slideshow" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121619031-76FKNFFNTUGD6NLVKZMD/IMG20251225115738.jpg" data-image-dimensions="2500x3324" data-image-focal-point="0.5,0.5" alt="Tidied up a bit" data-load="false" data-image-id="6981e9913044f7470f455ca3" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770121619031-76FKNFFNTUGD6NLVKZMD/IMG20251225115738.jpg?format=1000w" /><br>
              

              
                
                  
                  
                    
                      Tidied up a bit
                      <p data-rte-preserve-empty="true">Good enough for now</p>
                    
                  
                
              
              
            
          
          
        

        

        

      
    
  

  
    
    
    
      
      
        
          <a tabindex="0" role="button" class="previous" aria-label="Previous Slide"
          ></a>
          <a tabindex="0" role="button" class="next" aria-label="Next Slide"
          ></a>
        
      
    
    
     
  




  

    
      
          

        

        
      
          

        

        
      
          

        

        
      
          

        

        
      
          

        

        
      
          

        

        
      
          

        

        
      
          

        

        
      
          

        

        
      
    

  






  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="additions">Additions to the rack</h3>
  


  
  <p class="sqsrte-large">Emergency lighting</p><p class="">Previously, I talked about configuring my network for <a href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-4" target="_blank">Endurance Mode</a> — to be able to provide some degree of uptime during extended power outages. Currently, I have a manual process where I need to move the UPS from the wall to my EGO Power Station - a process that is made annoying by the fact that during a power outage, I’m working <em>in the dark</em>. Flashlights are no stranger in my house but it would be so much neater if I could just have an <a href="https://amzn.to/4buiPXB" target="_blank">emergency light</a>…</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6981f07ba522f70339a3ae2d-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770123387347-EINFKYETECMIO142GFR4/DPN06086.jpg" data-image-dimensions="2500x1815" data-image-focal-point="0.5,0.5" alt="Emergency Light" data-load="false" data-image-id="6981f07ba522f70339a3ae2d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770123387347-EINFKYETECMIO142GFR4/DPN06086.jpg?format=1000w" /><br>
                </a>
                
                  Emergency Light
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6981f07a3044f7470f468fd4-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770123386274-UBU52NTLQ2NBCSR2JRIE/DPN06088.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="But UPS..." data-load="false" data-image-id="6981f07a3044f7470f468fd4" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770123386274-UBU52NTLQ2NBCSR2JRIE/DPN06088.jpg?format=1000w" /><br>
                </a>
                
                  But UPS...
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6981f079303a834139e86543-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770123386055-NJYW4FP7GONBXPFSVOJD/DPN06087.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="Plenty of light" data-load="false" data-image-id="6981f079303a834139e86543" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770123386055-NJYW4FP7GONBXPFSVOJD/DPN06087.jpg?format=1000w" /><br>
                </a>
                
                  Plenty of light
                
              
            
          

          
        

      
    
  

  











  
  <p class="">So one gotcha is that the entire network cart is powered by a UPS which means the emergency light won’t come on until the UPS dies — which is too late. I have a few options:</p><ol data-rte-list="default"><li><p class="">Directly connect the emergency light to the wall. This would work, but for sheer simplicity (during a power outage) I specifically only wanted a single power cable going to the wall</p></li><li><p class="">I could connect the the light to a different outlet on the UPS which isn’t supported by the battery. This also would work, but [for now] I have two UPS units and it’s one more cable to have [to remember] to transfer over between UPS units</p></li><li><p class="">I could put the light on a switch and during a power outage, I can just turn the switch off</p></li></ol><p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">Network exhaust</p><p class="">I don’t think my network cart runs hot, but it’s a problem I’d rather not find out if I can help it. I’m a huge fan of the <a href="https://amzn.to/4qkqRWP" target="_blank">Noctua 200mm USB fan</a> for these types of applications. I opted to put a <a href="https://amzn.to/4byHham" target="_blank">fan grill</a> on each side of the fan to minimize the chances of accidentally chopping a wire or whatnot. In order to quickly disconnect the fan, I use an <a href="https://amzn.to/3LM8Wdu" target="_blank">inline kill switch</a>.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6981f3d984f8232927c7c4af-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770124250286-X7I1APZSHHNGUVG924BQ/IMG20240505165857.jpg" data-image-dimensions="2500x1643" data-image-focal-point="0.5,0.5" alt="Cutting a hole" data-load="false" data-image-id="6981f3d984f8232927c7c4af" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770124250286-X7I1APZSHHNGUVG924BQ/IMG20240505165857.jpg?format=1000w" /><br>
                </a>
                
                  Cutting a hole
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6981f3db6361dd272aef3c81-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770124251477-PHR1Y45J7OKJ28XS3BTU/IMG20240505180750.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="Installed" data-load="false" data-image-id="6981f3db6361dd272aef3c81" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770124251477-PHR1Y45J7OKJ28XS3BTU/IMG20240505180750.jpg?format=1000w" /><br>
                </a>
                
                  Installed
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6981f3dafadf217bebbc5f75-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770124250544-3IUZMF90SQ6ATRHA01QP/DPN06089.jpg" data-image-dimensions="2500x1654" data-image-focal-point="0.5,0.5" alt="Wired in" data-load="false" data-image-id="6981f3dafadf217bebbc5f75" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1770124250544-3IUZMF90SQ6ATRHA01QP/DPN06089.jpg?format=1000w" /><br>
                </a>
                
                  Wired in
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="network-management">Leveraging my managed switch</h3>
  


  
  <p class="">So now that I went ahead with all that work to transition to an entirely managed network stack, I spent some time tinkering with it. Obviously, everyone’s setup (and their needs) will be a bit different, but I finally got around to getting </p><ul data-rte-list="default"><li><p class="">Firmware update on my Endurance Mode travel router</p></li><li><p class="">Getting my VPN working again</p></li><li><p class="">Configured my POE switch to schedule downtime for some of my access points</p></li><li><p class="">Consolidate a couple IoT SSIDs, I used this as an opportunity</p></li></ul><p class="">By far the most tedious (and rewarding) task was to update my documentation on every single device on the network. Previously, I had poked around with using something like <a href="https://phpipam.net/" target="_blank">phpIPAM</a> but I found it to be a bit too cumbersome for my needs. I ended up just going with a simple spreadsheet</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/59f2577b-5ec4-4779-afa8-b8622393099e/IPs.jpg" data-image-dimensions="2658x399" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/59f2577b-5ec4-4779-afa8-b8622393099e/IPs.jpg?format=1000w" width="2658" height="399" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/59f2577b-5ec4-4779-afa8-b8622393099e/IPs.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/59f2577b-5ec4-4779-afa8-b8622393099e/IPs.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/59f2577b-5ec4-4779-afa8-b8622393099e/IPs.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/59f2577b-5ec4-4779-afa8-b8622393099e/IPs.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/59f2577b-5ec4-4779-afa8-b8622393099e/IPs.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/59f2577b-5ec4-4779-afa8-b8622393099e/IPs.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/59f2577b-5ec4-4779-afa8-b8622393099e/IPs.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Organizing IPs with a spreadsheet</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">I specifically itemize the MAC address using dashes and colons because it makes doing a lookup of the MAC address a bit easier when I’m just given an arbitrary value to search for. Using the formula <code><strong>=SUBSTITUTE(C1,"-",":")</strong> </code>makes it so you don’t need to enter the value twice. If you have more VLANs, simply clone the set of columns for each VLAN. A great benefit is that <em>all</em> of your devices are shown on a single view, without having to bounce back and forth between tabs.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="future">Looking ahead</h3>
  


  
  <p class="">I recently started poking around with <a href="https://www.minmaxgeek.com/blog/solar-office-2025-1">solar power</a> and toying with the idea of trying to peak-shave part (or all!) of my office electrical draw. Tying into Endurance Mode and from a resiliency angle, I think I’m going to go down the road of building a power station into the network cart.</p><p class="">This would allow me to handle most extended power outages and/or peak-shave the network cart. Depending on the size of the battery reserve there is a corner case where an extended power outage begins at the tail end of peak-shaving (i.e., the battery may be nearing depletion). Being able to set a reserve battery amount and/or supplementing with solar can be a way to reduce this risk window, but this is an adventure for #future-me. :)</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />&nbsp;










































  

    

      <figure data-test="image-block-v2-outer-wrapper" data-sqsp-image-classic-block-layout="card" class="
            sqs-block-image-figure
            image-block-outer-wrapper
            image-block-v2
            design-layout-card
            combination-animation-site-default
            individual-animation-site-default
            individual-text-animation-site-default
            image-position-left
            image-linked
          " data-scrolled
      >

        
          
            
            
              
              
              
              
              
              
              
              <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png" data-image-dimensions="1500x806" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=1000w" width="1500" height="806" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

              
            
          
            
          

        

        
          
          <figcaption data-width-ratio class="image-card-wrapper">
            

              
                <h2>Network Update (2024.1)</h2>
              

              
                <p class="">In the previous instalment, I moved the network stack to 10G top-to-bottom and spun up a redundant Pi-Hole setup</p>
              

              
                
                  
                    
                      <a data-sqsp-image-classic-block-link-button href="https://www.minmaxgeek.com/blog/networking-upgrade-2024-1" class="sqs-button-element--primary">Read More</a>
                    
                  
                
              

            
          </figcaption>
        

      </figure>

    

  


&nbsp;
  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/png" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1668024733779-G7995CSE7SITNOWM8PNU/Logo_Squooshed.png?format=1500w" medium="image" isDefault="true" width="1500" height="806"><media:title type="plain">Upgrading my Networking Gear (2026.1)</media:title></media:content></item><item><title>Solar Integrated Office (2025.1)</title><category>DIY</category><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Sun, 12 Oct 2025 18:15:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/solar-office-2025-1</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:68e69bb934ee24602d2d6c47</guid><description><![CDATA[Long term, I’d like to go down the road of using power-stations mitigate 
the power consumption of my computers with this possibly leading to 
something along the lines of whole-home solar.

I need to crawl before I run, so baby-steps first: let’s see what I can do 
with a small, camping oriented power-station.]]></description><content:encoded><![CDATA[<p class="">I recently bought a solar-capable [camping oriented] power-station and I wanted to find a way to leverage the battery and inverter outside of camping. Down the road, I’d like to explore a bigger power-station to mitigate my power consumption of my main computers, but for now, I just need to collect data and explore what I can do with this baby power-station…</p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#start" target="_blank">Where we started</a></p></li><li><p class=""><a href="#goals" target="_blank">Goals and Objectives</a></p></li><li><p class=""><a href="#design" target="_blank">Theorycrafting</a></p><ul data-rte-list="default"><li><p class=""><a href="#design-1" target="_blank">What is peak-shaving?</a></p></li><li><p class=""><a href="#design-2" target="_blank">Some easy examples</a></p></li><li><p class=""><a href="#design-3" target="_blank">What about a bigger load?</a></p></li><li><p class=""><a href="#design-4" target="_blank">A realistic example</a></p></li></ul></li><li><p class=""><a href="#step-1">Step 1 - Using the C300 to offset on-peak</a></p></li><li><p class=""><a href="#step-2">Step 2 - Bypassing the inverter</a></p></li><li><p class=""><a href="#step-3">Step 3- Getting solar into the office</a></p></li><li><p class=""><a href="#step-4">Step 4 - Thinking ahead</a></p></li><li><p class=""><a href="#step-5">Step 5 - ROI</a></p></li><li><p class=""><a href="#step-6">Step 6 - Window shopping</a></p></li><li><p class=""><a href="#step-7">Step 7 -&nbsp; Fine tuning</a></p></li><li><p class=""><a href="#milestone">Milestone</a></p></li><li><p class=""><a href="#appendix-1" target="_blank">Appendix - Parts list</a></p></li></ul>


  






  



<hr />
  
    <h3 id="start">Where we started</h3>
  


  
  <p class="">A few months ago, I was wandering through a liquidation store when we came across the <a href="https://ryobitools.ca/products/details/18v-one-24q-power-cooler/" target="_blank">Ryobi 18V Hybrid Cooler</a>. Growing up, we had a 12V car-cooler that came in handy when we went to far-away grocery stores and meat markets. While some 12V coolers come with an AC wall option (and I guess I can always buy a dedicated 12V adapter), the Ryobi cooler gives me the option to totally disconnect, relying on batteries entirely. </p><p class="">Looking at this from a different perspective, the cooler comes with it’s own <em>built-in UPS</em>. With a regular price of $700CAD (!!), there was never a chance in hell I would have considered this but the liquidation price of $300? This puts it in the same ballpark as many 12V coolers. Early in the [camping] season, a pair of 9ah batteries  (~162Wh each) was more than enough to last the weekend but as the weather really heated up, I needed to find a better way to power the cooler without packing a whole bunch of batteries…</p><p class="">As luck would have it, I stumbled upon the <a href="https://amzn.to/4pScAl0" target="_blank">Anker Solix C300</a> shortly after. From a camping perspective, this provides me with 288Wh of power: between the Solix, the two batteries installed in the cooler and a couple of extras, I’ve got <em>936Wh</em> of power. Enough to reliably go off-grid during a weekend camping trip regardless of the temperature. But enough about camping — how I can I really use this?</p><p class="">You know, for <em>computers.</em></p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Fun find" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Now I have a cordless fridge!&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760228270705-I4PYGPOTSY2XKMLLP0Y5/IMG20250607145128_s.jpg" role="button" aria-labelledby="68eaf3ae383dca0b6e24edcc-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760228270705-I4PYGPOTSY2XKMLLP0Y5/IMG20250607145128_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Fun find" data-load="false" data-image-id="68eaf3ae383dca0b6e24edcc" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760228270705-I4PYGPOTSY2XKMLLP0Y5/IMG20250607145128_s.jpg?format=1000w" /><br>
                </a>
                
                  Fun find
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Ideally powered via 12V" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;By using the 12V car socket, things run more efficiently and the power station will last longer.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760228271050-3GSLYT78S93Q52ZS5M9G/IMG20250618123511_s.jpg" role="button" aria-labelledby="68eaf3ae1a3cb06a39974c98-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760228271050-3GSLYT78S93Q52ZS5M9G/IMG20250618123511_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Ideally powered via 12V" data-load="false" data-image-id="68eaf3ae1a3cb06a39974c98" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760228271050-3GSLYT78S93Q52ZS5M9G/IMG20250618123511_s.jpg?format=1000w" /><br>
                </a>
                
                  Ideally powered via 12V
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="goals">Goals and Objectives</h3>
  


  
  <p class="">It’s no surprise that, the computers represent a significant portion of my electrical bill. I’ve been toying with the idea of using power-stations to try and offset some of the load when electricity is the most expensive throughout the day. Obviously, getting a beefy enough power-station that can comfortably drive my computers is not a cheap undertaking, so I wanted to use this small, camping-oriented power-station as a sandbox test-bed.</p><p class="">At a glance, these are the relevant specs:</p><ul data-rte-list="default"><li><p class="">288Wh battery capacity</p></li><li><p class="">LiFePO4 batteries rated for 3000-cycles (meaning, after 3000 charge-discharge cycles, it should retain 80% original capacity - 230Wh or so)</p></li><li><p class="">300W inverter with 600W max draw</p></li><li><p class="">Rechargeable via: AC (100W min, 330W max), USB-PD (140W max) or solar (11-28V, 100W max)</p></li><li><p class="">Idle power consumption of 11-12W</p></li></ul><p class="">Since I <em>already have </em>the C300, I wanted to a way to leverage it’s battery.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="design">Theorycrafting</h3>
  


  
    <h4 id="design-1">What is peak shaving?</h4>
  


  
  <p class="">Before diving too deep into things, here’s a sample time-of-use cost of electricity chart.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2a542cb9-e2d8-459a-8545-ff5f7e6756d8/Sample+Time-of-use+Rates_Sheets.png" data-image-dimensions="1515x937" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2a542cb9-e2d8-459a-8545-ff5f7e6756d8/Sample+Time-of-use+Rates_Sheets.png?format=1000w" width="1515" height="937" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2a542cb9-e2d8-459a-8545-ff5f7e6756d8/Sample+Time-of-use+Rates_Sheets.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2a542cb9-e2d8-459a-8545-ff5f7e6756d8/Sample+Time-of-use+Rates_Sheets.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2a542cb9-e2d8-459a-8545-ff5f7e6756d8/Sample+Time-of-use+Rates_Sheets.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2a542cb9-e2d8-459a-8545-ff5f7e6756d8/Sample+Time-of-use+Rates_Sheets.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2a542cb9-e2d8-459a-8545-ff5f7e6756d8/Sample+Time-of-use+Rates_Sheets.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2a542cb9-e2d8-459a-8545-ff5f7e6756d8/Sample+Time-of-use+Rates_Sheets.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2a542cb9-e2d8-459a-8545-ff5f7e6756d8/Sample+Time-of-use+Rates_Sheets.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Example time-of-use electricity rates</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">So there’s this idea of <strong>peak shaving</strong>: if we can find a way to reduce electrical draw from red and orange periods — we <em>shave</em> the cost of electricity during the <em>peak</em> periods of the day. </p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="design-2">Some easy examples</h4>
  


  
  <p class="">It can be easier to visualize and explore how we might leverage this with an example. For a simple example, let’s suppose I have a 100W load that needs to run 24x7; let’s make some assumptions to make things a bit simpler:</p><ul data-rte-list="default"><li><p class="">That there are no efficiency losses from the inverter</p></li><li><p class="">There’s no idle-power consumption</p></li><li><p class="">The power-station has a max recharge rate of 300W</p></li><li><p class="">We are working with an 1800W circuit or so (a standard 15A outlet)</p></li><li><p class="">Once the battery is depleted, we will immediately switch to grid-power <span><em>and</em></span> start recharging the battery - I don’t know of any system that allows you to switch to grid-power <em>without</em> recharging the battery. What this actually means is that our load (currently 100W) and our recharging (currently 300W) must fit within this 1800W allowance. </p><ul data-rte-list="default"><li><p class="">You can easily see how we can run into issues as our load and charging rates go up</p></li><li><p class="">Some power-stations allow you to adjust the recharge rate so you can optimize things  - more on this in a bit</p></li></ul></li></ul>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="300Wh battery, 300W Recharge-rate" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;The most optimal thing I could do here, is transition to battery power at 1400h; the battery would run out at 1700h and begin recharging (using the orange-rate). &lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Note that, while we are recharging the battery (at 300W), we also still need to power the load (at 100W)&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759958810578-FDBTRCBOTQ6M40RTQ94Q/Example1_Annotated.png" role="button" aria-labelledby="68e6d71a4213236416dd0c38-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759958810578-FDBTRCBOTQ6M40RTQ94Q/Example1_Annotated.png" data-image-dimensions="2919x1821" data-image-focal-point="0.5,0.5" alt="300Wh battery, 300W Recharge-rate" data-load="false" data-image-id="68e6d71a4213236416dd0c38" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759958810578-FDBTRCBOTQ6M40RTQ94Q/Example1_Annotated.png?format=1000w" /><br>
                </a>
                
                  300Wh battery, 300W Recharge-rate
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="300Wh battery, 100W recharge-rate" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Here, we optimize things ever so slightly, by shifting some of the recharge draw to the more favorable green-rate. &lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;We COULD stop the recharge after the first hour of recharge - the battery would have recharged enough to run an the last remaining orange-rate hour, but this needs to be dialed in very specifically and isn’t really practical. There isn’t much we can do to optimize this though.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759958813176-6MGL86NLG51B7RMX3H00/Example2_Annotated.png" role="button" aria-labelledby="68e6d71cf00f695a7eceec82-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759958813176-6MGL86NLG51B7RMX3H00/Example2_Annotated.png" data-image-dimensions="2920x1822" data-image-focal-point="0.5,0.5" alt="300Wh battery, 100W recharge-rate" data-load="false" data-image-id="68e6d71cf00f695a7eceec82" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759958813176-6MGL86NLG51B7RMX3H00/Example2_Annotated.png?format=1000w" /><br>
                </a>
                
                  300Wh battery, 100W recharge-rate
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="600Wh battery, 100W recharge-rate" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Here, we’ve completely cut out the red-rate of electricity. Since the recharge&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759959242665-ZWU69H341KD7BS1NTF6B/Example3_Annotated.png" role="button" aria-labelledby="68e6d8caf9bd5043ac39b4e0-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759959242665-ZWU69H341KD7BS1NTF6B/Example3_Annotated.png" data-image-dimensions="2920x1822" data-image-focal-point="0.5,0.5" alt="600Wh battery, 100W recharge-rate" data-load="false" data-image-id="68e6d8caf9bd5043ac39b4e0" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759959242665-ZWU69H341KD7BS1NTF6B/Example3_Annotated.png?format=1000w" /><br>
                </a>
                
                  600Wh battery, 100W recharge-rate
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="800Wh battery, 100W recharge-rate" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Now we have enough battery capacity that &lt;em&gt;all&lt;/em&gt; of the recharge happens during off-peak hours!&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759959579227-G6ZYBE8AM2H38VBEPE7R/Example4_Annotated.png" role="button" aria-labelledby="68e6da1b3032946ce60a6cdd-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759959579227-G6ZYBE8AM2H38VBEPE7R/Example4_Annotated.png" data-image-dimensions="2920x1822" data-image-focal-point="0.5,0.5" alt="800Wh battery, 100W recharge-rate" data-load="false" data-image-id="68e6da1b3032946ce60a6cdd" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759959579227-G6ZYBE8AM2H38VBEPE7R/Example4_Annotated.png?format=1000w" /><br>
                </a>
                
                  800Wh battery, 100W recharge-rate
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="1200Wh battery (or bigger)" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Here, we have enough battery capacity to run our for the entire day (orange- and red- periods) and recharging exclusively during the green-rate period.&lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Because we have enough capacity to run the load during the day, are no longer need to limit our recharge rate&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759959868793-4596XBKWNXVZ4Y284JII/Example5_Annotated.png" role="button" aria-labelledby="68e6db3c5cc5427eb77025dd-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759959868793-4596XBKWNXVZ4Y284JII/Example5_Annotated.png" data-image-dimensions="2920x1822" data-image-focal-point="0.5,0.5" alt="1200Wh battery (or bigger)" data-load="false" data-image-id="68e6db3c5cc5427eb77025dd" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1759959868793-4596XBKWNXVZ4Y284JII/Example5_Annotated.png?format=1000w" /><br>
                </a>
                
                  1200Wh battery (or bigger)
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="design-3">What about a bigger load?</h4>
  


  
  <p class="">Things get a but more complicated as we start to introduce bigger loads: since the circuit’s capacity (1800W) is fixed, this means that we will need to reduce the charging rate so that we’re tripping the breakers. </p><p class="">In the case of an 1100W load, this means that we would have to limit our charging rate to a maximum 700W or so. Since our charging rate is less than the load, there is an upper limit to how much we can recoup during off-peak hours. This ends up being a rough ceiling on the battery size that makes sense.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/182aa9cd-548e-48b1-b612-7763217794e0/Example6_HighLoad_annotated.png" data-image-dimensions="4023x2180" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/182aa9cd-548e-48b1-b612-7763217794e0/Example6_HighLoad_annotated.png?format=1000w" width="4023" height="2180" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/182aa9cd-548e-48b1-b612-7763217794e0/Example6_HighLoad_annotated.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/182aa9cd-548e-48b1-b612-7763217794e0/Example6_HighLoad_annotated.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/182aa9cd-548e-48b1-b612-7763217794e0/Example6_HighLoad_annotated.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/182aa9cd-548e-48b1-b612-7763217794e0/Example6_HighLoad_annotated.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/182aa9cd-548e-48b1-b612-7763217794e0/Example6_HighLoad_annotated.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/182aa9cd-548e-48b1-b612-7763217794e0/Example6_HighLoad_annotated.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/182aa9cd-548e-48b1-b612-7763217794e0/Example6_HighLoad_annotated.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">With a 8400Wh battery, we can knock out on-peak consumption</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">For this specific scenario, we have a soft-limit of roughly 8400Wh on the battery since that is the most we can replenish during off-peak hours. Adding more battery capacity doesn’t change this and just kicks the can down the road so to speak. At <em>some point</em> we will run out of battery and when that time comes, we will only be able to put 8400Wh back into the battery - the only way to stretch the runtime is to either increase the rate of charge or reduce the load.</p><p class="">So far I’ve left this off, but there are two efficiency losses to consider:</p><ul data-rte-list="default"><li><p class=""><strong>Inverter efficiency losses</strong>: if you’re using the inverter, do note that the is power used just for the inverter to function. This could be 10-watts, or 100-watts — this all depends on the inverter</p></li><li><p class=""><strong>Battery degradation</strong>: that 100Wh battery we bought years ago might only have 85Wh of usable charge left in it now</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="design-4">A realistic example</h4>
  


  
  <p class="">To bring things back down to reality a bit, consider a much more realistic example. This might be my computer, with three power bands:</p><ul data-rte-list="default"><li><p class=""><strong>2hours @ High:</strong> 850W (i.e., gaming)</p></li><li><p class=""><strong>11 hours @ Medium:</strong> 500W (monitors on, computer still churning at 100%)</p></li><li><p class=""><strong>11 hours @ Baseline:</strong> 250W (monitors off, computer churning at 100%)</p></li></ul><p class="">When we plot this out we can begin to see where we might try and offset costs.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/099a984b-f847-4445-9322-b8ec7f7f37df/Example7_Realistic_annotated.png" data-image-dimensions="3801x2059" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/099a984b-f847-4445-9322-b8ec7f7f37df/Example7_Realistic_annotated.png?format=1000w" width="3801" height="2059" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/099a984b-f847-4445-9322-b8ec7f7f37df/Example7_Realistic_annotated.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/099a984b-f847-4445-9322-b8ec7f7f37df/Example7_Realistic_annotated.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/099a984b-f847-4445-9322-b8ec7f7f37df/Example7_Realistic_annotated.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/099a984b-f847-4445-9322-b8ec7f7f37df/Example7_Realistic_annotated.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/099a984b-f847-4445-9322-b8ec7f7f37df/Example7_Realistic_annotated.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/099a984b-f847-4445-9322-b8ec7f7f37df/Example7_Realistic_annotated.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/099a984b-f847-4445-9322-b8ec7f7f37df/Example7_Realistic_annotated.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Daily (example) power utilization vs cost</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">This is all very exciting, but I’m not ready to tackle a real computer yet — I need to find a baby-steps version of this. By coincidence, my work laptop is a perfect candidate to test this all out:</p><ul data-rte-list="default"><li><p class="">Not a significant power draw</p></li><li><p class="">Fairly predictable [work] schedule</p></li><li><p class="">If I somehow run out of battery, it’s not the end of the world — the laptop has a built in battery</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-1">Step 1 - Using the C300 to offset on-peak</h3>
  


  
  <p class="">Since the C300 was intended to be used in a camping capacity and totally not in a home power-offsetting capacity, a lot of the fancier time-of-use settings aren’t available. Especially for the way I intended use it, I had to make the following setting changes:</p><ul data-rte-list="default"><li><p class=""><em>Disable</em> ‘Smart AC Output Mode’ — this forces the inverter to run continuously, even when the laptop isn’t running. I <em>could </em>leave this setting enabled but then I would have to power on the inverter (a single button press) every time I started my work day. That’s one more hurdle I don’t really want to deal with although another way to look at things: this is an option I can keep in my back pocket if I need to squeeze more runtime out of this setup</p></li><li><p class=""><em>Disable</em> ‘Device Timeout’ — this also keeps the C300 from going to sleep in general</p></li></ul><p class="">To work around the limitation of not having the built-in ability to control power scheduling, I a pair of <a href="https://amzn.to/4qkhbge" target="_blank">power-monitoring smart-outlets</a>. This would allow me to control (and measure) power coming into the C300 as well as measure the power going to the laptop. </p><p class="">By placing a power monitoring outlet upstream of the C300, I can monitor the idle power consumption when I know everything is off. The C300 has between <strong>11-12W</strong> of idle consumption.</p><p class="">The loads are:</p><ul data-rte-list="default"><li><p class="">My work laptop uses <em>roughly</em> 25W</p></li><li><p class="">The C300 itself has roughly 11-12W idle power consumption</p></li><li><p class="">Each of the smart outlets consumes 0.5W (idle) or 1.0W (active)</p></li></ul>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/491f1094-0888-4282-90c3-a1b4c4d9bb87/IMG20250618122521_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/491f1094-0888-4282-90c3-a1b4c4d9bb87/IMG20250618122521_s.jpg?format=1000w" width="2500" height="1880" sizes="(max-width: 640px) 100vw, (max-width: 767px) 25vw, 25vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/491f1094-0888-4282-90c3-a1b4c4d9bb87/IMG20250618122521_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/491f1094-0888-4282-90c3-a1b4c4d9bb87/IMG20250618122521_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/491f1094-0888-4282-90c3-a1b4c4d9bb87/IMG20250618122521_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/491f1094-0888-4282-90c3-a1b4c4d9bb87/IMG20250618122521_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/491f1094-0888-4282-90c3-a1b4c4d9bb87/IMG20250618122521_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/491f1094-0888-4282-90c3-a1b4c4d9bb87/IMG20250618122521_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/491f1094-0888-4282-90c3-a1b4c4d9bb87/IMG20250618122521_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">C300, next to my EGO 56V battery</p>
          </figcaption>
        
      
        </figure>
      

    
  


  













































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8cac16fd-e6d7-48f4-aaed-d477274ff169/Step1_Extended.jpg" data-image-dimensions="2904x1764" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8cac16fd-e6d7-48f4-aaed-d477274ff169/Step1_Extended.jpg?format=1000w" width="2904" height="1764" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8cac16fd-e6d7-48f4-aaed-d477274ff169/Step1_Extended.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8cac16fd-e6d7-48f4-aaed-d477274ff169/Step1_Extended.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8cac16fd-e6d7-48f4-aaed-d477274ff169/Step1_Extended.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8cac16fd-e6d7-48f4-aaed-d477274ff169/Step1_Extended.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8cac16fd-e6d7-48f4-aaed-d477274ff169/Step1_Extended.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8cac16fd-e6d7-48f4-aaed-d477274ff169/Step1_Extended.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8cac16fd-e6d7-48f4-aaed-d477274ff169/Step1_Extended.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Using some smart switches to mimic built-in time-of-use settings</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
    
  
  <p class="">The ideal goal is to shut-off power recharging the C300 at 0700h (when off-peak rates end) and restore power after 1900h (when off-peak rates resumes). Would the 288Wh capacity be sufficient to carry everything for 12-hours? </p><p class=""><em>Not quite</em>, but there is an important nuance to consider: that I only needed to offset the laptop’s power draw during my <em>work day</em> and more specifically, I only needed to offset that power draw if it happened to fall during mid- and on-peak hours. What this means is that if I can shift some of my working hours into the off-peak period, that consumption would be out of scope of any optimization.</p><p class="">After testing for a few weeks, I found that I was able to offset the laptop’s power draw <span data-text-attribute-id="4fcb3466-385a-43cf-8dac-96ea5a2a8fb5" class="sqsrte-text-highlight"><em>almost all</em> <em>of the time</em></span><em>. </em>To plan for this a bit better, I scheduled Switch A to turn on at 1000h for 10 minutes. With a 330W charging speed, this 10-minute window allows me to recharge roughly 55Wh (19%). This quick top-off ensures that I can make it all the way to off-peak hours no matter what my work day looks like, and this top-off is done at mid-tier rates.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-2">Step 2 - Bypassing the inverter</h3>
  


  
  <p class="">So far I’ve been powering the laptop using a fairly standard AC laptop <a href="https://amzn.to/4hcWnTO" target="_blank">power brick</a> but using the AC outlets a power station is inefficient because the inverters themselves require power to operate. In the case of my C300, it’s 11-12W — enough to drain the entire power station in a day with just idle consumption alone! If we can find a way to power the laptop using DC power, we could leave the AC outlets turned off, boosting overall efficiency. There are three ways to accomplish this:</p><ol data-rte-list="default"><li><p class="">Using the USB-C outlet</p></li><li><p class="">Via the 12V car socket directly using a <a href="https://amzn.to/3KNLqf6" target="_blank">12V to USB-C charger</a></p></li><li><p class="">Via the 12V car socket indirectly using your own inverter; in my case, I happened to have an old <a href="https://store.ridgid.com/us/en/100-watt-power-inverter" target="_blank">Ridgid 100W inverter</a> kicking around. By using your own inverter, you’re gambling that your inverter has less idle power consumption than the one built into the power-station</p></li></ol>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="">Just out of curiosity, I did an informal test:</p><ul data-rte-list="default"><li><p class="">The laptop would be powered via the USB hub</p></li><li><p class="">The laptop would <em>not </em>be at 100% power (since there can be some weird on-off cycling when the battery is that full) - I targeted 90% charge</p></li><li><p class="">The laptop would be powered up, all applications closed and it would idle at the desktop, one VNC session would be open. I also did another test where I left the laptop running a stress-test for the duration of the test</p></li><li><p class="">I would watch the app for a 5-minute period and track the reported power output values (it updates every few seconds)</p></li><li><p class="">In between tests, I would top up the C300</p></li><li><p class="">The upstream smart outlet would be powered off for each test</p></li></ul><p class="">I performed each test (roughly x100 data-points) three times (x3), for each power source (x3), at idle and full load (x2). A <em>ton</em> of data. We already ‘know’ that powering the laptop via USB will be the most efficient, but it is kinda cool to see the numbers come in and validate this understanding.</p><p class="">It was also cool to validate that my standalone inverter was less efficient than the built-in one. The only test I wasn’t able to do was to power the laptop using a 12V socket to USB-C (since I don’t own an adapter like that). Since it’s all DC to DC power, I can’t imagine it being substantially more efficient than connecting directly via USB.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Averaged power draw for each power-source" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Clearly, USB is the way to go!&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760247845059-VILGI6Z29VYB0S71SMN8/PowerDraw.jpg" role="button" aria-labelledby="68eb402548ac04662e278345-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760247845059-VILGI6Z29VYB0S71SMN8/PowerDraw.jpg" data-image-dimensions="966x345" data-image-focal-point="0.5,0.5" alt="Averaged power draw for each power-source" data-load="false" data-image-id="68eb402548ac04662e278345" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760247845059-VILGI6Z29VYB0S71SMN8/PowerDraw.jpg?format=1000w" /><br>
                </a>
                
                  Averaged power draw for each power-source
                
              
            
          

          
        

      
    
  

  











  
  <p class="">As a result of this test, I discovered two neat things:</p><ol data-rte-list="default"><li><p class="">Having a network card connected to the hub results in a <strong>0-2W draw</strong>. If I was desperate to shave this off, I could resort to wireless (never) or consider something like a <a href="https://amzn.to/3IGlW2L" target="_blank">physical network kill switch</a> (questionable reliability based on the reviews).</p></li><li><p class="">When powering the laptop via USB: if the laptop battery is <strong><em>not </em>at 100%</strong> and we hibernate/power down, the power-station will show a 7-8W draw (this amount includes the 0-2W from the network connection). Once the battery is charged to 100% (either by manually charging it before shutting down, or the trickle charge happens to ding 100%), the draw disappears an the power station returns to ‘just’ the 0-2W. <br><br>This oddity does not appear when using the AC ports (but may still be the case) — the power-station is not able to reliably report AC loads under 20W. This may just be an oddity of my specific laptop, or could be a quirk of Thunderbolt, or USB-PD, I’m not entirely sure.</p></li></ol><p class="">Sadly, I won’t be able to power my actual computer using USB so when I eventually apply this to my computer, I’ll have to go with the inverter route.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-3">Step 3 - Getting solar into the office</h3>
  


  
  <p class="">The next logical step in the experiment was to leverage solar charging to top up the battery during the day. I picked up a <a href="https://amzn.to/4h9iEle" target="_blank">Renogy 100W panel</a> and got this plumbed into the basement. I did this by mounting a junction box to the exterior of the house and fishing my MC4 cables through the wall and into the box. By doing it this way, I keep all the connections in one place: if I have to move/service anything, I can handle physical connection/disconnects without having to run back and forth into the house.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="6x6x4 Junction Box" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I opted to drill through the lid of the junction box because this is something that is readily replaceable in the future if I change my configuration: I would just have to get a new lid.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760159285948-BZK2JAM76BR197TFLPEB/IMG20250917160526_s.jpg" role="button" aria-labelledby="68e9e635dec7397d87f7be06-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760159285948-BZK2JAM76BR197TFLPEB/IMG20250917160526_s.jpg" data-image-dimensions="2500x1125" data-image-focal-point="0.5,0.5" alt="6x6x4 Junction Box" data-load="false" data-image-id="68e9e635dec7397d87f7be06" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760159285948-BZK2JAM76BR197TFLPEB/IMG20250917160526_s.jpg?format=1000w" /><br>
                </a>
                
                  6x6x4 Junction Box
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Passthrough gland installed" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I used stainless steel screws to fasten everything and gave everything a bit of caulk&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760159284876-GOLJXU9KBNOA290Q7JPJ/IMG20250917162540_s.jpg" role="button" aria-labelledby="68e9e6340f0bdd1e7dcb6a46-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760159284876-GOLJXU9KBNOA290Q7JPJ/IMG20250917162540_s.jpg" data-image-dimensions="2500x5556" data-image-focal-point="0.47828258167613635,0.5510204081632653" alt="Passthrough gland installed" data-load="false" data-image-id="68e9e6340f0bdd1e7dcb6a46" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760159284876-GOLJXU9KBNOA290Q7JPJ/IMG20250917162540_s.jpg?format=1000w" /><br>
                </a>
                
                  Passthrough gland installed
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Room for a second set" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;During installation, I punched a second set of holes so if there is a need for a second set of wires, that hard work is done.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760159285335-X3BIVI3D49JUESNRWB3I/IMG20250917163355_s.jpg" role="button" aria-labelledby="68e9e634c6bb572df634a499-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760159285335-X3BIVI3D49JUESNRWB3I/IMG20250917163355_s.jpg" data-image-dimensions="2500x1125" data-image-focal-point="0.5,0.5" alt="Room for a second set" data-load="false" data-image-id="68e9e634c6bb572df634a499" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760159285335-X3BIVI3D49JUESNRWB3I/IMG20250917163355_s.jpg?format=1000w" /><br>
                </a>
                
                  Room for a second set
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Routed across the ceiling" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I ran the indoor-MC4 cable across my drop ceiling and dropped it next to my desk.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760216057109-0FY8Q4XZRZC6VN933LIJ/DPN05980.jpg" role="button" aria-labelledby="68eac3f85fd9ab1bcf9533ee-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760216057109-0FY8Q4XZRZC6VN933LIJ/DPN05980.jpg" data-image-dimensions="2500x1760" data-image-focal-point="0.5,0.5" alt="Routed across the ceiling" data-load="false" data-image-id="68eac3f85fd9ab1bcf9533ee" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760216057109-0FY8Q4XZRZC6VN933LIJ/DPN05980.jpg?format=1000w" /><br>
                </a>
                
                  Routed across the ceiling
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Plopped in place" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;The C300 is such a tiny little thing that I just flopped it right on the floor and plugged the solar right into the front.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760216057532-K7ZGS8GP9KM9QZ9T3NM6/DPN05981.jpg" role="button" aria-labelledby="68eac3f9ee9db96abbb45de4-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760216057532-K7ZGS8GP9KM9QZ9T3NM6/DPN05981.jpg" data-image-dimensions="2500x2142" data-image-focal-point="0.5,0.5" alt="Plopped in place" data-load="false" data-image-id="68eac3f9ee9db96abbb45de4" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760216057532-K7ZGS8GP9KM9QZ9T3NM6/DPN05981.jpg?format=1000w" /><br>
                </a>
                
                  Plopped in place
                
              
            
          

          
        

      
    
  

  











  
  <p class="">Looking online, I saw a lot of guides showing people attaching MC4 connections directly to the <em>sides</em> of the <a href="https://amzn.to/4h9iEle" target="_blank">junction box</a>. I specifically opted to run my connections through the front/lid of the box because:</p><ol data-rte-list="default"><li><p class="">This was my first time doing this, I didn’t want to gamble on screwing up crimping MC4</p></li><li><p class="">Replacing a <em>lid</em> is so much easier than unbolting and replacing a <em>box</em></p></li><li><p class=""><em>Servicing/upgrading</em> connections through the lid is also much easier: I can remove the lid, take it over to my workbench and work on it rather than hunching over by the junction box</p></li></ol><p class="">I specifically went with an <a href="https://amzn.to/48so7kY" target="_blank">RV-style gland</a> with cables because I wasn’t sure how much depth I would need for the MC4 connections (if I were to pass them through the front) versus how deep the junction box would be. The extra length of cabling from the gland is a bit unwieldy but it does give me a bit of operating flexibility when servicing. </p><p class="">I went with a bigger junction box for the possibility to pass two sets of cables through the front but the extra space in the box was super helpful when coiling up the extra length of MC4.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/a97b2ad0-70b7-4257-b3af-8503ddf6bd09/SolarConnect.jpg" data-image-dimensions="2500x1018" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/a97b2ad0-70b7-4257-b3af-8503ddf6bd09/SolarConnect.jpg?format=1000w" width="2500" height="1018" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/a97b2ad0-70b7-4257-b3af-8503ddf6bd09/SolarConnect.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/a97b2ad0-70b7-4257-b3af-8503ddf6bd09/SolarConnect.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/a97b2ad0-70b7-4257-b3af-8503ddf6bd09/SolarConnect.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/a97b2ad0-70b7-4257-b3af-8503ddf6bd09/SolarConnect.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/a97b2ad0-70b7-4257-b3af-8503ddf6bd09/SolarConnect.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/a97b2ad0-70b7-4257-b3af-8503ddf6bd09/SolarConnect.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/a97b2ad0-70b7-4257-b3af-8503ddf6bd09/SolarConnect.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">All the bits and pieces (totally not to scale) to get solar into the basement</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">I used a 15-ft MC4 cable inside the house be able to go from the junction box over near by C300 (in hindsight, I probably should have went with 20-ft inside the house as well). I used a <a href="https://amzn.to/4q4AJEX" target="_blank">spring-locked grommet</a> to keep things tidy. The C300 requires an XT60 connector for solar input, so I used an <a href="https://amzn.to/42C6tHL" target="_blank">adapter cable</a> to run the last mile.</p>


  






  



&nbsp;<hr />&nbsp;
  
    
  
  <p class="">I’ve only had this installation for a few weeks so I only have limited (summer) experience but overall, it’s been <span data-text-attribute-id="eff23c31-d441-471c-a060-44679b6f982e" class="sqsrte-text-highlight">great</span>. </p><p class="">Obviously, my summertime experience represents the most ideal conditions and as the seasons change, it will be more challenging to keep the battery topped off. That being said, I did my initial testing with <em>no solar recharging</em>, so even if I get a small amount of solar over the winter months, I should come out ahead.</p><p class="">Worst case, I re-enable the schedule to add top-off charging during mid-peak.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Awesome solar potential" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Without even aiming the panels, I’m nearly maxing out the output of the panel.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760222483658-RONTZ46LX4NKVA99S7C5/Screenshot.jpg" role="button" aria-labelledby="68eadd13830d7a14a76ecd0a-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760222483658-RONTZ46LX4NKVA99S7C5/Screenshot.jpg" data-image-dimensions="1405x2803" data-image-focal-point="0.5,0.5" alt="Awesome solar potential" data-load="false" data-image-id="68eadd13830d7a14a76ecd0a" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760222483658-RONTZ46LX4NKVA99S7C5/Screenshot.jpg?format=1000w" /><br>
                </a>
                
                  Awesome solar potential
                
              
            
          

          
        

      
    
  

  











  
    
  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-4">Step 4 - Thinking ahead</h3>
  


  
  <p class="">I briefly considered <em>over-panelling</em>: running <em>two</em> 100W solar panels (in parallel) to feed into the 100W-max solar input of my C300.  By over-panelling I can</p><ul data-rte-list="default"><li><p class="">Expand my charging-window to cover more hours of the day</p></li><li><p class="">Increase the charging output during cloudy periods</p></li></ul><p class="">With parallel connections, voltage is constant and the current is added up; doing this allows me to keep the incoming voltage within the (low) voltage tolerance range of the C300 and I would be relying on the built in charge controller to clip the current, limiting itself to the 100W it can handle.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21f3e4b4-77c2-4765-a7d2-539133a9c2cc/TwoPanels.jpg" data-image-dimensions="2500x1723" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21f3e4b4-77c2-4765-a7d2-539133a9c2cc/TwoPanels.jpg?format=1000w" width="2500" height="1723" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21f3e4b4-77c2-4765-a7d2-539133a9c2cc/TwoPanels.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21f3e4b4-77c2-4765-a7d2-539133a9c2cc/TwoPanels.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21f3e4b4-77c2-4765-a7d2-539133a9c2cc/TwoPanels.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21f3e4b4-77c2-4765-a7d2-539133a9c2cc/TwoPanels.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21f3e4b4-77c2-4765-a7d2-539133a9c2cc/TwoPanels.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21f3e4b4-77c2-4765-a7d2-539133a9c2cc/TwoPanels.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/21f3e4b4-77c2-4765-a7d2-539133a9c2cc/TwoPanels.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Plan for running two panels in my yard</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">I ultimately chose to pass on this idea — for now. I want to get a bit more experience with my setup the way it is, before making substantial changes to it and also because it’s very likely that I’ll upgrade to a bigger power-station in the medium-term. </p><p class="">A bigger solution would allow for a <em>much</em> higher solar input and I’d be better served by transitioning to larger (i.e., 400W) panels.</p><p class="">To preemptively handle cloudy days (and winter), I opted to schedule Switch A to power-on for 5-minutes at 1705h (mid-peak); this would allow me to feed 27.5Wh (9.5%) back into the power station. On sunny/ideal days, these 5-minutes wouldn’t matter (since the battery would already be near 100%), but the quick-top off on a cloudy-day would allow me to stretch the battery to off-peak time.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-5">Step 5 - ROI</h3>
  


  
  <p class="">Inevitably, when thinking about solar, it’s just a matter of time before the idea of ROI (return on investment) creeps up for most people because getting this stuff (at least at scale), is <em>not cheap</em>. Everyone’s situation will be different as it depends on how much power you use, when you use it and the difference between the on- and off-peak rates (which can also change, seasonally). I have an alternative set of rates available to me and it’s neat to see how the theoretical numbers may work out.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7d13f24d-5ddd-43a6-b7ac-0cd11c34aea5/Savings.jpg" data-image-dimensions="963x1220" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7d13f24d-5ddd-43a6-b7ac-0cd11c34aea5/Savings.jpg?format=1000w" width="963" height="1220" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7d13f24d-5ddd-43a6-b7ac-0cd11c34aea5/Savings.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7d13f24d-5ddd-43a6-b7ac-0cd11c34aea5/Savings.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7d13f24d-5ddd-43a6-b7ac-0cd11c34aea5/Savings.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7d13f24d-5ddd-43a6-b7ac-0cd11c34aea5/Savings.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7d13f24d-5ddd-43a6-b7ac-0cd11c34aea5/Savings.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7d13f24d-5ddd-43a6-b7ac-0cd11c34aea5/Savings.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7d13f24d-5ddd-43a6-b7ac-0cd11c34aea5/Savings.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Offsetting mid-peak and on-peak consumption</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">I’m not getting too excited about the 75% reduction in daily-operating cost since I’m totally <em>not ready for it</em>. This sample scenario is just for one computer, and a rate-change would apply to all the other things in the house. At the house-level, there are several substantial loads that I don’t necessarily have the leeway to reschedule (i.e., stove, air-conditioner).</p><p class="">For the time being, I’ll focus on the savings that I can get using Rate 1, just with offsetting mid- and on-peak consumption.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-6">Step 6 - Window shopping</h3>
  


  
  <p class=""><em>Without</em> scaling up to whole-house solar, having the MC4 pass-through into the basement <em>does</em> give me some more consumer-oriented options: with a beefy enough power-station, I can start to move towards leveraging the savings while still remaining on Rate 1. Consider some of the larger power stations like the <a href="https://amzn.to/46L2Qlc" target="_blank">Solix F3000</a> or <a href="https://amzn.to/4q78wNY" target="_blank">Delta 3 Ultra Plus</a>, we are starting to get to the point where there is enough battery capacity and solar-recharge capacity that I can make a meaningful dent into my power consumption. </p><p class="">With either of these power stations (+ single expansion battery), I have enough capacity that I can definitely cover my on-peak usage (approximately 3500Wh) entirely, <strong><em>without</em></strong> relying on any solar recharging. I specifically selected these two power-stations for their above average solar-input numbers: even with just a few hours of usable solar, I can put a substantial amount of charge back into the batteries - likely enough to get me to the off-peak period. There’s also a more than likely chance I can start to add multiple computers, or my network rack to this power optimization as well.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/05512cec-32ff-4608-9658-26573151bd0c/WindowShop.jpg" data-image-dimensions="1359x611" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/05512cec-32ff-4608-9658-26573151bd0c/WindowShop.jpg?format=1000w" width="1359" height="611" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/05512cec-32ff-4608-9658-26573151bd0c/WindowShop.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/05512cec-32ff-4608-9658-26573151bd0c/WindowShop.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/05512cec-32ff-4608-9658-26573151bd0c/WindowShop.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/05512cec-32ff-4608-9658-26573151bd0c/WindowShop.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/05512cec-32ff-4608-9658-26573151bd0c/WindowShop.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/05512cec-32ff-4608-9658-26573151bd0c/WindowShop.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/05512cec-32ff-4608-9658-26573151bd0c/WindowShop.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Two potential off-the-shelf power stations that might work for my needs</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">Some exciting stuff - all the more reason I need to play with my C300 in it’s ‘basic state’ to get a better picture of how (and when) I use my power. Obviously, there are other products out there and there’s and entire world of DIY/custom to consider as well. One tempting option would be to get a high-capacity battery and connect that to the C300 (or other power station). The power-station just sees this battery as a ‘solar source’ and I can worry about charging the standalone battery separately.</p><p class="">In addition to getting more real-world experience with this baby-steps C300, it would be beneficial to get per-circuit continuous power monitoring so I can get a better understanding of how and when I use power. </p><p class="">Super long-term, I think the right play is to go with whole-house integrated solar - with enough capacity/generation that I can take a serious look at switching to the alternative electrical rate. </p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-7">Step 7 - Fine tuning</h3>
  


  
  <p class="">The following</p><ul data-rte-list="default"><li><p class=""><strong>Every day:</strong> 0655 OFF. Turning off while we are still in off-peak pricing</p></li><li><p class=""><strong>Weekdays</strong>: 1705 ON → 1710 OFF. For weekdays, this represents mid-tier rates and gives me a very quick top-off (if needed) in case it’s a cloudy day <em>and</em> I’ve been pulling more power than typical. Assuming the solar panels haven’t contributed anything, this will put 27.5Wh back into the battery.</p></li><li><p class=""><strong>Weekends</strong>: 1400 ON → 1415 OFF. For weekends, this is all off-peak. Assuming the solar panels haven’t contributed anything, this will put 82.5Wh back into the battery.*</p></li><li><p class=""><strong>Every day:</strong> 2020 ON. This is well within off-peak hours and the grid can power the idle-power consumption.</p></li></ul><p class="">[*] I won’t need this if I’m using just the USB ports on the C300, but I’m playing around with the idea of migrating additional devices to the power-station (like my <a href="https://amzn.to/4h4etqO" target="_blank">pedestal fan</a>) </p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="milestone">Milestone</h3>
  


  
  <p class="">For the time being, I’ve got my work laptop situation fully handled by the power-station and I’m just looking for small things that I can migrate from grid-power to my power-station. As winter is coming, it’ll be neat to see what changes I need to make (if any) deal with the fewer hours of usable sun. </p><p class="">In the spring, I’ll figure out a way to get the panel’s installed on some tiny angle-stands — for the time being, they are just flopped against the house/fence. I’ll also be looking at what options are available for upgrading to a larger power-station to begin to migrate more things off peak-power.</p><p class="">I’ve got some research to do and a <em>ton</em> of data I need to collect (power usage patterns etc.). This will be an interesting rabbit hole to explore!</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    <h3 id="appendix-1">Appendix - Parts list</h3>
  


  
  <ul data-rte-list="default"><li><p class="">Power station - <a href="https://amzn.to/4q4TvvY" target="_blank">Anker Solix C300</a></p></li><li><p class="">Solar panel - <a href="https://amzn.to/475tYKs" target="_blank">Renogy 100W, N-Type, 16BB</a></p></li><li><p class="">MC4 Cables - <a href="https://amzn.to/48rThZz" target="_blank">Renogy 10AWG</a> (20-ft outside, 15-ft inside)</p></li><li><p class="">RV-style Solar <a href="https://amzn.to/4hbowdN" target="_blank">entry gland</a> (3ft 10AWG)</p></li><li><p class="">Cheapo <a href="https://amzn.to/4n1NSMr" target="_blank">MC4 disconnect tool</a></p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1760303019885-0CE83Q74PLRZKMW2L3TJ/Blog+Covers+-+2025.jpg?format=1500w" medium="image" isDefault="true" width="1500" height="1000"><media:title type="plain">Solar Integrated Office (2025.1)</media:title></media:content></item><item><title>Self-Hosted Diaries (2025.3)</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Sun, 13 Jul 2025 13:04:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/self-hosted-2025-3</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:6873aed46357c709ed353b71</guid><description><![CDATA[Pi-Hole works great to block ads and malware at a domain level, but what 
about sites that aren’t blocked but still show you stuff you don’t 
necessarily want to see? Like YouTube channels you don’t care for, Reddit 
communities you don’t find interesting, or Amazon product listings from 
alphabet-soup-companies? For that, we need browser-based ad-blocking.]]></description><content:encoded><![CDATA[<p class="">Pi-Hole and NextDNS are great for filtering out domain-based ads and malware but they don’t do anything about ads (or even just <em>stupid content</em>) from a ‘safe’ domain. For that ‘last mile’, you need some form of browser-based ad-blocking. When I switched to Firefox earlier this year, it was a good opportunity to revisit my custom ad-blocking rules to see if I could clean up some of <em>crap</em> that is so common across the websites I visit.</p>


  






  



<hr />&nbsp;
  
  <p class="sqsrte-large">Self-hosted Series</p><p class="">This post is part of a series, check out the other posts!</p>


  






  



<hr />&nbsp;
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#starting-point" target="_blank">Starting point</a></p></li><li><p class=""><a href="#step-1" target="_blank">Building out the Rules</a></p><ul data-rte-list="default"><li><p class=""><a href="#step-1a" target="_blank">Amazon</a></p></li><li><p class=""><a href="#step-1b" target="_blank">Reddit</a></p></li><li><p class=""><a href="#step-1c" target="_blank">YouTube</a></p></li></ul></li><li><p class=""><a href="#step-2" target="_blank">Creating your own lists</a></p></li><li><p class=""><a href="#step-3" target="_blank">My Workflow</a></p></li><li><p class=""><a href="#step-4" target="_blank">Bonus Shenanigans</a></p></li><li><p class=""><a href="#summary" target="_blank">Summary</a></p></li></ul>


  






  



<hr />
  
    <h3 id="starting-point">Starting point</h3>
  


  
    
  
  <p class="">Over the last year or two, Google has been making some moves that ultimately have/will lead to <a href="https://www.pcworld.com/article/2595287/ublock-origin-is-officially-dead-for-chrome-but-ad-blockers-live-on.html" target="_blank">the end</a> of one of the most effective browser based ad-blockers. As I run network-wide DNS based ad-blocking, this may affect me less than others but DNS based blocking doesn’t catch everything and you really do need browser-based blocking to handle the last-mile.</p><p class="">I don’t blame Google for making these moves — they are an <em>ad company</em> which naturally puts them at odds with ad-blocking, but with the writing on the wall for uBlock Origin (in Chrome), I cut over to Firefox. As I run multiple machines where I want to maintain a consistent rule-set, this was a good opportunity to spend a bit of time on refining my ‘last-mile’ ad-block process.<strong> </strong>uBlock Origin supports the idea of <a href="https://github.com/gorhill/uBlock/wiki/Cloud-storage" target="_blank">cloud storage</a> to handle synchronizing rules between machines, but I wanted to take this a bit further.</p><p class="">The one thing that you can do with browser-based shenanigans is to <em>restructure</em> a website.</p><ul data-rte-list="default"><li><p class="">Your favourite website changed the colour of a button that you don’t like? Override that</p></li><li><p class="">Don’t care about sports/arts/entertainment/business/weather on your preferred news site? Hide it</p></li><li><p class="">A website you visit often has a fixed divider that just isn’t big enough (Azure DevOps I’m looking at you) - resize it</p></li><li><p class="">A site has a button placed way out in left field? Move it</p></li></ul><p class="">And then the rabbit hole got deeper:</p><ul data-rte-list="default"><li><p class="">Could we hide entire products/brands/categories on Amazon?</p></li><li><p class="">What about blocking out specific channels on YouTube? (AI generated puke, I’m looking at you)</p></li><li><p class="">Can we filter out entire subreddits on Reddit?</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-1">Step 1 - Building out the Rules</h3>
  


  
  <p class="">We’ll jump right into it, the super star that makes all the magic happen is…</p>


  






  



&nbsp;<p><code data-preserve-html-node="true"><span>:has-text(</span><span>/</span><span>your-text-here</span><span>/i</span><span>)</span></code></p><code data-preserve-html-node="true"></code>

  
  <p class="">Find the element archetype you want to clean up, append that magic block and go on a censoring spree. It’s a slow, iterative and cumulative process as you build out your desired filters, but it gets better over time.</p><p class="">Note: the optional element in <span class="sqsrte-text-color--custom">red</span> allows the filtering to be <em>case-insensitive</em>.</p>


  






  




  
    <h4 id="step-1a">Amazon</h4>
  


  
  <p class="">Here, I'm interested in cleaning up the <a href="https://amzn.to/4nKCl5J">Deals</a> page: my thought process is that I like to browse through the Deals page, perhaps looking for random impulse/super-sale items, but there are <em>definitely</em> things that I'm not interested in:</p><ul data-rte-list="default"><li><p class="">Brands (i.e., Apple)</p></li><li><p class="">Product categories (i.e., sweaters -- this isn't something I'm going to impulse buy)</p></li><li><p class="">Specific products (i.e., a specific coffee maker -- I already <em>have one</em>, so I won't be buying a second one)</p></li><li><p class="">Alphabet-soup products and companies -- you know the type, where the company name is a random jumble of letters and the product is just copy-paste-generic-crap</p></li></ul><p class="">For each thing you want to block, I've found you need two entries:</p>


  






  



&nbsp;<p><code data-preserve-html-node="true"><span>amazon.ca</span><span>##li.dcl-carousel-element.a-carousel-card</span><span>:has-text(</span><span>/</span><span>thing-you-dont-care-about</span><span>/i</span><span>)</span><br>
<code><span>amazon.ca</span><span>##div.GridItem-module__container_PW2gdkwTj1GQzdwJjejN</span><span>:has-text(</span><span>/</span><span>thing-you-dont-care-about</span><span>/i</span><span>)</span></code></code></p><code data-preserve-html-node="true"></code>

  
  <p class="">You do need to be a bit cautious (sometimes being more-vague with your filters, sometimes more-specific) otherwise you might accidentally block items/categories you <em>are</em> interested in. For example, let's say you do want to see phone accessories, chargers, cables etc. but you <em>don't</em> want to see anything Apple-specific. If you were to add a block for <strong>Apple</strong>, you would definitely be inadvertently blocking some/many things that you might be interested in as many of them will use Apple in the description. So you might build out a few blocks that are more granular:</p><ul data-rte-list="default"><li><p class="">for Apple</p></li><li><p class="">for iPhone</p></li><li><p class="">for iPad</p></li><li><p class="">etc.</p></li></ul><p class="">Will you still [inadvertently] block stuff? Yes, but it’s a balancing act. The ‘clean-up’ process is pretty fun to watch in real-time — the product blocks get lazy-loaded and then hidden by the ad-blocking.</p>


  






  















  
    
      
    
    
      
        
        
      
    
    
  
    <p data-rte-preserve-empty="true">Ad-block on Amazon purging items/brands/categories you don’t care about</p>
  


  



&nbsp;<hr />&nbsp;
  
  <p class="">Sometimes, you can throw a :not in there to simplify your life. For example, on the main Amazon page, the only block I might be interested in will be ‘Keep Shopping For’, so I have the following rules to allow it, but filter the rest</p>


  






  



<code data-preserve-html-node="true"><span>amazon.ca</span><span>###desktop-grid-1</span><span>:not(</span><span>:has-text(</span><span>Keep</span><span>)</span><span>)</span><br>
  <span>amazon.ca</span><span>###desktop-grid-2</span><span>:not(</span><span>:has-text(</span><span>Keep</span><span>)</span><span>)</span><br>
  <span>amazon.ca</span><span>###desktop-grid-3</span><span>:not(</span><span>:has-text(</span><span>Keep</span><span>)</span><span>)</span><br>
  <span>amazon.ca</span><span>###desktop-grid-4</span><span>:not(</span><span>:has-text(</span><span>Keep</span><span>)</span><span>)</span><br>
  <span>amazon.ca</span><span>###desktop-grid-5</span><span>:not(</span><span>:has-text(</span><span>Keep</span><span>)</span><span>)</span><br>
  <span>amazon.ca</span><span>###desktop-grid-6</span><span>:not(</span><span>:has-text(</span><span>Keep</span><span>)</span><span>)</span><br>
  <span>amazon.ca</span><span>###desktop-grid-7</span><span>:not(</span><span>:has-text(</span><span>Keep</span><span>)</span><span>)</span><br>
  <span>amazon.ca</span><span>###desktop-grid-8</span><span>:not(</span><span>:has-text(</span><span>Keep</span><span>)</span><span>)</span></code>











































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3531bc57-dda3-4e01-bffc-a13abaa324d6/AmazonmainPage_s.jpg" data-image-dimensions="1374x574" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3531bc57-dda3-4e01-bffc-a13abaa324d6/AmazonmainPage_s.jpg?format=1000w" width="1374" height="574" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3531bc57-dda3-4e01-bffc-a13abaa324d6/AmazonmainPage_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3531bc57-dda3-4e01-bffc-a13abaa324d6/AmazonmainPage_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3531bc57-dda3-4e01-bffc-a13abaa324d6/AmazonmainPage_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3531bc57-dda3-4e01-bffc-a13abaa324d6/AmazonmainPage_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3531bc57-dda3-4e01-bffc-a13abaa324d6/AmazonmainPage_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3531bc57-dda3-4e01-bffc-a13abaa324d6/AmazonmainPage_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3531bc57-dda3-4e01-bffc-a13abaa324d6/AmazonmainPage_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Example: only allowing the ‘Keep shopping for’ block on the main Amazon landing page</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-1b">Reddit</h4>
  


  
  <p class="">I admit, I didn’t look too hard, but from what I can tell, there isn’t an option in Reddit to say “please don’t show me this subreddit ever again, I’m not interested”. Enter ad-block. Again, I’ve found that you need two rules to hide things fully (one to hide from the top carousel, and the other to hide from the main listing):</p>


  






  



<code data-preserve-html-node="true"><span>reddit.com</span><span>##article.m-0.w-full</span><span>:has-text(<span>/</span><span>r\/</span></span><span>boring-subreddit</span><span>/i</span><span>)</span><br>  
<span>reddit.com</span><span>##faceplate-tracker.shrink-0.list-none.inline-flex.overflow-hidden.rounded-\[16px\].mr-md</span><span>:has-text(<span>/</span><span>r\/</span></span><span>boring-subreddit</span><span>/i</span><span>)</span></code>

  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-1c">YouTube</h4>
  


  
  <p class="">Again, you can use this to filter out channels you never want to see again because you find them boring or… you know the channels: the ones that are purely text-to-speech product-puke. Like before, I found that you need a couple rules to hide the channels (one hides it from the general listing, the other hides it from search results):</p>


  






  



&nbsp;<code data-preserve-html-node="true"><span>youtube.com</span><span>##ytd-rich-item-renderer</span><span>:has-text(</span><span>AI-slop-channel</span><span>)</span><br>
  <span>youtube.com</span><span>##.ytd-video-renderer</span><span>:has-text(</span><span>AI-slop-channel</span><span>)</span></code>


  
  <p class="">Bonus: if you want to just rid yourself of YouTube shorts…</p>


  






  



&nbsp;<code data-preserve-html-node="true"><span>youtube.com</span><span>##ytd-video-renderer.ytd-item-section-renderer.style-scope</span><span>:has-text(</span><span>SHORTS</span><span>)</span><br>
  <span>youtube.com</span><span>##grid-shelf-view-model</span><span>:has-text(</span><span>Shorts</span><span>)</span></code>


  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-2">Creating your own lists</h3>
  


  
  <p class="">So the wonderful thing about uBlock (and other ad-blockers) is that you can leverage <a href="https://github.com/gorhill/uBlock/wiki/Dashboard:-Filter-lists" target="_blank">lists</a> of things to block. Most of the time, we leverage lists curated by others but nothing stops us from making <em>our own</em> list. At a high level, we just need a text file to be accessible by the browser - where and how you get that text file is up to you.</p><p class="">One easy (and free) way to do it is to use <a href="https://github.com/" target="_blank">GitHub</a>.</p><ol data-rte-list="default"><li><p class="">Create your lists of rules, optionally organizing them into subfolders and multiple lists (so you can easily troubleshoot by turning off an individual list)</p></li><li><p class="">Create an account and somehow, get your list into GitHub</p></li><li><p class="">In uBlock, import your list</p></li></ol><p class="">The signature for your list will be something like:</p>


  






  



&nbsp;<code data-preserve-html-node="true">https://raw.githubusercontent.com/<span>your-github-username</span>/<span>github-repository-name</span>/refs/heads/<span>your-branch</span>/<span>optional-folders-for-organization/</span><span>your-rule-textfile.txt</span></code>

  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-3">My Workflow</h3>
  


  
  <p class="">For myself, I run my own self-hosted <a href="https://about.gitea.com/" target="_blank">Gitea</a> instance at home, where I have a repository for holding all the ad-blocking rules (both for PiHole and for uBlock). Since I batch out a whole bunch of rules at a time, I threw together a quick little desktop app to build out rules for a bunch of websites I regularly visit. </p><p class="">Once I have a bunch of rules done up, I do a pull-request which then triggers a <a href="https://docs.gitea.com/1.18/advanced/repo-mirror" target="_blank">sync</a> from my local Gitea instance to GitHub. In my uBlock configuration, I import all of the GitHub-hosted rules. Since I have a ton of different files, I also keep an index.txt file that contains a list of all the GitHub files in a ready to copy-paste format so I can readily deploy to a new machine if needed.</p><p class="">Using Amazon for example, I will have my app open while I do a quick scroll through the deals page and add blocks as I go — it doesn’t help me <em>this time</em>, but after the rules get integrated, I’ll never see those annoyances again. </p><p class="">At the time of this post, I have 62-lists and just under 9500 rules defined.</p><p class=""><span><strong>Bonus:</strong></span> you can use uBlock (with these lists) on Firefox for Android as well</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Keeping rules organized" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1752425080669-64WK2QRIXR5336J4F5B4/adblockgit_s.jpg" role="button" aria-labelledby="6873e2786a6623248775e074-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1752425080669-64WK2QRIXR5336J4F5B4/adblockgit_s.jpg" data-image-dimensions="368x647" data-image-focal-point="0.5,0.5" alt="Keeping rules organized" data-load="false" data-image-id="6873e2786a6623248775e074" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1752425080669-64WK2QRIXR5336J4F5B4/adblockgit_s.jpg?format=1000w" /><br>
                </a>
                
                  Keeping rules organized
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Building out rules" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Generally only need to expand the tool for sites that go through a lot of new content and have readily identifiable things you can block&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1752425080668-BRQ6417PZFL46VEP57BV/uBlockRuleBuilder_s.jpg" role="button" aria-labelledby="6873e27804e93c4ce91f088a-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1752425080668-BRQ6417PZFL46VEP57BV/uBlockRuleBuilder_s.jpg" data-image-dimensions="511x563" data-image-focal-point="0.5,0.5" alt="Building out rules" data-load="false" data-image-id="6873e27804e93c4ce91f088a" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1752425080668-BRQ6417PZFL46VEP57BV/uBlockRuleBuilder_s.jpg?format=1000w" /><br>
                </a>
                
                  Building out rules
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-4">Bonus shenanigans</h3>
  


  
  <p class="">Above, I alluded to the idea of <em>if you don’t like the way a website is laid out - you can change it (to a degree)</em>. For that, I use a tool called <a href="https://stylebot.dev/" target="_blank">Stylebot</a>. As real-world example, for work, we use a tool called Azure DevOps and for the pipeline details page, the individual job steps are in a fixed-sized column that just isn’t wide enough to show the full text some/most of the time.</p><p class="">Since I am dialed in for 4K/8K and have resolution for days, it’s all kinds of frustrating to then have a (web!) UI that feels like it’s fixed to 1280x960 or something silly — with the double-whammy of the <em>obsession</em> of (web!) UI to have gobs and gobs of white space for the sake of white space.</p><p class="">Rant aside. For Stylebot, the corrective override is</p>


  






  



&nbsp;<code data-preserve-html-node="true">/* This makes the steps column (visible during a pipeline run) wider so we can see more */<br>
 <span>.bolt-master-panel</span> {<br>
    <span>width: </span><span>750px;</span><br>
  }<br></code>

  
  <p class="">Set the styling override to your AzDo portal’s wildcard URL (so, https://your-azdo-url.com/*) and you’re set. Depending on your resolution (and size needs), you can play around with the size there</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    <h3 id="summary">Summary</h3>
  


  
  <p class="">A lot of the websites that I visit tend to have a lot if <em>crap</em> on there, with a smattering of things that might be a bit interesting mixed in. Being able to filter out the crap helps to keep the experience more enjoyable and ultimately save me time — I’m <em>never</em> going to be interested in X,Y,Z so having to scroll through it again and again is no good for anyone.</p><p class="">Sometimes, websites will have “hide this” functionality and while that is a definite improvement over <em>not</em> having that option, this only hide’s <em>that</em> specific instance — another similar post can be made tomorrow and you’ll just have to hide it all over again. Being able to permanently block things categorically means, you only have to be annoyed by any given thing once (or certainly only a few times).</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/png" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1739215524528-3FD9YOZ0FCMYMTZLKC57/SelfHostDariesLogo_s.png?format=1500w" medium="image" isDefault="true" width="547" height="355"><media:title type="plain">Self-Hosted Diaries (2025.3)</media:title></media:content></item><item><title>Self-Hosted Diaries (2025.2)</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Sat, 22 Feb 2025 18:30:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/self-hosted-2025-2</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:67b906b2c0fd971e3f885ea4</guid><description><![CDATA[Running a Pi-Hole at home gives me network-wide ad/malware blocking, but 
what about when I’m not at home? I use NextDNS as a two-pronged solution — 
but there’s a bit of hoop jumping to transition between the two. If only 
there was a way to automate this….]]></description><content:encoded><![CDATA[<p class="">I run a Pi-Hole at home to filter out ads/malware at a network level and it’s been <em>wonderful</em>. But what about when I’m out and about? Previously, I had setup NextDNS to handle on-the-go filtering but found that it was interfering with how I used Pi-Hole, so I abandoned it. Now that I have a bit of time, I wanted to find a way to automatically toggle NextDNS on/off depending on whether I’m at home or not.</p>


  






  



<hr />&nbsp;
  
  <p class="sqsrte-large">Self-hosted Series</p><p class="">This post is part of a series, check out the other posts!</p>


  






  



<hr />&nbsp;
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#starting-point" target="_blank">Starting point</a></p></li><li><p class=""><a href="#getting-started" target="">Automating Private DNS</a></p></li><li><p class=""><a href="#parental-controls" target="_blank">Novel use case: parental controls</a></p></li><li><p class=""><a href="#summary" target="_blank">Summary</a></p></li></ul>


  






  



<hr />
  
    <h3 id="starting-point">Starting point</h3>
  


  
  <p class="">A few years ago, I <a href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-3#step-2a" target="_blank">switched to using Pi-Hole</a> as a network-wide ad/malware sinkhole and generally speaking it’s been great - I even deployed a <a href="https://www.minmaxgeek.com/blog/networking-upgrade-2024-1#dual-dns">second Pi</a> to act as a secondary DNS for my network.</p><p class="">Phones in particular, can be tricky to blanket protect as your protection mechanism needs to work at home (Wi-Fi) and on the go (data). At the time, I mentioned that I was hoping to go with a two-prong solution: <a href="https://pi-hole.net/" target="_blank">Pi-Hole</a> whilst at-home and <a href="https://nextdns.io/" target="_blank">NextDNS</a> while out and about. </p><p class="">For Pi-Hole, there’s nothing to do — it’s configured as the DNS server on the router, so in general, everything on the entire network is protected. For NextDNS, there are <a href="https://help.nextdns.io/t/m1hmv0k/which-setup-type-to-use" target="_blank">a few ways</a> to get things hooked up; thankfully, in Android, I can manually <a href="https://support.google.com/android/answer/9654714?hl=en&amp;sjid=9299527970861383900-NC#zippy=%2Cprivate-dns" target="_blank">specify Private DNS settings</a> (and skip having to install any VPN-esque apps or do any per-network configuration tinkering). There’s only one catch: Android uses this private DNS setting <em>regardless</em> of whether I’m out and about (using data), or if I’m at home on Wi-Fi (under the coverage of Pi-Hole). </p><p class="">The bottom line is that, yes,<em> </em>everything will still <em>work</em> but there are some nuances that made me reconsider just setting this blanket setting.  As a simplified example, consider making a request to example.com:</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b4925398-f1b4-4bdf-ba52-06dd0b9c02ff/nextdns-pihole-difference_s.jpg" data-image-dimensions="2401x639" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b4925398-f1b4-4bdf-ba52-06dd0b9c02ff/nextdns-pihole-difference_s.jpg?format=1000w" width="2401" height="639" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b4925398-f1b4-4bdf-ba52-06dd0b9c02ff/nextdns-pihole-difference_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b4925398-f1b4-4bdf-ba52-06dd0b9c02ff/nextdns-pihole-difference_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b4925398-f1b4-4bdf-ba52-06dd0b9c02ff/nextdns-pihole-difference_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b4925398-f1b4-4bdf-ba52-06dd0b9c02ff/nextdns-pihole-difference_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b4925398-f1b4-4bdf-ba52-06dd0b9c02ff/nextdns-pihole-difference_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b4925398-f1b4-4bdf-ba52-06dd0b9c02ff/nextdns-pihole-difference_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b4925398-f1b4-4bdf-ba52-06dd0b9c02ff/nextdns-pihole-difference_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Example of what happens when we use the Private DNS setting in Android (super simplified)</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">In both cases, we ultimately get the IP address that we’re looking for (1.2.3.4) and for the purposes of this example, we’re going to disregard any extra (likely negligible) latency required for performing the initial lookup to NextDNS. Everything <em>works.</em>  If this is all you’re after: then you can likely just set the Private DNS setting on your phone and be done with it. </p><p class="">So what’s the big deal? Things are a bit different when we look at the Pi-Hole logs:</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0efa9c4c-04d3-42bf-843d-3aea956e72ef/nextdns-logs_s.jpg" data-image-dimensions="611x734" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0efa9c4c-04d3-42bf-843d-3aea956e72ef/nextdns-logs_s.jpg?format=1000w" width="611" height="734" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0efa9c4c-04d3-42bf-843d-3aea956e72ef/nextdns-logs_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0efa9c4c-04d3-42bf-843d-3aea956e72ef/nextdns-logs_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0efa9c4c-04d3-42bf-843d-3aea956e72ef/nextdns-logs_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0efa9c4c-04d3-42bf-843d-3aea956e72ef/nextdns-logs_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0efa9c4c-04d3-42bf-843d-3aea956e72ef/nextdns-logs_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0efa9c4c-04d3-42bf-843d-3aea956e72ef/nextdns-logs_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0efa9c4c-04d3-42bf-843d-3aea956e72ef/nextdns-logs_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Example of Pi-Hole logs when we have Private DNS set in Android</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
    
  
  <p class="">For my use case, this is a bit of an maintenance annoyance: because Android is now obfuscating my actual request (to example.com) via a request to NextDNS,</p><ul data-rte-list="default"><li><p class="">None of the log-entries in Pi-Hole <em>tell me anything </em>(this would be pretty similar to running a <a href="https://docs.pi-hole.net/ftldns/privacylevels/" target="_blank">higher privacy level</a> in Pi-Hole)</p></li><li><p class="">None of the blocking rules provided by Pi-Hole ever kick in (because NextDNS isn’t on a block list)</p></li><li><p class="">If I’m running <em>all</em> of my queries through NextDNS (and especially with multiple devices), I’ll hit the <a href="https://nextdns.io/pricing" target="_blank">300K/month limit</a> for the free-tier</p></li></ul><p class="">The big deal though, is having different blocked/not-blocked resolution depending on the device, while at home, on Wi-Fi. This is because my Pi-Hole and NextDNS have different blocking rules in place (broadly speaking - I’m sure there are some overlaps).</p><p class="">Turning off the Private DNS setting would solve the problem at home but this removes all of the filtering and protection while on data and <em>honestly</em>, if I have to toggle something (even if it’s a simple toggle) every time I connect/disconnect from Wi-Fi, that’s just too much friction — it needs to be automated in some way.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="getting-started">Automating Private DNS</h3>
  


  
  <p class="">In an ideal world, we would have something like this:</p><ul data-rte-list="default"><li><p class="">If connected to home Wi-Fi, disable Android’s Private DNS — filtering is done by Pi-Hole</p></li><li><p class="">Otherwise, enable Private DNS and let NextDNS handle it</p></li></ul><p class="">We can leverage <a href="https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm" target="_blank">Tasker</a> to do the automation, but before we get started, we need a few things:</p><ol data-rte-list="default"><li><p class="">Obviously, setup a NextDNS account, define your rules etc.</p></li><li><p class="">Your phone needs to be rooted. You <em>may</em> be able to do this without root, but I don’t know, it’ll certainly be more involved.</p></li><li><p class="">You need to <a href="https://support.google.com/android/answer/9654714?hl=en&amp;sjid=9299527970861383900-NC#zippy=%2Cprivate-dns" target="_blank">set the Private DNS endpoint</a> in Android in advance - Tasker will just toggle between ‘off’ and ‘Specified DNS’</p></li></ol>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="sqsrte-large">Create the Tasks</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Under the &quot;Tasks&quot; Tab" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Here we are looking to create two tasks. Tasks are just the scripted actions that we want to perform — the ‘what’&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246332923-M6PLXSGFDL5HB5Q8VDCI/Task01_s.jpg" role="button" aria-labelledby="67ba0d3c297e7a744b4a97da-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246332923-M6PLXSGFDL5HB5Q8VDCI/Task01_s.jpg" data-image-dimensions="1440x3216" data-image-focal-point="0.4381306966145833,0.24149659863945577" alt="Under the &quot;Tasks&quot; Tab" data-load="false" data-image-id="67ba0d3c297e7a744b4a97da" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246332923-M6PLXSGFDL5HB5Q8VDCI/Task01_s.jpg?format=1000w" /><br>
                </a>
                
                  Under the "Tasks" Tab
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Creating the custom task" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Click the &lt;strong&gt;[+]&lt;/strong&gt; symbol and give your task a name (i.e., ‘Use Pi-Hole’ or ‘Use Next DNS’). You are taken to the &lt;em&gt;Actions&lt;/em&gt; page.&lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Click the &lt;strong&gt;[+]&lt;/strong&gt; symbol and type/select &lt;em&gt;Custom Setting&lt;/em&gt;&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740245471928-D18BZ8J9KLFMQUWQ8QHR/Task02_s.jpg" role="button" aria-labelledby="67ba09dfe47a624dd58198f3-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740245471928-D18BZ8J9KLFMQUWQ8QHR/Task02_s.jpg" data-image-dimensions="1440x3216" data-image-focal-point="0.4532840613162879,0.2687074829931973" alt="Creating the custom task" data-load="false" data-image-id="67ba09dfe47a624dd58198f3" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740245471928-D18BZ8J9KLFMQUWQ8QHR/Task02_s.jpg?format=1000w" /><br>
                </a>
                
                  Creating the custom task
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Task details for 'Use Pi-Hole'" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;We’re setting &lt;strong&gt;private_dns_mode&lt;/strong&gt; to &lt;strong&gt;off&lt;/strong&gt; (remember to check the ‘&lt;em&gt;Use Root&lt;/em&gt;’ checkbox)&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740245472699-O72F4S35UUI7F58ZTP06/Task03_s.jpg" role="button" aria-labelledby="67ba09e009b20d50d786cb67-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740245472699-O72F4S35UUI7F58ZTP06/Task03_s.jpg" data-image-dimensions="1440x3216" data-image-focal-point="0.4229773319128788,0.24829931972789115" alt="Task details for 'Use Pi-Hole'" data-load="false" data-image-id="67ba09e009b20d50d786cb67" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740245472699-O72F4S35UUI7F58ZTP06/Task03_s.jpg?format=1000w" /><br>
                </a>
                
                  Task details for 'Use Pi-Hole'
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Task details for 'Use NextDNS'" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;After creating the previous task, repeat the same steps to create a second task. Here we are setting &lt;strong&gt;private_dns_mode&lt;/strong&gt; to &lt;strong&gt;hostname&lt;/strong&gt;. &lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Again, remember to check the ‘&lt;em&gt;Use Root’&lt;/em&gt; checkbox&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740245472807-PHNPXAMRG7F0B5U4YRX4/Task04_s.jpg" role="button" aria-labelledby="67ba09e04c893639aeca2b43-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740245472807-PHNPXAMRG7F0B5U4YRX4/Task04_s.jpg" data-image-dimensions="1440x3216" data-image-focal-point="0.4835870916193182,0.2687074829931973" alt="Task details for 'Use NextDNS'" data-load="false" data-image-id="67ba09e04c893639aeca2b43" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740245472807-PHNPXAMRG7F0B5U4YRX4/Task04_s.jpg?format=1000w" /><br>
                </a>
                
                  Task details for 'Use NextDNS'
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-large">Create the Profiles</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Launch Tasker, go to the Profiles tab" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Where the ‘Tasks’ tab handles the &lt;em&gt;what&lt;/em&gt;, the ‘Profiles’ tab handles the &lt;em&gt;when&lt;/em&gt;. &lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This is where we define the conditions for doing what we want.&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246528243-B4A8PKQ83Q0A4I7OF1FE/01_s.jpg" role="button" aria-labelledby="67ba0e00e7203976eaceb652-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246528243-B4A8PKQ83Q0A4I7OF1FE/01_s.jpg" data-image-dimensions="1440x3216" data-image-focal-point="0.5290397875236742,0.29591836734693877" alt="Launch Tasker, go to the Profiles tab" data-load="false" data-image-id="67ba0e00e7203976eaceb652" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246528243-B4A8PKQ83Q0A4I7OF1FE/01_s.jpg?format=1000w" /><br>
                </a>
                
                  Launch Tasker, go to the Profiles tab
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Click the [+]" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Select &lt;strong&gt;State &lt;/strong&gt;from the menu that pops up.&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246528353-I7ZEC9AT76YP2P8BPTTJ/02_s.jpg" role="button" aria-labelledby="67ba0e00e0a17e09ea512278-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246528353-I7ZEC9AT76YP2P8BPTTJ/02_s.jpg" data-image-dimensions="1440x3216" data-image-focal-point="0.4532840613162879,0.336734693877551" alt="Click the [+]" data-load="false" data-image-id="67ba0e00e0a17e09ea512278" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246528353-I7ZEC9AT76YP2P8BPTTJ/02_s.jpg?format=1000w" /><br>
                </a>
                
                  Click the [+]
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Define your criteria" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;You can set a multitude of conditions but for this example, we want to toggle the behaviour depending on whether we are connected to a specific Wi-Fi network or not.&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246529130-US2JCMYHX3921BMZPKT2/03_s.jpg" role="button" aria-labelledby="67ba0e01187c32783afccccf-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246529130-US2JCMYHX3921BMZPKT2/03_s.jpg" data-image-dimensions="1440x3216" data-image-focal-point="0.46843557646780304,0.24149659863945577" alt="Define your criteria" data-load="false" data-image-id="67ba0e01187c32783afccccf" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246529130-US2JCMYHX3921BMZPKT2/03_s.jpg?format=1000w" /><br>
                </a>
                
                  Define your criteria
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Setting the 'WiFi Connected' details" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;The simplest route is to define the SSIDs that we want to trigger based on, although you can dive into things a bit more (more on this later). For most users, I suspect setting &lt;strong&gt;Active&lt;/strong&gt;to &lt;strong&gt;Yes&lt;/strong&gt; will be the best route.&lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;You can set multiple SSID by adding / between them.&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246530095-OJUUWU56U0Z3V8VV4ITZ/05_s.jpg" role="button" aria-labelledby="67ba0e02e78a013986ecd485-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246530095-OJUUWU56U0Z3V8VV4ITZ/05_s.jpg" data-image-dimensions="1440x3216" data-image-focal-point="0.4835870916193182,0.2687074829931973" alt="Setting the 'WiFi Connected' details" data-load="false" data-image-id="67ba0e02e78a013986ecd485" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246530095-OJUUWU56U0Z3V8VV4ITZ/05_s.jpg?format=1000w" /><br>
                </a>
                
                  Setting the 'WiFi Connected' details
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Now we define 'what to do'" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Going back from the previous page, we are now prompted to specify the task we want to run (when connected to the SSID)&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246659300-MQN2OQUHZ8RND3RP448D/05b_s.jpg" role="button" aria-labelledby="67ba0e8311eba01ac30961da-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246659300-MQN2OQUHZ8RND3RP448D/05b_s.jpg" data-image-dimensions="1440x3216" data-image-focal-point="0.4835870916193182,0.29591836734693877" alt="Now we define 'what to do'" data-load="false" data-image-id="67ba0e8311eba01ac30961da" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246659300-MQN2OQUHZ8RND3RP448D/05b_s.jpg?format=1000w" /><br>
                </a>
                
                  Now we define 'what to do'
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Setting the 'else' condition" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Now that we have defined the “what to do when we are on the given SSID”, we can long-press and select ‘&lt;strong&gt;Add Exit  Task&lt;/strong&gt;’&lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This will handle the “what to do when we &lt;em&gt;aren’t&lt;/em&gt; on the given SSID”&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246530157-RWZPZ72T1ZEIBMCZPPI4/Profile06_s.jpg" role="button" aria-labelledby="67ba0e02896d7863120ec032-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246530157-RWZPZ72T1ZEIBMCZPPI4/Profile06_s.jpg" data-image-dimensions="1440x3216" data-image-focal-point="0.5138901219223485,0.3299319727891156" alt="Setting the 'else' condition" data-load="false" data-image-id="67ba0e02896d7863120ec032" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246530157-RWZPZ72T1ZEIBMCZPPI4/Profile06_s.jpg?format=1000w" /><br>
                </a>
                
                  Setting the 'else' condition
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Select the other task" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;And we’re done!&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246530900-LE61G6I40O4YQE2FUMBY/Profile07_s.jpg" role="button" aria-labelledby="67ba0e02019e0811dbd42849-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246530900-LE61G6I40O4YQE2FUMBY/Profile07_s.jpg" data-image-dimensions="1440x3216" data-image-focal-point="0.4532822117660985,0.2755102040816326" alt="Select the other task" data-load="false" data-image-id="67ba0e02019e0811dbd42849" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1740246530900-LE61G6I40O4YQE2FUMBY/Profile07_s.jpg?format=1000w" /><br>
                </a>
                
                  Select the other task
                
              
            
          

          
        

      
    
  

  











  
  <p class="">This is a super simplified starting point to get you started. There are a couple easy ways to spruce things up:</p><ul data-rte-list="default"><li><p class="">You can add [persistent] <a href="https://tasker.joaoapps.com/userguide/en/help/ah_notification.html" target="_blank">notifications</a> to the each of the Tasks to add a visual cue to indicate whether you are in ‘Pi-Hole mode’ or ‘NextDNS mode’ (as I have in a few of my screenshots). If you go down this route, make sure you also add a ‘<a href="https://tasker.joaoapps.com/userguide/en/help/ah_cancel_notification.html" target="_blank">Notify Cancel</a>’ action (to clear the previous persistent notification)</p></li><li><p class="">You can react to users clicking on the notification using ‘<a href="https://tasker.joaoapps.com/userguide/en/help/eh_notification_clicked.html" target="_blank">Notification Click</a>’, by triggering a <a href="https://tasker.joaoapps.com/userguide/en/help/ah_view_url.html" target="_blank">Browse URL</a> action (a useful NextDNS URL would be https://my.nextdns.io/YOUR_NEXTDNS_ID/analytics)</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="parental-controls">Novel use case: parental controls</h3>
  


  
  <p class="">Just thinking about this for a moment, there’s definitely a <em>novel</em> use case specific for parents here. At home, you might go down the route of adding in protections, filtering and parental controls but what if your kid goes to a friend’s house and connects to Wi-Fi there? Now with this automated Private DNS, regardless of what filtering may or may not be in place at the friend’s house, there everything will still go through NextDNS.</p><p class="">As a bit of a corner case if you happen to use a generic SSID (i.e., ‘Guest’, or ‘Kids’): you may want to consider specifying the MAC address of your router/AP instead of just the SSID. This way, when your kid goes to a friend’s house and connects to the ‘Kids’ network, there will still be filtering in place.</p><blockquote><p class="">Of course, permanently setting the Private DNS setting will always provide you with the protection and you only need to look for logs in one location (in NextDNS) <em>but</em>, depending on the number of kids/devices, you will be more likely to hit the 300K/month query limit/</p></blockquote><p class="">One more neat thing: you can add some identifiers to the <a href="https://help.nextdns.io/t/x2h76ay/device-information-log-enrichment" target="_blank">DNS logging</a>. For example, if your NextDNS identifier is A1B2C3, then you might set your Private DNS for multiple kids/devices:</p><ul data-rte-list="default"><li><p class="">john-phone-A1B2C3.dns.nextdns.io</p></li><li><p class="">john-tablet-A1B2C3.dns.nextdns.io</p></li><li><p class="">susy-phone-A1B2C3.dns.nextdns.io</p></li><li><p class="">shared-device-A1B2C3.dns.nextdns.io</p></li></ul><p class="">Now, when you go to your NextDNS analytics, you can see which device/user is going where.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    <h3 id="summary">Summary</h3>
  


  
  <p class="">As I mentioned above, everything still <em>works</em> if you permanently set the Private DNS for all devices — just that we bypass the value of having Pi-Hole protecting our home network. Yes, by having a two-pronged approach, we will still need to maintain two sets of rules (I’m a bit more lax with my NextDNS settings) but there is consistency in having “all home devices are covered by Pi-Hole and nothing else”.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/png" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1739215524528-3FD9YOZ0FCMYMTZLKC57/SelfHostDariesLogo_s.png?format=1500w" medium="image" isDefault="true" width="547" height="355"><media:title type="plain">Self-Hosted Diaries (2025.2)</media:title></media:content></item><item><title>Self-Hosted Diaries (2025.1)</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Mon, 10 Feb 2025 21:05:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/self-hosted-2025-1</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:67a617482700da460984a610</guid><description><![CDATA[Over the last couple years, I’ve taken the effort to get my network into a 
more structured and organized state.

The next step in this ongoing process is to assess the various cloud 
services I’m already using consider the potential benefits of moving them 
to my own local infrastructure.

And comically, all of this started because I wanted to save $5.]]></description><content:encoded><![CDATA[<p class="">Containerization (and in particular, Docker) is a pretty hot thing now (well, it has been for a little bit). I had previously dabbled with some basic hello-world containers but I <em>didn’t get it</em>. Truthfully, I <em>still don’t get it</em>, but figure if I give it an earnest effort, maybe one day it’ll just click and make sense. Or at the least, I can to play with some neat technologies. </p><p class="">Prior to starting down the self-hosted journey, I made the jump to a slightly more structured <a href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-1" target="_blank">networking setup</a>, so this was the next logical progression.</p>


  






  



<hr />&nbsp;
  
  <p class="sqsrte-large">Self-hosted Series</p><p class="">This post is part of a series, check out the other posts!</p>


  






  



<hr />&nbsp;
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#beginning" target="">In the beginning…</a></p></li><li><p class=""><a href="#getting-started" target="">Getting started</a></p></li><li><p class=""><a href="#setup">My self-hosting setup</a></p><ul data-rte-list="default"><li><p class=""><a href="#setup-1">At a glance</a></p></li><li><p class=""><a href="#setup-2">Flow</a></p></li><li><p class=""><a href="#setup-3">Hooking up the reverse-proxy</a></p></li></ul></li><li><p class=""><a href="#spotlight" target="">Services spotlight: what kinds of stuff do I host?</a></p><ul data-rte-list="default"><li><p class=""><a href="#spotlight-1" target="">Vaultwarden</a></p></li><li><p class=""><a href="#spotlight-2">Actual Budget</a></p></li><li><p class=""><a href="#spotlight-3">Vikunja</a></p></li></ul></li><li><p class=""><a href="#future">Looking ahead</a></p></li></ul>


  






  



<hr />
  
    <h3 id="beginning">In the beginning...</h3>
  


  
  <p class="">A <em>long</em> time ago, I was in the market for a password manager and the big player in that space at the time was LastPass. I was no stranger to password complexity, but I was looking for a usability improvement (as compared to a local passwords file). To me, LastPass scored very highly on usability and not long after, I migrated to their Premium plan and then a little time later, their Family plan.</p><p class="">Generally speaking (and despite a few high-profile security breaches), I was fairly happy with the service. What I wasn’t too impressed with, were the crazy high prices. </p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/eee9225a-781c-4efd-b438-a820dd7afc6b/PasswordPricing_s.png" data-image-dimensions="1334x437" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/eee9225a-781c-4efd-b438-a820dd7afc6b/PasswordPricing_s.png?format=1000w" width="1334" height="437" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/eee9225a-781c-4efd-b438-a820dd7afc6b/PasswordPricing_s.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/eee9225a-781c-4efd-b438-a820dd7afc6b/PasswordPricing_s.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/eee9225a-781c-4efd-b438-a820dd7afc6b/PasswordPricing_s.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/eee9225a-781c-4efd-b438-a820dd7afc6b/PasswordPricing_s.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/eee9225a-781c-4efd-b438-a820dd7afc6b/PasswordPricing_s.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/eee9225a-781c-4efd-b438-a820dd7afc6b/PasswordPricing_s.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/eee9225a-781c-4efd-b438-a820dd7afc6b/PasswordPricing_s.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Pricing snapshot of some password managers, Jan 2025</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">But that’s just how these online services work right? They wow you with a fantastic onboarding experience but to get out? Well, that’s going to be a bit more involved, now that you’re invested into their ecosystem. Looking at this list now, it’s kind of wild that LastPass represents one of the  ‘more affordable options’. </p><p class="">Imagine my surprise when Synology announced a password service, <a href="https://c2.synology.com/en-global/password/overview" target="_blank">C2 Password</a> in 2021 and I saw their pricing:</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/74c5c393-219d-4be8-b111-23c10bcf04ef/BudgetPasswordPrice_s.png" data-image-dimensions="1049x251" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/74c5c393-219d-4be8-b111-23c10bcf04ef/BudgetPasswordPrice_s.png?format=1000w" width="1049" height="251" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/74c5c393-219d-4be8-b111-23c10bcf04ef/BudgetPasswordPrice_s.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/74c5c393-219d-4be8-b111-23c10bcf04ef/BudgetPasswordPrice_s.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/74c5c393-219d-4be8-b111-23c10bcf04ef/BudgetPasswordPrice_s.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/74c5c393-219d-4be8-b111-23c10bcf04ef/BudgetPasswordPrice_s.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/74c5c393-219d-4be8-b111-23c10bcf04ef/BudgetPasswordPrice_s.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/74c5c393-219d-4be8-b111-23c10bcf04ef/BudgetPasswordPrice_s.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/74c5c393-219d-4be8-b111-23c10bcf04ef/BudgetPasswordPrice_s.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Pricing snapshot for Synology’s C2 Password service, Jan 2025</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
    
  
  <p class="">I had to do a double-take on the numbers. For just a tiny bit more than the <em>monthly</em> cost of LastPass, I would get a <em>year’s worth</em> of service. Sure, naysayers have/had some very valid points to consider:</p><ul data-rte-list="default"><li><p class="">This might be introductory pricing and they will jack the prices up down the road</p></li><li><p class="">They might decide this service isn’t worth it for them and pull the plug</p></li><li><p class="">Can you trust them?</p></li></ul><p class="">At the end of the day, for that kind of a price drop, it was worth at least <em>trying</em>. It took me about three days fully cut over to C2 and never look back. <span data-text-attribute-id="9f2942a3-551b-43ec-8609-e3b82c8d8952" class="sqsrte-text-highlight">For $5 a year, it’s pretty unbeatable, no complaints</span>.</p><p class="">But I had a nagging thought:</p>


  






  



&nbsp;<figure class="block-animation-site-default"
>
  <blockquote data-animation-role="quote"
  >
    <span>“</span>Okay, C2 Password is great — but can I somehow cut back on that $5/year expense?<span>”</span>
  </blockquote>
  <figcaption class="source">&mdash; Me, being a cheapass.</figcaption>
  
  
</figure>&nbsp;
  
    
  
  <p class="">And it was this goal of saving $5 that set me off down the rabbit hole of self-hosted services…</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="getting-started">Getting started</h3>
  


  
  <p class="">Talk about self-hosting usually brings with it a few predictable questions</p>


  






  
























  
  





<ul data-should-allow-multiple-open-items="true" data-accordion-icon-placement="left" data-is-last-divider-visible="true" data-is-expanded-first-item="true" data-is-divider-enabled="" data-accordion-title-alignment="left" class="accordion-items-container" data-is-first-divider-visible="true" data-accordion-description-alignment="left" data-accordion-description-placement="left"
>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 0px;
            padding-bottom: 10px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            What is self-hosting?
          </span>
          
            
              
                
              
            
          
        </button>
      </p>
      
        
          <p data-rte-preserve-empty="true">As the name suggests, it refers to running your own services, on your own hardware, on your own terms. While this isn’t an exhaustive, definitive definition, it’s pretty close, I think. A few easy examples:</p><ul data-rte-list="true"><li><p data-rte-preserve-empty="true">A business might have an ‘on premise’ email server</p></li><li><p data-rte-preserve-empty="true">Someone might have their own multiplayer server for a game</p></li></ul><p data-rte-preserve-empty="true">These are pretty clear cut: you can run whatever version of the software you want, with whatever configuration you want, any way you want. </p><p data-rte-preserve-empty="true">A few grey-area examples:</p><ul data-rte-list="true"><li><p data-rte-preserve-empty="true">You pay Amazon for an EC2 instance to run your own services</p></li><li><p data-rte-preserve-empty="true">You rent a dedicated game server</p></li></ul><p data-rte-preserve-empty="true">These are a bit grey area because the amount of ultimate control you have may be limited: Amazon may discontinue your server instance, or the game server <em>must</em> run a specific version or configuration of the game.</p><p data-rte-preserve-empty="true">Self-hosted can mean different things to different people, but as more and more restrictions are placed on when, how, where etc. you run your software, the more it moves away from the idea of being ‘self hosted’</p>
        
      

      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 0px;
            padding-bottom: 10px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Why would you self-host?
          </span>
          
            
              
                
              
            
          
        </button>
      </p>
      
        
          <p data-rte-preserve-empty="true">Sometimes phrased as ‘what’s wrong with using &lt;existing service&gt;’, </p><ul data-rte-list="true"><li><p data-rte-preserve-empty="true"><strong>You control all aspects of the service</strong>. This can mean different things for different people:</p><ul data-rte-list="true"><li><p data-rte-preserve-empty="true">You control what <em>version</em> of the service you run. Lots of us have encountered a scenario where a company has rolled out an update we don’t necessarily agree with: either they change some functionality or worse, they remove it. When you self-host, you have some options: you can simply<em> not</em> update, you can skip/disable/bypass the change or you can implement fixes/workarounds independently</p></li><li><p data-rte-preserve-empty="true">You control your data: if you want to take a quick backup <em>right now</em>? You can. If you want to purge all traces everything and start from scratch? You can. And if you do (or don’t) want your data to feed AI training models? You’re in control. More on this in a bit.</p></li><li><p data-rte-preserve-empty="true">Generally speaking, you control <em>when</em> your service has downtime (if applicable). For example, gamers <em>love </em>it when game companies roll out big patches on Friday night…</p></li></ul></li><li><p data-rte-preserve-empty="true"><strong>The cost angle</strong>. Services may be affordable <em>now</em>, but [a] they add up and [b] we all know that as soon as they can, the subscription cost will go up. On the note of free services (Google I’m looking at you), not only are we at the mercy of features being paywalled down the road, with ‘free services’, <em><u>we</u></em> are the commodity. We are being profiled for ad targeting.</p></li><li><p data-rte-preserve-empty="true"><strong>Self investment</strong>. Suppose there’s a service you’re going to use anyways — something like ChatGPT for example. Without getting into tinfoil hat territory, the more you use their services, the more it benefits them (rightfully so)  - but what if you could run your own and thus, benefit your own training pool? While you’re not likely going to outcompete with their resources, this does go a bit towards minimizing your risks when they inevitably change the services (either the functionality or the price, or both)</p></li></ul><p data-rte-preserve-empty="true">At a high level, just looking at the streaming industry over the last decade should give a pretty clear (and dire) picture of how the next decade will roll.</p><ol data-rte-list="true"><li><p data-rte-preserve-empty="true">First prices will go up and product segmentation will try and carve up the consumer base to make new ‘norms’. </p></li><li><p data-rte-preserve-empty="true">Next, companies will reduce service, coverage, quality, etc. (and spin it as an effort to be equal to everyone or how it’s ‘no longer viable to support’ — woe is them)</p></li><li><p data-rte-preserve-empty="true">Repeat for more profit.</p></li></ol>
        
      

      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 0px;
            padding-bottom: 10px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            But what about...?
          </span>
          
            
              
                
              
            
          
        </button>
      </p>
      
        
          <ul data-rte-list="true"><li><p data-rte-preserve-empty="true">Self-hosting isn’t all rainbows either: sometimes features can be hidden, removed, changed etc. and while it <em>may</em> (and likely will) be possible to mitigate these changes, not everyone has the time, resources or care to go through the damn hassle</p></li><li><p data-rte-preserve-empty="true">Truthfully, if you’re not living and breathing this space, it can be really intimidating and frustrating. I cannot begin to count the number of times I’ve yelled “<em>JUST #&amp;^$%! WORK</em>” while figuring out some nuance about a service</p></li><li><p data-rte-preserve-empty="true">Yes, you’re 100% on the hook for your own uptime, data security, etc. If you’re self-hosting for a business, this can mean added costs in the way of fail-over, redundancy etc. There can be a lot of upfront costs that may sting in comparison to a “small monthly fee”</p></li><li><p data-rte-preserve-empty="true">You’re 100% on the hook for your own backups too. Obviously this would be covered by the previous bullet, but given how ‘lax a lot of people are with backups, I thought it’d be worth it’s own bullet</p></li><li><p data-rte-preserve-empty="true">Worth noting: not everyone’s spouse, family etc., is as open-minded and forgiving as mine. I’m pretty lucky in that respect…</p></li></ul>
        
      

      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 0px;
            padding-bottom: 10px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            What can I self-host?
          </span>
          
            
              
                
              
            
          
        </button>
      </p>
      
        
          <p data-rte-preserve-empty="true">For a lot of people, thing that run through a web-browser makes for a great place to start (it’s wild the breadth and depth of stuff that can run through a browser). I get a lot of inspiration from lists like</p><ul data-rte-list="true"><li><p data-rte-preserve-empty="true"><a target="_blank" href="https://awesome-selfhosted.net/">Awesome-Selfhosted </a></p></li><li><p data-rte-preserve-empty="true"><a target="_blank" href="https://awweso.me/">Awwesome </a></p></li><li><p data-rte-preserve-empty="true"><a target="_blank" href="https://awesomeselfhosted.netlify.app/?ref=selfh.st">ASH UI</a></p></li></ul>
        
      

      

    </li>
  
</ul>

  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="setup">My self-hosting setup</h3>
  


  
    <h4 id="setup-1">At a glance</h4>
  


  
  <p class="">I started self-hosting via <a href="https://www.synology.com/en-ca/dsm/feature/container-manager" target="_blank">Container Manager</a> (essentially, an implementation of <a href="https://www.docker.com/" target="_blank">Docker</a>) on my Synology NAS. The first container I ran was <a href="https://www.portainer.io/" target="_blank">Portainer</a> which I use as a wonderful front-end for managing all of my actual containers. There are a ton of Synology-centric guides, but I used a combination of guides from <a href="https://www.wundertech.net/how-to-install-portainer-on-a-synology-nas/" target="_blank">Wundertech</a> and <a href="https://mariushosting.com/synology-30-second-portainer-install-using-task-scheduler-docker/" target="_blank">MariusHosting</a> when I got started. After I got Portainer up and running, I went headfirst down the rabbit hole, voraciously trying out new tools left, right and center. </p><p class="">For awhile now, I’ve held steady with around 100 or so containers spread across two Docker hosts. For my second Docker host, I went with Raspberry Pi 5 for a couple reasons:</p><ol data-rte-list="default"><li><p class="">Mostly, so I could test out <a href="https://frigate.video/" target="_blank">Frigate</a> using a <a href="https://coral.ai/products/m2-accelerator-ae/" target="_blank">Coral TPU</a> and,</p></li><li><p class="">There are more than a few services I <em>can’t</em> run on off Synology NAS due to OS using an old kernel version. For my NAS, the specific error to look out for is ‘<strong>failed to get urandom</strong>’ or something to related to random-numbers or cryptographic seeding. Thankfully, most of these services that I couldn’t run on the NAS, I was able to run using the Pi (note the architecture difference: x86 vs ARM)</p></li></ol><p class="">Longer term, I would like to get a dedicated (x86) mini PC to <a href="https://www.minmaxgeek.com/blog/wall-desk-mkii#step-4" target="_blank">sit above my current desktop</a> to be my primary Docker host. By moving the bulk (or ideally, all) of my containers from the NAS to this higher-performance Docker host, I can realize a few benefits:</p><ol data-rte-list="default"><li><p class="">From time to time, I need to reboot my NAS (say, for patching) — the extra load of firing up a ton of Docker containers on reboot is brutal (it can add 30 minutes to the boot time, ha)</p></li><li><p class="">I prefer to use my NAS purely as a storage-only device and to let computing happen independently of that</p></li><li><p class="">A standalone Docker host will offer a ton more performance and, given that I have dedicated connectivity (USB, power, networking, etc.) for this machine directly built into the upper cubby, it’ll be easy to interact with</p></li><li><p class="">In theory, I should be able to be free from the limitations of old-Linux-kernel</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p></li></ol>


  






  




  
    <h4 id="setup-2">Flow</h4>
  


  
  <p class="">Looking at the flow and connectivity of my services, I’m setup something like this:</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/38e84e2c-95c9-42bf-befa-c186b53c96e1/docker-flow_s.jpg" data-image-dimensions="3632x2430" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/38e84e2c-95c9-42bf-befa-c186b53c96e1/docker-flow_s.jpg?format=1000w" width="3632" height="2430" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/38e84e2c-95c9-42bf-befa-c186b53c96e1/docker-flow_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/38e84e2c-95c9-42bf-befa-c186b53c96e1/docker-flow_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/38e84e2c-95c9-42bf-befa-c186b53c96e1/docker-flow_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/38e84e2c-95c9-42bf-befa-c186b53c96e1/docker-flow_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/38e84e2c-95c9-42bf-befa-c186b53c96e1/docker-flow_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/38e84e2c-95c9-42bf-befa-c186b53c96e1/docker-flow_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/38e84e2c-95c9-42bf-befa-c186b53c96e1/docker-flow_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">The bits and pieces of my self-hosted setup (Jan 2025)</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">The two big pieces of the puzzle (at least for me) were getting a reverse-proxy and local-DNS  in place.</p><ol data-rte-list="default"><li><p class=""><strong>Reverse-proxy</strong>: think of a reverse-proxy as a switchboard operator for network traffic.</p><ul data-rte-list="default"><li><p class="">This is the system that routes traffic from a domain to the appropriate server (or in this case, the Docker container):</p><ul data-rte-list="default"><li><p class="">serviceA.domain.com → docker-container-A</p></li><li><p class="">serviceB.domain.com → docker-container-B</p></li><li><p class="">serviceC.domain.com → docker-container-C</p></li></ul></li><li><p class="">You can have multiple incoming URLs point to the same server/container. This can be handy if you haven’t figured out how you want to call your services, or if you want to make a quick test mapping without affecting live mappings</p><ul data-rte-list="default"><li><p class="">serviceA.domain.com → docker-container-A</p></li><li><p class="">service-A.domain.com → docker-container-A</p></li><li><p class="">a.domain.com → docker-container-A</p></li><li><p class="">a-service.domain.com → docker-container-A</p></li></ul></li><li><p class="">The reverse proxy can also handle wrapping everything with SSL certificates (handy for getting mitigating the pesky “this site isn’t secure” warnings that browsers throw at you) and can be integrated with authentication services like <a href="https://www.authelia.com/integration/proxies/nginx-proxy-manager/" target="_blank">Authelia</a>. Some/many (but not all) services have integrated user authentication but:</p><ul data-rte-list="default"><li><p class="">You can use a standalone authentication service like Authelia to cover the services that don’t and</p></li><li><p class="">You could even use Authelia to cover the services that <em>do</em> have their own integrated authentication, giving you the option of disabling the built-in authentication. This would turn Authelia into something of a sorta-single-sign-on.</p></li></ul></li></ul></li><li><p class=""><strong>Local DNS:</strong> we’re familiar with what DNS is — it’s the magic that converts an IP address like 1.2.3.4 into a more memorable thing like domain.com. Here, we use DNS to make ‘custom shortcuts’ that point to the same domain.</p><ul data-rte-list="default"><li><p class="">serviceA.domain.com → domain.com</p></li><li><p class="">serviceB.domain.com → domain.com</p></li><li><p class="">serviceC.domain.com → domain.com</p></li></ul></li></ol>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Reverse-Proxy example" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;The reverse proxy allows us to ‘switchboard’, or ‘orchestrate’ where specific calls get routed based on the URL coming in.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1739123346037-XVVPHCAO0JS33K9FR46Q/reverse-proxy_s.jpg" role="button" aria-labelledby="67a8ea9150263c432b34b435-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1739123346037-XVVPHCAO0JS33K9FR46Q/reverse-proxy_s.jpg" data-image-dimensions="3024x2150" data-image-focal-point="0.5068027210884354,0.09761904761904762" alt="Reverse-Proxy example" data-load="false" data-image-id="67a8ea9150263c432b34b435" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1739123346037-XVVPHCAO0JS33K9FR46Q/reverse-proxy_s.jpg?format=1000w" /><br>
                </a>
                
                  Reverse-Proxy example
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="DNS example" data-description="&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;With A Records, we can associate a domain name with an IP (as you normally would).&lt;/p&gt;&lt;p data-rte-preserve-empty=&quot;true&quot; style=&quot;white-space:pre-wrap;&quot;&gt;With CNAMEs, we can make ‘shortcuts’ for each service we are hosting', that point to the A record of the server that is hosting that service.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1739123707262-FOROTE0IHAPJAKS1YXEM/local-dns_s.jpg" role="button" aria-labelledby="67a8ebfb4c89a8073444d602-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1739123707262-FOROTE0IHAPJAKS1YXEM/local-dns_s.jpg" data-image-dimensions="4066x1590" data-image-focal-point="0.5,0.5" alt="DNS example" data-load="false" data-image-id="67a8ebfb4c89a8073444d602" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1739123707262-FOROTE0IHAPJAKS1YXEM/local-dns_s.jpg?format=1000w" /><br>
                </a>
                
                  DNS example
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="setup-3">Hooking up the reverse-proxy</h4>
  


  
  <p class="">Over the two services, <a href="https://nginxproxymanager.com/" target="_blank">NGINX Proxy Manager</a> (NPM) running on the NAS (specifically), was the [much] harder of the two — due to Synology quirkiness: Synology claims port 80 and 443 for itself. You can use the built-in <a href="https://kb.synology.com/en-us/DSM/help/DSM/AdminCenter/system_login_portal_advanced?version=7" target="_blank">Synology Reverse Proxy</a> (which I tried out - but it’s clunky and I didn’t like it). It’s a bit hazy, but at a super high level:</p><ol data-rte-list="default"><li><p class="">Create a MACVLAN that binds to a physical network port (thankfully, my NAS has several)</p></li><li><p class="">Create a bridge network</p></li><li><p class="">On the NPM Docker compose, assign both networks</p></li></ol>


  






  
























  
  





<ul data-should-allow-multiple-open-items="" data-accordion-icon-placement="left" data-is-last-divider-visible="true" data-is-expanded-first-item="" data-is-divider-enabled="" data-accordion-title-alignment="left" class="accordion-items-container" data-is-first-divider-visible="true" data-accordion-description-alignment="left" data-accordion-description-placement="left"
>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 0px;
            padding-bottom: 0px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Creating the MACVLAN
          </span>
          
            
              
                
              
            
          
        </button>
      </p>
      
        
          <p data-rte-preserve-empty="true">For me this was the more complicated task to do (<a target="_blank" href="https://duckduckgo.com/?t=ffab&amp;q=macvlan+synology+docker&amp;ia=web">this</a> was my starting point).</p><p data-rte-preserve-empty="true">At a high level</p><ol data-rte-list="true"><li><p data-rte-preserve-empty="true">Enable remote access to your NAS</p></li><li><p data-rte-preserve-empty="true">SSH into your NAS</p></li><li><p data-rte-preserve-empty="true">List your network cards (<strong>ifconfig</strong>) and pick one (i.e., <strong>ovs_eth1</strong>). Now,</p><ul data-rte-list="true"><li><p data-rte-preserve-empty="true">Identify the gateway IP for that NIC (i.e., <strong>192.168.10.1</strong>) This will be listed in the ifconfig call.</p></li><li><p data-rte-preserve-empty="true">Set an IP range for this network we are creating. For me, I only plan to have NPM on this special network, so I only needed one IP (i.e., <strong>192.168.10.15/32</strong>)</p></li><li><p data-rte-preserve-empty="true">Pick a name for your network (i.e., <strong>mymacvlan</strong>)</p></li></ul></li><li><p data-rte-preserve-empty="true">Create the network:</p><p data-rte-preserve-empty="true">sudo docker network create -d macvlan -o parent=<strong>ovs_eth1 </strong>--gateway=<strong>192.168.10.1</strong> --ip-range=<strong>192.168.10.15/32mymacvlan</strong></p></li></ol>
        
      

      

    </li>
  
</ul>











































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2fabc868-441f-489e-a310-c3e8b86e712c/npm-docker-settings_s.jpg" data-image-dimensions="5012x1736" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2fabc868-441f-489e-a310-c3e8b86e712c/npm-docker-settings_s.jpg?format=1000w" width="5012" height="1736" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2fabc868-441f-489e-a310-c3e8b86e712c/npm-docker-settings_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2fabc868-441f-489e-a310-c3e8b86e712c/npm-docker-settings_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2fabc868-441f-489e-a310-c3e8b86e712c/npm-docker-settings_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2fabc868-441f-489e-a310-c3e8b86e712c/npm-docker-settings_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2fabc868-441f-489e-a310-c3e8b86e712c/npm-docker-settings_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2fabc868-441f-489e-a310-c3e8b86e712c/npm-docker-settings_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/2fabc868-441f-489e-a310-c3e8b86e712c/npm-docker-settings_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Hooking up the networking bits for Nginx Proxy Manager</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">Now, within NPM, you can create, a proxy host for your example service:</p><ul data-rte-list="default"><li><p class="">The domain names here line up with whatever CNAMES we’ve created in our local DNS</p></li><li><p class="">The forward IP just needs to match the <strong>gateway</strong> for our <strong>mybridgenetwork</strong></p></li><li><p class="">The port will need to match whatever the port number is for your Docker container</p></li></ul>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/cf05ba98-5350-4144-8fe2-5fa852d2995c/create-npm_s.jpg" data-image-dimensions="490x476" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/cf05ba98-5350-4144-8fe2-5fa852d2995c/create-npm_s.jpg?format=1000w" width="490" height="476" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/cf05ba98-5350-4144-8fe2-5fa852d2995c/create-npm_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/cf05ba98-5350-4144-8fe2-5fa852d2995c/create-npm_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/cf05ba98-5350-4144-8fe2-5fa852d2995c/create-npm_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/cf05ba98-5350-4144-8fe2-5fa852d2995c/create-npm_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/cf05ba98-5350-4144-8fe2-5fa852d2995c/create-npm_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/cf05ba98-5350-4144-8fe2-5fa852d2995c/create-npm_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/cf05ba98-5350-4144-8fe2-5fa852d2995c/create-npm_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Example of defining a reverse proxy entry</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">I am, by no means, an expert on this (not even close) and there may be better ways to do things, but this was what ended up working for me after trying a few options and more importantly, a <em>ton</em> of cursing. Your mileage may vary haha.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="spotlight">Services spotlight: what kinds of stuff do I host?</h3>
  


  
    <h4 id="spotlight-1">Vaultwarden</h4>
  


  
  <p class="">My original objective had been to self-host a password manager, so this was one of my earlier projects. I had originally set out to try and host <a href="https://github.com/bitwarden" target="_blank">Bitwarden</a> but I found that to be a bit more stressful to deploy than I liked so I gave <a href="https://github.com/dani-garcia/vaultwarden" target="_blank">Vaultwarden</a> a spin and it was a dream to get running. Vaultwarden is feature compatible with extensions/apps made for Bitwarden so this was a win all around.</p><p class="">Migrating from C2 was a different story though: there was no easy way to export/import so I had to do things manually. There is a <a href="https://github.com/HyperNylium/SynologyC2Password-to-Bitwarden" target="_blank">script</a> that promises to help alleviate this pain but I found it wasn’t too bad to do things manually once I got underway - doing things manually was a good opportunity to rotate passwords, increase complexity and where appropriate, close out accounts. All in all it took me a couple days to fully migrate over.</p><p class="">Having the local-desktop-app makes managing your credentials en-mass much more pleasant - your pace is limited only by your keyboard and mouse and not any webserver-refresh/fetch.</p><p class="">Deploying Vaultwarden was a great intro project and allowed me to meet my goal of saving that $5/yr.</p>


  






  
























  
  





<ul data-should-allow-multiple-open-items="" data-accordion-icon-placement="left" data-is-last-divider-visible="true" data-is-expanded-first-item="true" data-is-divider-enabled="" data-accordion-title-alignment="left" class="accordion-items-container" data-is-first-divider-visible="true" data-accordion-description-alignment="left" data-accordion-description-placement="left"
>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 0px;
            padding-bottom: 0px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Notes
          </span>
          
            
              
                
              
            
          
        </button>
      </p>
      
        
          <ul data-rte-list="true"><li><p data-rte-preserve-empty="true">For most users, you’ll want to allow this to be exposed to the outside in some way (with all of the security gotchas that go along with that). A <a target="_blank" href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/">Cloudflare Tunnel </a>setup can be a fairly low-effort and low-stress way to expose this service.</p></li><li><p data-rte-preserve-empty="true">When connecting the Bitwarden extension to your server, note that you’ll need to <a target="_blank" href="https://bitwarden.com/help/change-client-environment/">switch the mode</a> drop-down to self-hosted</p></li></ul>
        
      

      

    </li>
  
</ul>

  
    <h4 id="spotlight-2">Actual Budget</h4>
  


  
  <p class="">For a few years, I’ve used <a href="https://www.ynab.com/" target="_blank">YNAB</a> as a way to track expenses and do budgeting. YNAB wasn’t cheap and for me (at least for a time), there was <em>some value</em> in having transactions auto-import. At some point though, <em>something </em>changed: it could be the banks themselves, the middle-ware responsible for handling imports, or YNAB, frankly, I don’t know but the process of importing because a colossal pain in the butt (mostly stuck on minutes-long loading screens). Between this frustration and YNAB increasing it’s prices, this was a kick in the pants for me to take a look at something — <em>anything</em> else.</p><p class="">I settled on <a href="https://github.com/actualbudget/actual" target="_blank">Actual Budget</a> and it was a breath of fresh air - they even have documentation for <a href="https://www.actualbudget.com/docs/migration/nynab" target="_blank">migrating from YNAB</a>! Having this service run locally where everything is stupid-fast and responsive makes staying on top of transactions very easy (once you get over the initial hump of transactions to import). I made the cut-over right at the end of the year so it was all kinds of perfect to start my Actual Budget journey on January 1st.</p><p class="">Deploying Actual Budget saved me an eye-opening $110/yr (!!) compared to YNAB.</p>


  






  
























  
  





<ul data-should-allow-multiple-open-items="" data-accordion-icon-placement="left" data-is-last-divider-visible="true" data-is-expanded-first-item="true" data-is-divider-enabled="" data-accordion-title-alignment="left" class="accordion-items-container" data-is-first-divider-visible="true" data-accordion-description-alignment="left" data-accordion-description-placement="left"
>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 0px;
            padding-bottom: 0px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Notes
          </span>
          
            
              
                
              
            
          
        </button>
      </p>
      
        
          <ul data-rte-list="true"><li><p data-rte-preserve-empty="true">Actual Budget doesn’t support multiple logins directly yet. For couples/families, you can have a single server/login, but multiple files. Each person sticks to their own file (there’s no connectivity between files).</p></li><li><p data-rte-preserve-empty="true">If you absolutely need your files to be <em>private</em>, then you will need to spin up a separate Actual Budget instance for each person (also probably worth looking at <a target="_blank" href="https://actualbudget.org/docs/settings/#encryption">Encryption settings</a>)</p></li><li><p data-rte-preserve-empty="true">I don’t see a reason to have this exposed to the outside, so for me, this is only hosted internally</p></li></ul>
        
      

      

    </li>
  
</ul>

  
    <h4 id="spotlight-3">Vikunja</h4>
  


  
  <p class="">Over the years I’ve struggled to find a tool to do task-tracking/to-do and nothing quite had the features I wanted. Google Tasks was kind of serviceable until the forced integration with Calendar and then killing the standalone web-app).  The main thing I wanted from my tasks was to be <em>rich</em>: bullets, embedded files, links, sub-tasks, related tasks, categories, historical tracking etc. The overwhelming majority of apps in this space are mobile-first and I explicitly wanted a <strong><em>desktop-first</em></strong> solution — I don’t want to be <em>creating</em> extensive recurring tasks, embedding files etc. using a phone.</p><p class="">For me, <a href="https://github.com/go-vikunja/vikunja" target="_blank">Vikunja</a> hit the spot for <em>most</em> things - I suspect for some people, the lack of ‘see all my tasks on a calendar view’ will be a bummer (— although, <a href="https://community.vikunja.io/t/feature-request-calendar-view/2547/4" target="_blank">it’s coming</a>!). </p>


  






  
























  
  





<ul data-should-allow-multiple-open-items="" data-accordion-icon-placement="left" data-is-last-divider-visible="true" data-is-expanded-first-item="true" data-is-divider-enabled="" data-accordion-title-alignment="left" class="accordion-items-container" data-is-first-divider-visible="true" data-accordion-description-alignment="left" data-accordion-description-placement="left"
>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 0px;
            padding-bottom: 0px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Notes
          </span>
          
            
              
                
              
            
          
        </button>
      </p>
      
        
          <ul data-rte-list="true"><li><p data-rte-preserve-empty="true">Something like Vikunja probably benefits from being accessible from outside your network (again, a <a target="_blank" href="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/">Cloudflare Tunnel</a> is probably a half-decent way to do this)</p></li><li><p data-rte-preserve-empty="true">Vikunja has a <a href="https://github.com/go-vikunja/app">mobile app</a> in early development, however, the experience using the PWA is pretty decent (I primarily use via desktop though anyways)</p></li></ul>
        
      

      

    </li>
  
</ul>

  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    <h3 id="future">Looking ahead</h3>
  


  
  <p class="">It’s funny, that what started me down this path was a chuckle thought along the lines of  ‘heh, I wonder if I can save $5’ and here I am, a year later, with a bazillionty number of containers running locally…</p><p class="">When I initially started, I spun up all of my services using the web view within Portainer. Since then, I’ve deployed source control infrastructure (using Docker no less), so I’ve begun the process of pulling the docker.compose content out from Portainer into source control and transitioning my stacks to <a href="https://docs.portainer.io/user/docker/stacks/add#option-3-git-repository" target="_blank">pull from git</a>. </p><p class="">In addition to more services to talk about in ‘Services Spotlight’, there are some tangential things I’d like to cover in a future post:</p><ul data-rte-list="default"><li><p class="">A closer look at a few ways of getting external access working</p></li><li><p class="">Juggling internal<em> and </em>external access to the same service</p></li><li><p class="">Getting SMTP working</p></li></ul><p class="">All with a focus on trying to keep costs down where viable.</p><p class="">This post has been a long time in the making — I’ve mostly been hit by writers block (and churn!). Trying to keep this post (and series) from becoming <em>too technical</em>, but at the same time, offering some value in the technical bits… is hard!</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/png" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1739215524528-3FD9YOZ0FCMYMTZLKC57/SelfHostDariesLogo_s.png?format=1500w" medium="image" isDefault="true" width="547" height="355"><media:title type="plain">Self-Hosted Diaries (2025.1)</media:title></media:content></item><item><title>Stream Deck - USB-C connectivity</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Mon, 15 Jul 2024 20:00:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/stream-deck-usbc</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:66957c2f54f48063c6c5bbc8</guid><description><![CDATA[The Corsair/Elgato Stream Deck Mk 2 has some peculiar behavior when you try 
and connect to it using USB-C. Initially I thought that I had wired up my 
keystones incorrectly, or my USB-C ports were on acting up. Nope — it’s the 
Stream Deck.]]></description><content:encoded><![CDATA[<p class="">I bought an Elgato (now Corsair) <a href="https://amzn.to/4680Cdt" target="_blank">Stream Deck Mk 2</a>  a little while back, just to play with macros and recently, when putting my <a href="https://www.minmaxgeek.com/blog/wall-desk-mkii" target="_blank">Wall-Deck Mk II</a> back together, I ran into some trouble getting the device to detect. My initial guess was that I made a mistake wiring up my wall or that something had come loose. Spoiler: it wasn’t me, or the wall — it’s the Stream Deck. </p><p class="">Digging into this a bit further, I found a whole bunch of posts online specifically about the Stream Deck and how using anything but the original cable (implying USB-A) resulted in bad connectivity. Thankfully, USB-C <em>does</em> work, there’s just a small caveat to keep in mind.</p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#step-1" target="_blank">Testing connectivity</a></p></li><li><p class=""><a href="#milestone" target="_blank">Conclusion</a></p></li></ul>


  






  



<hr />
  
    <h3 id="step-1">Testing connectivity</h3>
  


  
  <p class="">This initial test is just there to verify that everything works as expected: I’m using the original cable, the way the manufacturer ‘intended’ for me to connect the device. No surprises here, the Stream Deck is picked up by the computer shortly after plugging in.</p>


  






  




  
  
    
    
      
        
        
        
        
          <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen src="https://www.youtube.com/embed/Skl8w1aHUkI?si=itaEou29TxC-pJlD" width="560" frameborder="0" title="YouTube video player" height="315"></iframe>
        
        
        
          
            
              <p>Test 1: connecting via USB-A</p>
            
          
        
      
    
  


  
  <p class="">In my specific configuration at this time, I had a single USB-A port remaining (without resorting to using a hub), so I had hoped to just convert the Stream Deck to USB-C and make use of an extra USB-C port that I had handy. This is where the excitement starts: since the Stream Deck <em>only</em> gets recognized when the cable gets plugged in a specific orientation.</p>


  






  




  
  
    
    
      
        
        
        
        
          <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen src="https://www.youtube.com/embed/9IhLUZylWwQ?si=tIgWN2sEEM7qCYOV" width="560" frameborder="0" title="YouTube video player" height="315"></iframe>
        
        
        
          
            
              <p>Test 2: converting to USB-C</p>
            
          
        
      
    
  


  
  <p class="">It would be as bit of a stretch (but not entirely unheard of) where the adapter converting USB-A to USB-C is [partially] defective and as such, only works in a given orientation. Just to rule this out for peace of mind, I tested this again using a straight USB-C to USB-C cable. Sadly, I can verify that again, it only works when plugged in using a specific orientation.</p>


  






  




  
  
    
    
      
        
        
        
        
          <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen src="https://www.youtube.com/embed/sAAktFi-LVs?si=q0qqtfa2BgZh7TGd" width="560" frameborder="0" title="YouTube video player" height="315"></iframe>
        
        
        
          
            
              <p>Test 3: Using a straight USB-C cable</p>
            
          
        
      
    
  


  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="milestone">Conclusion</h3>
  


  
    
  
  <p class="">Despite hearing that USB-C is the best thing ever and works any way you connect it, the fact is, there are definitely some examples where it doesn’t ‘just work’. If you came here because you couldn’t figure out why your Stream Deck isn’t working or is ‘working intermittently’ (because you haven’t been paying super close attention to the orientation of your cable — rightfully so), <span data-text-attribute-id="8cf5753a-87f5-4edb-afec-9152bfe70212" class="sqsrte-text-highlight"><strong>just try flipping the cable</strong></span>.</p><p class="">Also bonus oddity: <strong>you have to flip the connection at the PC-end</strong>. Flipping the connection at the Stream Deck end has no impact. </p><p class="">Why Elgato (now Corsair) have done things this way? I have no clue but at least if you’re stuck with a Stream Deck that 'only works some of the time’, at least now you know you’re not alone and how to work around the problem.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1721075128849-SDLV3B5O12ZIXXSTFFOY/Cover_s.jpg?format=1500w" medium="image" isDefault="true" width="1500" height="1000"><media:title type="plain">Stream Deck - USB-C connectivity</media:title></media:content></item><item><title>Build Log: Wall-Desk Mk II</title><category>DIY</category><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Mon, 01 Jul 2024 10:00:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/wall-desk-mkii</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:667fa02ed90ab508174a6800</guid><description><![CDATA[I built my original wall-desk almost five years ago and after using it for 
that time, there are a small handful of things I’d like to fix and improve 
upon. This is more of a retrofit that builds upon the existing setup — no 
need to ‘reinvent the wall’ so to speak.]]></description><content:encoded><![CDATA[<p class="">It’s been <em>four years</em> since I built my original <a href="https://www.minmaxgeek.com/blog/wall-desk-1" target="_blank">Wall-Desk</a> allowing me to ‘convert’ some pieces of tech into a kind of ‘furniture’. In the interim years, we have since moved into our own place with a much more dedicated office space. The wall-desk has held up really well but having used it all these years, there are some improvements I’d like to </p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#starting-point" target="_blank">Starting Point</a></p></li><li><p class=""><a href="#goals" target="_blank">Goals and Objectives</a></p></li><li><p class=""><a href="#rough-design" target="_blank">Rough Design</a></p></li><li><p class=""><a href="#step-1">Step 1 - Revisiting the wall component</a></p></li><li><p class=""><a href="#step-2">Step 2 - Remaking the bottom panel</a></p></li><li><p class=""><a href="#step-3">Step 3 - Remaking the middle panel</a></p></li><li><p class=""><a href="#step-4">Step 4 - Tweaking the top panel</a></p></li><li><p class=""><a href="#step-5">Step 5 - RGB</a></p></li><li><p class=""><a href="#step-6">Step 6 - Side panels</a></p></li><li><p class=""><a href="#step-7">Step 7 - First power up</a></p></li><li><p class=""><a href="#step-8">Step 8 - Revisiting the drawers</a></p></li><li><p class=""><a href="#step-9" target="">Step 9 - Speaker mounts</a></p></li><li><p class=""><a href="#step-9">Step 10 - Magnet all the things</a></p></li><li><p class=""><a href="#step-11" target="">Step 11 - Misc touches</a></p></li><li><p class=""><a href="#milestone">Milestone</a></p></li><li><p class=""><a href="#lessons">Mixups, surprises and lessons learned</a></p></li><li><p class=""><a href="#appendix-1" target="_blank">Appendix - Parts List</a></p></li></ul>


  






  



<hr />
  
    <h3 id="starting-point">Starting Point</h3>
  


  
  <p class="">The original <a href="https://www.minmaxgeek.com/blog/wall-desk-1" target="_blank">Wall-Desk</a> is still one of my most ambitious projects ever, encompassing a few different hobby sectors and by far and large, the desk is still, <em>very effective</em>. As such, I don’t really want to reinvent the desk so to speak. </p><p class="">The first catalyst for revisiting the wall-desk was actually when I built a <a href="https://www.minmaxgeek.com/blog/leveled-floor" target="_blank">pre-levelled platform</a> to compensate for the severe sloping in my office: the unforeseen <em>five-inch</em> platform raised the altitude of my left/right cubbies and by proxy, raised the desk. While I got lucky with the connections at the floor (none of those were blocked by the platform), the new altitude of the desk sides meant that the desk <em>top</em> would now interfere with the wall-mounted keystones and speaker mounts that were attached to the wall (since the wall was not included in the five-inch platform).</p><p class="">The second catalyst came in the form of a <a href="https://amzn.to/3zmQH7T" target="_blank">new monitor purchase</a> or rather the power brick that the monitor uses — there was no way I was going to be able to neatly mount that behind the monitors, so I needed to find a way to <em>put</em> that somewhere.</p><p class="">As a bare minimum, I <em>probably</em> could have gotten away with rebuilding the side cabinets to lower the altitude of the desk, but this was a good opportunity to revisit some enhancements.<br></p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Calm before the storm" data-description="&lt;p&gt;A final snapshot of my desk before I take everything apart.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642265944-3IPZE7FKJ9DCUYYAJLG8/DPN05391_s.jpg" role="button" aria-labelledby="667fa89973464219c02b159b-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642265944-3IPZE7FKJ9DCUYYAJLG8/DPN05391_s.jpg" data-image-dimensions="2500x2493" data-image-focal-point="0.5,0.5" alt="Calm before the storm" data-load="false" data-image-id="667fa89973464219c02b159b" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642265944-3IPZE7FKJ9DCUYYAJLG8/DPN05391_s.jpg?format=1000w" /><br>
                </a>
                
                  Calm before the storm
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="First goes the desk &amp;amp; monitors" data-description="&lt;p&gt;I love having a floating top  and being able to get access to the bottom/back at will.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642267174-FZ2GAOA4VRYISEX94A6D/DPN05392_s.jpg" role="button" aria-labelledby="667fa89a08464c26fbe25c72-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642267174-FZ2GAOA4VRYISEX94A6D/DPN05392_s.jpg" data-image-dimensions="2500x2146" data-image-focal-point="0.5,0.5" alt="First goes the desk &amp;amp; monitors" data-load="false" data-image-id="667fa89a08464c26fbe25c72" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642267174-FZ2GAOA4VRYISEX94A6D/DPN05392_s.jpg?format=1000w" /><br>
                </a>
                
                  First goes the desk &amp; monitors
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Time for the cubby to go too" data-description="&lt;p&gt;This is just hung using a French cleat so it 's super easy to take away.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642267323-6KDUZ6NID84IU0GBTOFT/DPN05393_s.jpg" role="button" aria-labelledby="667fa89a1524342bc2a1e31f-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642267323-6KDUZ6NID84IU0GBTOFT/DPN05393_s.jpg" data-image-dimensions="2500x2190" data-image-focal-point="0.5,0.5" alt="Time for the cubby to go too" data-load="false" data-image-id="667fa89a1524342bc2a1e31f" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642267323-6KDUZ6NID84IU0GBTOFT/DPN05393_s.jpg?format=1000w" /><br>
                </a>
                
                  Time for the cubby to go too
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="I guess I'm committed now" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642265944-ZHWVYJ9NRBP2BJ0UU0LA/DPN05394_s.jpg" role="button" aria-labelledby="667fa8990a559f4a115b5195-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642265944-ZHWVYJ9NRBP2BJ0UU0LA/DPN05394_s.jpg" data-image-dimensions="2500x1974" data-image-focal-point="0.5,0.5" alt="I guess I'm committed now" data-load="false" data-image-id="667fa8990a559f4a115b5195" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719642265944-ZHWVYJ9NRBP2BJ0UU0LA/DPN05394_s.jpg?format=1000w" /><br>
                </a>
                
                  I guess I'm committed now
                
              
            
          

          
        

      
    
  

  











  
  <p class="">Something cool to see is how my cheap RGB strip fared over the years; with some minor exceptions, I ran the RGB strip at 100% brightness on a single color (blue) for five years. That’s over 40,000 hours if you’re counting. The fact that my strip still turns on and provides <em>something</em> is kind of impressive; but it’s definitely earned it’s well-deserved retirement (or at least to be deployed with a different color). The strip is the <a href="https://amzn.to/3VOpfat" target="_blank">Govee H6163</a> which I’m pretty sure if all kinds of discontinued now.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Faded and worn" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853488330-I7DHS6YJ3AG0FNLW04RI/IMG20240626120611_s.jpg" role="button" aria-labelledby="6682e1b0ea19ed505376c8a1-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853488330-I7DHS6YJ3AG0FNLW04RI/IMG20240626120611_s.jpg" data-image-dimensions="2500x1535" data-image-focal-point="0.5,0.5" alt="Faded and worn" data-load="false" data-image-id="6682e1b0ea19ed505376c8a1" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853488330-I7DHS6YJ3AG0FNLW04RI/IMG20240626120611_s.jpg?format=1000w" /><br>
                </a>
                
                  Faded and worn
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Red at 100%" data-description="&lt;p&gt;Camera locked off at F/2.8, 1/200s, 5500K, ISO1600&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853489221-PBLIDQUH4TS8TXGF5GTY/DPN05543_s.jpg" role="button" aria-labelledby="6682e1b16529d31a94bb13dd-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853489221-PBLIDQUH4TS8TXGF5GTY/DPN05543_s.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="Red at 100%" data-load="false" data-image-id="6682e1b16529d31a94bb13dd" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853489221-PBLIDQUH4TS8TXGF5GTY/DPN05543_s.jpg?format=1000w" /><br>
                </a>
                
                  Red at 100%
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Green at 100%" data-description="&lt;p&gt;Camera locked off at F/2.8, 1/200s, 5500K, ISO1600&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853488389-QTA38LBBV9V15Z3WZ4AO/DPN05541_s.jpg" role="button" aria-labelledby="6682e1b06529d31a94bb13a9-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853488389-QTA38LBBV9V15Z3WZ4AO/DPN05541_s.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="Green at 100%" data-load="false" data-image-id="6682e1b06529d31a94bb13a9" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853488389-QTA38LBBV9V15Z3WZ4AO/DPN05541_s.jpg?format=1000w" /><br>
                </a>
                
                  Green at 100%
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Blue at 100%" data-description="&lt;p&gt;Camera locked off at F/2.8, 1/200s, 5500K, ISO1600&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853489169-4HMQDIKUY1GIP4SPVTAX/DPN05542_s.jpg" role="button" aria-labelledby="6682e1b14a87631a2dc06aa5-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853489169-4HMQDIKUY1GIP4SPVTAX/DPN05542_s.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="Blue at 100%" data-load="false" data-image-id="6682e1b14a87631a2dc06aa5" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719853489169-4HMQDIKUY1GIP4SPVTAX/DPN05542_s.jpg?format=1000w" /><br>
                </a>
                
                  Blue at 100%
                
              
            
          

          
        

      
    
  

  











  
  <p class=""><br></p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="goals">Goals and Objectives</h3>
  


  
  <p class="">I booked vacation time to work on this, so everything needed to be back up and running ‘enough’ by the time my vacation ran out. I had roughly <strong>two weeks</strong> to tackle this; I also didn’t want to ‘reinvent the desk’ so to speak: I wanted to reuse as much as I could from the existing desk.</p><p class="">As for the more specific considerations:</p><ul data-rte-list="default"><li><p class="">I wanted to be able to level my triple monitors more easily: when you look at the back side of a monitor to see where the VESA mounts are,  some (most?) monitors have the mounting point in the dead center of the monitor. With a lot of cheaper monitors (like my side displays at the time), the mounting point sometimes shifts towards the bottom. This shift makes aligning monitors trickier (if you’re using fixed wall mounts). You can use a <a href="https://amzn.to/3xzBWOp" target="_blank">VESA slider</a> to give yourself some vertical wiggle room, but this is tedious and annoying</p></li><li><p class="">The original wall supported 4x USB-A and 1x USB-C port integrated into it; I wanted to add a <em>whole bunch more </em>USB ports into my wall (without resorting to using hubs); this would allow my to support future PC upgrades</p></li><li><p class="">Based on how I used the wall over the last few years, I wanted to move where some of the connection points were on the desk. In particular</p><ul data-rte-list="default"><li><p class="">I wanted to run the networking down through the top of the faux wall; this would allow me to run the cables from my network rack up into the drop ceiling</p></li><li><p class="">I wanted to move the rear-speaker connections to the side of the wall, and higher up (to reduce the chaos in the corners)</p></li><li><p class="">The XLR connection for my microphone could be moved out of sight and routed to the side of the wall (where the boom arm is mounted)</p></li><li><p class="">I wanted to revisit how I was mounting the speakers to the wall as well</p></li></ul></li><li><p class="">I wanted more outlets, both on the face and the right-side of the desk. This would also allow me to connect everything to the wall, and then connect the wall to the UPS with a single cord</p></li><li><p class="">On a related note, I wanted to reduce the amount of crap on the desk. I accept that I probably can’t get away from having to account for keyboard, mouse and mousepad but I wanted to find a way to reduce some desk clutter:</p><ul data-rte-list="default"><li><p class="">Capture card</p></li><li><p class="">SATA dock for backups</p></li><li><p class="">Google Nest Mini, Amazon Echo Show 5</p></li><li><p class="">Clock</p></li><li><p class="">Speaker control pod</p></li><li><p class="">A label printer</p></li></ul></li><li><p class="">I wanted to replace the RGB strips with something that I could have local control with (and I wanted to take repair, replacement and upgrading into consideration)</p></li></ul>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="">And a big one: I wanted to support an <em>additional</em> PC on this wall (a real computer, not an anemic work laptop).  In short, I wanted to add a whole bunch of connectivity to the wall, including supporting a whole new computer and simultaneously reducing the amount of stuff that will live on the desk.</p><blockquote><p class="sqsrte-large">A note about ‘minimalist’ trends</p><p class="">“Reducing desktop clutter” and “minimalism” are trendy buzzwords that influencers like to push around. My drive to reduce the amount of [tech] stuff on the desk has nothing to do with minimalism - I want to reduce the number of devices I need to unplug/relocate if I need to take the entire desk apart for whatever reason.</p></blockquote><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="rough-design">Rough Design</h3>
  


  
  <p class="">At a high level, I was going to do three things:</p><ol data-rte-list="default"><li><p class="">Change <em>two</em> of the three monitor arms from fixed monitor mounts to gas-shock arms. In theory, I can leave the center monitor on a fixed mount and having adjust-ability on the left-right monitors would allow me to get everything aligned</p></li><li><p class="">Add a bunch more outlets to the wall</p></li><li><p class="">Add a boatload more keystone connections</p></li></ol><p class="">This allows me to keep most of the faux-wall elements — I would mostly be changing out the cutouts on the ‘face’ and the sides of the wall. This should keep the cost of materials down. </p><p class="">It was quite chaotic to look at all of this on a single diagram, so I broke things out by category.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Power" data-description="&lt;p&gt;Previously, I only had a couple power connections (two for the monitors and one on the right hand side). Here I'm adding support for a bunch more outlets at the bottom as well as adding dedicated power for the light (up top) and for a second computer.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931554395-P1JN2Y3JL6511FJ39CH9/Power_s.jpg" role="button" aria-labelledby="668412a2d5514c3a930ada81-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931554395-P1JN2Y3JL6511FJ39CH9/Power_s.jpg" data-image-dimensions="3857x4113" data-image-focal-point="0.5,0.5" alt="Power" data-load="false" data-image-id="668412a2d5514c3a930ada81" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931554395-P1JN2Y3JL6511FJ39CH9/Power_s.jpg?format=1000w" /><br>
                </a>
                
                  Power
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Audio" data-description="&lt;p&gt;Here, we've got a 5.1 signal coming from PC-A (bottom left) as well as a stereo signal coming from PC-B in the upper cubby area.&lt;/p&gt;&lt;p&gt;Speaker wire is run throughout the faux-wall to allow me to directly plug speakers into the wall itself.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931558421-WVW0YC6DYON2FK2P983T/Audio_s.jpg" role="button" aria-labelledby="668412a6ad524349dee0ad07-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931558421-WVW0YC6DYON2FK2P983T/Audio_s.jpg" data-image-dimensions="3052x4067" data-image-focal-point="0.5,0.5" alt="Audio" data-load="false" data-image-id="668412a6ad524349dee0ad07" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931558421-WVW0YC6DYON2FK2P983T/Audio_s.jpg?format=1000w" /><br>
                </a>
                
                  Audio
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Networking" data-description="&lt;p&gt;I'm running four CAT6 cables through the wall: fed from the top, to support three computers.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931562223-AQGLZG6JYI9HDIHDQSS4/Networking_s.jpg" role="button" aria-labelledby="668412aa8962587d0d38272b-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931562223-AQGLZG6JYI9HDIHDQSS4/Networking_s.jpg" data-image-dimensions="3190x4389" data-image-focal-point="0.5,0.5" alt="Networking" data-load="false" data-image-id="668412aa8962587d0d38272b" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931562223-AQGLZG6JYI9HDIHDQSS4/Networking_s.jpg?format=1000w" /><br>
                </a>
                
                  Networking
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="USB &amp;amp; Video" data-description="&lt;p&gt;The video portion of this is fairly easy -- the main PC will use 3xDisplayPort cables and the secondary PC will use 2xHDMI+1xUSBC cables to connect to the monitors.&lt;/p&gt;&lt;p&gt;To keep the clutter down in the upper cubby, I will end the connection with keystones, but in the bottom left, I'll just have the cables directly feed out via a passthrough.&lt;/p&gt;&lt;p&gt;The USB connections though, that's a different chaotic story...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931565361-CAUCL0JV24H2GJKIQ5CW/USB_s.jpg" role="button" aria-labelledby="668412ad8274d81ee180db84-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931565361-CAUCL0JV24H2GJKIQ5CW/USB_s.jpg" data-image-dimensions="3652x4405" data-image-focal-point="0.5,0.5" alt="USB &amp;amp; Video" data-load="false" data-image-id="668412ad8274d81ee180db84" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931565361-CAUCL0JV24H2GJKIQ5CW/USB_s.jpg?format=1000w" /><br>
                </a>
                
                  USB &amp; Video
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Connection Points" data-description="&lt;p&gt;This is more of a 'woodworking' diagram - these are the knockouts and passthroughs I need to keep in mind when retrofitting the frame.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931568738-085BKN3DE5EXZRGJC69A/Connection_s.jpg" role="button" aria-labelledby="668412b0a1a9f80d71ee39db-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fit
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931568738-085BKN3DE5EXZRGJC69A/Connection_s.jpg" data-image-dimensions="3325x3279" data-image-focal-point="0.5,0.5" alt="Connection Points" data-load="false" data-image-id="668412b0a1a9f80d71ee39db" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719931568738-085BKN3DE5EXZRGJC69A/Connection_s.jpg?format=1000w" /><br>
                </a>
                
                  Connection Points
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-1">Step 1 - Revisitng the wall component</h3>
  


  
  <p class="">When we initially got the office setup, we knew the floor was sloped but we were in a crunch so we shimmed the faux-wall up as best we could and screwed it to the actual wall. When I recently levelled out the floor in my sitting area, I swapped out the shim for a more ‘proper’ levelling foot. Now that I’m going through the effort of rebuilding the wall, this is a good time to just fix it more properly by pre-levelling out the base. </p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Removing the mid-panel" data-description="&lt;p&gt;Dismantling as I go, I was glad I built enough slack into everything to allow the panel to come off easily.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686573395-Z7KLE28WQFHUPO3ORP6T/DPN05395_s.jpg" role="button" aria-labelledby="668055ac435a9911c6618510-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686573395-Z7KLE28WQFHUPO3ORP6T/DPN05395_s.jpg" data-image-dimensions="2500x3137" data-image-focal-point="0.5,0.5" alt="Removing the mid-panel" data-load="false" data-image-id="668055ac435a9911c6618510" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686573395-Z7KLE28WQFHUPO3ORP6T/DPN05395_s.jpg?format=1000w" /><br>
                </a>
                
                  Removing the mid-panel
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Now to take the bottom apart" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686574328-VGZ59WAXJQN1K548SW7H/DPN05396_s.jpg" role="button" aria-labelledby="668055ae97bc400b1616ddfb-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686574328-VGZ59WAXJQN1K548SW7H/DPN05396_s.jpg" data-image-dimensions="2500x1207" data-image-focal-point="0.5,0.5" alt="Now to take the bottom apart" data-load="false" data-image-id="668055ae97bc400b1616ddfb" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686574328-VGZ59WAXJQN1K548SW7H/DPN05396_s.jpg?format=1000w" /><br>
                </a>
                
                  Now to take the bottom apart
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Removing the bottom panel" data-description="&lt;p&gt;A ton of cables as well as cable clamps and zipties.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686576101-O2AZ6NY0355141J4KG3P/IMG20240617115231_s.jpg" role="button" aria-labelledby="668055aff4b8dd2e2ae2ab3e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686576101-O2AZ6NY0355141J4KG3P/IMG20240617115231_s.jpg" data-image-dimensions="2500x1505" data-image-focal-point="0.5,0.5" alt="Removing the bottom panel" data-load="false" data-image-id="668055aff4b8dd2e2ae2ab3e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686576101-O2AZ6NY0355141J4KG3P/IMG20240617115231_s.jpg?format=1000w" /><br>
                </a>
                
                  Removing the bottom panel
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Naked wall" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686576273-6U0OBBN7TIWN85NDFDKM/IMG20240617122828_s.jpg" role="button" aria-labelledby="668055af5eee2944610c916e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686576273-6U0OBBN7TIWN85NDFDKM/IMG20240617122828_s.jpg" data-image-dimensions="2501x3557" data-image-focal-point="0.5,0.5" alt="Naked wall" data-load="false" data-image-id="668055af5eee2944610c916e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686576273-6U0OBBN7TIWN85NDFDKM/IMG20240617122828_s.jpg?format=1000w" /><br>
                </a>
                
                  Naked wall
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Marking the placement of the wall" data-description="&lt;p&gt;Using some tape, I marked where the faux wall was placed so that it wouldn't be a huge pain to slide it back exactly where it was before.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686573484-EPZBRMK61IZZ29JUWP4C/DPN05397_s.jpg" role="button" aria-labelledby="668055acb3a76d62ddc1c685-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686573484-EPZBRMK61IZZ29JUWP4C/DPN05397_s.jpg" data-image-dimensions="2500x1726" data-image-focal-point="0.5,0.5" alt="Marking the placement of the wall" data-load="false" data-image-id="668055acb3a76d62ddc1c685" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686573484-EPZBRMK61IZZ29JUWP4C/DPN05397_s.jpg?format=1000w" /><br>
                </a>
                
                  Marking the placement of the wall
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Cutting shims" data-description="&lt;p&gt;Some leftover 2x4s from my Mega Planter build, these 2x4s have been milled [mostly] flat and square.&lt;/p&gt;&lt;p&gt;Using a tracksaw, I cut massive solid shims out of them.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686577135-LZZYH8IFIS50RZ1SQSXD/IMG20240617150038_s.jpg" role="button" aria-labelledby="668055b0c46d45216b5c6732-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686577135-LZZYH8IFIS50RZ1SQSXD/IMG20240617150038_s.jpg" data-image-dimensions="2501x3502" data-image-focal-point="0.5,0.5" alt="Cutting shims" data-load="false" data-image-id="668055b0c46d45216b5c6732" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686577135-LZZYH8IFIS50RZ1SQSXD/IMG20240617150038_s.jpg?format=1000w" /><br>
                </a>
                
                  Cutting shims
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Refining the shims" data-description="&lt;p&gt;I got my steps in: there were more than a few trips back and forth to dial-in the shim&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686574918-EJ6VB12LLZINRGGJIAG5/DPN05398_s.jpg" role="button" aria-labelledby="668055ae56b1be5b58fee711-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686574918-EJ6VB12LLZINRGGJIAG5/DPN05398_s.jpg" data-image-dimensions="2500x978" data-image-focal-point="0.5,0.5" alt="Refining the shims" data-load="false" data-image-id="668055ae56b1be5b58fee711" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686574918-EJ6VB12LLZINRGGJIAG5/DPN05398_s.jpg?format=1000w" /><br>
                </a>
                
                  Refining the shims
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Backer board" data-description="&lt;p&gt;I wanted to fully support the faux-wall with my mega shims so I ripped a piece of hardboard to attach the shims to. By attaching the shims to the hardboard, the shims will remain the same [relative] position.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686574141-BZE6G19Z88FAGP6O5EDL/DPN05400_s.jpg" role="button" aria-labelledby="668055aea65b2515e5db46f3-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686574141-BZE6G19Z88FAGP6O5EDL/DPN05400_s.jpg" data-image-dimensions="2500x1089" data-image-focal-point="0.5,0.5" alt="Backer board" data-load="false" data-image-id="668055aea65b2515e5db46f3" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686574141-BZE6G19Z88FAGP6O5EDL/DPN05400_s.jpg?format=1000w" /><br>
                </a>
                
                  Backer board
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Glue and pins" data-description="&lt;p&gt;Due to the decreasing thickness, I had to switch to smaller pins as I progressed left to right.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686575093-Z1CU8XXX9681DG8H5F4Q/DPN05401.jpg" role="button" aria-labelledby="668055af97bc400b1616de18-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686575093-Z1CU8XXX9681DG8H5F4Q/DPN05401.jpg" data-image-dimensions="2500x1034" data-image-focal-point="0.5,0.5" alt="Glue and pins" data-load="false" data-image-id="668055af97bc400b1616de18" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719686575093-Z1CU8XXX9681DG8H5F4Q/DPN05401.jpg?format=1000w" /><br>
                </a>
                
                  Glue and pins
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Complete" data-description="&lt;p&gt;The faux wall will now rest on this and it will be level [enough]&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719687227634-7W7SJI7DSLG4SVO3VQB0/DPN05409_s.jpg" role="button" aria-labelledby="6680583b33163c5155cf12eb-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719687227634-7W7SJI7DSLG4SVO3VQB0/DPN05409_s.jpg" data-image-dimensions="2500x1418" data-image-focal-point="0.5,0.5" alt="Complete" data-load="false" data-image-id="6680583b33163c5155cf12eb" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719687227634-7W7SJI7DSLG4SVO3VQB0/DPN05409_s.jpg?format=1000w" /><br>
                </a>
                
                  Complete
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Testing" data-description="&lt;p&gt;With the pre-leveled base in place, I can focus on building the wall true and square rather than pre-tilting to account for everything else not being plumb&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689050624-Y2BOK16TNJBX6SKUI30B/IMG20240618101936_s.jpg" role="button" aria-labelledby="66805f5af768f83c4b570833-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689050624-Y2BOK16TNJBX6SKUI30B/IMG20240618101936_s.jpg" data-image-dimensions="2500x618" data-image-focal-point="0.5,0.5" alt="Testing" data-load="false" data-image-id="66805f5af768f83c4b570833" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689050624-Y2BOK16TNJBX6SKUI30B/IMG20240618101936_s.jpg?format=1000w" /><br>
                </a>
                
                  Testing
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  




  








  
  <p class="">This was a good time to cut/drill all the access through-holes for wires I specifically cut everything (in the 2x4s) oversized so I wouldn’t have to think about alignment — when I cut the openings in the plywood ‘skin’, I’ll need to be much more careful.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Pre-existing passthroughs" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688160275-0KO03JZAXP96R630CUHM/DPN05399_s.jpg" role="button" aria-labelledby="66805bdfc941ab3f26c96562-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688160275-0KO03JZAXP96R630CUHM/DPN05399_s.jpg" data-image-dimensions="2500x1888" data-image-focal-point="0.5,0.5" alt="Pre-existing passthroughs" data-load="false" data-image-id="66805bdfc941ab3f26c96562" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688160275-0KO03JZAXP96R630CUHM/DPN05399_s.jpg?format=1000w" /><br>
                </a>
                
                  Pre-existing passthroughs
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Marking a low-voltage box" data-description="&lt;p&gt;This is for running network cables into the wall. This is for the top plate which won't have a plywood skin on it (since it won't really be visible).&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688437145-64VM138CEHKTAKAVDB5H/DPN05402_s.jpg" role="button" aria-labelledby="66805cf59187b65762d9fb16-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688437145-64VM138CEHKTAKAVDB5H/DPN05402_s.jpg" data-image-dimensions="2500x1353" data-image-focal-point="0.5,0.5" alt="Marking a low-voltage box" data-load="false" data-image-id="66805cf59187b65762d9fb16" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688437145-64VM138CEHKTAKAVDB5H/DPN05402_s.jpg?format=1000w" /><br>
                </a>
                
                  Marking a low-voltage box
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Using a forstner bit to precisely mark the drill point" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688436290-WVWASJQ7JDQ7NIICJ9IY/DPN05403_s.jpg" role="button" aria-labelledby="66805cf4214cba17c79421db-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688436290-WVWASJQ7JDQ7NIICJ9IY/DPN05403_s.jpg" data-image-dimensions="2500x1844" data-image-focal-point="0.5,0.5" alt="Using a forstner bit to precisely mark the drill point" data-load="false" data-image-id="66805cf4214cba17c79421db" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688436290-WVWASJQ7JDQ7NIICJ9IY/DPN05403_s.jpg?format=1000w" /><br>
                </a>
                
                  Using a forstner bit to precisely mark the drill point
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Drilling out the corner holes" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688436352-4ALJ10ARIPWUTWNDRC7V/DPN05404_s.jpg" role="button" aria-labelledby="66805cf4935e1e09f14b8d6d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688436352-4ALJ10ARIPWUTWNDRC7V/DPN05404_s.jpg" data-image-dimensions="2500x1699" data-image-focal-point="0.5,0.5" alt="Drilling out the corner holes" data-load="false" data-image-id="66805cf4935e1e09f14b8d6d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688436352-4ALJ10ARIPWUTWNDRC7V/DPN05404_s.jpg?format=1000w" /><br>
                </a>
                
                  Drilling out the corner holes
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Counterboring for the clamps" data-description="&lt;p&gt;I came back with a large forstner bit to cut a relief for the clamps on the low-voltage box to spin.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688437063-GQPNQXZPN2HRD8GA759C/DPN05405_s.jpg" role="button" aria-labelledby="66805cf55eee2944610e64b1-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688437063-GQPNQXZPN2HRD8GA759C/DPN05405_s.jpg" data-image-dimensions="2500x1530" data-image-focal-point="0.5,0.5" alt="Counterboring for the clamps" data-load="false" data-image-id="66805cf55eee2944610e64b1" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688437063-GQPNQXZPN2HRD8GA759C/DPN05405_s.jpg?format=1000w" /><br>
                </a>
                
                  Counterboring for the clamps
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Hole saw" data-description="&lt;p&gt;This lets me quickly knock out an opening&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688161254-DDH7HHO8SE7G0DROZKI1/DPN05406_s.jpg" role="button" aria-labelledby="66805be056b1be5b580084a2-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688161254-DDH7HHO8SE7G0DROZKI1/DPN05406_s.jpg" data-image-dimensions="2500x1807" data-image-focal-point="0.5,0.5" alt="Hole saw" data-load="false" data-image-id="66805be056b1be5b580084a2" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688161254-DDH7HHO8SE7G0DROZKI1/DPN05406_s.jpg?format=1000w" /><br>
                </a>
                
                  Hole saw
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Cleaning up the opening on the bandsaw" data-description="&lt;p&gt;I actually did a few with a jigsaw before I remembered that I had a bandsaw.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688161255-Q9I3EXHNTSS7BBXRI0Q6/DPN05407_s.jpg" role="button" aria-labelledby="66805be05cb9b3371ddd649b-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688161255-Q9I3EXHNTSS7BBXRI0Q6/DPN05407_s.jpg" data-image-dimensions="2500x1974" data-image-focal-point="0.5,0.5" alt="Cleaning up the opening on the bandsaw" data-load="false" data-image-id="66805be05cb9b3371ddd649b" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688161255-Q9I3EXHNTSS7BBXRI0Q6/DPN05407_s.jpg?format=1000w" /><br>
                </a>
                
                  Cleaning up the opening on the bandsaw
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Massive hole" data-description="&lt;p&gt;The original Mk I desk had an outlet and a low voltage box on the side -- here I just connected the two openings which was enough to allow a flush-mount power bar to be installed.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688160181-QFAZ5WTDLGQ53HBNHM7A/IMG20240617183143_s.jpg" role="button" aria-labelledby="66805bdf2064155d7a8fb173-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688160181-QFAZ5WTDLGQ53HBNHM7A/IMG20240617183143_s.jpg" data-image-dimensions="2500x1197" data-image-focal-point="0.5,0.5" alt="Massive hole" data-load="false" data-image-id="66805bdf2064155d7a8fb173" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688160181-QFAZ5WTDLGQ53HBNHM7A/IMG20240617183143_s.jpg?format=1000w" /><br>
                </a>
                
                  Massive hole
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="All done" data-description="&lt;p&gt;Here, I've got a lot more options to pass wires through the frame.&lt;/p&gt;&lt;p&gt;In this picture, at the top left, you'll notice two holes -- this would be for the eventual XLR cable passthrough -- I wasn't sure what altitude I was going mount the microphone arm at, so this gives me a couple options.&lt;/p&gt;&lt;p&gt;Spoiler: I'm not actually all done -- this is missing two holes (left and right) to allow me to mount the rear speaker connections. Thankfully I noticed that before &lt;em&gt;too late&lt;/em&gt; and got that drilled in.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688162371-N5KNKXXBH1TJDWAW4XXE/DPN05408_s.jpg" role="button" aria-labelledby="66805be2361e6110fcad79c7-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688162371-N5KNKXXBH1TJDWAW4XXE/DPN05408_s.jpg" data-image-dimensions="2500x2162" data-image-focal-point="0.5,0.5" alt="All done" data-load="false" data-image-id="66805be2361e6110fcad79c7" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719688162371-N5KNKXXBH1TJDWAW4XXE/DPN05408_s.jpg?format=1000w" /><br>
                </a>
                
                  All done
                
              
            
          

          
        

      
    
  

  











  
  <p class="">Regarding the screws that we used to initially attach the faux-wall to the actual wall, I didn’t want to make new holes and I didn’t want to wear out the screw holes so I needed to find a way to make this faux-wall (and any additional unit) “compatible” with the existing screw holes as well.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Very careful hole placement" data-description="&lt;p&gt;Measure half a dozen times, cut once. Here I used a 3 inch holesaw to give me a decent amount of wiggle room.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689132153-RI5QO5G2GTTCC5107QTJ/DPN05410_s.jpg" role="button" aria-labelledby="66805fab1a9c550bc06e6476-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689132153-RI5QO5G2GTTCC5107QTJ/DPN05410_s.jpg" data-image-dimensions="2500x1618" data-image-focal-point="0.5,0.5" alt="Very careful hole placement" data-load="false" data-image-id="66805fab1a9c550bc06e6476" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689132153-RI5QO5G2GTTCC5107QTJ/DPN05410_s.jpg?format=1000w" /><br>
                </a>
                
                  Very careful hole placement
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Phew!" data-description="&lt;p&gt;Not that it &lt;em&gt;really &lt;/em&gt;matters (since you can't see this anyways), but it would have been annoying to have to resize this if I didn't place the holes over the screw holes in the wall.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689133101-NC3E8BF8L9ZZDV1JCPX0/DPN05411_s.jpg" role="button" aria-labelledby="66805facd328e35e0ab39005-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689133101-NC3E8BF8L9ZZDV1JCPX0/DPN05411_s.jpg" data-image-dimensions="2500x1603" data-image-focal-point="0.5,0.5" alt="Phew!" data-load="false" data-image-id="66805facd328e35e0ab39005" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689133101-NC3E8BF8L9ZZDV1JCPX0/DPN05411_s.jpg?format=1000w" /><br>
                </a>
                
                  Phew!
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Wall mount: the parts" data-description="&lt;p&gt;Just a scrap of plywood that will fit inside&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689133432-X7DB3LYJQLL04OH3JOBD/DPN05412_s.jpg" role="button" aria-labelledby="66805fadf4b8dd2e2ae53397-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689133432-X7DB3LYJQLL04OH3JOBD/DPN05412_s.jpg" data-image-dimensions="2500x2624" data-image-focal-point="0.5,0.5" alt="Wall mount: the parts" data-load="false" data-image-id="66805fadf4b8dd2e2ae53397" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689133432-X7DB3LYJQLL04OH3JOBD/DPN05412_s.jpg?format=1000w" /><br>
                </a>
                
                  Wall mount: the parts
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Counterboring the opposite (wall) side" data-description="&lt;p&gt;This will allow the machine screw to sit flush/recessed into this piece.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689134298-BDM3SFFCO2YB5YRTO9RN/DPN05413_s.jpg" role="button" aria-labelledby="66805fae935e1e09f14c38b0-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689134298-BDM3SFFCO2YB5YRTO9RN/DPN05413_s.jpg" data-image-dimensions="2500x2413" data-image-focal-point="0.5,0.5" alt="Counterboring the opposite (wall) side" data-load="false" data-image-id="66805fae935e1e09f14c38b0" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689134298-BDM3SFFCO2YB5YRTO9RN/DPN05413_s.jpg?format=1000w" /><br>
                </a>
                
                  Counterboring the opposite (wall) side
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Done" data-description="&lt;p&gt;In this pic, the head of the bolt will go against the wall.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689134373-V20NFY47L1XYX087643I/DPN05414_s.jpg" role="button" aria-labelledby="66805fae8784f560cc0a9bd9-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689134373-V20NFY47L1XYX087643I/DPN05414_s.jpg" data-image-dimensions="2500x2139" data-image-focal-point="0.5,0.5" alt="Done" data-load="false" data-image-id="66805fae8784f560cc0a9bd9" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689134373-V20NFY47L1XYX087643I/DPN05414_s.jpg?format=1000w" /><br>
                </a>
                
                  Done
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Wall portion mounted" data-description="&lt;p&gt;The piece is screwed to the wall using the same hole I had before.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689135407-21POKYZG7BTOMEAPK1B9/DPN05416_s.jpg" role="button" aria-labelledby="66805fafecaf8a4e5c083ed1-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689135407-21POKYZG7BTOMEAPK1B9/DPN05416_s.jpg" data-image-dimensions="2500x2607" data-image-focal-point="0.5,0.5" alt="Wall portion mounted" data-load="false" data-image-id="66805fafecaf8a4e5c083ed1" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689135407-21POKYZG7BTOMEAPK1B9/DPN05416_s.jpg?format=1000w" /><br>
                </a>
                
                  Wall portion mounted
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Cross brace" data-description="&lt;p&gt;I took a scrap of plywood and drilled a few holes in it (to give my future self some options). This simply slides over the 'stud' and acts as a hold-down&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689135236-AGRHYEN1DXZ565OKW1C1/DPN05415_s.jpg" role="button" aria-labelledby="66805faf0dbb5c1ef8469735-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689135236-AGRHYEN1DXZ565OKW1C1/DPN05415_s.jpg" data-image-dimensions="2500x1795" data-image-focal-point="0.5,0.5" alt="Cross brace" data-load="false" data-image-id="66805faf0dbb5c1ef8469735" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689135236-AGRHYEN1DXZ565OKW1C1/DPN05415_s.jpg?format=1000w" /><br>
                </a>
                
                  Cross brace
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Mounted!" data-description="&lt;p&gt;Bonus: I have the feeder CAT6 cables loosely in place.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689132295-DW0DG0I7FVW3PHD46HMF/DPN05417_s.jpg" role="button" aria-labelledby="66805fabc70bae6bf1880111-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689132295-DW0DG0I7FVW3PHD46HMF/DPN05417_s.jpg" data-image-dimensions="2500x3284" data-image-focal-point="0.5,0.5" alt="Mounted!" data-load="false" data-image-id="66805fabc70bae6bf1880111" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719689132295-DW0DG0I7FVW3PHD46HMF/DPN05417_s.jpg?format=1000w" /><br>
                </a>
                
                  Mounted!
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  




  








  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-2">Step 2 - Remaking the bottom panel</h3>
  


  
  <p class="">The bottom panel definitely needs to be re-cut as there were substantial changes to the number and placement of keystone panels. I ended up doing it a <em>super hard </em>way by cutting everything out using an oscillating multi-tool; I know you can drill four holes and connect them using a jigsaw, but I simply didn’t trust (myself, the tools, nor the process) to be able to make the cuts super precisely (since this is a finish surface). The overlap of the trim panels I had on hand was something tiny (3/8? 1/4? I’m not sure) and I’ve seen drill bits skate more than that...</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Cutting the bottom panel" data-description="&lt;p&gt;I cut this almost the same size as the Mk I desk (within half inch or so). &lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691212310-UEK0A4GNVXE4G10JQE02/DPN05419_s.jpg" role="button" aria-labelledby="668067ccb3a76d62ddc68fc6-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691212310-UEK0A4GNVXE4G10JQE02/DPN05419_s.jpg" data-image-dimensions="2500x1730" data-image-focal-point="0.5,0.5" alt="Cutting the bottom panel" data-load="false" data-image-id="668067ccb3a76d62ddc68fc6" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691212310-UEK0A4GNVXE4G10JQE02/DPN05419_s.jpg?format=1000w" /><br>
                </a>
                
                  Cutting the bottom panel
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Laying everything out" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691214222-CNITQL7FAI14EM7C6ODM/IMG20240618164139_s.jpg" role="button" aria-labelledby="668067cdecaf8a4e5c0a3bee-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691214222-CNITQL7FAI14EM7C6ODM/IMG20240618164139_s.jpg" data-image-dimensions="2500x1462" data-image-focal-point="0.5,0.5" alt="Laying everything out" data-load="false" data-image-id="668067cdecaf8a4e5c0a3bee" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691214222-CNITQL7FAI14EM7C6ODM/IMG20240618164139_s.jpg?format=1000w" /><br>
                </a>
                
                  Laying everything out
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Marking everything out" data-description="&lt;p&gt;I ended up making marking templates out of some scraps so I could precisely mark things out.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691215001-9N7W62JHNNB2QM1O2DOJ/IMG20240618164648_s.jpg" role="button" aria-labelledby="668067cef4b8dd2e2ae74673-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691215001-9N7W62JHNNB2QM1O2DOJ/IMG20240618164648_s.jpg" data-image-dimensions="2500x1011" data-image-focal-point="0.5,0.5" alt="Marking everything out" data-load="false" data-image-id="668067cef4b8dd2e2ae74673" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691215001-9N7W62JHNNB2QM1O2DOJ/IMG20240618164648_s.jpg?format=1000w" /><br>
                </a>
                
                  Marking everything out
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Clamped and ready to cut" data-description="&lt;p&gt;I used a new carbide OMT blade for this&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691213081-C4Y5NYMGLOATQ0WW899K/DPN05420_s.jpg" role="button" aria-labelledby="668067cca6342267dbbb6970-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691213081-C4Y5NYMGLOATQ0WW899K/DPN05420_s.jpg" data-image-dimensions="2500x1670" data-image-focal-point="0.5,0.5" alt="Clamped and ready to cut" data-load="false" data-image-id="668067cca6342267dbbb6970" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691213081-C4Y5NYMGLOATQ0WW899K/DPN05420_s.jpg?format=1000w" /><br>
                </a>
                
                  Clamped and ready to cut
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Slow and steady" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691215318-ABVUAHBL2WRYNYAIOYZY/IMG20240618175532_s.jpg" role="button" aria-labelledby="668067cf5cb9b3371de0461a-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691215318-ABVUAHBL2WRYNYAIOYZY/IMG20240618175532_s.jpg" data-image-dimensions="2500x1123" data-image-focal-point="0.5,0.5" alt="Slow and steady" data-load="false" data-image-id="668067cf5cb9b3371de0461a" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691215318-ABVUAHBL2WRYNYAIOYZY/IMG20240618175532_s.jpg?format=1000w" /><br>
                </a>
                
                  Slow and steady
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Cut outs done" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691212192-YXCH2XE2FVAHW5C8YMKA/IMG20240618191546_s.jpg" role="button" aria-labelledby="668067cc4d743030d7d5362c-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691212192-YXCH2XE2FVAHW5C8YMKA/IMG20240618191546_s.jpg" data-image-dimensions="2500x1175" data-image-focal-point="0.5,0.5" alt="Cut outs done" data-load="false" data-image-id="668067cc4d743030d7d5362c" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719691212192-YXCH2XE2FVAHW5C8YMKA/IMG20240618191546_s.jpg?format=1000w" /><br>
                </a>
                
                  Cut outs done
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  




  








  
  <p class="">Spoiler: in my original plan, I was going to run the speaker connections on the right hand side of the wall but at some point, I decided I didn’t want to do that and I would come out the face of the wall as I did previously. So I’m missing two keystone panel cutouts that I would have to make later.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-3">Step 3 - Remaking the middle panel</h3>
  


  
  <p class="">Although most of the middle panel would be ‘hidden’ due to having another panel on top of it, the placement of the keystones required me to make the panel anew. I <em>probably</em> could have figured a way to reuse the existing panel, but I wasn’t going to expend the brainpower to deal with it at the time. Same as previously, I cut everything much more generously because there’s no reason to fight for stupid-exact tolerances on cutouts that won’t be seen in any way.</p><p class="">One change I did have to consider was switching two of the fixed monitor mounts for gas-spring mounts which had a different bolt pattern.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Figuring out where the cutouts need to go" data-description="&lt;p&gt;I used the Mk I mid panel as inspiration, but this time cutting things out a bit wider.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692376598-ALZPBV3X14X1YLJ3V37T/DPN05422_s.jpg" role="button" aria-labelledby="66806c582064155d7a9425b3-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692376598-ALZPBV3X14X1YLJ3V37T/DPN05422_s.jpg" data-image-dimensions="2500x975" data-image-focal-point="0.5,0.5" alt="Figuring out where the cutouts need to go" data-load="false" data-image-id="66806c582064155d7a9425b3" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692376598-ALZPBV3X14X1YLJ3V37T/DPN05422_s.jpg?format=1000w" /><br>
                </a>
                
                  Figuring out where the cutouts need to go
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Finalizing where everything goes" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692377402-N4UY8CIB17ZVP7ASEWL7/DPN05424_s.jpg" role="button" aria-labelledby="66806c59361e6110fcb19637-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692377402-N4UY8CIB17ZVP7ASEWL7/DPN05424_s.jpg" data-image-dimensions="2500x1179" data-image-focal-point="0.5,0.5" alt="Finalizing where everything goes" data-load="false" data-image-id="66806c59361e6110fcb19637" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692377402-N4UY8CIB17ZVP7ASEWL7/DPN05424_s.jpg?format=1000w" /><br>
                </a>
                
                  Finalizing where everything goes
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Placing  drill points exactly" data-description="&lt;p&gt;I used a 1/2&quot; forstner bit to pre-mark where to drill (using a 1/2&quot; bit).&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692377347-I08SWK92CZ2KMDMCODQM/DPN05423_s.jpg" role="button" aria-labelledby="66806c59ba73191bbcb8329f-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692377347-I08SWK92CZ2KMDMCODQM/DPN05423_s.jpg" data-image-dimensions="2500x1883" data-image-focal-point="0.5,0.5" alt="Placing  drill points exactly" data-load="false" data-image-id="66806c59ba73191bbcb8329f" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692377347-I08SWK92CZ2KMDMCODQM/DPN05423_s.jpg?format=1000w" /><br>
                </a>
                
                  Placing  drill points exactly
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Drilled" data-description="&lt;p&gt;I'm only planning on using the jigsaw for the large opening (which is hidden behind another plate). For the keystone plates, I'm still going to use an OMT for more a precise fit.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692378228-0X4XRTZE8URSQKCSY97H/DPN05425_s.jpg" role="button" aria-labelledby="66806c5ac70bae6bf18b547b-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692378228-0X4XRTZE8URSQKCSY97H/DPN05425_s.jpg" data-image-dimensions="2500x1356" data-image-focal-point="0.5,0.5" alt="Drilled" data-load="false" data-image-id="66806c5ac70bae6bf18b547b" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692378228-0X4XRTZE8URSQKCSY97H/DPN05425_s.jpg?format=1000w" /><br>
                </a>
                
                  Drilled
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Jigsaw work" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692378291-YCTR06SQDEZHH7QO1AVS/DPN05426_s.jpg" role="button" aria-labelledby="66806c5a2064155d7a9425f2-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692378291-YCTR06SQDEZHH7QO1AVS/DPN05426_s.jpg" data-image-dimensions="2500x1833" data-image-focal-point="0.5,0.5" alt="Jigsaw work" data-load="false" data-image-id="66806c5a2064155d7a9425f2" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692378291-YCTR06SQDEZHH7QO1AVS/DPN05426_s.jpg?format=1000w" /><br>
                </a>
                
                  Jigsaw work
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Cutting out the wallplate holes" data-description="&lt;p&gt;The speaker holes were done with a holesaw.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692379009-7BU2858YOAC4R5V17ALL/DPN05427_s.jpg" role="button" aria-labelledby="66806c5a846ebb74f8e9c5c2-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692379009-7BU2858YOAC4R5V17ALL/DPN05427_s.jpg" data-image-dimensions="2500x1339" data-image-focal-point="0.5,0.5" alt="Cutting out the wallplate holes" data-load="false" data-image-id="66806c5a846ebb74f8e9c5c2" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692379009-7BU2858YOAC4R5V17ALL/DPN05427_s.jpg?format=1000w" /><br>
                </a>
                
                  Cutting out the wallplate holes
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Mk II compared to Mk I" data-description="&lt;p&gt;Everything has a bit more wiggle room. I &lt;em&gt;probably &lt;/em&gt;could have retrofit the Mk I panel to suit my needs but oh well.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692379319-4X0PB92O1X65VWXJB1F3/DPN05428_s.jpg" role="button" aria-labelledby="66806c5b026a9e18d8d59faa-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692379319-4X0PB92O1X65VWXJB1F3/DPN05428_s.jpg" data-image-dimensions="2500x1244" data-image-focal-point="0.5,0.5" alt="Mk II compared to Mk I" data-load="false" data-image-id="66806c5b026a9e18d8d59faa" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692379319-4X0PB92O1X65VWXJB1F3/DPN05428_s.jpg?format=1000w" /><br>
                </a>
                
                  Mk II compared to Mk I
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692376671-11CX5SQ8Y18WX42A2I3A/DPN05439_s.jpg" role="button" aria-labelledby="66806c5876d3c40899b76048-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692376671-11CX5SQ8Y18WX42A2I3A/DPN05439_s.jpg" data-image-dimensions="2500x1518" data-image-focal-point="0.5,0.5" alt="DPN05439_s.jpg" data-load="false" data-image-id="66806c5876d3c40899b76048" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692376671-11CX5SQ8Y18WX42A2I3A/DPN05439_s.jpg?format=1000w" /><br>
                </a>
                
                  
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Transferring screw holes" data-description="&lt;p&gt;Since the middle plate is screwed from behind, I used the Mk I middle plate to transfer the screw locations to the Mk II plate&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692379724-PTGVDKH1P4CZDOSKWUV7/DPN05429_s.jpg" role="button" aria-labelledby="66806c5b42b14d3de6f254e4-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692379724-PTGVDKH1P4CZDOSKWUV7/DPN05429_s.jpg" data-image-dimensions="2500x1219" data-image-focal-point="0.5,0.5" alt="Transferring screw holes" data-load="false" data-image-id="66806c5b42b14d3de6f254e4" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692379724-PTGVDKH1P4CZDOSKWUV7/DPN05429_s.jpg?format=1000w" /><br>
                </a>
                
                  Transferring screw holes
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Transferring screw locations" data-description="&lt;p&gt;To do this I just ran the same countersink bit through the Mk I plate&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692380294-K6SPXNYR34CYYK1XT1F9/DPN05430_s.jpg" role="button" aria-labelledby="66806c5c2ed338184dce6ef9-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692380294-K6SPXNYR34CYYK1XT1F9/DPN05430_s.jpg" data-image-dimensions="2500x2147" data-image-focal-point="0.5,0.5" alt="Transferring screw locations" data-load="false" data-image-id="66806c5c2ed338184dce6ef9" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692380294-K6SPXNYR34CYYK1XT1F9/DPN05430_s.jpg?format=1000w" /><br>
                </a>
                
                  Transferring screw locations
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Countersinking the Mk II plate" data-description="&lt;p&gt;Once the screw locations were marked, I went and pre-countersunk the holes on the Mk II plate.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692380398-9MAP6CHB1BDKH8NCRDM1/DPN05432_s.jpg" role="button" aria-labelledby="66806c5c71a9a014e5009e8d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692380398-9MAP6CHB1BDKH8NCRDM1/DPN05432_s.jpg" data-image-dimensions="2500x1376" data-image-focal-point="0.5,0.5" alt="Countersinking the Mk II plate" data-load="false" data-image-id="66806c5c71a9a014e5009e8d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692380398-9MAP6CHB1BDKH8NCRDM1/DPN05432_s.jpg?format=1000w" /><br>
                </a>
                
                  Countersinking the Mk II plate
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Transferring the holes for the middle monitor" data-description="&lt;p&gt;The middle monitor would remain the same -- using a fixed monitor mount. As such, I could just use the same size bit to transfer the location to the middle plate&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692381140-LY1UN89AT5G8MM5158KL/DPN05433_s.jpg" role="button" aria-labelledby="66806c5cc27dd900025315cf-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692381140-LY1UN89AT5G8MM5158KL/DPN05433_s.jpg" data-image-dimensions="2500x2014" data-image-focal-point="0.5,0.5" alt="Transferring the holes for the middle monitor" data-load="false" data-image-id="66806c5cc27dd900025315cf" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692381140-LY1UN89AT5G8MM5158KL/DPN05433_s.jpg?format=1000w" /><br>
                </a>
                
                  Transferring the holes for the middle monitor
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Side monitor mounts" data-description="&lt;p&gt;The mounting location for the side monitors didn't line up but naturally I can re-use one of the holes, so I opted to do that. Using the included template, I marked the location for the second hole.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692381181-V8L7HPUDPVED5L4U8Q8L/DPN05435_s.jpg" role="button" aria-labelledby="66806c5dee8340731027e7f7-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692381181-V8L7HPUDPVED5L4U8Q8L/DPN05435_s.jpg" data-image-dimensions="2500x2364" data-image-focal-point="0.5,0.5" alt="Side monitor mounts" data-load="false" data-image-id="66806c5dee8340731027e7f7" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692381181-V8L7HPUDPVED5L4U8Q8L/DPN05435_s.jpg?format=1000w" /><br>
                </a>
                
                  Side monitor mounts
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Drilling plumb holes" data-description="&lt;p&gt;I used a drill guide to help drill the hole plumb.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692381885-MOYSIR4V32EDSWQBHCLU/DPN05436_s.jpg" role="button" aria-labelledby="66806c5d33163c5155d48079-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692381885-MOYSIR4V32EDSWQBHCLU/DPN05436_s.jpg" data-image-dimensions="2500x1969" data-image-focal-point="0.5,0.5" alt="Drilling plumb holes" data-load="false" data-image-id="66806c5d33163c5155d48079" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692381885-MOYSIR4V32EDSWQBHCLU/DPN05436_s.jpg?format=1000w" /><br>
                </a>
                
                  Drilling plumb holes
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="The 'extra' hole" data-description="&lt;p&gt;I opted to use the extra hole to bolt the dress-plate to the middle plate.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692382131-TAD61JYLPZCIP8I4IJ5O/DPN05437_s.jpg" role="button" aria-labelledby="66806c5e015586177886d1f5-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692382131-TAD61JYLPZCIP8I4IJ5O/DPN05437_s.jpg" data-image-dimensions="2500x1765" data-image-focal-point="0.5,0.5" alt="The 'extra' hole" data-load="false" data-image-id="66806c5e015586177886d1f5" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692382131-TAD61JYLPZCIP8I4IJ5O/DPN05437_s.jpg?format=1000w" /><br>
                </a>
                
                  The 'extra' hole
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Test mount" data-description="&lt;p&gt;Everything seems to work.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692382788-ZD0O4ICAM043HYN5NDC0/DPN05438_s.jpg" role="button" aria-labelledby="66806c5ee15ed3236fbd554e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692382788-ZD0O4ICAM043HYN5NDC0/DPN05438_s.jpg" data-image-dimensions="2500x1994" data-image-focal-point="0.5,0.5" alt="Test mount" data-load="false" data-image-id="66806c5ee15ed3236fbd554e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719692382788-ZD0O4ICAM043HYN5NDC0/DPN05438_s.jpg?format=1000w" /><br>
                </a>
                
                  Test mount
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="All done, from behind" data-description="&lt;p&gt;Now that the new monitor mounts are in place, I can permanently connect these two panels together.&lt;/p&gt;&lt;p&gt;Between the Mk I and Mk II designs, I moved the threaded inserts to the back of the second panel rather than having them sandwiched in between. Both work, but I feel this is a more elegant way to place leverage the threaded insert to resist pull out.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693168767-ZDUVVJGV4IHRWVLMMUD2/DPN05439_s.jpg" role="button" aria-labelledby="66806f70c70bae6bf18c2295-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693168767-ZDUVVJGV4IHRWVLMMUD2/DPN05439_s.jpg" data-image-dimensions="2500x1518" data-image-focal-point="0.5,0.5" alt="All done, from behind" data-load="false" data-image-id="66806f70c70bae6bf18c2295" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693168767-ZDUVVJGV4IHRWVLMMUD2/DPN05439_s.jpg?format=1000w" /><br>
                </a>
                
                  All done, from behind
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  




  








  
  <p class="">Once the woodworking phase was complete, I continued with the wiring phase — the middle plate is the most complicated since there’s a ton of stuff coming in/through it (from below and now, from above too). Thankfully, a Rubbermaid bin was a good height to bring it to a close enough that I could work on it.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Always a good sign" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693301015-1U7BR5MYIFNI3GSOXDMF/IMG20240620111952_s.jpg" role="button" aria-labelledby="66806ff4435a9911c6688294-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693301015-1U7BR5MYIFNI3GSOXDMF/IMG20240620111952_s.jpg" data-image-dimensions="2500x2375" data-image-focal-point="0.5,0.5" alt="Always a good sign" data-load="false" data-image-id="66806ff4435a9911c6688294" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693301015-1U7BR5MYIFNI3GSOXDMF/IMG20240620111952_s.jpg?format=1000w" /><br>
                </a>
                
                  Always a good sign
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="An absolutely absurd amount of cables..." data-description="&lt;p&gt;Going every which way -- I'm pretty sure at this point, nearly all the cables are just for one PC as well.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693302001-KSWXMPHWWIDJFJH6S2K8/IMG20240620222309_s.jpg" role="button" aria-labelledby="66806ff547659c63ba281e89-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693302001-KSWXMPHWWIDJFJH6S2K8/IMG20240620222309_s.jpg" data-image-dimensions="2500x1491" data-image-focal-point="0.5,0.5" alt="An absolutely absurd amount of cables..." data-load="false" data-image-id="66806ff547659c63ba281e89" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693302001-KSWXMPHWWIDJFJH6S2K8/IMG20240620222309_s.jpg?format=1000w" /><br>
                </a>
                
                  An absolutely absurd amount of cables...
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Rubbermaid Bin to the rescue" data-description="&lt;p&gt;Was a perfect height to allow me to work semi-tethered.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693302210-SXOI536Y2ECJQIAT8Q9H/IMG20240621093355_s.jpg" role="button" aria-labelledby="66806ff51524342bc2cb27db-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693302210-SXOI536Y2ECJQIAT8Q9H/IMG20240621093355_s.jpg" data-image-dimensions="2501x4122" data-image-focal-point="0.5,0.5" alt="Rubbermaid Bin to the rescue" data-load="false" data-image-id="66806ff51524342bc2cb27db" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693302210-SXOI536Y2ECJQIAT8Q9H/IMG20240621093355_s.jpg?format=1000w" /><br>
                </a>
                
                  Rubbermaid Bin to the rescue
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Keystones in place" data-description="&lt;p&gt;I used plastidip for the wall plates since I was in a hurry and wanted them to dry faster.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693303084-DHEXYGC74IS8DK32LE4S/IMG20240622104027_s.jpg" role="button" aria-labelledby="66806ff62eabc03a2268afc9-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693303084-DHEXYGC74IS8DK32LE4S/IMG20240622104027_s.jpg" data-image-dimensions="2500x1452" data-image-focal-point="0.5,0.5" alt="Keystones in place" data-load="false" data-image-id="66806ff62eabc03a2268afc9" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693303084-DHEXYGC74IS8DK32LE4S/IMG20240622104027_s.jpg?format=1000w" /><br>
                </a>
                
                  Keystones in place
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Middle panel done (for now)" data-description="&lt;p&gt;I'll have to take this off to flush out some of the connectors for the second computer (coming down from above), but this is in a good state for now.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693301017-Z9FJD6LXUDEJI76WLTUS/IMG20240622111144_s.jpg" role="button" aria-labelledby="66806ff4846ebb74f8eab6d1-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693301017-Z9FJD6LXUDEJI76WLTUS/IMG20240622111144_s.jpg" data-image-dimensions="2500x1912" data-image-focal-point="0.5,0.5" alt="Middle panel done (for now)" data-load="false" data-image-id="66806ff4846ebb74f8eab6d1" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719693301017-Z9FJD6LXUDEJI76WLTUS/IMG20240622111144_s.jpg?format=1000w" /><br>
                </a>
                
                  Middle panel done (for now)
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-4">Step 4 - Tweaking the top panel</h3>
  


  
  <p class="">I was able to reuse the top panel and just make some cutouts to it which saves me a bit of material and time. For some reason (it made sense in my head), I opted <em>not </em>to fully secure the middle (nor top) panels down and just leaned/propped them up. It’s a bit complicated to explain, but I <em>did </em>have to go back and forth with taking the middle and top panel off to fish wires around. As I got closer to the finish line, I did run some temporary screws to hold the middle and top plates in place.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Reusing the Mk I top plate" data-description="&lt;p&gt;Ever so slight difference in stain color but that would mostly be hidden anyways&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694152100-V14SMB164NLOVZ0MJ6VF/IMG20240622122311_s.jpg" role="button" aria-labelledby="6680734718bb751ff19c120e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694152100-V14SMB164NLOVZ0MJ6VF/IMG20240622122311_s.jpg" data-image-dimensions="2500x1480" data-image-focal-point="0.5,0.5" alt="Reusing the Mk I top plate" data-load="false" data-image-id="6680734718bb751ff19c120e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694152100-V14SMB164NLOVZ0MJ6VF/IMG20240622122311_s.jpg?format=1000w" /><br>
                </a>
                
                  Reusing the Mk I top plate
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Marking the cutouts for the top cubby" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694152100-1PASA1FVZZHWR9LDWALV/IMG20240622134411_s.jpg" role="button" aria-labelledby="668073475eee29446114162e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694152100-1PASA1FVZZHWR9LDWALV/IMG20240622134411_s.jpg" data-image-dimensions="2500x927" data-image-focal-point="0.5,0.5" alt="Marking the cutouts for the top cubby" data-load="false" data-image-id="668073475eee29446114162e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694152100-1PASA1FVZZHWR9LDWALV/IMG20240622134411_s.jpg?format=1000w" /><br>
                </a>
                
                  Marking the cutouts for the top cubby
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Using forstner bit for precise locating" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694153196-4FRMMNWELKE6Q90OHGP0/IMG20240622134946_s.jpg" role="button" aria-labelledby="66807348a65b2515e5e35793-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694153196-4FRMMNWELKE6Q90OHGP0/IMG20240622134946_s.jpg" data-image-dimensions="2500x1685" data-image-focal-point="0.5,0.5" alt="Using forstner bit for precise locating" data-load="false" data-image-id="66807348a65b2515e5e35793" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694153196-4FRMMNWELKE6Q90OHGP0/IMG20240622134946_s.jpg?format=1000w" /><br>
                </a>
                
                  Using forstner bit for precise locating
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Drilled the corners out" data-description="&lt;p&gt;Since this cubby would be mostly obscured, I was a bit more okay to try the jigsaw to cut this out. It worked reasonably well.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694153391-JIAKS00HC5XV2YCPIB0F/IMG20240622140127_s.jpg" role="button" aria-labelledby="66807348c46d45216b64282d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694153391-JIAKS00HC5XV2YCPIB0F/IMG20240622140127_s.jpg" data-image-dimensions="2500x1453" data-image-focal-point="0.5,0.5" alt="Drilled the corners out" data-load="false" data-image-id="66807348c46d45216b64282d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694153391-JIAKS00HC5XV2YCPIB0F/IMG20240622140127_s.jpg?format=1000w" /><br>
                </a>
                
                  Drilled the corners out
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Temporarily in place" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694154307-LCHQN1YBMCUQGHL5EM5Q/IMG20240622151514_s.jpg" role="button" aria-labelledby="6680734933163c5155d67fc9-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694154307-LCHQN1YBMCUQGHL5EM5Q/IMG20240622151514_s.jpg" data-image-dimensions="2499x1819" data-image-focal-point="0.5,0.5" alt="Temporarily in place" data-load="false" data-image-id="6680734933163c5155d67fc9" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694154307-LCHQN1YBMCUQGHL5EM5Q/IMG20240622151514_s.jpg?format=1000w" /><br>
                </a>
                
                  Temporarily in place
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="VESA mount is good for something..." data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694154423-TOB9NI5YRP5JPM5EEYDE/IMG20240622154854_s.jpg" role="button" aria-labelledby="6680734a720ee263896dd842-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694154423-TOB9NI5YRP5JPM5EEYDE/IMG20240622154854_s.jpg" data-image-dimensions="2500x1487" data-image-focal-point="0.5,0.5" alt="VESA mount is good for something..." data-load="false" data-image-id="6680734a720ee263896dd842" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694154423-TOB9NI5YRP5JPM5EEYDE/IMG20240622154854_s.jpg?format=1000w" /><br>
                </a>
                
                  VESA mount is good for something...
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="I ran out of keystones" data-description="&lt;p&gt;So I had to wait for a delivery. I did pre-run the cable to that point with the right amount of slack. &lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694155357-Z6P32OV2YBRTM6R2EF8R/IMG20240623220728_s.jpg" role="button" aria-labelledby="6680734b9187b65762dfdda6-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694155357-Z6P32OV2YBRTM6R2EF8R/IMG20240623220728_s.jpg" data-image-dimensions="2500x2679" data-image-focal-point="0.5,0.5" alt="I ran out of keystones" data-load="false" data-image-id="6680734b9187b65762dfdda6" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694155357-Z6P32OV2YBRTM6R2EF8R/IMG20240623220728_s.jpg?format=1000w" /><br>
                </a>
                
                  I ran out of keystones
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Test fitting the original shelf" data-description="&lt;p&gt;The divider straddled the keystone plates perfectly (I did roughly measure to try for this. &lt;/p&gt;&lt;p&gt;There's a gap at the back where the French cleat goes that I can run cables to a different compartment, but I did opt to just remove the divider completely.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694155520-WS8FJLJ4CMY5R27QPTS7/IMG20240624175450_s.jpg" role="button" aria-labelledby="6680734b08464c26fb0b976e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694155520-WS8FJLJ4CMY5R27QPTS7/IMG20240624175450_s.jpg" data-image-dimensions="2500x1386" data-image-focal-point="0.5,0.5" alt="Test fitting the original shelf" data-load="false" data-image-id="6680734b08464c26fb0b976e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694155520-WS8FJLJ4CMY5R27QPTS7/IMG20240624175450_s.jpg?format=1000w" /><br>
                </a>
                
                  Test fitting the original shelf
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  




  








  
  <p class="">Although I could have used the cubby as it was, I opted to knock out the divider and have a large compartment up top. This would afford me plenty of space to put all the tech stuff I wanted to have up top. While I had the cubby on the worktable, I reinforced the microphone mount area as I noticed it sometimes had a bit of flex.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Triangles from scrap" data-description="&lt;p&gt;Cut on the bandsaw, glued and pinned in place.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694683768-9FG0F23PKX9WRI1RQL1O/IMG20240624184243_s.jpg" role="button" aria-labelledby="6680755b75cca81ba1aff3fc-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694683768-9FG0F23PKX9WRI1RQL1O/IMG20240624184243_s.jpg" data-image-dimensions="2500x1256" data-image-focal-point="0.5,0.5" alt="Triangles from scrap" data-load="false" data-image-id="6680755b75cca81ba1aff3fc" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694683768-9FG0F23PKX9WRI1RQL1O/IMG20240624184243_s.jpg?format=1000w" /><br>
                </a>
                
                  Triangles from scrap
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Super sturdy" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694683916-V2C4RI34APWG3JME4YTF/IMG20240624184559_s.jpg" role="button" aria-labelledby="6680755bee834073102a4050-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694683916-V2C4RI34APWG3JME4YTF/IMG20240624184559_s.jpg" data-image-dimensions="2500x1838" data-image-focal-point="0.5,0.5" alt="Super sturdy" data-load="false" data-image-id="6680755bee834073102a4050" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694683916-V2C4RI34APWG3JME4YTF/IMG20240624184559_s.jpg?format=1000w" /><br>
                </a>
                
                  Super sturdy
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="After knocking out the divider" data-description="&lt;p&gt;Plenty of room in the large cubby&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694682815-NCK078WGF44U3RG9GWEB/IMG20240624191328_s.jpg" role="button" aria-labelledby="6680755a5cb9b3371de3eda0-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694682815-NCK078WGF44U3RG9GWEB/IMG20240624191328_s.jpg" data-image-dimensions="2500x1101" data-image-focal-point="0.5,0.5" alt="After knocking out the divider" data-load="false" data-image-id="6680755a5cb9b3371de3eda0" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694682815-NCK078WGF44U3RG9GWEB/IMG20240624191328_s.jpg?format=1000w" /><br>
                </a>
                
                  After knocking out the divider
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Test populate" data-description="&lt;p&gt;Still should have room enough for a mini-PC in there.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694682886-KT5IW8595KMKWJN29K50/IMG20240625141930_s.jpg" role="button" aria-labelledby="6680755a71a9a014e502cd88-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694682886-KT5IW8595KMKWJN29K50/IMG20240625141930_s.jpg" data-image-dimensions="2500x1005" data-image-focal-point="0.5,0.5" alt="Test populate" data-load="false" data-image-id="6680755a71a9a014e502cd88" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719694682886-KT5IW8595KMKWJN29K50/IMG20240625141930_s.jpg?format=1000w" /><br>
                </a>
                
                  Test populate
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-5">Step 5 - RGB</h3>
  


  
  <p class="">Coming off the <a href="https://www.minmaxgeek.com/blog/led-slat-wall" target="_blank">LED Slat Wall</a> project, I knew I was so totally done with chopping up strips of RGB up; the size of the faux-wall (roughly 48” across) was a perfect use case for using two 1m RGB strips. Since I was buying individual strips anyways, I opted for a <a href="https://amzn.to/3RMlfG8" target="_blank">144 led/m</a> strip. The only gotcha with these strips is whether they will fit inside the <a href="https://amzn.to/3zlSpX5" target="_blank">aluminum channel</a> I use. Thankfully they do — you do have to carefully push them in there though, there’s probably 0.5mm wiggle room.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Figuring out where to tuck the tail of this RGB strip" data-description="&lt;p&gt;I ended up chopping off the last LED which let me have the strip end flush wih the channel.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695408217-J299VW2FCL9W1FGRB5Q1/IMG20240622132634_s.jpg" role="button" aria-labelledby="66807830d90ab5081776770b-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695408217-J299VW2FCL9W1FGRB5Q1/IMG20240622132634_s.jpg" data-image-dimensions="2500x1245" data-image-focal-point="0.5,0.5" alt="Figuring out where to tuck the tail of this RGB strip" data-load="false" data-image-id="66807830d90ab5081776770b" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695408217-J299VW2FCL9W1FGRB5Q1/IMG20240622132634_s.jpg?format=1000w" /><br>
                </a>
                
                  Figuring out where to tuck the tail of this RGB strip
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Marking the hole" data-description="&lt;p&gt;On the other side, I did have to punch a hole to run my JST connector cable through. This ended up being a 5/8 hole needed to fit things neatly.&lt;/p&gt;&lt;p&gt;I ended up drilling in place, after getting Nicole to help me open up (and balance) the top plate so I could verify there was nothing behind there.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695408646-GI42IZ2WKQ97GJCB07IT/IMG20240622163348_s.jpg" role="button" aria-labelledby="668078300a559f4a11860657-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695408646-GI42IZ2WKQ97GJCB07IT/IMG20240622163348_s.jpg" data-image-dimensions="2500x1211" data-image-focal-point="0.738037109375,0.37487964898767606" alt="Marking the hole" data-load="false" data-image-id="668078300a559f4a11860657" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695408646-GI42IZ2WKQ97GJCB07IT/IMG20240622163348_s.jpg?format=1000w" /><br>
                </a>
                
                  Marking the hole
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Needed to drill two holes" data-description="&lt;p&gt;One for each strip&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695407154-6ANJJOJK9IHO1Q10JFC9/IMG20240622171359_s.jpg" role="button" aria-labelledby="6680782e9187b65762e11a54-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695407154-6ANJJOJK9IHO1Q10JFC9/IMG20240622171359_s.jpg" data-image-dimensions="2500x5556" data-image-focal-point="0.45557750355113635,0.5883581459927721" alt="Needed to drill two holes" data-load="false" data-image-id="6680782e9187b65762e11a54" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695407154-6ANJJOJK9IHO1Q10JFC9/IMG20240622171359_s.jpg?format=1000w" /><br>
                </a>
                
                  Needed to drill two holes
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Long leader wires" data-description="&lt;p&gt;Using spade connectors I can extend the length between the controller and the LED strips as long as I need.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695409192-4ZC2HOJ32SGHG2A00SSY/IMG20240622170544_s.jpg" role="button" aria-labelledby="668078310dbb5c1ef84d2ec7-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695409192-4ZC2HOJ32SGHG2A00SSY/IMG20240622170544_s.jpg" data-image-dimensions="2500x864" data-image-focal-point="0.7789115646258503,0.5177145565257353" alt="Long leader wires" data-load="false" data-image-id="668078310dbb5c1ef84d2ec7" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695409192-4ZC2HOJ32SGHG2A00SSY/IMG20240622170544_s.jpg?format=1000w" /><br>
                </a>
                
                  Long leader wires
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Peeling back the tape on the strip" data-description="&lt;p&gt;I opted to do a partial peel since there's really no need to have all that adhesive at play -- it just makes life harder for me if I ever have to replace this strip.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695406830-3E6L52LZ9LUIOL1LV4GY/IMG20240624001616_s.jpg" role="button" aria-labelledby="6680782e95852d512bdc468d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695406830-3E6L52LZ9LUIOL1LV4GY/IMG20240624001616_s.jpg" data-image-dimensions="2500x760" data-image-focal-point="0.5,0.5" alt="Peeling back the tape on the strip" data-load="false" data-image-id="6680782e95852d512bdc468d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695406830-3E6L52LZ9LUIOL1LV4GY/IMG20240624001616_s.jpg?format=1000w" /><br>
                </a>
                
                  Peeling back the tape on the strip
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="All mounted" data-description="&lt;p&gt;I originally considered mounting this on a bevel but I like the forward looking LED more.&lt;/p&gt;&lt;p&gt;I specifically kept this spaced off of the monitor plate to have some wiggle room to work with if needed. &lt;/p&gt;&lt;p&gt;I only used to mounting clips so there's a bit of deflection if you press the channel, but there's an easy solution to that -- don't do that.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695407640-WBERH01L0PSV8NJ2CNEK/IMG20240624001851_s.jpg" role="button" aria-labelledby="6680782f7590354e682d9042-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695407640-WBERH01L0PSV8NJ2CNEK/IMG20240624001851_s.jpg" data-image-dimensions="2500x669" data-image-focal-point="0.5,0.5" alt="All mounted" data-load="false" data-image-id="6680782f7590354e682d9042" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719695407640-WBERH01L0PSV8NJ2CNEK/IMG20240624001851_s.jpg?format=1000w" /><br>
                </a>
                
                  All mounted
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-6">Step 6 - Side panels</h3>
  


  
  <p class="">The side panels are the last bit of the desk that needed to be done to finish the ‘woodworking’ component. Due to the way I made things with the Mk I, the 48” span of the panels does not run flush with the frame. In the Mk I design, I just screwed it down regardless, but I like to think I’m a bit more refined now. With the Mk II, I routed out a gap at the front so that if there is a bit of overhang on the panels, they wont interfere with the side panels <em>and</em> I can still screw the side panels flat to the frame.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Setting up to route" data-description="&lt;p&gt;I cut a generous relief (both in depth and width) so that I wouldn't have to worry about how much the overlap was.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696065406-D2A0UUXKR9UBPEDRP3KZ/IMG20240622183237_s.jpg" role="button" aria-labelledby="66807ac12eabc03a226b97ff-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696065406-D2A0UUXKR9UBPEDRP3KZ/IMG20240622183237_s.jpg" data-image-dimensions="2500x1215" data-image-focal-point="0.5,0.5" alt="Setting up to route" data-load="false" data-image-id="66807ac12eabc03a226b97ff" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696065406-D2A0UUXKR9UBPEDRP3KZ/IMG20240622183237_s.jpg?format=1000w" /><br>
                </a>
                
                  Setting up to route
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="All routed" data-description="&lt;p&gt;&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696064550-DBIPIHRLBTI79FLCB50V/IMG20240622183726_s.jpg" role="button" aria-labelledby="66807ac001558617788a7771-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696064550-DBIPIHRLBTI79FLCB50V/IMG20240622183726_s.jpg" data-image-dimensions="2500x1230" data-image-focal-point="0.5,0.5" alt="All routed" data-load="false" data-image-id="66807ac001558617788a7771" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696064550-DBIPIHRLBTI79FLCB50V/IMG20240622183726_s.jpg?format=1000w" /><br>
                </a>
                
                  All routed
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Cut out the relief for the wall trim" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696064717-RGTSL9K0LG28VZ1777W5/IMG20240622185102_s.jpg" role="button" aria-labelledby="66807ac0ee834073102b7807-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696064717-RGTSL9K0LG28VZ1777W5/IMG20240622185102_s.jpg" data-image-dimensions="2500x1948" data-image-focal-point="0.5,0.5" alt="Cut out the relief for the wall trim" data-load="false" data-image-id="66807ac0ee834073102b7807" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696064717-RGTSL9K0LG28VZ1777W5/IMG20240622185102_s.jpg?format=1000w" /><br>
                </a>
                
                  Cut out the relief for the wall trim
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Nice reveal" data-description="&lt;p&gt;After securing the panel to the skeleton there's a reveal that allows for some minor overlap with regards to the front panels.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696297091-TH3XNB6WGD2P6S3XO2M1/IMG20240629172305_s.jpg" role="button" aria-labelledby="66807ba81524342bc2ce2b26-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696297091-TH3XNB6WGD2P6S3XO2M1/IMG20240629172305_s.jpg" data-image-dimensions="2501x4555" data-image-focal-point="0.5,0.5" alt="Nice reveal" data-load="false" data-image-id="66807ba81524342bc2ce2b26" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696297091-TH3XNB6WGD2P6S3XO2M1/IMG20240629172305_s.jpg?format=1000w" /><br>
                </a>
                
                  Nice reveal
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-7">Step 7 - First power up</h3>
  


  
  <p class="">The downside about this wall project is that you can’t <em>really </em>test connectivity until everything is already in place; or at least, you can’t do so easily. This initial power up is just to verify the core bits work before I look at rebuilding vs modifying the desk portion.</p><p class="">I ended up getting <em>really</em> close with the placement of the keystone panels on the middle plate. With the cabinets the way they were now, there was maybe 1/4” interference between the plate and the desk — totally serviceable, but I was planning on redoing the cabinets anyways (or at the least, revisiting them).</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Monitors mounted up" data-description="&lt;p&gt;These gas strut arms are awesome and hold an absolute ton of weight - I had to tone down the tension a ton to get my monitors to not spring around&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572934-LWDNKIZ1EH0MH7B3VVVH/IMG20240623005749_s.jpg" role="button" aria-labelledby="66807cbc3625cd1d0cf98030-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572934-LWDNKIZ1EH0MH7B3VVVH/IMG20240623005749_s.jpg" data-image-dimensions="2500x1390" data-image-focal-point="0.5,0.5" alt="Monitors mounted up" data-load="false" data-image-id="66807cbc3625cd1d0cf98030" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572934-LWDNKIZ1EH0MH7B3VVVH/IMG20240623005749_s.jpg?format=1000w" /><br>
                </a>
                
                  Monitors mounted up
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Basics work" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572173-0I0HN8X6YLJ3UOBWK6OF/IMG20240623013637_s.jpg" role="button" aria-labelledby="66807cbb6fd1b60ffcfb6e25-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572173-0I0HN8X6YLJ3UOBWK6OF/IMG20240623013637_s.jpg" data-image-dimensions="2499x2953" data-image-focal-point="0.5,0.5" alt="Basics work" data-load="false" data-image-id="66807cbb6fd1b60ffcfb6e25" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572173-0I0HN8X6YLJ3UOBWK6OF/IMG20240623013637_s.jpg?format=1000w" /><br>
                </a>
                
                  Basics work
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Now testing the desk height" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572032-IFC89OOPX7T5O21YYO1X/IMG20240623233634_s.jpg" role="button" aria-labelledby="66807cbbf768f83c4b5e87e1-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572032-IFC89OOPX7T5O21YYO1X/IMG20240623233634_s.jpg" data-image-dimensions="2500x1276" data-image-focal-point="0.5,0.5" alt="Now testing the desk height" data-load="false" data-image-id="66807cbbf768f83c4b5e87e1" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572032-IFC89OOPX7T5O21YYO1X/IMG20240623233634_s.jpg?format=1000w" /><br>
                </a>
                
                  Now testing the desk height
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="So close" data-description="&lt;p&gt;While this totally &lt;em&gt;works&lt;/em&gt;, it would also bug the hell out of me every day, so I knew this had to be addressed.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572784-TX77MP6X51MZO9SCWAG3/IMG20240623233645_s.jpg" role="button" aria-labelledby="66807cbc6573f60943740aa3-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572784-TX77MP6X51MZO9SCWAG3/IMG20240623233645_s.jpg" data-image-dimensions="2500x1243" data-image-focal-point="0.5,0.5" alt="So close" data-load="false" data-image-id="66807cbc6573f60943740aa3" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719696572784-TX77MP6X51MZO9SCWAG3/IMG20240623233645_s.jpg?format=1000w" /><br>
                </a>
                
                  So close
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-8">Step 8 - Revisiting the drawers</h3>
  


  
  <p class="">I debated rebuilding the drawers from scratch, but truthfully, I didn’t feel like it yet — I wanted to use the setup for a bit (especially get through a PC upgrade) before revisiting a total rebuild. I opted to take the cabinet apart, shorten it a bunch and put it back together. How hard could it be?</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Apparently I glued the last one together" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697402794-X6QAMRGDZ00YX31KZK8P/DPN05441_s.jpg" role="button" aria-labelledby="66807ffaecaf8a4e5c10ce6d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697402794-X6QAMRGDZ00YX31KZK8P/DPN05441_s.jpg" data-image-dimensions="2500x1883" data-image-focal-point="0.5,0.5" alt="Apparently I glued the last one together" data-load="false" data-image-id="66807ffaecaf8a4e5c10ce6d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697402794-X6QAMRGDZ00YX31KZK8P/DPN05441_s.jpg?format=1000w" /><br>
                </a>
                
                  Apparently I glued the last one together
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Trimming it down to size" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697402743-GZLJ2TKXG4E5Q9GRTG2S/IMG20240624120638_s.jpg" role="button" aria-labelledby="66807ffaaae1c07a7ef4ac72-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697402743-GZLJ2TKXG4E5Q9GRTG2S/IMG20240624120638_s.jpg" data-image-dimensions="2500x1429" data-image-focal-point="0.5,0.5" alt="Trimming it down to size" data-load="false" data-image-id="66807ffaaae1c07a7ef4ac72" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697402743-GZLJ2TKXG4E5Q9GRTG2S/IMG20240624120638_s.jpg?format=1000w" /><br>
                </a>
                
                  Trimming it down to size
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Rebuilt" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697403938-UTWISBWNIKGI378KO9SQ/IMG20240624144540_s.jpg" role="button" aria-labelledby="66807ffbbaf59315c8074119-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697403938-UTWISBWNIKGI378KO9SQ/IMG20240624144540_s.jpg" data-image-dimensions="2499x4632" data-image-focal-point="0.5,0.5" alt="Rebuilt" data-load="false" data-image-id="66807ffbbaf59315c8074119" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697403938-UTWISBWNIKGI378KO9SQ/IMG20240624144540_s.jpg?format=1000w" /><br>
                </a>
                
                  Rebuilt
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Reinstalling the drawers" data-description="&lt;p&gt;Fidding with getting the drawers level on two axes and coplanar with each other is an exercise in frustration... or patience... one of those two.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697403724-M2PPEJ88KK67EIQRN9FD/IMG20240624151758_s.jpg" role="button" aria-labelledby="66807ffb914465474448189d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697403724-M2PPEJ88KK67EIQRN9FD/IMG20240624151758_s.jpg" data-image-dimensions="2500x993" data-image-focal-point="0.5,0.5" alt="Reinstalling the drawers" data-load="false" data-image-id="66807ffb914465474448189d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697403724-M2PPEJ88KK67EIQRN9FD/IMG20240624151758_s.jpg?format=1000w" /><br>
                </a>
                
                  Reinstalling the drawers
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Exercise in frustration" data-description="&lt;p&gt;Getting things plumb, level and coplanar is sheer frustration, especially when there's no wiggle room.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697404602-F01LHMC476JN6VNNA7PI/IMG20240624154038_s.jpg" role="button" aria-labelledby="66807ffcee834073102cbd0d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697404602-F01LHMC476JN6VNNA7PI/IMG20240624154038_s.jpg" data-image-dimensions="2500x1757" data-image-focal-point="0.5,0.5" alt="Exercise in frustration" data-load="false" data-image-id="66807ffcee834073102cbd0d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719697404602-F01LHMC476JN6VNNA7PI/IMG20240624154038_s.jpg?format=1000w" /><br>
                </a>
                
                  Exercise in frustration
                
              
            
          

          
        

      
    
  

  











  
  <p class="">The drawer aspect was extra difficult because I was cramming the same amount of drawers into (substantially) less space. I was able to get things to fit but <em>just barely</em>. </p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-9">Step 9 - Speaker mounts</h3>
  


  
  <p class="">My previous DIY speaker mounts were okay but they had a few problems with them</p><ul data-rte-list="default"><li><p class="">They weren’t beefy enough so they were splitting at the connection to the wall (this could have very well been low quality plywood I was using at the time)</p></li><li><p class="">While I was able to adjust left-right, it was a bit cumbersome</p></li><li><p class="">I wasn’t able to adjust up-down at all</p></li></ul><p class="">I ended up just buying a few cheap <a href="https://amzn.to/3XKrspX" target="_blank">speaker mounts</a> and I also had a similar set on hand that I picked up from a surplus store. For this phase, I only needed to mount the Front Left, Center and Front Right speakers to the wall.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Generic speaker mount" data-description="&lt;p&gt;Most of the speaker mounts follow a pattern like this. I'm hoping to leverage the mounting hole to run 1/4-20 machine screws into the back of my speakers.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698364348-9727PKVIJKN44MSPSLO3/HowToAssemble_s.jpg" role="button" aria-labelledby="668083bc7590354e68309033-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698364348-9727PKVIJKN44MSPSLO3/HowToAssemble_s.jpg" data-image-dimensions="2500x1125" data-image-focal-point="0.5,0.5" alt="Generic speaker mount" data-load="false" data-image-id="668083bc7590354e68309033" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698364348-9727PKVIJKN44MSPSLO3/HowToAssemble_s.jpg?format=1000w" /><br>
                </a>
                
                  Generic speaker mount
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Problem with the Logitech speakers" data-description="&lt;p&gt;Here we have a problem -- the back of the speaker has a concave arc to it &lt;em&gt;and&lt;/em&gt; there's the screw mounting location has a bump&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698385077-UNUE1ZUYDYSZ4PIY111F/IMG20240623230028_s.jpg" role="button" aria-labelledby="668083d0d61d9c427c679a86-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698385077-UNUE1ZUYDYSZ4PIY111F/IMG20240623230028_s.jpg" data-image-dimensions="2500x1125" data-image-focal-point="0.5,0.5" alt="Problem with the Logitech speakers" data-load="false" data-image-id="668083d0d61d9c427c679a86" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698385077-UNUE1ZUYDYSZ4PIY111F/IMG20240623230028_s.jpg?format=1000w" /><br>
                </a>
                
                  Problem with the Logitech speakers
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="One solution" data-description="&lt;p&gt;I disassembled by previous speaker mount to leverage just the brace part. This lets me span the concave/arc of the speaker.&lt;/p&gt;&lt;p&gt;Another solution would be to use a piece of scrap and a counterbore a relief for the bump&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698387684-8PSP9OKYPIK5W92096RX/IMG20240623231238_s.jpg" role="button" aria-labelledby="668083d3c27dd90002595c66-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698387684-8PSP9OKYPIK5W92096RX/IMG20240623231238_s.jpg" data-image-dimensions="2500x1125" data-image-focal-point="0.5,0.5" alt="One solution" data-load="false" data-image-id="668083d3c27dd90002595c66" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698387684-8PSP9OKYPIK5W92096RX/IMG20240623231238_s.jpg?format=1000w" /><br>
                </a>
                
                  One solution
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Installing the speaker to the mount" data-description="&lt;p&gt;For my case, I have to install the speaker after taking the mount apart first.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698391694-UR4K3KE5XWVXDFUY8CEE/IMG20240623231510_s.jpg" role="button" aria-labelledby="668083d71a9c550bc0781822-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698391694-UR4K3KE5XWVXDFUY8CEE/IMG20240623231510_s.jpg" data-image-dimensions="2500x1125" data-image-focal-point="0.5,0.5" alt="Installing the speaker to the mount" data-load="false" data-image-id="668083d71a9c550bc0781822" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698391694-UR4K3KE5XWVXDFUY8CEE/IMG20240623231510_s.jpg?format=1000w" /><br>
                </a>
                
                  Installing the speaker to the mount
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Legs" data-description="&lt;p&gt;One advantage of reusing my existing DIY mount brace is that the speakers can stand on their own.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698395230-DKEJV5CL0JPV7S0YVANM/IMG20240624223650_s.jpg" role="button" aria-labelledby="668083dbbaf59315c8081073-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698395230-DKEJV5CL0JPV7S0YVANM/IMG20240624223650_s.jpg" data-image-dimensions="2500x1125" data-image-focal-point="0.5,0.5" alt="Legs" data-load="false" data-image-id="668083dbbaf59315c8081073" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698395230-DKEJV5CL0JPV7S0YVANM/IMG20240624223650_s.jpg?format=1000w" /><br>
                </a>
                
                  Legs
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Setting the speaker altitude with a laser" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698396185-MOAY6SM741Q37REAYBSL/IMG20240624231021_s.jpg" role="button" aria-labelledby="668083dc95852d512bdf11b4-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698396185-MOAY6SM741Q37REAYBSL/IMG20240624231021_s.jpg" data-image-dimensions="2500x1125" data-image-focal-point="0.5,0.5" alt="Setting the speaker altitude with a laser" data-load="false" data-image-id="668083dc95852d512bdf11b4" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698396185-MOAY6SM741Q37REAYBSL/IMG20240624231021_s.jpg?format=1000w" /><br>
                </a>
                
                  Setting the speaker altitude with a laser
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Installed" data-description="&lt;p&gt;It's still a bit tricky to adjust the angling of the speaker (due to the tight nature of getting a screw driver to cinch down the adjustment knob sometimes) but generally, don't need to touch this.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698395229-510AVPZNK4ASUWOVB8ZN/IMG20240625141006_s.jpg" role="button" aria-labelledby="668083dbee834073102dc146-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698395229-510AVPZNK4ASUWOVB8ZN/IMG20240625141006_s.jpg" data-image-dimensions="2500x1123" data-image-focal-point="0.5,0.5" alt="Installed" data-load="false" data-image-id="668083dbee834073102dc146" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719698395229-510AVPZNK4ASUWOVB8ZN/IMG20240625141006_s.jpg?format=1000w" /><br>
                </a>
                
                  Installed
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  




  








  
  <p class="">For the rear speakers, I specifically <em>didn’t </em>want to have speaker stands that I would inevitably knock over or bump into; previously I used a drawer slide to have a way to retract the rear speakers but I wanted to try something different this time around. I tried using a pair of <a href="https://amzn.to/3xMxGep" target="_blank">low-profile microphone boom arms</a>:  these boom arms came with a 3/8 stud on them — luckily I happened to have some <a href="https://amzn.to/3VKXZts" target="_blank">3/8 T-nuts</a> so I was able to adapt my previous speaker mounts to them. The boom arm is rated for 3lbs — my rear speakers are a bit under 2lbs so, on paper, it should hold. Giving it a bit of a ‘push test’, the arms seem to be okay for now, but time will tell.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="My Mk I speaker adapter" data-description="&lt;p&gt;Just pop the 1/4-20 threaded insert out&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102205502-NDEJPL43F0UPRQEH9MAF/IMG20240703141739_s.jpg" role="button" aria-labelledby="6686ad3d33df216025f707f1-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102205502-NDEJPL43F0UPRQEH9MAF/IMG20240703141739_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="My Mk I speaker adapter" data-load="false" data-image-id="6686ad3d33df216025f707f1" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102205502-NDEJPL43F0UPRQEH9MAF/IMG20240703141739_s.jpg?format=1000w" /><br>
                </a>
                
                  My Mk I speaker adapter
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Upsizing the hole" data-description="&lt;p&gt;I wanted to feed a 3/8 T-nut into this hole, so I ended up having to drill a 1/2 hole. I used a drill guide to try and get the hole as plumb as I could.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102205614-H30SPZCTY7QH1BMSN4S8/IMG20240703141852_s.jpg" role="button" aria-labelledby="6686ad3d27eb14694ddac393-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102205614-H30SPZCTY7QH1BMSN4S8/IMG20240703141852_s.jpg" data-image-dimensions="2500x1995" data-image-focal-point="0.5,0.5" alt="Upsizing the hole" data-load="false" data-image-id="6686ad3d27eb14694ddac393" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102205614-H30SPZCTY7QH1BMSN4S8/IMG20240703141852_s.jpg?format=1000w" /><br>
                </a>
                
                  Upsizing the hole
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Clearance hole made" data-description="&lt;p&gt;I &lt;em&gt;probably&lt;/em&gt; could (should?) have used the drill press, but oh well, this worked out.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102206348-CXCYLBQ40U3EBKZ1QRP1/IMG20240703142357_s.jpg" role="button" aria-labelledby="6686ad3e5b7dbc4ec1a868e3-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102206348-CXCYLBQ40U3EBKZ1QRP1/IMG20240703142357_s.jpg" data-image-dimensions="2500x2058" data-image-focal-point="0.5,0.5" alt="Clearance hole made" data-load="false" data-image-id="6686ad3e5b7dbc4ec1a868e3" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102206348-CXCYLBQ40U3EBKZ1QRP1/IMG20240703142357_s.jpg?format=1000w" /><br>
                </a>
                
                  Clearance hole made
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Drilling relief for t-nut" data-description="&lt;p&gt;Using a forstner bit, I drilled a 1/8 relief so the T-nut could sit flush on the bottom&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102206449-7RUWINPOAKANLYF7ZKZ1/IMG20240703142554_s.jpg" role="button" aria-labelledby="6686ad3eeef1af6ba9458088-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102206449-7RUWINPOAKANLYF7ZKZ1/IMG20240703142554_s.jpg" data-image-dimensions="2500x2891" data-image-focal-point="0.5,0.5" alt="Drilling relief for t-nut" data-load="false" data-image-id="6686ad3eeef1af6ba9458088" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102206449-7RUWINPOAKANLYF7ZKZ1/IMG20240703142554_s.jpg?format=1000w" /><br>
                </a>
                
                  Drilling relief for t-nut
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102207444-G4LJCZI4PWCZQ8S7KDDF/IMG20240703142730_s.jpg" role="button" aria-labelledby="6686ad3ff6a52144b209b0d1-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102207444-G4LJCZI4PWCZQ8S7KDDF/IMG20240703142730_s.jpg" data-image-dimensions="2500x3324" data-image-focal-point="0.5,0.5" alt="IMG20240703142730_s.jpg" data-load="false" data-image-id="6686ad3ff6a52144b209b0d1" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102207444-G4LJCZI4PWCZQ8S7KDDF/IMG20240703142730_s.jpg?format=1000w" /><br>
                </a>
                
                  
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="T-nut pounded in" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102207418-J3NMHTE1L6I0C4B4J3UG/IMG20240703142932_s.jpg" role="button" aria-labelledby="6686ad3f991bb54beccb8f2d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102207418-J3NMHTE1L6I0C4B4J3UG/IMG20240703142932_s.jpg" data-image-dimensions="2500x2052" data-image-focal-point="0.5,0.5" alt="T-nut pounded in" data-load="false" data-image-id="6686ad3f991bb54beccb8f2d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102207418-J3NMHTE1L6I0C4B4J3UG/IMG20240703142932_s.jpg?format=1000w" /><br>
                </a>
                
                  T-nut pounded in
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Offcuts" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102208208-ZANA37OJDIF79MY9N1PJ/IMG20240703145049_s.jpg" role="button" aria-labelledby="6686ad40e3d8734d3c944c5e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102208208-ZANA37OJDIF79MY9N1PJ/IMG20240703145049_s.jpg" data-image-dimensions="2500x1628" data-image-focal-point="0.5,0.5" alt="Offcuts" data-load="false" data-image-id="6686ad40e3d8734d3c944c5e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102208208-ZANA37OJDIF79MY9N1PJ/IMG20240703145049_s.jpg?format=1000w" /><br>
                </a>
                
                  Offcuts
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Glue and pinned" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102208261-ZT2FL1FWDNWNC5P33CHM/IMG20240703145951_s.jpg" role="button" aria-labelledby="6686ad4031404936762de2b0-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102208261-ZT2FL1FWDNWNC5P33CHM/IMG20240703145951_s.jpg" data-image-dimensions="2500x1715" data-image-focal-point="0.5,0.5" alt="Glue and pinned" data-load="false" data-image-id="6686ad4031404936762de2b0" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102208261-ZT2FL1FWDNWNC5P33CHM/IMG20240703145951_s.jpg?format=1000w" /><br>
                </a>
                
                  Glue and pinned
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Screwed in from behind too" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102208932-N1F1AG2RUPO5Q2YIL1HY/IMG20240703145955_s.jpg" role="button" aria-labelledby="6686ad4075b5bc0bbbee7514-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102208932-N1F1AG2RUPO5Q2YIL1HY/IMG20240703145955_s.jpg" data-image-dimensions="2500x1883" data-image-focal-point="0.5,0.5" alt="Screwed in from behind too" data-load="false" data-image-id="6686ad4075b5bc0bbbee7514" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102208932-N1F1AG2RUPO5Q2YIL1HY/IMG20240703145955_s.jpg?format=1000w" /><br>
                </a>
                
                  Screwed in from behind too
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Splash of color" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203001-CKX1P2V3OPTZG3ICXUW0/IMG20240703150659_s.jpg" role="button" aria-labelledby="6686ad3ade0d704c80a05630-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203001-CKX1P2V3OPTZG3ICXUW0/IMG20240703150659_s.jpg" data-image-dimensions="2500x1797" data-image-focal-point="0.5,0.5" alt="Splash of color" data-load="false" data-image-id="6686ad3ade0d704c80a05630" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203001-CKX1P2V3OPTZG3ICXUW0/IMG20240703150659_s.jpg?format=1000w" /><br>
                </a>
                
                  Splash of color
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Mounted to the cabinet sides" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203130-RZM3UX2CHM3KSEPRVMJH/IMG20240703164937_s.jpg" role="button" aria-labelledby="6686ad3a3ff05c3345f4dff5-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203130-RZM3UX2CHM3KSEPRVMJH/IMG20240703164937_s.jpg" data-image-dimensions="2500x1973" data-image-focal-point="0.5,0.5" alt="Mounted to the cabinet sides" data-load="false" data-image-id="6686ad3a3ff05c3345f4dff5" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203130-RZM3UX2CHM3KSEPRVMJH/IMG20240703164937_s.jpg?format=1000w" /><br>
                </a>
                
                  Mounted to the cabinet sides
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="From anothe rangle" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102204628-1EQ90T12JRRMLHRCQC3B/IMG20240704095514_s.jpg" role="button" aria-labelledby="6686ad3ca680ae60d55877b8-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102204628-1EQ90T12JRRMLHRCQC3B/IMG20240704095514_s.jpg" data-image-dimensions="2500x1620" data-image-focal-point="0.5,0.5" alt="From anothe rangle" data-load="false" data-image-id="6686ad3ca680ae60d55877b8" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102204628-1EQ90T12JRRMLHRCQC3B/IMG20240704095514_s.jpg?format=1000w" /><br>
                </a>
                
                  From anothe rangle
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Fully retracted" data-description="&lt;p&gt;The speaker stays out of the way if I need it&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102204813-TXKJ6PYQNDVCQ7ZQT9CO/IMG20240704095524_s.jpg" role="button" aria-labelledby="6686ad3c84765740a3d4c2a0-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102204813-TXKJ6PYQNDVCQ7ZQT9CO/IMG20240704095524_s.jpg" data-image-dimensions="2500x2434" data-image-focal-point="0.5,0.5" alt="Fully retracted" data-load="false" data-image-id="6686ad3c84765740a3d4c2a0" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102204813-TXKJ6PYQNDVCQ7ZQT9CO/IMG20240704095524_s.jpg?format=1000w" /><br>
                </a>
                
                  Fully retracted
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Deployed" data-description="&lt;p&gt;But it's not a lot of effort to pull it out to play&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203899-T5AQPN6FMHB3YHVCOB3K/IMG20240704095506_s.jpg" role="button" aria-labelledby="6686ad3bd63eb30671d33082-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203899-T5AQPN6FMHB3YHVCOB3K/IMG20240704095506_s.jpg" data-image-dimensions="2500x1895" data-image-focal-point="0.5,0.5" alt="Deployed" data-load="false" data-image-id="6686ad3bd63eb30671d33082" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203899-T5AQPN6FMHB3YHVCOB3K/IMG20240704095506_s.jpg?format=1000w" /><br>
                </a>
                
                  Deployed
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="From another angle" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203845-QS6X5EDYVUJGYMC2D3EH/IMG20240704095459_s.jpg" role="button" aria-labelledby="6686ad3b0289837858f3b2c9-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203845-QS6X5EDYVUJGYMC2D3EH/IMG20240704095459_s.jpg" data-image-dimensions="2500x2122" data-image-focal-point="0.5,0.5" alt="From another angle" data-load="false" data-image-id="6686ad3b0289837858f3b2c9" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1720102203845-QS6X5EDYVUJGYMC2D3EH/IMG20240704095459_s.jpg?format=1000w" /><br>
                </a>
                
                  From another angle
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-10">Step 10 - Magnet all the things</h3>
  


  
  <p class="">I’ve been using magnetic charging cables for our for a <em>long time</em> now: it’s been wonderful to not have to think about whether something is Micro-USB or USB-C — it’s the same magnetic charging connector for both. A special bonus is that the magnetic cables handle power and data.</p><p class="">I ended up getting a <a href="https://amzn.to/4crHk5h" target="_blank">Logitech G915 (linear)</a> - more to try it than anything else - I’m still very much in love with my G510 (but I do recognize that my stockpile of backup G510s will eventually run out one day). I do like having a wireless keyboard — not because I’m opposed to wires, but the wire on my keyboard is <em>so long</em> (and it’s not detachable); the distance between the end of the keyboard and my keystone is 18” so having a 6-ft cord is just an exercise in frustration.</p><p class="">The way I have things setup, I connect the keyboard via wireless and I keep a <a href="https://amzn.to/4bo1YBZ" target="_blank">magnetic adapter</a>  plugged into the back. When the battery runs low, I just connect it to a magnetic charge cable I keep around my desk anyways. Since the charge cable is power-only, there’s no transition between wired and wireless — the keyboard continues to work using the wireless dongle while charging.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Old meet new" data-description="&lt;p&gt;Nearly the same size, which is great for me.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719702929193-MUH9HGD6SRR19HOQU2N8/IMG20240627105430_s.jpg" role="button" aria-labelledby="668095911a9c550bc07c304d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719702929193-MUH9HGD6SRR19HOQU2N8/IMG20240627105430_s.jpg" data-image-dimensions="2048x920" data-image-focal-point="0.5,0.5" alt="Old meet new" data-load="false" data-image-id="668095911a9c550bc07c304d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719702929193-MUH9HGD6SRR19HOQU2N8/IMG20240627105430_s.jpg?format=1000w" /><br>
                </a>
                
                  Old meet new
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Magnetic connection" data-description="&lt;p&gt;Currently running as a wireless keyboard, the magnetic cable is power-only.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719702929146-23FZLCRWQXI57UB86N9F/IMG20240629190826_s.jpg" role="button" aria-labelledby="66809591c941ab3f26d7befa-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719702929146-23FZLCRWQXI57UB86N9F/IMG20240629190826_s.jpg" data-image-dimensions="2000x900" data-image-focal-point="0.5,0.5" alt="Magnetic connection" data-load="false" data-image-id="66809591c941ab3f26d7befa" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719702929146-23FZLCRWQXI57UB86N9F/IMG20240629190826_s.jpg?format=1000w" /><br>
                </a>
                
                  Magnetic connection
                
              
            
          

          
        

      
    
  

  











  
  <p class="">I also opted to put a magnetic adapter on my charging mouse-pad. Since the mouse-pad itself can act as a mouse receiver, I have the option to either</p><ul data-rte-list="default"><li><p class="">Connect the mouse-pad to the computer using a data link; the mouse connects to the mouse-pad or</p></li><li><p class="">Connect the mouse-pad purely to power; the mouse then connect to the computer using it’s original nano-receiver</p></li></ul><p class="">For the most part, there’s no functional difference (connectivity wise) between these two options. The change for me is that I have a few more options on how to connect the mouse-pad to power source (and reduce the number of cables draping across the desk). Being a magnetic cable, I can just take the mouse and mouse-pad in one go.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Using magnetic connectors" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719713609492-O9ZU2GM0OTGGATBSRSTK/DPN05490_s.jpg" role="button" aria-labelledby="6680bf49a65b2515e5f47cf0-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719713609492-O9ZU2GM0OTGGATBSRSTK/DPN05490_s.jpg" data-image-dimensions="2500x1310" data-image-focal-point="0.5,0.5" alt="Using magnetic connectors" data-load="false" data-image-id="6680bf49a65b2515e5f47cf0" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719713609492-O9ZU2GM0OTGGATBSRSTK/DPN05490_s.jpg?format=1000w" /><br>
                </a>
                
                  Using magnetic connectors
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Connected to power-only" data-description="&lt;p&gt;When connected to power-only, the mousepad only provides chargung to the mouse. But this does give me the flexibility to run a cable from anywhere else&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719713609517-AAD54YXNT2JKD1R1DYDT/DPN05492_s.jpg" role="button" aria-labelledby="6680bf49baf59315c814dd02-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719713609517-AAD54YXNT2JKD1R1DYDT/DPN05492_s.jpg" data-image-dimensions="2500x1411" data-image-focal-point="0.5,0.5" alt="Connected to power-only" data-load="false" data-image-id="6680bf49baf59315c814dd02" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719713609517-AAD54YXNT2JKD1R1DYDT/DPN05492_s.jpg?format=1000w" /><br>
                </a>
                
                  Connected to power-only
                
              
            
          

          
        

      
    
  

  











  
  <p class="">For my Stream Deck, it’s a bit more of nuanced implementation; in my specific case, I wanted to connect the Stream Deck using USB-C (the cable that ships with it has USB-A on the computer-side). I paired a USB-A to USB-C adapter along with the magnetic adapters to make the whole thing quickly detachable. It was a bit of work to stuff the long cord into the included mount, but I got it in there.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-11">Step 11 - Misc touches</h3>
  


  
  <p class="">One of the goals of this rebuild was to reduce the amount of stuff on the desk that I would have to carefully unplug/move if I ever needed to remove the top to access the bottom/back of the desk. For the time being, I opted to shelve the Amazon Echo Show 5 so that still leaves the Google Nest Hub. From some scrap plywood and some magnets, I just attached this to the network cart, just at the edge of my periphery (I suppose I could also make a magnetic mount for the Show 5 if I ever decided to revisit that).</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Magnetized to the network cart" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719699859534-4W0LX5Q9SU3HNESQ8KCO/DPN05484_s.jpg" role="button" aria-labelledby="668089931a9c550bc0797b89-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719699859534-4W0LX5Q9SU3HNESQ8KCO/DPN05484_s.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="Magnetized to the network cart" data-load="false" data-image-id="668089931a9c550bc0797b89" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719699859534-4W0LX5Q9SU3HNESQ8KCO/DPN05484_s.jpg?format=1000w" /><br>
                </a>
                
                  Magnetized to the network cart
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Cord hole to hold it captive" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719699859573-Q8QUNSL2D0DCTKEJORF8/DPN05486_s.jpg" role="button" aria-labelledby="668089937590354e6832083c-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719699859573-Q8QUNSL2D0DCTKEJORF8/DPN05486_s.jpg" data-image-dimensions="2500x1616" data-image-focal-point="0.5,0.5" alt="Cord hole to hold it captive" data-load="false" data-image-id="668089937590354e6832083c" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719699859573-Q8QUNSL2D0DCTKEJORF8/DPN05486_s.jpg?format=1000w" /><br>
                </a>
                
                  Cord hole to hold it captive
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="View from the side" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719699860484-0M69DNE757ZDDXFRN806/DPN05485_s.jpg" role="button" aria-labelledby="6680899433163c5155dbfcd4-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719699860484-0M69DNE757ZDDXFRN806/DPN05485_s.jpg" data-image-dimensions="2500x2539" data-image-focal-point="0.5,0.5" alt="View from the side" data-load="false" data-image-id="6680899433163c5155dbfcd4" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719699860484-0M69DNE757ZDDXFRN806/DPN05485_s.jpg?format=1000w" /><br>
                </a>
                
                  View from the side
                
              
            
          

          
        

      
    
  

  











  
  <p class="">The desk features a big <a href="https://amzn.to/4brIgp9" target="_blank">access panel</a> with an internal shelf, at this time, I keep just a monitor brick, my <a href="https://amzn.to/3L3CZsO" target="_blank">WLED controller</a> and a USB capture dongle. On one side, the capture dongle connects to the USB feeder ports in the bottom left and up at the desk level, it transitions to an HDMI port. This way I can directly connect a camera to the wall.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Closed up" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719711944063-XNGJ7ZXE6WIM9TOJXSG4/DPN05488_s.jpg" role="button" aria-labelledby="6680b8c733163c5155e618cd-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719711944063-XNGJ7ZXE6WIM9TOJXSG4/DPN05488_s.jpg" data-image-dimensions="2500x1753" data-image-focal-point="0.5,0.5" alt="Closed up" data-load="false" data-image-id="6680b8c733163c5155e618cd" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719711944063-XNGJ7ZXE6WIM9TOJXSG4/DPN05488_s.jpg?format=1000w" /><br>
                </a>
                
                  Closed up
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Easy access" data-description="&lt;p&gt;Nearly everything there has plenty of readily available slack so I can pull them out and/or replace them without working in tight quarters.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719711944025-QI65SX33L298OI993MJV/DPN05489_s.jpg" role="button" aria-labelledby="6680b8c7c41b0215f2b9b917-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719711944025-QI65SX33L298OI993MJV/DPN05489_s.jpg" data-image-dimensions="2500x2254" data-image-focal-point="0.5,0.5" alt="Easy access" data-load="false" data-image-id="6680b8c7c41b0215f2b9b917" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719711944025-QI65SX33L298OI993MJV/DPN05489_s.jpg?format=1000w" /><br>
                </a>
                
                  Easy access
                
              
            
          

          
        

      
    
  

  











  
  <p class=""><br></p><p class="">I also added a remote [physical] <a href="https://amzn.to/3XE9FAS" target="_blank">power switch</a> to my desk; at this time it’s linked to a fan I have pointed at me, but in the future I might consider getting an additional one to remotely trigger a light or something. Depending on how often I may bump into this with my armrest, I may adjust the altitude of the switch, but for now it’s working out great.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="The inline power extension switch" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719700265420-QEXC2I5C0WEHXI3R8FSH/IMG20240625183724_s.jpg" role="button" aria-labelledby="66808b290a559f4a118ab8f7-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719700265420-QEXC2I5C0WEHXI3R8FSH/IMG20240625183724_s.jpg" data-image-dimensions="2500x1410" data-image-focal-point="0.6292317708333334,0.5115010824548193" alt="The inline power extension switch" data-load="false" data-image-id="66808b290a559f4a118ab8f7" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719700265420-QEXC2I5C0WEHXI3R8FSH/IMG20240625183724_s.jpg?format=1000w" /><br>
                </a>
                
                  The inline power extension switch
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Switch mounting" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719700899027-QWHNKLAKYB5CF6Y9KFEL/DPN05487_s.jpg" role="button" aria-labelledby="66808da2c941ab3f26d605f3-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719700899027-QWHNKLAKYB5CF6Y9KFEL/DPN05487_s.jpg" data-image-dimensions="2500x1639" data-image-focal-point="0.5952181653911565,0.34561411539713544" alt="Switch mounting" data-load="false" data-image-id="66808da2c941ab3f26d605f3" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719700899027-QWHNKLAKYB5CF6Y9KFEL/DPN05487_s.jpg?format=1000w" /><br>
                </a>
                
                  Switch mounting
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="View from where I sit" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719700264492-5BXHZT7CKG1BBIWFWO8B/IMG20240625184925_s.jpg" role="button" aria-labelledby="66808b2842b14d3de6f9d8bc-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719700264492-5BXHZT7CKG1BBIWFWO8B/IMG20240625184925_s.jpg" data-image-dimensions="2499x1709" data-image-focal-point="0.5,0.5" alt="View from where I sit" data-load="false" data-image-id="66808b2842b14d3de6f9d8bc" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719700264492-5BXHZT7CKG1BBIWFWO8B/IMG20240625184925_s.jpg?format=1000w" /><br>
                </a>
                
                  View from where I sit
                
              
            
          

          
        

      
    
  

  











  
  <p class="">I normally keep some kleenex in one of the segments of the upper cubby but since I removed a divider, I lost the allocated space for that. I made a quick tissue box holder from some scraps and mounted it up top.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="66808ed0d3276b1e70b5d88f-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701200674-C692EO4HLXPPX6ZH7BYJ/KleenexInParts_s.jpg" data-image-dimensions="2498x1478" data-image-focal-point="0.5,0.5" alt="Plywood scraps" data-load="false" data-image-id="66808ed0d3276b1e70b5d88f" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701200674-C692EO4HLXPPX6ZH7BYJ/KleenexInParts_s.jpg?format=1000w" /><br>
                </a>
                
                  Plywood scraps
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="66808e2701558617788f0b12-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701032009-JCZZMK4BTM0PYVXCXNHY/IMG20240626185210_s.jpg" data-image-dimensions="2499x2050" data-image-focal-point="0.5,0.5" alt="Marked a finger hole on the end" data-load="false" data-image-id="66808e2701558617788f0b12" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701032009-JCZZMK4BTM0PYVXCXNHY/IMG20240626185210_s.jpg?format=1000w" /><br>
                </a>
                
                  Marked a finger hole on the end
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="66808e28cb96a2539988d1ff-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701032502-N3OKL0YDFPE1OKPRON87/IMG20240626185305_s.jpg" data-image-dimensions="2500x1597" data-image-focal-point="0.5,0.5" alt="Quick hole with hole saw" data-load="false" data-image-id="66808e28cb96a2539988d1ff" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701032502-N3OKL0YDFPE1OKPRON87/IMG20240626185305_s.jpg?format=1000w" /><br>
                </a>
                
                  Quick hole with hole saw
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="66808e28d3276b1e70b5b4a9-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701033199-XVU5VTWY4DYHUVSKYC6N/IMG20240627004742_s.jpg" data-image-dimensions="2500x1560" data-image-focal-point="0.5,0.5" alt="Mounting it" data-load="false" data-image-id="66808e28d3276b1e70b5b4a9" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701033199-XVU5VTWY4DYHUVSKYC6N/IMG20240627004742_s.jpg?format=1000w" /><br>
                </a>
                
                  Mounting it
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="66808e29f4b8dd2e2af14136-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701033318-QEGJ77QQKTRTLR9AMC1P/IMG20240627004911_s.jpg" data-image-dimensions="2500x1328" data-image-focal-point="0.5,0.5" alt="Compact driver to the rescue" data-load="false" data-image-id="66808e29f4b8dd2e2af14136" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701033318-QEGJ77QQKTRTLR9AMC1P/IMG20240627004911_s.jpg?format=1000w" /><br>
                </a>
                
                  Compact driver to the rescue
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="66808e25e15ed3236fc5acbc-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701030166-E5F4PNKB1IX19ZSVGP9L/IMG20240629182001_s.jpg" data-image-dimensions="2500x1690" data-image-focal-point="0.5,0.5" alt="Installed" data-load="false" data-image-id="66808e25e15ed3236fc5acbc" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719701030166-E5F4PNKB1IX19ZSVGP9L/IMG20240629182001_s.jpg?format=1000w" /><br>
                </a>
                
                  Installed
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  











  
  <p class="">The speaker control pod was the last thing to be mounted up: I debated making a quick shelf for it off to the side, but I do actually need to have reasonable access to it to switch the inputs and possibly to turn it on/off. I ended up using some steel strapping and some <a href="https://amzn.to/3zhaIwj" target="_blank">VHB tape</a> to keep it secured right overhead.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Some electrical tape" data-description="&lt;p&gt;Just a bit of tape to keep the metal strapping from scuffing up the control pod too much&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732690102-KVNL2SEGA9NZ0CZ7HGZZ/DPN05496_s.jpg" role="button" aria-labelledby="668109d2f4b8dd2e2a07021f-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732690102-KVNL2SEGA9NZ0CZ7HGZZ/DPN05496_s.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="Some electrical tape" data-load="false" data-image-id="668109d2f4b8dd2e2a07021f" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732690102-KVNL2SEGA9NZ0CZ7HGZZ/DPN05496_s.jpg?format=1000w" /><br>
                </a>
                
                  Some electrical tape
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Roughly cut some strapping" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732690813-6KG40S7G81FWASJ025GA/DPN05497_s.jpg" role="button" aria-labelledby="668109d2435a9911c6854cd6-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732690813-6KG40S7G81FWASJ025GA/DPN05497_s.jpg" data-image-dimensions="2500x2004" data-image-focal-point="0.5,0.5" alt="Roughly cut some strapping" data-load="false" data-image-id="668109d2435a9911c6854cd6" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732690813-6KG40S7G81FWASJ025GA/DPN05497_s.jpg?format=1000w" /><br>
                </a>
                
                  Roughly cut some strapping
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Roughly strapped in place" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732688962-2ACX16HFAO2KWCYBX5WH/DPN05498_s.jpg" role="button" aria-labelledby="668109d01cc79d2b2f64e16d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732688962-2ACX16HFAO2KWCYBX5WH/DPN05498_s.jpg" data-image-dimensions="2500x1414" data-image-focal-point="0.5,0.5" alt="Roughly strapped in place" data-load="false" data-image-id="668109d01cc79d2b2f64e16d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732688962-2ACX16HFAO2KWCYBX5WH/DPN05498_s.jpg?format=1000w" /><br>
                </a>
                
                  Roughly strapped in place
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Added some VHB" data-description="&lt;p&gt;I opted to add some VHB tape to make the mounting a bit more stable&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732688963-3X0XT8TY6OR8Q1ASR3VU/DPN05499_s.jpg" role="button" aria-labelledby="668109d0c1ec3a2fca2db6b5-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732688963-3X0XT8TY6OR8Q1ASR3VU/DPN05499_s.jpg" data-image-dimensions="2500x1183" data-image-focal-point="0.5,0.5" alt="Added some VHB" data-load="false" data-image-id="668109d0c1ec3a2fca2db6b5" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732688963-3X0XT8TY6OR8Q1ASR3VU/DPN05499_s.jpg?format=1000w" /><br>
                </a>
                
                  Added some VHB
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="All done" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732689839-JGZM6WVYZR0NIM5JH8VG/DPN05500_s.jpg" role="button" aria-labelledby="668109d12eabc03a22855051-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732689839-JGZM6WVYZR0NIM5JH8VG/DPN05500_s.jpg" data-image-dimensions="2500x1334" data-image-focal-point="0.5,0.5" alt="All done" data-load="false" data-image-id="668109d12eabc03a22855051" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719732689839-JGZM6WVYZR0NIM5JH8VG/DPN05500_s.jpg?format=1000w" /><br>
                </a>
                
                  All done
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="milestone">Milestone</h3>
  


  
  <p class="">All in all, I think this desk rebuild turned out well and has breathed new life into my office. I do have to give credit to my wife though, for putting up with the <em>absolute disaster zone </em>that was the office for a week while this was under construction.  In the next month or two, I’ll be revisiting <a href="https://www.minmaxgeek.com/blog/wall-desk-2" target="_blank">her wall-desk</a> <em>and</em> levelling her floor area in one go. Thankfully her wall-desk is a bit less involved cable-wise, so it should go by much easier.</p><blockquote><p class="sqsrte-large">No KVM or USB switcher</p><p class="">I specifically did <em>not</em> want to include any kind of KVM or USB switcher to toggle between the three machines. From PC-A to PC-B, I only need to migrate the two nano-recievers for my mouse and keyboard and the work laptop can connect via Bluetooth (keyboard) and VNC. Remoting is also an option to pass keyboard/mouse through as well. For PC-A and PC-B, the monitors are directly connected.</p></blockquote>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="sqsrte-large">Reducing Clutter</p><p class="">Reducing the number of ‘permanent residents’ on my desk was one of the motivators for this rebuild: I started out with nine or so devices that were parked on my desk regularly:</p>


  






  




  
  <ul data-rte-list="default"><li><p class="">Keyboard</p></li><li><p class="">Mouse</p></li><li><p class="">Mouse pad</p></li></ul>


  






  




  
  <ul data-rte-list="default"><li><p class="">Stream Deck</p></li><li><p class="">Google Nest</p></li><li><p class="">Amazon Echo Show 5</p></li></ul>


  






  




  
  <ul data-rte-list="default"><li><p class="">Label printer</p></li><li><p class="">SATA/USB Dock</p></li><li><p class="">Speaker control pod</p></li></ul>


  






  




  
  <p class="">After the Mk II rebuild, I’ve got this number down to to just four: <strong>keyboard, mouse, mouse pad and Stream Deck</strong>. Of these four devices, only mouse pad and Stream Deck require ‘unplugging’ before moving them from the desk but given that they are connected by magnetic cables, it hardly registers.</p>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="sqsrte-large">What’s in store for the Mk III?</p><ul data-rte-list="default"><li><p class="">Looking ahead, I will almost certainly be rebuilding the side drawers once I settle on the next system build. I will certainly be swapping out the stupid soft-close drawers for traditional, undampened drawer slides. </p></li><li><p class="">Expanding on the idea of connecting the keyboard and mouse pad with power-only connection, I’d like to explore alternative ways of getting USB-power to these devices without having cables strewn across the desk (perhaps a strategically placed USB grommet).</p></li><li><p class="">I would also like to have more ‘hidden USB keystones’; by hidden I mean, that they can be in the upper cubby, be placed behind the monitors or even below the desk — dongles for my keyboard, mouse and wireless headset don’t actually need to be visible</p></li><li><p class="">You might have noticed that the monitors aren’t fully aligned with each other — this is because the VESA mount on the right monitor is located near the bottom of the monitor. This seems to be a fairly common thing with ultra-cheap monitors. In comparison, the VESA mount location for my two other monitors is located dead-center. I thought that the gas strut monitor mount would allow me to compensate for this — and it does — but I’ve maxed out the declination and it’s still out of alignment. I’ve been low-key planning another monitor upgrade this year so maybe that problem will sort itself out.</p></li></ul>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89f46c82-3f77-4ebe-ab52-e816809cd812/DPN05509_HDR_s.jpg" data-image-dimensions="2500x2972" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89f46c82-3f77-4ebe-ab52-e816809cd812/DPN05509_HDR_s.jpg?format=1000w" width="2500" height="2972" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89f46c82-3f77-4ebe-ab52-e816809cd812/DPN05509_HDR_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89f46c82-3f77-4ebe-ab52-e816809cd812/DPN05509_HDR_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89f46c82-3f77-4ebe-ab52-e816809cd812/DPN05509_HDR_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89f46c82-3f77-4ebe-ab52-e816809cd812/DPN05509_HDR_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89f46c82-3f77-4ebe-ab52-e816809cd812/DPN05509_HDR_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89f46c82-3f77-4ebe-ab52-e816809cd812/DPN05509_HDR_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89f46c82-3f77-4ebe-ab52-e816809cd812/DPN05509_HDR_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Mk II desk, complete for now.</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="lessons">Mixups, surprises and lessons learned</h3>
  


  
  <p class="">This was a surprisingly uneventful project with only a few minor setbacks. The first was having a WLED control brick itself during an update (thankfully, I hadn’t gone down the rabbit hole of configuring things yet - this was just during initial setup). </p><p class="">The second was a bit more annoying: ultimately, I discovered that a fairly new network cable had a short in it. In hindsight, I definitely noticed <em>something</em> was off months ago, just never thought to check the cable itself (since it was relatively new and not abused). Thankfully, the network cable in question was outside of the wall (it was one of the feeder lines providing connectivity to the wall) so it was an easy thing to replace.</p>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="">This brings up an interesting point: it is <em>really</em> challenging to ‘test as you go’ with a build like this. For a lot of it, I have to be nearly completed before I can really do any testing. I <em>suppose</em> I could bust out a laptop to do some spot checking of keystones as I go but really, a keystones generally ‘just work’.</p><p class="">Testing some connections, like the capture dongle require testing multiple jumps too and given the chaotic nature of the build, it’s not entirely viable. </p><p class="">Thankfully, I actually had no issues with any of the connections within the wall.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b9238cc2-a2da-4a24-9569-123b57031b13/IMG20240625231455_s.jpg" data-image-dimensions="2500x2537" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b9238cc2-a2da-4a24-9569-123b57031b13/IMG20240625231455_s.jpg?format=1000w" width="2500" height="2537" sizes="(max-width: 640px) 100vw, (max-width: 767px) 41.66666666666667vw, 41.66666666666667vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b9238cc2-a2da-4a24-9569-123b57031b13/IMG20240625231455_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b9238cc2-a2da-4a24-9569-123b57031b13/IMG20240625231455_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b9238cc2-a2da-4a24-9569-123b57031b13/IMG20240625231455_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b9238cc2-a2da-4a24-9569-123b57031b13/IMG20240625231455_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b9238cc2-a2da-4a24-9569-123b57031b13/IMG20240625231455_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b9238cc2-a2da-4a24-9569-123b57031b13/IMG20240625231455_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b9238cc2-a2da-4a24-9569-123b57031b13/IMG20240625231455_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">This definitely explains why that specific connection dropped a few months ago…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    <h3 id="appendix-1">Appendix - Parts list</h3>
  


  
    
  
  <p class="">To make things even more complicated, the cables noted below are self-contained within the wall-desk — each keystone endpoint will require an <span data-text-attribute-id="47db7b09-38b5-453f-bdba-2757ca756b75" class="sqsrte-text-highlight"><em>additional</em> </span>cable in order to connect that port to the corresponding port on a computer to ‘feed’ it. Think of the wall as a docking station for the computer.</p><p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">Networking</p><ul data-rte-list="default"><li><p class="">8x CAT6 keystones — I happened to buy a few pre-loaded <a href="https://amzn.to/463Iu4N" target="_blank">wall-plates</a> that came with them</p></li><li><p class="">4x runs of CAT6 inside the wall</p></li></ul><p class="sqsrte-large">Audio</p><ul data-rte-list="default"><li><p class="">8x <a href="https://amzn.to/4eI0qpp" target="_blank">3.5mm stereo keystones</a> (6x for both ends of  5.1 signal, 2x for both ends of a stereo signal)</p></li><li><p class="">1x <a href="https://amzn.to/3VKL4HW" target="_blank">5-speaker binding post plate</a> (to connect the surround speakers)</p></li><li><p class="">2x <a href="https://amzn.to/4eOoUgP" target="_blank">RCA keystones</a> (you don’t <em>need</em> different colors, but it helps)</p></li><li><p class="">1x <a href="https://amzn.to/3VNW3Ah" target="_blank">Female Stereo to 2-RCA</a> + 1x <a href="https://amzn.to/3ROADlw" target="_blank">3.5mm stereo cable with one right-angle</a> (this allows us to connect the stereo signal to the second input on the Z906)</p></li><li><p class="">3x <a href="https://amzn.to/4bGX7w5" target="_blank">3.5mm stereo cable with two right-angle</a> (this allows us to connect a 5.1 signal to the primary input on the Z906)</p></li><li><p class="">1x <a href="https://amzn.to/4cF4u7Z" target="_blank">Right-angle XLR adapter</a></p></li><li><p class="">2x XLR wall plates (one male, one female) — you can get something like <a href="https://amzn.to/3xw4VTk" target="_blank">this</a> and separate them</p></li><li><p class="">1x XLR cable with one right-angle on the <a href="https://amzn.to/4cHvync" target="_blank">male</a> or <a href="https://amzn.to/3L5iU5p" target="_blank">female</a> end (the specifics depend on what gear you’re trying to connect together</p></li><li><p class="">1x cheapo <a href="https://amzn.to/3L32NFL" target="_blank">microphone boom arm</a></p></li><li><p class="">20x <a href="https://amzn.to/3W61TyC" target="_blank">Banana plugs</a> (need them for each speaker as well as for the connection to the wall)</p></li><li><p class="">10x <a href="https://amzn.to/3zsuwgr" target="_blank">Banana plugs for spring loaded inputs</a> (used on the speaker end)</p></li><li><p class="">5x <a href="https://amzn.to/3W2ReEO" target="_blank">Round 2-way speaker box terminal</a></p></li><li><p class="">3x <a href="https://amzn.to/3XGbTjb" target="_blank">Cheap speaker mounts</a> </p></li><li><p class="">2x <a href="https://amzn.to/3xMxGep" target="_blank">Low-profile microphone arms</a></p></li><li><p class=""><a href="https://amzn.to/4eKZr7F" target="_blank">14AWG speaker wire</a></p></li></ul><p class="sqsrte-large">USB</p><ul data-rte-list="default"><li><p class="">An ungodly number of keystones, 30x <a href="https://amzn.to/3zzzRT1" target="_blank">USB-A</a> and 10x <a href="https://amzn.to/4eJc3wi" target="_blank">USB-C</a> if I‘m counting correctly</p></li><li><p class="">15x <a href="https://amzn.to/4ckrWri" target="_blank">USB A-to-A cables</a></p></li><li><p class="">1x <a href="https://amzn.to/4bmEInP" target="_blank">USB C-to-C 20Gbs/DisplayPort-AltMode</a> (this is used as a video cable)</p></li><li><p class="">4x <a href="https://amzn.to/3Sdywbl" target="_blank">USB C-to-C cables</a> (you <em>could</em> get five of the previous but these are cheaper since we don’t need the enhanced video spec)</p></li><li><p class="">USB capture card (can go with a <a href="https://amzn.to/3RQNEuW" target="_blank">cheap unit</a> or something <a href="https://amzn.to/3W1Ombc" target="_blank">fancier</a>)</p></li></ul><p class="sqsrte-large">Video</p><ul data-rte-list="default"><li><p class="">3x HDMI (<a href="https://amzn.to/3VKTuPI" target="_blank">2.1</a> or <a href="https://amzn.to/4btgpov" target="_blank">2.0</a>) keystones</p></li><li><p class="">3x HDMI (<a href="https://www.amazon.ca/gp/product/B0CFFFSFFN/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;th=1" target="_blank">2.1</a> or <a href="https://amzn.to/3XKTfqv" target="_blank">2.0</a>) cables</p></li><li><p class="">3x <a href="https://amzn.to/3XLtWEx" target="_blank">DisplayPort 1.4 cables</a></p></li><li><p class="">1x <a href="https://amzn.to/4cF54mb" target="_blank">Fixed monitor mount</a></p></li><li><p class="">2x <a href="https://amzn.to/3zoBpzv" target="_blank">Gas strut monitor arm</a></p></li><li><p class=""><a href="https://amzn.to/4eNS2Vw" target="_blank">VESA vertical adjustment adapter</a> (if needed)</p></li><li><p class=""><a href="https://amzn.to/4cle0NH" target="_blank">Right angle DisplayPort adapter</a> (if needed)</p></li></ul><p class="sqsrte-large">RGB</p><ul data-rte-list="default"><li><p class="">2 <a href="https://amzn.to/3xtrqZ6" target="_blank">WS2812B RGB Strips (144 led/m)</a></p></li><li><p class="">1x <a href="https://amzn.to/3RQL8or" target="_blank">WLED controller</a></p></li><li><p class="">1x <a href="https://amzn.to/3VKacP7" target="_blank">10A power brick</a></p></li><li><p class=""><a href="https://amzn.to/4co2xNw" target="_blank">18AWG RGB extension wire</a> (if needed)</p></li><li><p class="">2x <a href="https://amzn.to/4eMuTT3" target="_blank">Aluminum channel with diffuser</a></p></li></ul><p class="sqsrte-large">Power</p><ul data-rte-list="default"><li><p class="">1x <a href="https://amzn.to/3L33wGZ" target="_blank">Inline extension switch cord</a></p></li><li><p class="">2x <a href="https://amzn.to/3RPw0HO" target="_blank">Desk power bar with USB</a></p></li></ul><p class="sqsrte-large">Misc</p><ul data-rte-list="default"><li><p class="">Large wall mounted <a href="https://amzn.to/3VEdkMo" target="_blank">USB clock</a></p></li><li><p class=""><a href="https://amzn.to/4btC28a" target="_blank">6-port wall plates</a></p></li><li><p class=""><a href="https://amzn.to/3xDNDUi" target="_blank">Blank keystone insert</a></p></li><li><p class="">1x <a href="https://amzn.to/45PEcNZ" target="_blank">Access Panel (8x8)</a></p></li><li><p class="">3x <a href="https://amzn.to/3xFU09t" target="_blank">Cable pass through wall plate</a></p></li><li><p class="">10+ <a href="https://amzn.to/4co5qxE" target="_blank">Low Voltage boxes</a></p></li></ul>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="sqsrte-large">Two Special Call Outs</p><p class="">There are two things that definitely made this project so much easier to tackle: the <a href="https://www.milwaukeetool.com/Products/2505-20" target="_blank">Milwaukee M12 Installation Drill/Driver</a> and <a href="https://dotzshop.com/products/cordid-pro-bulk?variant=5208998659" target="_blank">CordIDs from Dotz</a>. The former is pretty straightforward: an ultra compact and versatile drill/driver that excels in ‘close quarters’ actions. The latter provides a means of labelling the tires but due to their clip-on/clip-off nature, provides you with three game changing benefits:</p><ol data-rte-list="default"><li><p class="">You can easily flip the clip so all your labels are oriented the same way, you can also rotate the clip to show either side</p></li><li><p class="">You can clip them onto cords <em>after</em> you’ve already wired them if needed (so you can focus on one thing at a time)</p></li><li><p class="">The smooth plastic surface means that labels both stay on there if you want them to but can be peeled off if you need to update it</p></li></ol><p class="">I used probably close to a full bulk pack (100) of these CordIDs on this wall; at the very least, each wire in the wall gets two labels (one at each end) with some additional ones getting two more (in the case of video cables, they are labelled on both ends, inside <em>and</em> outside of the wall. It’s so nice to not have to guess what a given wire is — it’s labelled.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />&nbsp;










































  

    

      <figure data-test="image-block-v2-outer-wrapper" data-sqsp-image-classic-block-layout="card" class="
            sqs-block-image-figure
            image-block-outer-wrapper
            image-block-v2
            design-layout-card
            combination-animation-site-default
            individual-animation-site-default
            individual-text-animation-site-default
            image-position-left
            image-linked
          " data-scrolled
      >

        
          
            
            
              
              
              
              
              
              
              
              <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4de6c9e8-ea58-4d75-97d4-1be37e84af4e/DPN08097_25.jpg" data-image-dimensions="2376x1584" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4de6c9e8-ea58-4d75-97d4-1be37e84af4e/DPN08097_25.jpg?format=1000w" width="2376" height="1584" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4de6c9e8-ea58-4d75-97d4-1be37e84af4e/DPN08097_25.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4de6c9e8-ea58-4d75-97d4-1be37e84af4e/DPN08097_25.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4de6c9e8-ea58-4d75-97d4-1be37e84af4e/DPN08097_25.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4de6c9e8-ea58-4d75-97d4-1be37e84af4e/DPN08097_25.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4de6c9e8-ea58-4d75-97d4-1be37e84af4e/DPN08097_25.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4de6c9e8-ea58-4d75-97d4-1be37e84af4e/DPN08097_25.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4de6c9e8-ea58-4d75-97d4-1be37e84af4e/DPN08097_25.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

              
            
          
            
          

        

        
          
          <figcaption data-width-ratio class="image-card-wrapper">
            

              
                <h2>Wall Desk Mk I</h2>
              

              
                <p class="">My original wall-desk which is the basis for this retrofit.</p>
              

              
                
                  
                    
                      <a data-sqsp-image-classic-block-link-button href="https://www.minmaxgeek.com/blog/wall-desk-1" target="_blank" rel="noopener" class="sqs-button-element--primary">Read More</a>
                    
                  
                
              

            
          </figcaption>
        

      </figure>

    

  


&nbsp;
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1719855675193-HBT94GJOM1PUVVNT4C2J/Blog+Covers+-+2024_s.jpg?format=1500w" medium="image" isDefault="true" width="1500" height="1000"><media:title type="plain">Build Log: Wall-Desk Mk II</media:title></media:content></item><item><title>Upgrading my Networking Gear (2024.1)</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Tue, 27 Feb 2024 13:00:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/networking-upgrade-2024-1</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:65ca7059e25108025d69fb59</guid><description><![CDATA[As the network stuff inches towards being the finish line, the updates 
(hopefully!) get smaller. In this update, I’ve made some small but 
meaningful upgrades to my network]]></description><content:encoded><![CDATA[<p class="">This is a bit of a smaller update while I wait for some equipment to come in, but since the last bit, I’ve made some hardware upgrades which showed up on my <a href="https://www.minmaxgeek.com/blog/mini-network-rack-mk3" target="_blank">network cart rebuild</a> so I figured I would talk about. Even though there’s never really such a thing as ‘done’, I’m slowly getting closer and closer to that state (from a hardware perspective).</p>


  






  



<hr />&nbsp;
  
  <p class="sqsrte-large">Networking Series</p><p class="">This post is part of a series, check out the other posts!</p>


  






  



<hr />&nbsp;
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#starting-point">Starting point</a></p></li><li><p class=""><a href="#er8411">New router - TP-Link ER8411</a></p></li><li><p class=""><a href="#new-ap">New access points</a></p></li><li><p class=""><a href="#dual-dns" target="_blank">Dual DNS</a></p><ul data-rte-list="default"><li><p class=""><a href="#dual-dns-a" target="_blank">Redundancy</a></p></li><li><p class=""><a href="#dual-dns-b" target="_blank">Syncing and Caching</a></p></li></ul></li><li><p class=""><a href="#future">Looking ahead</a></p></li></ul>


  






  



<hr />
  
    <h3 id="starting-point">Starting point</h3>
  


  
  <p class="">In my previous update, the focus was on establishing a secondary, low-power network that I could run during an extended power outage (say, an 8 hour work day). With a sub-30W footprint, this isn’t a hard target to hit at all. I actually have some a process in place to be able to <em>calmly</em> transition the network rack from utility-power to use battery-based ‘generator’ to support longer outages (because, priorities right?).</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53c56489-0be1-4911-b097-4d061ee612f5/IMG20230925074123_s.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53c56489-0be1-4911-b097-4d061ee612f5/IMG20230925074123_s.jpg?format=1000w" width="2500" height="1875" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53c56489-0be1-4911-b097-4d061ee612f5/IMG20230925074123_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53c56489-0be1-4911-b097-4d061ee612f5/IMG20230925074123_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53c56489-0be1-4911-b097-4d061ee612f5/IMG20230925074123_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53c56489-0be1-4911-b097-4d061ee612f5/IMG20230925074123_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53c56489-0be1-4911-b097-4d061ee612f5/IMG20230925074123_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53c56489-0be1-4911-b097-4d061ee612f5/IMG20230925074123_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53c56489-0be1-4911-b097-4d061ee612f5/IMG20230925074123_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Powering my network stack (and more) during a power outage</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">Over the last year, I’ve made a few hardware upgrades and there are a few specific problems that I’d like to tackle. In no particular order:</p><ul data-rte-list="default"><li><p class="">I ended upgrading to a 10G router. I don’t need it yet (ISP capped at 1G symmetric), but when the times comes for faster-than-gigabit, I’d like to have everything already in place to go. There is a benefit that I can realize <em>now</em> — the vastly improved VPN performance</p></li><li><p class="">My outdoor AP sort of died so I used the opportunity to swap it out for a WiFi6 model</p></li><li><p class="">During the summer, there was a one day sale on a high-density AP so I bought that to act as my new ‘main’ AP and transitioned my current one to be dedicated to my low power network</p></li><li><p class="">The batteries in one of my UPS units hit their end of life which got me thinking (more on that later)</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="er8411">New router - TP-Link ER8411</h3>
  


  
  <p class="">I’ve wanted to upgrade my router for a while now. Originally it was to get ahead of a potential service upgrade from our ISP but more recently, I’ve wanted make better use of my current connection. In particular, I wanted to make better use of my available upload speed through more modern VPNs (OpenVPN, SSL, WireGuard, etc). We can see a monumental performance uplift when looking at the 10G router.</p>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b548d1ca-e085-4d92-a98c-ce4614760c15/RouterSpecs_s.jpg" data-image-dimensions="2019x1075" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b548d1ca-e085-4d92-a98c-ce4614760c15/RouterSpecs_s.jpg?format=1000w" width="2019" height="1075" sizes="(max-width: 640px) 100vw, (max-width: 767px) 83.33333333333334vw, 83.33333333333334vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b548d1ca-e085-4d92-a98c-ce4614760c15/RouterSpecs_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b548d1ca-e085-4d92-a98c-ce4614760c15/RouterSpecs_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b548d1ca-e085-4d92-a98c-ce4614760c15/RouterSpecs_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b548d1ca-e085-4d92-a98c-ce4614760c15/RouterSpecs_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b548d1ca-e085-4d92-a98c-ce4614760c15/RouterSpecs_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b548d1ca-e085-4d92-a98c-ce4614760c15/RouterSpecs_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b548d1ca-e085-4d92-a98c-ce4614760c15/RouterSpecs_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true" class="">Yes* indicates that the feature set is [supposedly] supported but I wasn’t able to identify a reliable source for the performance metric.</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="">In a vacuum, the ER707-M2 is actually an interesting choice: it gets me 2.5G WAN/LAN capability and a respectable performance numbers all around (in particular, OpenVPN performance) without breaking the bank <em>too badly</em>. However, since I’m coming from the ER7206, the performance jump is less impressive and so, the <a href="https://amzn.to/3v4ht2q" target="_blank">10G ER8411</a>, even with the massive price tag, starts to make a bit more sense as a meaningful upgrade.</p><p class="">This upgrade has one additional benefit: the ER7206 is not naively rackable: I do have a <a href="https://www.etsy.com/ca/listing/1384354484/tp-link-er7206-er7212pc-er707-m2-or-tl?click_key=56b48f77a5c7c2e5495c3c979a737ad77e6939eb%3A1384354484&amp;click_sum=6f035a48&amp;ref=shop_home_active_1&amp;sts=1&amp;variation0=3187959409" target="_blank">3d-printed</a> rack-cage for the ER7206. One catch is that the specific 3d-printed mount I ordered was bigger than 1U, which threw my spacing out of whack (and this has been low-key bothering me since I got it racked up). It’s an OCD thing.</p><p class="">During the upgrade, I took the opportunity to try and eliminate as many SFP+ to RJ45 adapters I had in use as I could, swapping them out for DAC cables. Why? Because the DAC cables don’t need to perform any signal conversion. This has the benefit of having the least amount of latency but also the least amount of power consumption and <em>heat.</em> Before I started racking up networking gear, I didn’t think that it would make a meaningful difference, but seeing the temperature difference with DAC cables is eye-opening:</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/983ceefe-a794-4b6b-bcca-1aa2eb95e90e/FLIR_20231214_021657_757_s.jpg" data-image-dimensions="1440x1080" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/983ceefe-a794-4b6b-bcca-1aa2eb95e90e/FLIR_20231214_021657_757_s.jpg?format=1000w" width="1440" height="1080" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/983ceefe-a794-4b6b-bcca-1aa2eb95e90e/FLIR_20231214_021657_757_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/983ceefe-a794-4b6b-bcca-1aa2eb95e90e/FLIR_20231214_021657_757_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/983ceefe-a794-4b6b-bcca-1aa2eb95e90e/FLIR_20231214_021657_757_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/983ceefe-a794-4b6b-bcca-1aa2eb95e90e/FLIR_20231214_021657_757_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/983ceefe-a794-4b6b-bcca-1aa2eb95e90e/FLIR_20231214_021657_757_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/983ceefe-a794-4b6b-bcca-1aa2eb95e90e/FLIR_20231214_021657_757_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/983ceefe-a794-4b6b-bcca-1aa2eb95e90e/FLIR_20231214_021657_757_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">15C difference (steady state) difference between connecting via DAC versus running through a transceiver.</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">On the ER8411, the 10G WAN port is SFP+, so if my ISP ever provides faster-than-gigabit, I will likely need to run a transceiver; but for now, I opted to use one of the 1G WAN ports and connect to the modem via CAT6. While a single module isn’t going to make a huge dent on the room temperature, if I can avoid extra heat, I might as well. </p><p class="">To make the [future] transition easier, I included the SFP+ when making router-rules; so in the future, I should just have to worry about switching the physical connection and not having to update any of my ACLs.</p><blockquote><p class="sqsrte-large">Why not something like OPNSense?</p><p class="">This is something I’d like to revisit down the road but at this time, truthfully, it’s not in my current skill set and comfort zone. From a hardware management perspective, I wanted all of this to be accessible from a single portal/app. Perhaps, down the road, when I outgrow this, I may look at something for serious.</p></blockquote><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="new-ap">New access points</h3>
  


  
  <p class="">My outdoor AP started to develop some weird behavior where it would broadcast SSIDs and allow devices to connect but would absolutely refuse to provide a connection to the internet. Indirectly, this failure ended up being a selling point for having everything on <a href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-3#thoughts-3">physical switches</a> — Nicole was able to power down the AP without fuss (and thus, connect to any of the other APs that were working correctly). I did not want to deal with calling into support to troubleshoot the issue, so I just opted to replace this with my first WiFi6 AP, the <a href="https://amzn.to/48aNAfM" target="_blank">EAP650 Outdoor</a>.</p><p class="">Over the summer, there was a sale on the <a href="https://amzn.to/3GRZ0sz" target="_blank">EAP 620HD</a> and even though I was really pining to get the EAP 690e HD, I just couldn’t say no to the price. The model I received was a V2 (rather than the latest, V3) so I missed out on two significant improvements:</p><ul data-rte-list="default"><li><p class="">Approximately 60% smaller footprint (290 sq-in vs 125 sq-in)</p></li><li><p class="">The V3 can take passive-POE and includes an injector; the V2 can only take active-POE and doesn’t include one</p></li></ul><p class="">Thankfully for my scenario, neither of these downsides really affects me: I have the AP mounted in the furnace room, out of sight and for POE, I picked up a cheap <a href="https://amzn.to/41FraRd" target="_blank">TRENDnet POE Injector</a>.  With this new ‘main’ AP, I was able to transition the previous AP to my low-power Endurance network. I did this by ‘forgetting’ the previous AP from the control panel and then configuring it using standalone mode. In standalone mode, I configured the same SSID/password combination so things should mostly work as expected when cutting over.</p><p class="">This leaves me with three remaining WiFi-5 APs (all EAP-235Wall units) and barring a fantastical sale of some sort, I don’t see myself upgrading any time soon.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="dual-dns">Dual DNS</h3>
  


  
    <h4 id="dual-dns-a">Redundancy</h4>
  


  
  <p class="">A few updates ago, I set up an <a href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-3#step-2" target="_blank">ad-blocking DNS server</a> on my network and it’s been pretty great but I’m always super wary about the robustness of the Raspberry Pi (or maybe it’s <em>Linux, lol</em>). Everything works great — until it inexplicably doesn’t and it’s not a quick fix because you can’t even remote into the machine because it’s got a kernel panic. In fairness (and <em>definitely hindsight</em>), I <em>suspect </em>that the kernel panic was caused by ‘not enough power being delivered’:</p><ol data-rte-list="default"><li><p class="">There isn’t really a nice and easy way to verify that now and</p></li><li><p class="">Frankly, I don’t really want to deal with it</p></li><li><p class="">Outages are <em>never </em>at a convenient time!</p></li></ol><p class="">To mitigate this, I bought a second Raspberry Pi — I went with an identical <a href="https://amzn.to/3SV4RTD" target="_blank">RPi4</a> unit to what already had. The plan was to just clone my existing system image, tweak a few things to change ‘Pi1’ to ‘Pi2’ and that would be the end of it. For once, I am super happy to say the process went <em>exactly</em> that smoothly.</p><p class="">When I rebuilt the network rack, I made to sure add USB ports (connected to each Pi) to the front side of the rack. This way I can do fairly easy system backups by just connecting a card reader or SATA-USB dock - I keep two full backups on standby. In the event of a device failure, it’s a matter of just unplugging the existing boot drive and plugging in the new one.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Front-access USB (and HDMI)" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Fantastic for troubleshooting — these are directly connected to each Raspberry Pi. The USB ports allow me to connect a drive/card-reader to do an image backup (or connect a keyboard/mouse for local connection). The HDMI port allows me to use a virtual HDMI dongle to give the device 4K (or I can connect a monitor directly to it for troubleshooting)&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1708987021588-Y27TP3MIG2NWGPQTUEAJ/DPN03777_s.jpg" role="button" aria-labelledby="65dd128d15b3c37f9cbeb95d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1708987021588-Y27TP3MIG2NWGPQTUEAJ/DPN03777_s.jpg" data-image-dimensions="2500x1386" data-image-focal-point="0.5,0.5" alt="Front-access USB (and HDMI)" data-load="false" data-image-id="65dd128d15b3c37f9cbeb95d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1708987021588-Y27TP3MIG2NWGPQTUEAJ/DPN03777_s.jpg?format=1000w" /><br>
                </a>
                
                  Front-access USB (and HDMI)
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="SATA Dock for the Pi" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I keep a USB SATA dock on standby — this can be plugged into the front-USB ports to do backups, but should the SSD on the PI fail, I can boot off the SATA dock as well.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1708987021620-QSPX1LKJ7BTC92P3Y6GN/DPN03779_s.jpg" role="button" aria-labelledby="65dd128d6206ec27e4e01249-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1708987021620-QSPX1LKJ7BTC92P3Y6GN/DPN03779_s.jpg" data-image-dimensions="2500x1379" data-image-focal-point="0.5,0.5" alt="SATA Dock for the Pi" data-load="false" data-image-id="65dd128d6206ec27e4e01249" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1708987021620-QSPX1LKJ7BTC92P3Y6GN/DPN03779_s.jpg?format=1000w" /><br>
                </a>
                
                  SATA Dock for the Pi
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Backups" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I keep both SATA SSD backups (preferred, for simplicity) and also microSD card backups. In theory, I &lt;em&gt;could&lt;/em&gt; &lt;em&gt;probably&lt;/em&gt; boot off the microSD using a card reader, but the troubleshooting intent would be to directly boot off the microSD should the need arise.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1708987022622-VEYJ64CCVOKD21DSAGGV/DPN03778_s.jpg" role="button" aria-labelledby="65dd128e16159203f993be51-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1708987022622-VEYJ64CCVOKD21DSAGGV/DPN03778_s.jpg" data-image-dimensions="2500x1806" data-image-focal-point="0.5,0.5" alt="Backups" data-load="false" data-image-id="65dd128e16159203f993be51" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1708987022622-VEYJ64CCVOKD21DSAGGV/DPN03778_s.jpg?format=1000w" /><br>
                </a>
                
                  Backups
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="dual-pi-b">Syncing and Caching</h4>
  


  
  <p class="">Once both Pi units are up and running, it was simply a matter of having the primary and secondary DNS servers for my whole network point at them. You could stop here and be done: it’s totally possible to manage both Pi-Hole instances individually but it would be much nicer to be able to have [config] changes automatically sync between them. This is where <a href="https://github.com/vmstan/gravity-sync" target="_blank">Gravity Sync</a> comes into play.  </p><p class="">Gravity Sync was super easy to setup and verify; it sync’s blocking rules, exceptions, local DNS settings - everything I would want it to do. I’m still responsible for doing updates on the Pi units but one nice thing about having the extra Pi, is I can stagger my updates: I can update Pi1 more often compared to Pi2 with the safety net that if an update goes wrong, I have the Pi2 to carry the network while I restore a backup.</p><p class="">One thing I did learn was that ‘primary and secondary’ DNS servers are automatically load-balanced (to a degree) by the router. I had previously thought that the secondary was really a hot-spare and only really came into play when something went wrong with the primary. The load-balancing definitely favors the primary, but the secondary certainly doesn’t sit idly by.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/770153f5-ce0d-47e6-996e-7fb2279fd2bb/PiHole_Distribution_s.jpg" data-image-dimensions="990x239" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/770153f5-ce0d-47e6-996e-7fb2279fd2bb/PiHole_Distribution_s.jpg?format=1000w" width="990" height="239" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/770153f5-ce0d-47e6-996e-7fb2279fd2bb/PiHole_Distribution_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/770153f5-ce0d-47e6-996e-7fb2279fd2bb/PiHole_Distribution_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/770153f5-ce0d-47e6-996e-7fb2279fd2bb/PiHole_Distribution_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/770153f5-ce0d-47e6-996e-7fb2279fd2bb/PiHole_Distribution_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/770153f5-ce0d-47e6-996e-7fb2279fd2bb/PiHole_Distribution_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/770153f5-ce0d-47e6-996e-7fb2279fd2bb/PiHole_Distribution_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/770153f5-ce0d-47e6-996e-7fb2279fd2bb/PiHole_Distribution_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Query &amp; client distribution snapshot between my two Pi-Hole DNS servers</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">While I was in the head-space to be working with this, I opted to setup a <a href="https://docs.pi-hole.net/guides/dns/unbound/" target="_blank">recursive DNS</a> on <em>one </em>of my Pi units - I figured that if something went wrong with the recursive DNS lookup, at least the other Pi can perform ‘normal’ look-ups. The motivation here was less "'privacy concerns’ but more ‘self-reliance’ and the possibility that the local-recursive DNS server would be faster (with the caveat that the first unique inquiry would be slower).</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dabb3880-2942-4b38-8a73-6a841842d87c/Caching_s.jpg" data-image-dimensions="981x294" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dabb3880-2942-4b38-8a73-6a841842d87c/Caching_s.jpg?format=1000w" width="981" height="294" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dabb3880-2942-4b38-8a73-6a841842d87c/Caching_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dabb3880-2942-4b38-8a73-6a841842d87c/Caching_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dabb3880-2942-4b38-8a73-6a841842d87c/Caching_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dabb3880-2942-4b38-8a73-6a841842d87c/Caching_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dabb3880-2942-4b38-8a73-6a841842d87c/Caching_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dabb3880-2942-4b38-8a73-6a841842d87c/Caching_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/dabb3880-2942-4b38-8a73-6a841842d87c/Caching_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Comparison between query-caching distribution of recursive (left) and non-recursive (right) DNS</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">I don’t know if there any <em>conclusions</em> I can draw from any of this — it’s just neat to see! Obviously, Pi-Hole does have some localized caching but there is a non-insignificant number of queries that it has to ‘reach out to Cloudflare’ to resolve.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="future">Looking ahead</h3>
  


  
  <p class="">I’m in a holding pattern, waiting for some hardware to come in which should sort out the last bit of my network stack. Aside from that, I need to spend a bunch of time handling the configuration aspect of everything:</p><ul data-rte-list="default"><li><p class="">IP address management, documentation and diagramming</p></li><li><p class="">review of access rules, permissions, etc.</p></li><li><p class="">review of backup strategy</p></li></ul><p class="">On a related tangent, I’ve started exploring the rabbit hole that is self-hosting services…</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />&nbsp;










































  

    

      <figure data-test="image-block-v2-outer-wrapper" data-sqsp-image-classic-block-layout="card" class="
            sqs-block-image-figure
            image-block-outer-wrapper
            image-block-v2
            design-layout-card
            combination-animation-site-default
            individual-animation-site-default
            individual-text-animation-site-default
            image-position-left
            image-linked
          " data-scrolled
      >

        
          
            
            
              
              
              
              
              
              
              
              <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png" data-image-dimensions="1500x806" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=1000w" width="1500" height="806" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

              
            
          
            
          

        

        
          
          <figcaption data-width-ratio class="image-card-wrapper">
            

              
                <h2>Network Update (2022.4)</h2>
              

              
                <p class="">In the previous instalment, I spend time to spin up an entire network stack as a (low-power!) cold-spare. This way, if the power goes out, we could conceivably maintain mostly-normal operations.</p>
              

              
                
                  
                    
                      <a data-sqsp-image-classic-block-link-button href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-4" class="sqs-button-element--primary">Read More</a>
                    
                  
                
              

            
          </figcaption>
        

      </figure>

    

  


&nbsp;
  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/png" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1668024733779-G7995CSE7SITNOWM8PNU/Logo_Squooshed.png?format=1500w" medium="image" isDefault="true" width="1500" height="806"><media:title type="plain">Upgrading my Networking Gear (2024.1)</media:title></media:content></item><item><title>Synology NAS Blinking? I found an undocumented cause for it</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Mon, 12 Feb 2024 14:00:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/synology-blinking-status</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:65ca67e0c0497964d335e784</guid><description><![CDATA[We recently had a longer power outage. Thankfully, I’ve got a pair of UPS 
units ready to rock and roll but I ran into a bit of an odd case where my 
NAS units were in a blinking state after the power was restored…]]></description><content:encoded><![CDATA[<p class="">I’m still waiting on getting an automatic transfer switch so that I can fail-over my UPS units on my network stack. In the meantime, if I’m around, I can manually power down my network to a reduced power footprint and if needed, cut-over to a high-endurance network stack. We had one such extended power outage today and, upon powering the network back up, I ran into a curious/alarming result: the green status LEDs on both of my NAS units were blinking…</p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#setting-the-stage">Setting the stage</a></p></li><li><p class=""><a href="#power-outage">Power outage!</a></p></li><li><p class=""><a href="#blinking-status">Blinking status!</a></p></li></ul>


  






  



<hr />
  
    <h3 id="setting-the-stage">Setting the stage</h3>
  


  
  <p class="">I have two UPS units — the long term plan is to ‘combine’ them into an Automatic Transfer Switch (ATS) so that I can fail over to a secondary UPS in case one fails and also for ~double the runtime in the event that there is an outage. I’m still waiting for the ATS to come in. When I <a href="https://www.minmaxgeek.com/blog/mini-network-rack-mk3#step-7" target="_blank">previously</a> rebuilt the network cart, I consolidated the wiring for my NAS units — both units plug into a single compact power bar and that power bar plugs into the UPS. Something like this:</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8331f89b-9d6c-4bcb-ac4b-9b7d6c5d20cb/Before_s.jpg" data-image-dimensions="968x453" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8331f89b-9d6c-4bcb-ac4b-9b7d6c5d20cb/Before_s.jpg?format=1000w" width="968" height="453" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8331f89b-9d6c-4bcb-ac4b-9b7d6c5d20cb/Before_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8331f89b-9d6c-4bcb-ac4b-9b7d6c5d20cb/Before_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8331f89b-9d6c-4bcb-ac4b-9b7d6c5d20cb/Before_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8331f89b-9d6c-4bcb-ac4b-9b7d6c5d20cb/Before_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8331f89b-9d6c-4bcb-ac4b-9b7d6c5d20cb/Before_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8331f89b-9d6c-4bcb-ac4b-9b7d6c5d20cb/Before_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8331f89b-9d6c-4bcb-ac4b-9b7d6c5d20cb/Before_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">How I had my NAS/UPS hooked up before the power outage</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">In normal every operation, everything works the way you would expect it to:</p><ul data-rte-list="default"><li><p class="">Both NAS units obviously receive power</p></li><li><p class="">The USB connection allows the DS1817+ to get a reading of how much battery life remains and the NAS can self-power down before the battery on the UPS drains</p></li><li><p class="">The DS1817+ acts as a network UPS server for the DS920+ allowing the DS920+ to also power down before we fully drain the battery on the UPS</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="power-outage">Power outage!</h3>
  


  
  <p class="">We recently had a two-hour power outage — just as Nicole was getting started on an important call (<em>of course</em>).  When it was obvious that this was going to be a longer-than-usual power outage, there were a few things I could do to extend my runtime:</p><ul data-rte-list="default"><li><p class="">Power down NAS units</p></li><li><p class="">Power down extra networking gear (POE equipment, extra APs, switches that aren’t being used etc.)</p></li></ul><p class="">With the easy things powered down, my UPS was reporting about 1-hr runtime. Thankfully there was a quick break in the call that allowed me to fully transition over to <a href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-4" target="_blank">Endurance-Mode</a>. Running on the Endurance network stack, we were good for roughly <em>10-hours</em> of uptime.   </p><p class="">On the power/UPS front, I moved the power bar from UPS A to UPS B, so things looked something like this (if you’re clever, you can see the problem already).</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3dd87291-feb9-4c12-a0fc-66fabf139b5a/After_s.jpg" data-image-dimensions="968x453" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3dd87291-feb9-4c12-a0fc-66fabf139b5a/After_s.jpg?format=1000w" width="968" height="453" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3dd87291-feb9-4c12-a0fc-66fabf139b5a/After_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3dd87291-feb9-4c12-a0fc-66fabf139b5a/After_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3dd87291-feb9-4c12-a0fc-66fabf139b5a/After_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3dd87291-feb9-4c12-a0fc-66fabf139b5a/After_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3dd87291-feb9-4c12-a0fc-66fabf139b5a/After_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3dd87291-feb9-4c12-a0fc-66fabf139b5a/After_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/3dd87291-feb9-4c12-a0fc-66fabf139b5a/After_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">How I had my NAS/UPS hooked up after I migrated power to UPS B</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="blinking-status">Blinking status!</h3>
  


  
  <p class="">After the utility power was restored, I decided it might be a good idea to continue using UPS B to power the network stack: this way I get a bit more even ‘wear’ on the circuitry (both UPS models are identical so they can handle the load).  I powered down the Endurance stack and turned the main network stack on.</p><p class="">Once the network came up, I powered on both NAS units and this was when things got <em>strange</em>:</p><ul data-rte-list="default"><li><p class="">I could see both NAS units get their statically assigned IPs</p></li><li><p class="">I could ping both NAS units</p></li><li><p class="">But I could not connect to the management portal either by hostname nor by IP</p></li><li><p class="">Using the ‘<a href="https://kb.synology.com/en-in/DSM/tutorial/Unable_to_Locate_NAS#:~:text=You%20may%20find%20your%20Synology,bar%20of%20your%20web%20browser." target="_blank">find NAS</a>’ methods got me nothing.</p></li></ul>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="sqsrte-large">A clue from earlier…</p><ul data-rte-list="default"><li><p class="">At the start of the power outage, I powered down the DS1817+ and <em>then</em> the DS920+</p></li><li><p class="">The DS1817+ powered down without a fuss, but the DS920+ seemed to not want to power down. I tried to remote into management interface, but <em>it wouldn’t connect</em></p></li><li><p class="">At the time, I wasn’t in a network-connectivity-troubleshooting mode, so I didn’t think about it much — but the symptoms were the same as I was seeing now: <em>I could ping the NAS IP, but for some reason, just could not connect to the portal by any means</em> (I ended up performing a hard-shutdown of the DS920+)</p></li></ul><p class="">Looking at the NAS units though, I noticed that the status light was <em>blinking</em>. On <em>both</em> of them.</p><p class="">Synology’s <a href="https://kb.synology.com/en-in/DSM/tutorial/What_can_I_do_if_the_STATUS_LED_keeps_flashing_in_orange" target="_blank">help page</a> (as of November 21, 2022) tells us that <strong>STATUS: Blinking Green</strong> means one of three things:</p><ol data-rte-list="default"><li><p class="">No drive installed, or</p></li><li><p class="">DSM not installed, or</p></li><li><p class="">‘Configuration lost’</p></li></ol><p class="">All three possibilities are quite alarming but it turns out that the actual root cause in my scenario is <em>much</em> more comical.</p>


  






  



&nbsp;<hr />&nbsp;
  
  <p class=""><strong>The root cause was forgetting to move the USB cable over! </strong>When I properly moved the USB cable form UPS A to UPS B, both NAS units came online and everything was running smoothly as one would expect.</p><p class="">When I initially moved everything from UPS A to UPS B, the original plan was to move everything back after the power was restored and had I done that, none of this excitement would have happened. Even still, this is still a bit perplexing:</p><ul data-rte-list="default"><li><p class="">The USB cable was plugged into UPS A — which was powered down</p><ul data-rte-list="default"><li><p class="">How could the NAS possibly know that the other end of the USB cable was a UPS?</p></li><li><p class="">I would have expected the DS1817+ to boot up, thinking that there was no UPS connected</p></li><li><p class="">Similarly, I would have expected the DS920+ (using the DS1817+ as a UPS server) to also boot up, thinking there was no UPS connected</p></li></ul></li><li><p class="">In the event that neither of them boot up, I would not expect them to respond to network pings</p></li></ul><p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">What about that clue from earlier?</p><p class="">It looks like when I powered down the DS1817+ first, it took the UPS server down with it. This leaves the DS920+ in a state where it’s expecting to have a UPS server (that is no longer there) and the NAS doesn’t know what to do and then gets stuck in a limbo state.</p><p class=""><strong>Lesson learned</strong>: power down all of the dependant NAS units first!</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1708978435120-PV0IFEBMY3ZVHGQGELBL/Cover_s.jpg?format=1500w" medium="image" isDefault="true" width="1500" height="1000"><media:title type="plain">Synology NAS Blinking? I found an undocumented cause for it</media:title></media:content></item><item><title>Build Log: Mini Network Rack Mk III</title><category>DIY</category><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Wed, 20 Dec 2023 22:10:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/mini-network-rack-mk3</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:658368159c21535d7f345ea6</guid><description><![CDATA[My ‘mini’ network rack isn’t so mini anymore. Since living with the rack in 
its previous configuration for about a year, there are a few things that 
bother me about it. Here, I set out to tackle them in what was a 
quicker-than-expected rebuild of the network rack.]]></description><content:encoded><![CDATA[<p class="">I’ve had my <a href="https://www.minmaxgeek.com/blog/mini-network-rack-mk2">network rack</a> for a couple years now, really about a year in its current configuration and I’ve been wanting to revisit it to address some concerns and annoyances. Since taking everything apart and would be a pain, I wanted to wait until I had a few other upgrades before I went down that road. I’ll cover the networking/technical updates in a future post, but for now, this post will cover the DIY angle of the network rack rebuild.</p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#starting-point">Starting Point</a></p></li><li><p class=""><a href="#rough-design">Rough Design</a></p></li><li><p class=""><a href="#step-1">Step 1 - Switching out the base</a></p></li><li><p class=""><a href="#step-2">Step 2 - UPS enclosure</a></p></li><li><p class=""><a href="#step-3">Step 3 - Handle bar</a></p></li><li><p class=""><a href="#step-4">Step 4 - The rear patch panel</a></p></li><li><p class=""><a href="#step-5">Step 5 - Making my own rack mount</a></p></li><li><p class=""><a href="#step-6">Step 6 - POE Injector mount</a></p></li><li><p class=""><a href="#step-7">Step 7 - NAS shelf, finishing touches</a></p></li><li><p class=""><a href="#milestone">Milestone</a></p></li><li><p class=""><a href="#lessons">Mixups, Surprises and Lessons Learned</a></p></li><li><p class=""><a href="#appendix-1">Appendix - Parts and equipment</a></p></li></ul>


  






  



<hr />
  
    <h3 id="starting-point">Starting point</h3>
  


  
  <p class="">Before embarking on an upgrade/rebuild, I wanted to highlight my top three favorite features of the Mk II rack</p><ul data-rte-list="default"><li><p class="">All of the connections were self-documenting: by using CordIDs, I can unplug any and all of my cables and know at glance which device and which port (on the patch panel) it should be plugged into.</p></li><li><p class="">Almost all of the components have individual (analog) power switches associated with them. Being able to manually power down elements of your network is incredibly handy if you’re dealing with a power outage scenario (and need to cut the power footprint to maximize UPS runtime) and it’s also <em>way faster</em> to just walk up to a device and toggle the power switch versus logging into a management interface and telling the device to reboot</p></li><li><p class="">The steel side panels allowed me to magnetically attach <em>everything</em> to the rack (both on the inside and outside surfaces). The top-plate is also magnetically attached, so it’s super easy to pop the top off and I can then snake around inside the rack</p></li></ul><p class="">Of course it’s not without some downsides.</p><ul data-rte-list="default"><li><p class="">I had some <em>doubts</em> about the stability of using a washing-machine mobile base to support everything on a very sloped floor. Specifically, I was concerned about flexing on the base plate</p></li><li><p class="">I really, <a href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-2#tidy-1"><em>really</em> hate</a> the second PDU I added to the rack. On a day-to-day basis, it bothered the hell out of me seeing the 1.25U PDU which then reminded me of the dumb design where rack-mounting was clearly an afterthought.</p></li><li><p class="">So all of my cables are connected to the patch panel through the back side (like they would be in a traditional <em>rack</em>). But as I use this more as a <em>cart</em>, this is problematic: [1] anytime I want to swap something out, I have to snake my hands around on the inside to disconnect the device and [2] if I want to disconnect the entire cart, I have to take everything apart for the same reason</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="rough-design">Rough design</h3>
  


  
  <p class="">I had three broad considerations I wanted to keep in mind for the new cart:</p><ul data-rte-list="default"><li><p class="">Redo the base to remove any concern about sagging or flexing in the base plate</p></li><li><p class="">Try to keep the overall height of the network rack down if I can - I park the network cart in front of a cabinet with the breaker panel and it would be fantastic to be able to access the breaker panel without having to move the cart</p></li><li><p class="">Make room for two UPS units and where possible, consider any room for a future NAS unit</p></li></ul>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Option 1 - Minmalist" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This would be the quickest solution and I could retrofit this onto my existing cart. If I kept to a small-capacity rack, it would meet the objective of keeping the visual footprint low.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703115722171-VAOGVO0J5IF5BIGEODEU/Option+1_s.png" role="button" aria-labelledby="65837bcafbf6d8757b58b580-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703115722171-VAOGVO0J5IF5BIGEODEU/Option+1_s.png" data-image-dimensions="1000x1000" data-image-focal-point="0.5680272108843537,0.6360544217687075" alt="Option 1 - Minmalist" data-load="false" data-image-id="65837bcafbf6d8757b58b580" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703115722171-VAOGVO0J5IF5BIGEODEU/Option+1_s.png?format=1000w" /><br>
                </a>
                
                  Option 1 - Minmalist
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Option 2 - Going wide" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Here the goal would be to keep the overall height as low as possible. The bottom cubby here has plenty of room to put an additional NAS unit and the top can act as a flat surface for crap to accumulate.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703115721470-4E5KXG1HVUMKI8722RFQ/Option+2_s.png" role="button" aria-labelledby="65837bc99174d67680797fc2-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703115721470-4E5KXG1HVUMKI8722RFQ/Option+2_s.png" data-image-dimensions="1000x1000" data-image-focal-point="0.5068027210884354,0.6564625850340136" alt="Option 2 - Going wide" data-load="false" data-image-id="65837bc99174d67680797fc2" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703115721470-4E5KXG1HVUMKI8722RFQ/Option+2_s.png?format=1000w" /><br>
                </a>
                
                  Option 2 - Going wide
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Option 3 - Embrace the cart" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Here, I can reserve the bottom space for UPS and “other junk” that will inevitably accumulate. The NAS can be kept on the side of the cart in it’s own (scalable) shelf.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703115721470-2U2W3SK8JJQU6QGF1KO1/Option+3_s.png" role="button" aria-labelledby="65837bc9002ddb3345ae2a72-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703115721470-2U2W3SK8JJQU6QGF1KO1/Option+3_s.png" data-image-dimensions="1000x1000" data-image-focal-point="0.47278911564625853,0.6360544217687075" alt="Option 3 - Embrace the cart" data-load="false" data-image-id="65837bc9002ddb3345ae2a72" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703115721470-2U2W3SK8JJQU6QGF1KO1/Option+3_s.png?format=1000w" /><br>
                </a>
                
                  Option 3 - Embrace the cart
                
              
            
          

          
        

      
    
  

  











  
  <p class="">I really liked the idea of Option 2 but it would definitely make connecting the network elements together tricky — even if I punched a hole through the two sides connecting them. I ultimately went with Option 3 because I wasn’t sold on being able to fit everything I wanted now (and in the future) into a small rack.</p><p class="">The big change would be adding rear-facing patch panels and permanently connecting them to the front-facing patch panels. This way, I don’t have to snake around inside the rack whenever I want to remove a device. It turns the back side of the network rack into a dock.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5611986c-d4cd-479a-8c34-4911c1c52215/Wiring_s.jpg" data-image-dimensions="1038x817" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5611986c-d4cd-479a-8c34-4911c1c52215/Wiring_s.jpg?format=1000w" width="1038" height="817" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5611986c-d4cd-479a-8c34-4911c1c52215/Wiring_s.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5611986c-d4cd-479a-8c34-4911c1c52215/Wiring_s.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5611986c-d4cd-479a-8c34-4911c1c52215/Wiring_s.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5611986c-d4cd-479a-8c34-4911c1c52215/Wiring_s.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5611986c-d4cd-479a-8c34-4911c1c52215/Wiring_s.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5611986c-d4cd-479a-8c34-4911c1c52215/Wiring_s.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5611986c-d4cd-479a-8c34-4911c1c52215/Wiring_s.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Adding rear patch panel to turn this into a network docking station.</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-1">Step 1 - Switching out the base</h3>
  


  
  <p class="">The previous base was a panel of 1/2” plywood that I ‘kind of’ clamped onto an adjustable base and while I don’t have any overt reason <em>not</em> to trust it, over time, I just ‘had a feeling’ that due to the uncentered weight was causing the wood to deflect and eventually result in tears. </p><p class="">To replace this, I had a <a href="https://www.canadiantire.ca/en/pdp/mastercraft-universal-heavy-duty-mobile-base-400-lbs-cap-0571628p.0571628.html?rq=mobile%20base#srp" target="_blank">universal tool base</a> that I’ve had kicking around for a long time (and truthfully, have been tripping over). To try and get ahead of deflection, I opted to make give the base a bit of a torsion-box. Being designed as a mobile base for heavy workshop tools, it was easy to bolt this platform to the base.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Loosely assembled the mobile base" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This frame is adjustable in size and I’m not hard set on a specific size/shape, but just got things assembled to be a bit of starting point.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134396748-TQ3ECP5UJBLGVRBJ2ZT5/DPN03707_s.jpg" role="button" aria-labelledby="6583c4bc15550c0278cb2264-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134396748-TQ3ECP5UJBLGVRBJ2ZT5/DPN03707_s.jpg" data-image-dimensions="2500x1619" data-image-focal-point="0.5068027210884354,0.5010523745888158" alt="Loosely assembled the mobile base" data-load="false" data-image-id="6583c4bc15550c0278cb2264" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134396748-TQ3ECP5UJBLGVRBJ2ZT5/DPN03707_s.jpg?format=1000w" /><br>
                </a>
                
                  Loosely assembled the mobile base
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="OSB base" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;For the bottom plate of the torsion box (the one recessed into the tool base), I opted to make this from OSB that I’ve also had kicking around for years.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134397056-V2TOTHLHVDNOOGR5EVOR/DPN03708_s.jpg" role="button" aria-labelledby="6583c4bcafdb0378697c7e32-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134397056-V2TOTHLHVDNOOGR5EVOR/DPN03708_s.jpg" data-image-dimensions="2500x1491" data-image-focal-point="0.5,0.5" alt="OSB base" data-load="false" data-image-id="6583c4bcafdb0378697c7e32" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134397056-V2TOTHLHVDNOOGR5EVOR/DPN03708_s.jpg?format=1000w" /><br>
                </a>
                
                  OSB base
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Trim off the tongue/groove" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;The OSB board I had was tongue-and-groove, so the first step was to cut this off with the track saw&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134397667-MCER1LU6BV413MPKRMZK/DPN03709_s.jpg" role="button" aria-labelledby="6583c4bdc533ca26c02e3a58-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134397667-MCER1LU6BV413MPKRMZK/DPN03709_s.jpg" data-image-dimensions="2500x1927" data-image-focal-point="0.5,0.5" alt="Trim off the tongue/groove" data-load="false" data-image-id="6583c4bdc533ca26c02e3a58" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134397667-MCER1LU6BV413MPKRMZK/DPN03709_s.jpg?format=1000w" /><br>
                </a>
                
                  Trim off the tongue/groove
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Clean reference edge" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;With the tongue out of the way, I can measure to fit inside the base.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134397910-5BB00QB3QGOB9GKQAF1D/DPN03710_s.jpg" role="button" aria-labelledby="6583c4bd6906431c717dcb18-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134397910-5BB00QB3QGOB9GKQAF1D/DPN03710_s.jpg" data-image-dimensions="2500x1452" data-image-focal-point="0.5,0.5" alt="Clean reference edge" data-load="false" data-image-id="6583c4bd6906431c717dcb18" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134397910-5BB00QB3QGOB9GKQAF1D/DPN03710_s.jpg?format=1000w" /><br>
                </a>
                
                  Clean reference edge
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Quick sanding" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;While it strictly doesn’t matter (as you can’t see or touch it), I wanted to smooth out the surface of the OSB for better glue adhesion&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134398753-RLYG35Q3DM736EGZPC4S/DPN03711_s.jpg" role="button" aria-labelledby="6583c4beafdb0378697c7e46-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134398753-RLYG35Q3DM736EGZPC4S/DPN03711_s.jpg" data-image-dimensions="2500x1610" data-image-focal-point="0.5,0.5" alt="Quick sanding" data-load="false" data-image-id="6583c4beafdb0378697c7e46" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134398753-RLYG35Q3DM736EGZPC4S/DPN03711_s.jpg?format=1000w" /><br>
                </a>
                
                  Quick sanding
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Quick test fit" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Just making sure that I can install and remove this plate without taking the frame apart.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134399130-9XTS8VAKP1IFAP6E0QKN/DPN03712_s.jpg" role="button" aria-labelledby="6583c4be7fa8d151d3d4cefd-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134399130-9XTS8VAKP1IFAP6E0QKN/DPN03712_s.jpg" data-image-dimensions="2500x1402" data-image-focal-point="0.5,0.5" alt="Quick test fit" data-load="false" data-image-id="6583c4be7fa8d151d3d4cefd" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134399130-9XTS8VAKP1IFAP6E0QKN/DPN03712_s.jpg?format=1000w" /><br>
                </a>
                
                  Quick test fit
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Marked the drill holes" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;After clamping the base down, I flipped it over to mark the bolt hole locations&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134399797-4EZC52CER2RKBA8O5LLV/DPN03713_s.jpg" role="button" aria-labelledby="6583c4bfee24634385a6826b-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134399797-4EZC52CER2RKBA8O5LLV/DPN03713_s.jpg" data-image-dimensions="2500x1828" data-image-focal-point="0.5,0.5" alt="Marked the drill holes" data-load="false" data-image-id="6583c4bfee24634385a6826b" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134399797-4EZC52CER2RKBA8O5LLV/DPN03713_s.jpg?format=1000w" /><br>
                </a>
                
                  Marked the drill holes
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Rummaged around for scraps" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I cut down some of leftover French cleats. To determine the height to rip the cleats down, I opted to have it so that the top plate, which sits on top of these strips, will clear the top of the recess on the mobile base.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134400411-9AE9KZTVFZJ9GOR0EQTD/DPN03714_s.jpg" role="button" aria-labelledby="6583c4bf3510f80fe1d5c24d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134400411-9AE9KZTVFZJ9GOR0EQTD/DPN03714_s.jpg" data-image-dimensions="2500x2428" data-image-focal-point="0.5,0.5" alt="Rummaged around for scraps" data-load="false" data-image-id="6583c4bf3510f80fe1d5c24d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134400411-9AE9KZTVFZJ9GOR0EQTD/DPN03714_s.jpg?format=1000w" /><br>
                </a>
                
                  Rummaged around for scraps
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Cutting to length" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;The network platform will have an asymmetrical weight placed on it: the rack will direct weight down  on the right edge of the platform as well as (roughly) down the middle. &lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;As such, the platform, if at all, will tend to cup left-to-right (so like a ’U’ and not like a ‘(’ or ‘)’). As such, I wanted my reinforcement strips to run in the same direction to provide rigidity.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134392206-9R3H7ZCTI381LAXMHDDF/DPN03715_s.jpg" role="button" aria-labelledby="6583c4b7f5242d589343f440-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134392206-9R3H7ZCTI381LAXMHDDF/DPN03715_s.jpg" data-image-dimensions="2500x1460" data-image-focal-point="0.5,0.5" alt="Cutting to length" data-load="false" data-image-id="6583c4b7f5242d589343f440" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134392206-9R3H7ZCTI381LAXMHDDF/DPN03715_s.jpg?format=1000w" /><br>
                </a>
                
                  Cutting to length
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Roughly visualizing the placement" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;In hindsight, I &lt;em&gt;probably&lt;/em&gt; should have put the outer strips along the edge but it’s probably fine.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134392447-UO8L45NOS4JPJB1D3ES3/DPN03716_s.jpg" role="button" aria-labelledby="6583c4b742ec4f63cf6f94e6-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134392447-UO8L45NOS4JPJB1D3ES3/DPN03716_s.jpg" data-image-dimensions="2500x1562" data-image-focal-point="0.5,0.5" alt="Roughly visualizing the placement" data-load="false" data-image-id="6583c4b742ec4f63cf6f94e6" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134392447-UO8L45NOS4JPJB1D3ES3/DPN03716_s.jpg?format=1000w" /><br>
                </a>
                
                  Roughly visualizing the placement
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Using tape for alignment" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This way, I can butt the strips up against the tape for parallel strips&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134393094-Y1KB2HM8O6REYRVBWC0O/DPN03717_s.jpg" role="button" aria-labelledby="6583c4b8c3bfa04ad2b967df-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134393094-Y1KB2HM8O6REYRVBWC0O/DPN03717_s.jpg" data-image-dimensions="2500x1535" data-image-focal-point="0.5,0.5" alt="Using tape for alignment" data-load="false" data-image-id="6583c4b8c3bfa04ad2b967df" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134393094-Y1KB2HM8O6REYRVBWC0O/DPN03717_s.jpg?format=1000w" /><br>
                </a>
                
                  Using tape for alignment
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="All glued down" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Glue, then pin nails to tack it in place, then flipped over and added screws to hold them until the glue dries&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134393420-WKVTIDR8E1UZVKZ5AKAT/DPN03718_s.jpg" role="button" aria-labelledby="6583c4b9e581504d041d4eab-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134393420-WKVTIDR8E1UZVKZ5AKAT/DPN03718_s.jpg" data-image-dimensions="2500x1360" data-image-focal-point="0.5,0.5" alt="All glued down" data-load="false" data-image-id="6583c4b9e581504d041d4eab" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134393420-WKVTIDR8E1UZVKZ5AKAT/DPN03718_s.jpg?format=1000w" /><br>
                </a>
                
                  All glued down
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Added a threaded bolt" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This is purely to just keep the bolt from falling out as I lift and move the base. By using a threaded insert, I can turn the bolts into a ‘stud’ which then gets secured through the mobile base.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134393922-2BYXI2ATK2YA4I9JRUG3/DPN03719_s.jpg" role="button" aria-labelledby="6583c4b963b1246c0a74a830-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134393922-2BYXI2ATK2YA4I9JRUG3/DPN03719_s.jpg" data-image-dimensions="2500x1615" data-image-focal-point="0.5,0.5" alt="Added a threaded bolt" data-load="false" data-image-id="6583c4b963b1246c0a74a830" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134393922-2BYXI2ATK2YA4I9JRUG3/DPN03719_s.jpg?format=1000w" /><br>
                </a>
                
                  Added a threaded bolt
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Studs mounted" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Now, the bolts will stay in place, making it so much less frustrating to work with this base.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134394393-TQGUO0HKJLZ5U2CIM9Y3/DPN03720_s.jpg" role="button" aria-labelledby="6583c4ba000e266ad0740b01-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134394393-TQGUO0HKJLZ5U2CIM9Y3/DPN03720_s.jpg" data-image-dimensions="2500x1479" data-image-focal-point="0.5,0.5" alt="Studs mounted" data-load="false" data-image-id="6583c4ba000e266ad0740b01" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134394393-TQGUO0HKJLZ5U2CIM9Y3/DPN03720_s.jpg?format=1000w" /><br>
                </a>
                
                  Studs mounted
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Test fitting the 'pretty' top" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I only opted to use four screws here as it’s just for alignment more than anything. The sheer weight of everything on this will keep it from moving around.&lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Note that I intentionally had the top plate clear the perimeter of the frame - I was not in the mood to try and make this perfectly fitted.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134394941-I1CBQRZ6O1FZJQ4B5UD2/DPN03721_s.jpg" role="button" aria-labelledby="6583c4ba6906431c717dcaf6-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134394941-I1CBQRZ6O1FZJQ4B5UD2/DPN03721_s.jpg" data-image-dimensions="2500x1550" data-image-focal-point="0.5,0.5" alt="Test fitting the 'pretty' top" data-load="false" data-image-id="6583c4ba6906431c717dcaf6" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134394941-I1CBQRZ6O1FZJQ4B5UD2/DPN03721_s.jpg?format=1000w" /><br>
                </a>
                
                  Test fitting the 'pretty' top
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Marking the center" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134395278-NPWJXTYP0GC4M9EQ8WP1/DPN03722_s.jpg" role="button" aria-labelledby="6583c4bb1d0e4a295ba45df1-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134395278-NPWJXTYP0GC4M9EQ8WP1/DPN03722_s.jpg" data-image-dimensions="2500x1775" data-image-focal-point="0.5,0.5" alt="Marking the center" data-load="false" data-image-id="6583c4bb1d0e4a295ba45df1" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134395278-NPWJXTYP0GC4M9EQ8WP1/DPN03722_s.jpg?format=1000w" /><br>
                </a>
                
                  Marking the center
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Quick notch" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Using a jigsaw, I cut a very quick marking notch on the center. This will let me center the base plate in the mobile base&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134395828-94NM2T2HF9RM5T5LQZ60/DPN03723_s.jpg" role="button" aria-labelledby="6583c4bba6392907159205c9-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134395828-94NM2T2HF9RM5T5LQZ60/DPN03723_s.jpg" data-image-dimensions="2500x1386" data-image-focal-point="0.5,0.5" alt="Quick notch" data-load="false" data-image-id="6583c4bba6392907159205c9" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134395828-94NM2T2HF9RM5T5LQZ60/DPN03723_s.jpg?format=1000w" /><br>
                </a>
                
                  Quick notch
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Quick coat of stain" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Only bothered doing the visible surface.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134396190-EQNDX2OLIX27VWY8ODSH/DPN03724_s.jpg" role="button" aria-labelledby="6583c4bc1e8f4325dce1a2b2-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134396190-EQNDX2OLIX27VWY8ODSH/DPN03724_s.jpg" data-image-dimensions="2500x1521" data-image-focal-point="0.5,0.5" alt="Quick coat of stain" data-load="false" data-image-id="6583c4bc1e8f4325dce1a2b2" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703134396190-EQNDX2OLIX27VWY8ODSH/DPN03724_s.jpg?format=1000w" /><br>
                </a>
                
                  Quick coat of stain
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  











  
  <p class="">For actually bolting the platform to the mobile base, I used 2” machine screws and <a href="https://amzn.to/48oK6Ww" target="_blank">star knobs</a>. At some point down the road, I may swap them out for a pair of nuts but for now, the star knobs are great for being able to quickly get the board on and off.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-2">Step 2 - UPS enclosure</h3>
  


  
  <p class="">I laminated some 3/4 ply together to make some side panels; the idea is that the side panels of the rack will rest on these, transferring weight to the base. I connected a couple quick stretchers to keep the two panes co-planar. During test fitting, I realized that one of the braces blocked the power cord for the UPS so I drilled some access holes to be able to feed the plug through it.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Laminated some scraps" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136247215-VLZFHUEAH7J5V4KNHWUP/DPN03725_s.jpg" role="button" aria-labelledby="6583cbf6354a9c06e7b45d23-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136247215-VLZFHUEAH7J5V4KNHWUP/DPN03725_s.jpg" data-image-dimensions="2500x1785" data-image-focal-point="0.5,0.5" alt="Laminated some scraps" data-load="false" data-image-id="6583cbf6354a9c06e7b45d23" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136247215-VLZFHUEAH7J5V4KNHWUP/DPN03725_s.jpg?format=1000w" /><br>
                </a>
                
                  Laminated some scraps
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Glue and pocket screw the stretchers" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136248447-1FVFN7S7QK1I446Q4RVZ/DPN03729_s.jpg" role="button" aria-labelledby="6583cbf8ec2a0670db610035-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136248447-1FVFN7S7QK1I446Q4RVZ/DPN03729_s.jpg" data-image-dimensions="2500x2404" data-image-focal-point="0.5,0.5" alt="Glue and pocket screw the stretchers" data-load="false" data-image-id="6583cbf8ec2a0670db610035" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136248447-1FVFN7S7QK1I446Q4RVZ/DPN03729_s.jpg?format=1000w" /><br>
                </a>
                
                  Glue and pocket screw the stretchers
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Test fitting" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Enough room for the UPS units but here’s where I realized I had a problem with the power cord&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136249606-Y6QWQOVWK976PZD8WC3G/DPN03732_s.jpg" role="button" aria-labelledby="6583cbf96906431c717e851d-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136249606-Y6QWQOVWK976PZD8WC3G/DPN03732_s.jpg" data-image-dimensions="2500x1936" data-image-focal-point="0.5,0.5" alt="Test fitting" data-load="false" data-image-id="6583cbf96906431c717e851d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136249606-Y6QWQOVWK976PZD8WC3G/DPN03732_s.jpg?format=1000w" /><br>
                </a>
                
                  Test fitting
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Marking clearance hole" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;For some reason, I was really reluctant to just cut a full on access panel and opted to have an individual hole for each cord.&lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;If this is a problem down the road, I’ll use an oscillating multitool to extend this into a full access hole.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136248266-52BNS10RO74711BSUSY7/DPN03730_s.jpg" role="button" aria-labelledby="6583cbf819181c295d5f740c-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136248266-52BNS10RO74711BSUSY7/DPN03730_s.jpg" data-image-dimensions="2500x1415" data-image-focal-point="0.5,0.5" alt="Marking clearance hole" data-load="false" data-image-id="6583cbf819181c295d5f740c" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136248266-52BNS10RO74711BSUSY7/DPN03730_s.jpg?format=1000w" /><br>
                </a>
                
                  Marking clearance hole
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Hole saw to cut access holes" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136249206-HRT2HYAJZPU5RUTMIGJ5/DPN03731_s.jpg" role="button" aria-labelledby="6583cbf9002ddb3345b920f0-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136249206-HRT2HYAJZPU5RUTMIGJ5/DPN03731_s.jpg" data-image-dimensions="2500x1947" data-image-focal-point="0.5,0.5" alt="Hole saw to cut access holes" data-load="false" data-image-id="6583cbf9002ddb3345b920f0" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136249206-HRT2HYAJZPU5RUTMIGJ5/DPN03731_s.jpg?format=1000w" /><br>
                </a>
                
                  Hole saw to cut access holes
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="It fits!" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136250349-MGPX7P4EWAPGRW2RZ28M/DPN03733_s.jpg" role="button" aria-labelledby="6583cbfae9da6906b6345b37-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136250349-MGPX7P4EWAPGRW2RZ28M/DPN03733_s.jpg" data-image-dimensions="2500x1805" data-image-focal-point="0.5,0.5" alt="It fits!" data-load="false" data-image-id="6583cbfae9da6906b6345b37" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136250349-MGPX7P4EWAPGRW2RZ28M/DPN03733_s.jpg?format=1000w" /><br>
                </a>
                
                  It fits!
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Test placement" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Here you can see that the rack is fully supported by the wide double-laminated side panels and all the weight is carried straight down.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136247218-67F9Y934LPJ5IHASJCNK/DPN03736_s.jpg" role="button" aria-labelledby="6583cbf6b0bbd24a000fd4b9-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136247218-67F9Y934LPJ5IHASJCNK/DPN03736_s.jpg" data-image-dimensions="2500x1784" data-image-focal-point="0.5,0.5" alt="Test placement" data-load="false" data-image-id="6583cbf6b0bbd24a000fd4b9" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136247218-67F9Y934LPJ5IHASJCNK/DPN03736_s.jpg?format=1000w" /><br>
                </a>
                
                  Test placement
                
              
            
          

          
        

      
    
  

  




  








  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-3">Step 3 - Handle bar</h3>
  


  
  <p class="">One of tricky things of the old base is there was no easy spot to <em>grab</em> anything in order to move the cart. I wanted <em>something </em>I use to manoeuvre the cart around. I was going with a pair of <a href="https://amzn.to/4aoqqnD" target="_blank">wall-mount racks</a> and wanted a solid, physical way to transfer the weight load to the ground — I am <em>not</em> going solely rely on anchoring the racks to my vertical back posts —  I would prefer to use that more for ‘alignment’.</p><p class="">I raided the scrap bin to get some plywood to make a ‘bushing’ to separate the two racks - yet provide a continuous, solid contact surface to transfer weight down. </p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Scraps" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Using scraps, I laminated two strips of 3/4 ply to make a nice, wide perimeter for both racks to contact&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703135834952-YA46Y4KKN7WLAIEL94F9/DPN03726_s.jpg" role="button" aria-labelledby="6583ca5aa9722b646b2d7b0a-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703135834952-YA46Y4KKN7WLAIEL94F9/DPN03726_s.jpg" data-image-dimensions="2500x1286" data-image-focal-point="0.3163265306122449,0.5370065789473685" alt="Scraps" data-load="false" data-image-id="6583ca5aa9722b646b2d7b0a" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703135834952-YA46Y4KKN7WLAIEL94F9/DPN03726_s.jpg?format=1000w" /><br>
                </a>
                
                  Scraps
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Gluing together the stretchers" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703135835927-D1V9V2SQDWMWTPWLI3PK/DPN03727_s.jpg" role="button" aria-labelledby="6583ca5bcf2bf65c9ac025f9-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703135835927-D1V9V2SQDWMWTPWLI3PK/DPN03727_s.jpg" data-image-dimensions="2500x1504" data-image-focal-point="0.30272108843537415,0.4571019952947443" alt="Gluing together the stretchers" data-load="false" data-image-id="6583ca5bcf2bf65c9ac025f9" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703135835927-D1V9V2SQDWMWTPWLI3PK/DPN03727_s.jpg?format=1000w" /><br>
                </a>
                
                  Gluing together the stretchers
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Adding a front handle bar" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703135834917-TNN1NKU8NNIK470P7W4S/DPN03728_s.jpg" role="button" aria-labelledby="6583ca5a9c9de80b74f6ff8b-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703135834917-TNN1NKU8NNIK470P7W4S/DPN03728_s.jpg" data-image-dimensions="2500x1490" data-image-focal-point="0.6496598639455783,0.5433238636363636" alt="Adding a front handle bar" data-load="false" data-image-id="6583ca5a9c9de80b74f6ff8b" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703135834917-TNN1NKU8NNIK470P7W4S/DPN03728_s.jpg?format=1000w" /><br>
                </a>
                
                  Adding a front handle bar
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Test placement" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Again, we have full weight transfer between the two racks. &lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I also opted to use the front stretcher for double duty — It covers the gap in the rack as well.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136576213-D2SGFEXB5M8LQCNZQHM0/DPN03737_s.jpg" role="button" aria-labelledby="6583cd40f4e42a689f279b7c-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136576213-D2SGFEXB5M8LQCNZQHM0/DPN03737_s.jpg" data-image-dimensions="2500x2072" data-image-focal-point="0.5,0.5" alt="Test placement" data-load="false" data-image-id="6583cd40f4e42a689f279b7c" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703136576213-D2SGFEXB5M8LQCNZQHM0/DPN03737_s.jpg?format=1000w" /><br>
                </a>
                
                  Test placement
                
              
            
          

          
        

      
    
  

  











  
  <p class="">As you may have noticed on the previous step (in the final picture), the rack has a support brace on the top side — which meant that I had to cut a small relief on the side strips so that everything would lay flush. After connecting up the handle bar, I ran a round-over bit make the handle bar aspect of this glorified spacer, nicer to touch.</p><p class="">I didn’t get any photos of it but using 3/4 OSB, I laminated together a frame (like in my previous rack build). Even though the weight of the rack is directly transferred downward, the frame gives me something to bolt everything to, if only to keep the rack from sliding. I had to wait until I had the handle bar together so I could stack the second rack — in order to get the final height needed for the back support frame.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-4">Step 4 - The rear patch panel</h3>
  


  
  <p class="">I bought a small <a href="https://amzn.to/3NygT3q" target="_blank">2U wall-mounted rack</a> in order to mount the back-side patch panel. I had originally had a vision of recessing this into the frame (somehow!). By recessing this into the frame, the front and the back patch panels would be closer - meaning I could use 2-ft cables to connect them.  Logistically, I couldn’t think of a clever way to recess the panel (without adding more height), so now, the back patch panel was 4-inches further away than I had originally intended, which was a bit of a problem since I had already bought 2-ft cables…</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6583d15ebd1abf4ed654af8d-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137631600-1LTHHN4ZYXP7429L553O/DPN03739_s.jpg" data-image-dimensions="2500x4324" data-image-focal-point="0.5,0.5" alt="Starting point" data-load="false" data-image-id="6583d15ebd1abf4ed654af8d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137631600-1LTHHN4ZYXP7429L553O/DPN03739_s.jpg?format=1000w" /><br>
                </a>
                
                  Starting point
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6583d162437c5c1dfec8fac0-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137634407-G5V6PIAMM8WX7HJDZ673/IMG20231211164151_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Test install" data-load="false" data-image-id="6583d162437c5c1dfec8fac0" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137634407-G5V6PIAMM8WX7HJDZ673/IMG20231211164151_s.jpg?format=1000w" /><br>
                </a>
                
                  Test install
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6583d163414f8447a1474afc-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137635771-DTO0ZAUL6GXXKCDHUG8H/IMG20231211164303_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Swings open" data-load="false" data-image-id="6583d163414f8447a1474afc" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137635771-DTO0ZAUL6GXXKCDHUG8H/IMG20231211164303_s.jpg?format=1000w" /><br>
                </a>
                
                  Swings open
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6583d15db0bbd24a00105b84-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137630107-VEWXBZSGQIDIQNBWRAAY/IMG20231211164310_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Easy access to the back side of the panel" data-load="false" data-image-id="6583d15db0bbd24a00105b84" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137630107-VEWXBZSGQIDIQNBWRAAY/IMG20231211164310_s.jpg?format=1000w" /><br>
                </a>
                
                  Easy access to the back side of the panel
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6583d15db0bbd24a00105b83-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137630192-1GVQYZTA5MHU5SDNUJ5T/DPN03738_s.jpg" data-image-dimensions="2500x1421" data-image-focal-point="0.5,0.5" alt="Initial attempt" data-load="false" data-image-id="6583d15db0bbd24a00105b83" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137630192-1GVQYZTA5MHU5SDNUJ5T/DPN03738_s.jpg?format=1000w" /><br>
                </a>
                
                  Initial attempt
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6583d15f3eede82ebf18527d-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137631827-O0F0001DUH1AXPSPJG5V/DPN03740_s.jpg" data-image-dimensions="2500x1877" data-image-focal-point="0.5,0.5" alt="Getting the cables ID'd up" data-load="false" data-image-id="6583d15f3eede82ebf18527d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137631827-O0F0001DUH1AXPSPJG5V/DPN03740_s.jpg?format=1000w" /><br>
                </a>
                
                  Getting the cables ID'd up
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6583d160bb891313052c5e6c-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137632664-KR3SOQNXORD9U2NS5ENL/DPN03741_s.jpg" data-image-dimensions="2500x1922" data-image-focal-point="0.5,0.5" alt="Starting to feed the cables through" data-load="false" data-image-id="6583d160bb891313052c5e6c" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137632664-KR3SOQNXORD9U2NS5ENL/DPN03741_s.jpg?format=1000w" /><br>
                </a>
                
                  Starting to feed the cables through
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6583d160fbf6d8757b647590-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137633096-R5J6BFIE2H0Y2B2T4FSP/DPN03742_s.jpg" data-image-dimensions="2500x2066" data-image-focal-point="0.5,0.5" alt="I gave up" data-load="false" data-image-id="6583d160fbf6d8757b647590" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137633096-R5J6BFIE2H0Y2B2T4FSP/DPN03742_s.jpg?format=1000w" /><br>
                </a>
                
                  I gave up
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6583d16129d1c614e5ad5684-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137634058-8YJ9YG240FZGZK07H6FJ/DPN03743_s.jpg" data-image-dimensions="2500x3694" data-image-focal-point="0.5,0.5" alt="Front side hooked up" data-load="false" data-image-id="6583d16129d1c614e5ad5684" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703137634058-8YJ9YG240FZGZK07H6FJ/DPN03743_s.jpg?format=1000w" /><br>
                </a>
                
                  Front side hooked up
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-5">Step 5 - Making my own rack mount</h3>
  


  
  <p class="">Since it was just a matter of a couple inches of clearance (and I had nothing to lose), I took a side quest to try and make my own rack-mount. Using scrap plywood and the rack-mount I already had handy, I carefully marked out the hole locations and then drilled out the holes using a drill press. I debated using threaded inserts to then hold the bolts captive (turning them into studs), but I didn’t want to risk tear out with the holes so close and honestly, for a 2U rack like this, it’s not a big deal.</p><p class="">The custom rack route worked great, allowing me to get the back side of the rear patch-panel close enough that I could use my 2-ft cables . Of course, had I anticipated this, I would have considered 3-ft cables and avoided all of this drama to begin with.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="My reference" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Since I already had a 2U rack handy, I used this as a reference to mark out the hole locations.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169655853-DIC1IDBHC5E0HM84QYTH/DPN03744_s.jpg" role="button" aria-labelledby="65844e7729d1c614e5bace28-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169655853-DIC1IDBHC5E0HM84QYTH/DPN03744_s.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="My reference" data-load="false" data-image-id="65844e7729d1c614e5bace28" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169655853-DIC1IDBHC5E0HM84QYTH/DPN03744_s.jpg?format=1000w" /><br>
                </a>
                
                  My reference
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Playing with scraps" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;For my use case, since I’m screwing the rack into my back support frame and the weight is low, I don’t have any need to have the two sides directly connected.&lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This is one less obstacle to route the cables through/around.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169656517-5KH68YQ2BTDXYUHMG533/DPN03745_s.jpg" role="button" aria-labelledby="65844e78a185e83d522ac320-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169656517-5KH68YQ2BTDXYUHMG533/DPN03745_s.jpg" data-image-dimensions="2500x1237" data-image-focal-point="0.5,0.5" alt="Playing with scraps" data-load="false" data-image-id="65844e78a185e83d522ac320" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169656517-5KH68YQ2BTDXYUHMG533/DPN03745_s.jpg?format=1000w" /><br>
                </a>
                
                  Playing with scraps
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Binding the two pieces together" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This way I can drill holes parallel to each other.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169656722-C4X2P6NR0SUELLWLP71J/DPN03746_s.jpg" role="button" aria-labelledby="65844e783eede82ebf254f70-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169656722-C4X2P6NR0SUELLWLP71J/DPN03746_s.jpg" data-image-dimensions="2500x2111" data-image-focal-point="0.5,0.5" alt="Binding the two pieces together" data-load="false" data-image-id="65844e783eede82ebf254f70" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169656722-C4X2P6NR0SUELLWLP71J/DPN03746_s.jpg?format=1000w" /><br>
                </a>
                
                  Binding the two pieces together
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Drill!" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Having a drill press or drill guide and a brad point bit really helps in locating the drill marks here!&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169657516-TNAZW7MIJROYA9UP5WOE/DPN03747_s.jpg" role="button" aria-labelledby="65844e79306a57677fbee38f-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169657516-TNAZW7MIJROYA9UP5WOE/DPN03747_s.jpg" data-image-dimensions="2500x2658" data-image-focal-point="0.5,0.5" alt="Drill!" data-load="false" data-image-id="65844e79306a57677fbee38f" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169657516-TNAZW7MIJROYA9UP5WOE/DPN03747_s.jpg?format=1000w" /><br>
                </a>
                
                  Drill!
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="All done" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;You can see with the side-by-side holes, I could &lt;em&gt;probably&lt;/em&gt; get away with running a threaded insert through it, but I just didn’t want to take the risk&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169657590-WKNULF24JF6T3TT55ZXR/DPN03748_s.jpg" role="button" aria-labelledby="65844e79501c977c164c7020-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169657590-WKNULF24JF6T3TT55ZXR/DPN03748_s.jpg" data-image-dimensions="2500x1865" data-image-focal-point="0.5,0.5" alt="All done" data-load="false" data-image-id="65844e79501c977c164c7020" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169657590-WKNULF24JF6T3TT55ZXR/DPN03748_s.jpg?format=1000w" /><br>
                </a>
                
                  All done
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Predrilling" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;While I had everything set up, I used the drill press to pre drill for putting the ‘rack’ together.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169658303-MMRX3ZLUB67RGOP4VD0P/DPN03749_s.jpg" role="button" aria-labelledby="65844e7aa561a8791b3ae809-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169658303-MMRX3ZLUB67RGOP4VD0P/DPN03749_s.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="Predrilling" data-load="false" data-image-id="65844e7aa561a8791b3ae809" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169658303-MMRX3ZLUB67RGOP4VD0P/DPN03749_s.jpg?format=1000w" /><br>
                </a>
                
                  Predrilling
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Perfectly set screws" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;So nice when screws sink level, plumb &lt;em&gt;and&lt;/em&gt; flush.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703170499497-5U7GKR223DTHBZFKKYVI/IMG20231215172331_s.jpg" role="button" aria-labelledby="658451c3f0f1a2064ebe8137-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703170499497-5U7GKR223DTHBZFKKYVI/IMG20231215172331_s.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="Perfectly set screws" data-load="false" data-image-id="658451c3f0f1a2064ebe8137" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703170499497-5U7GKR223DTHBZFKKYVI/IMG20231215172331_s.jpg?format=1000w" /><br>
                </a>
                
                  Perfectly set screws
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="All assembled" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Ready to mount on the frame.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169658396-MN05QJSBK2WN8QQIAZ8J/DPN03750_s.jpg" role="button" aria-labelledby="65844e7a501c977c164c7030-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169658396-MN05QJSBK2WN8QQIAZ8J/DPN03750_s.jpg" data-image-dimensions="2500x1647" data-image-focal-point="0.5,0.5" alt="All assembled" data-load="false" data-image-id="65844e7a501c977c164c7030" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169658396-MN05QJSBK2WN8QQIAZ8J/DPN03750_s.jpg?format=1000w" /><br>
                </a>
                
                  All assembled
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Mounting the rack" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;One downside about not having the two halves connected is I have to worry about.&lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I used a combination square to set the depth (measured down from the top of the support frame) on both sides.&lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;For this application, that level of accuracy was sufficient however, for a larger rack, it might be prudent to bust out a laser line level or at least a level.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169659144-AQJ2Z9HCJOZDORCMNCDY/DPN03751_s.jpg" role="button" aria-labelledby="65844e7a59128f53c79811ab-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169659144-AQJ2Z9HCJOZDORCMNCDY/DPN03751_s.jpg" data-image-dimensions="2500x1912" data-image-focal-point="0.5,0.5" alt="Mounting the rack" data-load="false" data-image-id="65844e7a59128f53c79811ab" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169659144-AQJ2Z9HCJOZDORCMNCDY/DPN03751_s.jpg?format=1000w" /><br>
                </a>
                
                  Mounting the rack
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Mounted!" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I ran bolts through the back side and just finger tightened the nuts on.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703170498819-RFWGX8ONO03HPOK8KJSD/IMG20231215204923_s.jpg" role="button" aria-labelledby="658451c28dc16d086e14a2b3-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703170498819-RFWGX8ONO03HPOK8KJSD/IMG20231215204923_s.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="Mounted!" data-load="false" data-image-id="658451c28dc16d086e14a2b3" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703170498819-RFWGX8ONO03HPOK8KJSD/IMG20231215204923_s.jpg?format=1000w" /><br>
                </a>
                
                  Mounted!
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Relabeling the ports" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;In hindsight I probably could have just mounted the patch panels upside down….&lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;But I wanted to do a 1:1 mapping of the front-ports to the back ports, so I had to mirror the numbers.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169659181-CF1D06TUZPGQ48X3HQT3/DPN03752_s.jpg" role="button" aria-labelledby="65844e7bfbf6d8757b71fdca-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169659181-CF1D06TUZPGQ48X3HQT3/DPN03752_s.jpg" data-image-dimensions="2500x1131" data-image-focal-point="0.5,0.5" alt="Relabeling the ports" data-load="false" data-image-id="65844e7bfbf6d8757b71fdca" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169659181-CF1D06TUZPGQ48X3HQT3/DPN03752_s.jpg?format=1000w" /><br>
                </a>
                
                  Relabeling the ports
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Pause" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Since the weekend was over, I had to pause my work on the rebuild.&lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;With each cord labeled, it took only three minutes to get everything connected up exactly to where it ought to be.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703170980115-X7LHM1M57IMPO39ZVSFQ/DPN03762_s.jpg" role="button" aria-labelledby="658453a3c533ca26c03dcfb8-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703170980115-X7LHM1M57IMPO39ZVSFQ/DPN03762_s.jpg" data-image-dimensions="2500x1717" data-image-focal-point="0.5,0.5" alt="Pause" data-load="false" data-image-id="658453a3c533ca26c03dcfb8" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703170980115-X7LHM1M57IMPO39ZVSFQ/DPN03762_s.jpg?format=1000w" /><br>
                </a>
                
                  Pause
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Tidying up the front" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I picked up a 1U cable organizer and this let me tame the mess on the front side. I’m not sure how I feel about it, but for now, I’ll leave it be.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169656015-PLDA3IRJVBP8T695RMRN/DPN03753_s.jpg" role="button" aria-labelledby="65844e7776fd0a0cbe81a294-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169656015-PLDA3IRJVBP8T695RMRN/DPN03753_s.jpg" data-image-dimensions="2500x1773" data-image-focal-point="0.5,0.5" alt="Tidying up the front" data-load="false" data-image-id="65844e7776fd0a0cbe81a294" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703169656015-PLDA3IRJVBP8T695RMRN/DPN03753_s.jpg?format=1000w" /><br>
                </a>
                
                  Tidying up the front
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-6">Step 6 - POE Injector mount</h3>
  


  
  <p class="">Previously, I had mounted the POE injectors one at a time, independently because, for my main AP, I was just using a POE injector I keep around for testing purposes, not the injector I wanted to use long term. This was a good opportunity to get around to getting a dedicated injector and mounting everything on a common plate. I kept the injector mount for the low-power AP separate because [1] ran out of room on the mounting plate and [2] thematically, it’s kind of its own thing anyways. I did opt to directly screw the low-power AP-injector into the back frame though.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="65845650080fe21a3ab945b0-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171665430-CSTH430WARUCZ9GYMTV6/DPN03754_s.jpg" data-image-dimensions="2500x1571" data-image-focal-point="0.5,0.5" alt="Scrap plywood" data-load="false" data-image-id="65845650080fe21a3ab945b0" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171665430-CSTH430WARUCZ9GYMTV6/DPN03754_s.jpg?format=1000w" /><br>
                </a>
                
                  Scrap plywood
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="65845652da6b5c14eb3ee0c2-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171666305-8LO3Y5TLP3CALGAGLLAI/DPN03755_s.jpg" data-image-dimensions="2500x1668" data-image-focal-point="0.5,0.5" alt="I got ahead of myself here" data-load="false" data-image-id="65845652da6b5c14eb3ee0c2" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171666305-8LO3Y5TLP3CALGAGLLAI/DPN03755_s.jpg?format=1000w" /><br>
                </a>
                
                  I got ahead of myself here
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="65845652b0bbd24a001f8c82-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171666529-BH2SX5EFM0ZMJJ3RWHKS/DPN03756_s.jpg" data-image-dimensions="2500x1205" data-image-focal-point="0.5,0.5" alt="Marking out where the magnets will go" data-load="false" data-image-id="65845652b0bbd24a001f8c82" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171666529-BH2SX5EFM0ZMJJ3RWHKS/DPN03756_s.jpg?format=1000w" /><br>
                </a>
                
                  Marking out where the magnets will go
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="65845653bb891313053bc531-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171667434-WD4I4MKIY2EU6JBC8DR0/DPN03758_s.jpg" data-image-dimensions="2500x2060" data-image-focal-point="0.5,0.5" alt="Saved by the drill press" data-load="false" data-image-id="65845653bb891313053bc531" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171667434-WD4I4MKIY2EU6JBC8DR0/DPN03758_s.jpg?format=1000w" /><br>
                </a>
                
                  Saved by the drill press
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="65845653b0bbd24a001f8caf-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171668128-LGECHMHZL5UDAKY668UI/DPN03759_s.jpg" data-image-dimensions="2500x1654" data-image-focal-point="0.5,0.5" alt="Laying out the mounting plates" data-load="false" data-image-id="65845653b0bbd24a001f8caf" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171668128-LGECHMHZL5UDAKY668UI/DPN03759_s.jpg?format=1000w" /><br>
                </a>
                
                  Laying out the mounting plates
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="65845655306a57677fc09f7d-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171669557-BQ7RQ0TVQM46UPLQ7E2Q/IMG20231216162505_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Drilling a cable pass hole" data-load="false" data-image-id="65845655306a57677fc09f7d" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171669557-BQ7RQ0TVQM46UPLQ7E2Q/IMG20231216162505_s.jpg?format=1000w" /><br>
                </a>
                
                  Drilling a cable pass hole
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="65845655b0bbd24a001f8ceb-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171670118-CEFMQU8XQ7IGNCMFJB1Q/IMG20231216163019_s.jpg" data-image-dimensions="2500x3324" data-image-focal-point="0.5,0.5" alt="Opened the hole" data-load="false" data-image-id="65845655b0bbd24a001f8ceb" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171670118-CEFMQU8XQ7IGNCMFJB1Q/IMG20231216163019_s.jpg?format=1000w" /><br>
                </a>
                
                  Opened the hole
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="658456576e6be817690aee05-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171671297-D5PH8HG5A5P17S6C11XE/IMG20231216165717_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Permanently mounting the low-power injector" data-load="false" data-image-id="658456576e6be817690aee05" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171671297-D5PH8HG5A5P17S6C11XE/IMG20231216165717_s.jpg?format=1000w" /><br>
                </a>
                
                  Permanently mounting the low-power injector
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="65845654b0bbd24a001f8ccb-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171669115-VMTJL6IBUHGKWUIG0NTS/DPN03761_s.jpg" data-image-dimensions="2500x1335" data-image-focal-point="0.5,0.5" alt="Ducks in a row" data-load="false" data-image-id="65845654b0bbd24a001f8ccb" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171669115-VMTJL6IBUHGKWUIG0NTS/DPN03761_s.jpg?format=1000w" /><br>
                </a>
                
                  Ducks in a row
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="65845650f5242d589353cce7-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171665556-1PQT5QL6V49YXXRRF6AK/IMG20231216184323_s.jpg" data-image-dimensions="2500x3333" data-image-focal-point="0.5,0.5" alt="Everything in place" data-load="false" data-image-id="65845650f5242d589353cce7" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171665556-1PQT5QL6V49YXXRRF6AK/IMG20231216184323_s.jpg?format=1000w" /><br>
                </a>
                
                  Everything in place
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="658456548a5af617e958648f-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171668412-381DK2ZDPC22J4NJCGJX/DPN03760_s.jpg" data-image-dimensions="2500x2560" data-image-focal-point="0.5,0.5" alt="Tidying up the side" data-load="false" data-image-id="658456548a5af617e958648f" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171668412-381DK2ZDPC22J4NJCGJX/DPN03760_s.jpg?format=1000w" /><br>
                </a>
                
                  Tidying up the side
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a role="presentation" aria-labelledby="6584577a6e6be817690b21f2-title" class="
                    image-slide-anchor
                    
                    content-fill
                  "
                >
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171963028-DEQH09WQ5CX6NUH73YZJ/IMG20231221101655_s.jpg" data-image-dimensions="2500x1875" data-image-focal-point="0.5,0.5" alt="Ordered dedicated injector" data-load="false" data-image-id="6584577a6e6be817690b21f2" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703171963028-DEQH09WQ5CX6NUH73YZJ/IMG20231221101655_s.jpg?format=1000w" /><br>
                </a>
                
                  Ordered dedicated injector
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  











  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-7">Step 7 - NAS shelf, finishing touches</h3>
  


  
  <p class="">For the NAS shelf, I opted to dismantle my previous two-tier shelf and reuse it here, rotated sideways. I also opted to route a power bar for the NAS units so that I wouldn’t have to snake the around inside the network rack to access the power. The extra few inches to get to power doesn’t sound like much, but I have an upcoming change with the way power is handled in the rack so I wanted to get ahead of it this way.</p><p class="">While I was here, I took the time to finally mount everything down to the base plate! Until now, everything was just relying on mass/friction to not really move. I had taken the time to drill pocket holes to secure things down but due to a comedy of errors, every single one of the pocket holes had been covered up by something else and I was just too lazy to undo it — so I went with some angle brackets I had lying around.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Test fitting" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Obviously, this will fit the two NAS units I have, but this was more for figuring out how to get the cables routed and whether I needed to drill a cable pass through hole or not&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173081396-8CKEI0P8R3ZQVP7F2T8Z/DPN03763_s.jpg" role="button" aria-labelledby="65845bd8abd39e0c7883242e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173081396-8CKEI0P8R3ZQVP7F2T8Z/DPN03763_s.jpg" data-image-dimensions="2500x2191" data-image-focal-point="0.5,0.5" alt="Test fitting" data-load="false" data-image-id="65845bd8abd39e0c7883242e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173081396-8CKEI0P8R3ZQVP7F2T8Z/DPN03763_s.jpg?format=1000w" /><br>
                </a>
                
                  Test fitting
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Securing the network rack to the base" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173082543-0UZ8MVOSY3J45YKZWNU2/IMG20231216194641_s.jpg" role="button" aria-labelledby="65845bdaec2a0670db7145ed-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173082543-0UZ8MVOSY3J45YKZWNU2/IMG20231216194641_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Securing the network rack to the base" data-load="false" data-image-id="65845bdaec2a0670db7145ed" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173082543-0UZ8MVOSY3J45YKZWNU2/IMG20231216194641_s.jpg?format=1000w" /><br>
                </a>
                
                  Securing the network rack to the base
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Cable pass" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Here, there’s a small gap for the cables to pass through to the back side of the rack&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173082859-O6PZ1JJ7LP4Q3UGNO5H1/IMG20231216195345_s.jpg" role="button" aria-labelledby="65845bda81d9f614069996c1-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173082859-O6PZ1JJ7LP4Q3UGNO5H1/IMG20231216195345_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Cable pass" data-load="false" data-image-id="65845bda81d9f614069996c1" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173082859-O6PZ1JJ7LP4Q3UGNO5H1/IMG20231216195345_s.jpg?format=1000w" /><br>
                </a>
                
                  Cable pass
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="More angle brackets" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I through a couple more brackets onto the rack just to tack it down. Realistically the weight is doing most of the work, this is just keeping it from sliding.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173081321-22TUB3BOHJ5W157HXZ8C/DPN03764_s.jpg" role="button" aria-labelledby="65845bd8ab55383ada771be7-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173081321-22TUB3BOHJ5W157HXZ8C/DPN03764_s.jpg" data-image-dimensions="2500x2052" data-image-focal-point="0.5,0.5" alt="More angle brackets" data-load="false" data-image-id="65845bd8ab55383ada771be7" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173081321-22TUB3BOHJ5W157HXZ8C/DPN03764_s.jpg?format=1000w" /><br>
                </a>
                
                  More angle brackets
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Mounting a power bar" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This way, the NAS units can just plug into here and not have to snake around the rack.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173080087-BMEMYBAV755YKEUFYO4J/IMG20231217171946_s.jpg" role="button" aria-labelledby="65845bd7ee24634385b7a0c7-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173080087-BMEMYBAV755YKEUFYO4J/IMG20231217171946_s.jpg" data-image-dimensions="2500x1880" data-image-focal-point="0.5,0.5" alt="Mounting a power bar" data-load="false" data-image-id="65845bd7ee24634385b7a0c7" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173080087-BMEMYBAV755YKEUFYO4J/IMG20231217171946_s.jpg?format=1000w" /><br>
                </a>
                
                  Mounting a power bar
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Finalizing" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I use one of those “charge 10 million devices at once” device chargers and figured this would be a good place to put the power&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173274043-PKLY7P0FJP97KE8207GB/IMG20231217174049_s.jpg" role="button" aria-labelledby="65845c99501c977c164f50a5-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173274043-PKLY7P0FJP97KE8207GB/IMG20231217174049_s.jpg" data-image-dimensions="2500x3324" data-image-focal-point="0.5,0.5" alt="Finalizing" data-load="false" data-image-id="65845c99501c977c164f50a5" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173274043-PKLY7P0FJP97KE8207GB/IMG20231217174049_s.jpg?format=1000w" /><br>
                </a>
                
                  Finalizing
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Capping the shelf" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;I put a plywood top on the shelf which is fantastic and gives me a flat surface to put all my related crap without stacking it on the top of the rack&lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This is screwed down to the top as I don’t anticipate needing to disassemble this often.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173080022-MFSJ9WIKDXKNJ74VW38Z/IMG20231216210803.jpg" role="button" aria-labelledby="65845bd7306a57677fc1f5d8-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173080022-MFSJ9WIKDXKNJ74VW38Z/IMG20231216210803.jpg" data-image-dimensions="2500x3324" data-image-focal-point="0.5,0.5" alt="Capping the shelf" data-load="false" data-image-id="65845bd7306a57677fc1f5d8" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703173080022-MFSJ9WIKDXKNJ74VW38Z/IMG20231216210803.jpg?format=1000w" /><br>
                </a>
                
                  Capping the shelf
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  




  








  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="milestone">Milestone</h3>
  


  
  <p class="">This was a fairly quick project as I was able to leverage existing pieces (the NAS shelf) and the fact that all of the cables are individually labeled (for both ends) made it easy to be able to switch between “powering everything down to work on it” and “okay we need the network up because the weekend is over”.  </p><p class="">I have to thank my wife for putting up with zero-network-at-all for hours at a time while I tinkered with this. Oh, and the massive puke of cables and tech that sprawled in the basement as I took everything apart ha-ha.</p><p class="">In the near future, I might buy a pair of <a href="https://amzn.to/47XWoFz" target="_blank">Noctua 200mm USB fans</a> to act as top-exhaust. For the time being (and for the last few years) I’ve not had any temperature issues with the rack mostly-closed up. If there ever is a heat issue, I can simply remove the top plate as it is just magnetized down to the rack.</p><p class="">At the moment, I have nine empty bays which sounds like a <em>ton</em> but I imagine once I take a closer look at what I can rack mount, they will fill up fast.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="lessons">Mixups, Surprises and Lessons Learned</h3>
  


  
  <p class="">There were three notable screw-ups</p><ol data-rte-list="default"><li><p class="">I intentionally drilled some pocket holes so that I could secure the UPS enclosure down to the platform. I <em>also</em> drilled pocket holes on the back support from (which is secured to the UPS enclosure) to secure that to the platform. I managed to face the pocket holes for both into each other and thus, had to resort to using angle brackets to actually tack the network stack down</p></li><li><p class="">For the UPS enclosure, I really should have opened up the cable pass through holes with a bandsaw/jigsaw to reduce future headache. As it stands, I can get power cords in and out of the enclosure but it’s a bit annoying.</p></li><li><p class="">The last careless mistake was not drilling the holes for the magnets before assembling the shelf for holding the POE injectors. Another careless oopsie.</p></li></ol><p class="">The only other hurdle was the issue of the rear rack-mount using up too much of the limited 2-ft length span I had planned for the wiring, something that could have been avoided with 3-ft wiring or just DIYing the rear rack.</p>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="">For the mobile tool base, I’m simultaneously really happy and really annoyed with it: it’s quite sturdy, well built and I love the fact that it has adjustable sizing but I hate, hate, <em>hate</em> the fast that the back wheels are fixed. I have this same hatred for rolling tool chests as well. Having fixed real wheels isn’t an issue in a large automotive shop but in any smaller/home scenario, I want to be able to shuffle and snake the tool chest (or network cart) in small tight spaces. Instead of just scooting the cart over, I have to do the game of snaking it back and forth incrementally.  Honestly, if I see the mobile base go on super sale again, I might legit consider buying another one just to cannibalize the front wheels to mount on the back of this network cart. Totally infuriating.</p>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="">Regarding the <a href="https://amzn.to/3TxaN7e" target="_blank">rack-mount cable concealer</a>, I’m kind of torn. On the one hand, I really do like that it gets the random jumble of cables tidied up but at the same time, I <em>really</em> miss being able to directly see the CordIDs for each cable. Thankfully it comes with a quick-snap panel, so if I <em>needed</em> to see the label, I could do so quickly enough so for now, this is just an irk for me.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    <h3 id="appendix-1">Appendix - Parts and equipment</p>
  


  
  <ul data-rte-list="default"><li><p class=""><strong>Racks</strong></p><ul data-rte-list="default"><li><p class=""><a href="https://amzn.to/4anj7fM" target="_blank">StarTech 12U Wall-mount Rack</a>. Since I already had a 12U, it made sense for me to go with another one as one of my candidate designs had them stacked side by side (thus, requiring the same rack). The only thing to note is that the brace bar on the top can interfere with all but the most shallow devices (read: small PDUs). In my case, I was planning on leaving the top as an air-gap anyways, but something to be aware of. Otherwise, fantastic rack mount, no complaints. </p></li><li><p class=""><a href="https://amzn.to/48oIpZe" target="_blank">StarTech 2U (Hinged) Wall-mount Rack</a>. Even under the hypothetical assumption that I had bought 3-ft cables and could use this, I’m kind of torn on this product. Like it’s <em>fine</em>, it does the job but the hinge is not confidence inspiring - just having the two patch panels hanging off the hinge has some <em>serious</em> deflection. In hindsight (and unique to my scenario), considering how easy it was to make my own 2U rack, I think I might give something like this a pass.</p></li><li><p class=""><a href="https://amzn.to/479v2ec" target="_blank">ETS 24-port loaded patch panel</a>. This is one of the more cost effective units and comes with everything ready to go out of the box</p></li><li><p class=""><a href="https://amzn.to/479rbhe" target="_blank">Rackstud Series II Duo</a>. An alternative to cage nuts, this is totally worth every penny. The ‘Duo’ only works for 1U equipment (which by coincidence, all of my gear is) but it’s a massive time and frustration saver. Having studs (instead of nuts) allows your to temporarily hang your equipment off the stud while you reach for nuts, instead of playing the balancing act of trying to support equipment whilst lining up holes.</p></li><li><p class=""><a href="https://amzn.to/3Ty3hJc" target="_blank">Monoprice SlimRun CAT6a cables</a>. Available in a variety of colors and lengths, I went with these to try and keep the cable mess under control. Note that for POE devices, anything ‘downstream’ of the power-injection source (whether it be an injector or a POE switch), you should try and use non-slim cables — for better heat management.</p></li></ul></li><li><p class=""><strong>Organizing</strong></p><ul data-rte-list="default"><li><p class=""><a href="https://dotzshop.com/products/cordid-pro-bulk?variant=5208998595" target="_blank">CordID tags</a>. I use these extensively to label every single cable, knowing exactly where to plug (both!) ends of a random cable is pretty awesome</p></li><li><p class=""><a href="https://amzn.to/3TxaN7e" target="_blank">1U network cable organizer</a>. As I mentioned above, I’m not entirely sold on this for my specific use case (where I want to see the CordIDs) but for most people, I imagine this will be great. I might suggest a <a href="https://amzn.to/3GOCMYF" target="_blank">2U organizer</a> as it allows for a bit more flexibility (and maybe even the possibility of using CordIDs) — but for my specific application, I only had 1U available. The  front plate can swivel from the top or the bottom and can be removed so it’s actually quite a pleasure to work with.</p></li><li><p class=""><a href="https://amzn.to/4awPmta" target="_blank">Bulk Velcro</a>. I bought a huge roll of bulk Velcro to keep things my cables all grouped together and organized where possible</p></li></ul></li><li><p class=""><strong>Magnets</strong></p><ul data-rte-list="default"><li><p class=""><a href="https://amzn.to/3GU52cs" target="_blank">130lb rare earth magnets</a>. I use these magnets to make magnetic mounting plates - the solid steel surface of the wall rack gives me plenty of area to mount everything</p></li><li><p class=""><a href="https://amzn.to/474Of0F" target="_blank">25lb magnet hooks</a>, I use these to gently route cables around on the rack and take up slack. These generally don’t need to have a ton of holding power as you’re just <em>gently </em>routing things, so finding magnet hooks at your local surplus store will be fine too</p></li></ul></li><li><p class=""><strong>Power</strong></p><ul data-rte-list="default"><li><p class=""><a href="https://amzn.to/3tr8p7l" target="_blank">ADJ Pow-R Rack</a>. This rack has it all — switched power outlets, two always-on power outlets (front + back) and front-USB</p></li><li><p class=""><a href="https://amzn.to/486ut6t" target="_blank">Pyle Pro PDBC70</a>. This is a more basic PDU that just works and provides nine switched rear-outlets</p></li><li><p class="">Splitter extension cord. You can get them in <a href="https://amzn.to/3RRud5x" target="_blank">2-split</a> and <a href="https://amzn.to/3TGL5Nw" target="_blank">3-split</a> and these are great for when you have just a few items you want to power on/off together. In my case, my main modem, fiber-switch (allowing me to toggle between main-router and low-power router) will <em>always</em> be powered on together, so I can use this splitter to link them to the same port on the PDU</p></li><li><p class="">Short power cords: <a href="https://amzn.to/3TA4v6J" target="_blank">1ft ‘outlet saver’ extension cords</a>, <a href="https://amzn.to/3vbLygM" target="_blank">C13 ‘PC power’ cords</a> and <a href="https://amzn.to/48sXCZq" target="_blank">C7 ‘figure-8’ unpolarized power cords</a>. One way to reduce the amount of cable management and wrapping needed is to literally reduce the physical amount of cable required to hook things up. Shorter cables allow you to get near exact-length power runs.</p></li></ul></li><li><p class=""><a href="https://www.canadiantire.ca/en/pdp/mastercraft-universal-heavy-duty-mobile-base-400-lbs-cap-0571628p.0571628.html" target="_blank">Mastercraft Universal Tool base</a>. I happened to use the Mastercraft model as I had bought one years ago on super sale but there are any number of adjustable <a href="https://amzn.to/476f1pv" target="_blank">mobile tool bases</a> that might be suitable alternatives. I did see that the <a href="https://amzn.to/3RPECPe" target="_blank">Portamate PM-3550</a> comes with all-swivel wheels but that price tag is something else — you could totally buy <em>two</em> bases and cannibalize parts for less. You can also easily put one together using just four swivel locking castors as well.</p></li><li><p class="">A small 4V screwdriver: I have an older version of this <a href="https://amzn.to/3tyI4En" target="_blank">4V Black &amp; Decker</a> — makes working with rack nuts/screws so much less annoying as otherwise, I’m just sitting there spinning screws forever. Even since switching to rackstuds, the low power of this screwdriver means I can just cinch the nuts down on top of the RackStuds without concern that anything is going to break or strip.</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />&nbsp;










































  

    

      <figure data-test="image-block-v2-outer-wrapper" data-sqsp-image-classic-block-layout="card" class="
            sqs-block-image-figure
            image-block-outer-wrapper
            image-block-v2
            design-layout-card
            combination-animation-site-default
            individual-animation-site-default
            individual-text-animation-site-default
            image-position-left
            image-linked
          " data-scrolled
      >

        
          
            
            
              
              
              
              
              
              
              
              <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/33b2c9e1-dbd7-435d-b382-196396deb3d5/Social_Squooshed.jpg" data-image-dimensions="1500x806" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/33b2c9e1-dbd7-435d-b382-196396deb3d5/Social_Squooshed.jpg?format=1000w" width="1500" height="806" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/33b2c9e1-dbd7-435d-b382-196396deb3d5/Social_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/33b2c9e1-dbd7-435d-b382-196396deb3d5/Social_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/33b2c9e1-dbd7-435d-b382-196396deb3d5/Social_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/33b2c9e1-dbd7-435d-b382-196396deb3d5/Social_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/33b2c9e1-dbd7-435d-b382-196396deb3d5/Social_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/33b2c9e1-dbd7-435d-b382-196396deb3d5/Social_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/33b2c9e1-dbd7-435d-b382-196396deb3d5/Social_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

              
            
          
            
          

        

        
          
          <figcaption data-width-ratio class="image-card-wrapper">
            

              
                <h2>Mk II Rack Build</h2>
              

              
                <p class="">My Mk II rack was a quick project I did just to get things going. Read this to have a look at the previous iteration of the ‘rack’.</p>
              

              
                
                  
                    
                      <a data-sqsp-image-classic-block-link-button href="https://www.minmaxgeek.com/blog/mini-network-rack-mk2" class="sqs-button-element--primary">Read More</a>
                    
                  
                
              

            
          </figcaption>
        

      </figure>

    

  


&nbsp;
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1703196817284-Q52T4EN5H5DGQO2J3DAT/Blog+Covers_s.jpg?format=1500w" medium="image" isDefault="true" width="1500" height="1000"><media:title type="plain">Build Log: Mini Network Rack Mk III</media:title></media:content></item><item><title>Interim Skype Station Update</title><category>AV</category><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Mon, 06 Mar 2023 12:00:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/skype-station-update-2023-1</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:64050bee33a42373b63389a6</guid><description><![CDATA[Skype Station has been an incredible success: high marks for usability, 
reliability and both image and audio quality. What it’s not great for? 
Being portable.

I’d like to look at a mobile-focused Skype station this year so I need to 
do a bit of a roundup to see if a specific camera I’m thinking of can live 
up to the bar set by Skype Station.]]></description><content:encoded><![CDATA[<p class="">I have some plans for upgrading <a href="https://www.minmaxgeek.com/blog/skype-station">Skype Station</a> this year — just waiting on some parts and time to work on it. I plan to split the current setup into two, much more specialized variants. For one of those specialized variants, I wanted to build it around a very intriguing camera setup; luckily I was able to test drive this camera and see where it falls in the line-up of gear I have on hand.</p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#specialized">Specialized variants</a></p></li><li><p class=""><a href="#contenders">The contenders</a></p></li><li><p class=""><a href="#results">Results</a></p><ul data-rte-list="default"><li><p class=""><a href="#results-1">Sony A7 III</a></p></li><li><p class=""><a href="#results-2">Sony ZV-E10</a></p></li><li><p class=""><a href="#results-3">Sony RX10</a></p></li><li><p class=""><a href="#results-4">OnePlus 9 Pro</a></p></li><li><p class=""><a href="#results-5">Logitech C920</a></p></li><li><p class=""><a href="#results-6">Insta360 Link</a></p></li></ul></li><li><p class=""><a href="#conclusions">Conclusions?</a></p></li></ul>


  






  



<hr />
  
    <h3 id="specialized">Specialized variants</h3>
  


  
  <p class="">Objectively speaking, Skype Station is pretty slick: it’s easy to use, fairly reliable, performant and delivers a great experience all around. Over time, I want to improve on what Skype Station can do — better image quality, easier to use etc. One thing Skype Station <em>isn’t </em>good at, is being <em>portable</em>.</p><p class="">We have a fairly nice backyard and I think my wife would like to work outside, amidst all the gross fresh air and nature. I prototyped some ideas for getting decent audio in the backyard — but I’m waiting on the <a href="https://www.raspberrypi.com/news/supply-chain-update-its-good-news/" target="_blank">cost of Raspberry Pi’s</a> to come down in order to work on making it a bit more robust.</p><p class="">But what about video? I had previously performed some ad-hoc tests using a bridge camera (funny enough, it was the camera I originally built Skype Station around) but the ease of setup and use was a weak point. Using a mobile phone or a webcam addresses the ease of setup but now I have to deal with battery life and abysmal image quality.</p><p class="">Last year, Insta360 <a href="https://blog.insta360.com/insta360-link-powerful-4k-webcam-using-ai-to-redefine-remote-work/" target="_blank">announced</a> a <em>very</em> exciting webcam that threw a ton of buzzwords at us: 4K, gimbal, AI, etc. I was definitely interested — but I’ve also been ‘burned’ by Insta360 before…</p><blockquote><p class="sqsrte-large">Memory lane with Insta360</p><p class="">I own the Insta360 ONE camera which is <em>neat</em>. A single device that lets you take a spherical photo? That’s <em>awesome</em> (and totally handy for doing house-walkthroughs). My problem was with the software - or at least the Android experience. You couldn’t really do anything meaningful with the camera without physically tethering it it. Essentially, it turns your phone into a glorified Bluetooth shutter button for the otherwise fairly awesome gear.</p><p class="">Wirelessly tethering to the camera was a mess too - think olden days of wondering if the damn thing will pair or not.</p></blockquote><p class="">So I wasn’t keen on being a guinea-pig for this camera. By sheer luck, a colleague of mine was excited enough to go for it and I let me try it out.</p>


  






  




  
    <h3 id="contenders">The contenders</h3>
  


  
  <p class="">I have a fairly decent camera line-up to test ranging from full-frame all the way down to the ubiquitous webcam of the 2000s.</p>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f88a724a-eaf6-4414-b551-c95f8bd99f81/Candidates_Squooshed.jpg" data-image-dimensions="2000x348" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f88a724a-eaf6-4414-b551-c95f8bd99f81/Candidates_Squooshed.jpg?format=1000w" width="2000" height="348" sizes="(max-width: 640px) 100vw, (max-width: 767px) 83.33333333333334vw, 83.33333333333334vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f88a724a-eaf6-4414-b551-c95f8bd99f81/Candidates_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f88a724a-eaf6-4414-b551-c95f8bd99f81/Candidates_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f88a724a-eaf6-4414-b551-c95f8bd99f81/Candidates_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f88a724a-eaf6-4414-b551-c95f8bd99f81/Candidates_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f88a724a-eaf6-4414-b551-c95f8bd99f81/Candidates_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f88a724a-eaf6-4414-b551-c95f8bd99f81/Candidates_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f88a724a-eaf6-4414-b551-c95f8bd99f81/Candidates_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">The lineup of cameras for my test</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="">For the tests to be meaningful and allow each camera to perform at its best:</p><ul data-rte-list="default"><li><p class="">Each camera is tested with the best available video settings including hand-tuned color-grading for each camera</p></li><li><p class="">The camera is mounted into the same teleprompter setup with minor positioning adjustments as needed to keep the framing as consistent as possible (to account for different focal lengths)</p></li><li><p class="">A mannequin head mounted on a tripod was used as a subject to ensure minimize/eliminate any influence subject-positioning might have</p></li><li><p class="">Where possible/feasible, I locked-off as many settings as possible (i.e., white-balance)</p></li><li><p class="">Lighting was controlled for the environment and consistent from camera to camera. For some of the cameras, I needed to move the lighting ever so slightly further away in order to keep the lights out of frame</p></li></ul>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/d752eadf-37ac-4651-be62-ca1eb022bd8b/DPN02296_Squooshed.jpg" data-image-dimensions="2500x1667" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/d752eadf-37ac-4651-be62-ca1eb022bd8b/DPN02296_Squooshed.jpg?format=1000w" width="2500" height="1667" sizes="(max-width: 640px) 100vw, (max-width: 767px) 58.333333333333336vw, 58.333333333333336vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/d752eadf-37ac-4651-be62-ca1eb022bd8b/DPN02296_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/d752eadf-37ac-4651-be62-ca1eb022bd8b/DPN02296_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/d752eadf-37ac-4651-be62-ca1eb022bd8b/DPN02296_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/d752eadf-37ac-4651-be62-ca1eb022bd8b/DPN02296_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/d752eadf-37ac-4651-be62-ca1eb022bd8b/DPN02296_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/d752eadf-37ac-4651-be62-ca1eb022bd8b/DPN02296_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/d752eadf-37ac-4651-be62-ca1eb022bd8b/DPN02296_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">The test environment</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <blockquote><p class="sqsrte-large">Note</p><p class="">One thing to note though: although I did tune each camera to try and give the best results, the ZV-E10 has a not-insignificant advantage since it’s dedicated to Skype Station and has had the most time spend fine-tuning.</p></blockquote><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="results">Results</h3>
  


  
    <h4 id="results-1">Sony A7 III</h4>
  


  
  <p class="">For full-frame cameras, I have both the A7iii and the A7R iv available; they are roughly equivalent in the headline feature: both will provide 4K with 8-bit color. I opted to actually test the A7 iii here because [a] the price point is lower, making it a more useful data point and [b] the A7 iii has an AA filter, which will give it a slight advantage on video. Will it matter? Likely not for scenarios like this.</p>


  






  




  
  <p class="sqsrte-large">Shot specifics:</p><ul data-rte-list="default"><li><p class="">The video stream is <strong>4K</strong></p></li><li><p class="">I used the <a href="https://amzn.to/3yfBuS6" target="_blank">Tamron 28-75 f/2.8</a> at 22mm</p></li><li><p class="">Aperture was locked off at f/2.8</p></li><li><p class="">Shutter speed was locked off at 1/50s</p></li><li><p class="">White balance was locked off at 5500K</p></li></ul><p class="">In practice, the A7Riv may have a usability advantage as it has <a href="https://www.youtube.com/watch?v=63HkXb3xC5U" target="_blank">realtime eye-autofocus in video</a> but for the purposes of this test, the camera was pre-focused as best as reasonably available.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f3233ca4-5ac4-4248-a72f-668172fb6966/A7iii_Squooshed.jpg" data-image-dimensions="1920x1080" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f3233ca4-5ac4-4248-a72f-668172fb6966/A7iii_Squooshed.jpg?format=1000w" width="1920" height="1080" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f3233ca4-5ac4-4248-a72f-668172fb6966/A7iii_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f3233ca4-5ac4-4248-a72f-668172fb6966/A7iii_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f3233ca4-5ac4-4248-a72f-668172fb6966/A7iii_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f3233ca4-5ac4-4248-a72f-668172fb6966/A7iii_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f3233ca4-5ac4-4248-a72f-668172fb6966/A7iii_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f3233ca4-5ac4-4248-a72f-668172fb6966/A7iii_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f3233ca4-5ac4-4248-a72f-668172fb6966/A7iii_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Sony A7 iii — I guess I could have moved that light ever so slightly more out of frame huh? ;)</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="results-2">Sony ZV-E10</h4>
  


  
  <p class="">This camera is an APS-C, vlogger-centric camera that I bought as an upgrade camera to the original Skype Station; as much as I would have wanted 10-bit, the cheapest Sony option at the time would have been the A7S iii which was prohibitively expensive to use as a webcam lol. Even now, the cheapest option would be the A7 iv which is still pushing the limits on what I would consider reasonable as a webcam. </p><p class="">I have this camera and lens permanently allocated for Skype Station - having a prime lens on here allows me to have an even lower aperture than achievable with my full-frame camera (with the lenses available to me at this time).</p>


  






  




  
  <p class="sqsrte-large">Shot specifics:</p><ul data-rte-list="default"><li><p class="">The video stream is <strong>4K</strong></p></li><li><p class="">I used the <a href="https://amzn.to/3yhzGrP" target="_blank">Sigma 30mm f/1.8</a>. Other than having a faster aperture, one nice advantage of prime-lenses is reliability: I never have to worry about whether the lens has shifted focal length ever</p></li><li><p class="">Aperture was locked off at f/1.8</p></li><li><p class="">Shutter speed was locked off at 1/50s</p></li><li><p class="">White balance was locked off at 5500K</p></li></ul><p class="">Even though this setup has a smaller sensor than the A7iii, I’m able to leverage the amazing Sigma prime to really drive the shot here. Since my full-frame glass is ‘only’ f2/.8, technically speaking, this setup has a lower aperture (f/2.1).</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/290b1b9c-1b62-4407-82be-5a0bdec15219/ZVE10+V2_Squooshed.jpg" data-image-dimensions="1920x1080" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/290b1b9c-1b62-4407-82be-5a0bdec15219/ZVE10+V2_Squooshed.jpg?format=1000w" width="1920" height="1080" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/290b1b9c-1b62-4407-82be-5a0bdec15219/ZVE10+V2_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/290b1b9c-1b62-4407-82be-5a0bdec15219/ZVE10+V2_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/290b1b9c-1b62-4407-82be-5a0bdec15219/ZVE10+V2_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/290b1b9c-1b62-4407-82be-5a0bdec15219/ZVE10+V2_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/290b1b9c-1b62-4407-82be-5a0bdec15219/ZVE10+V2_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/290b1b9c-1b62-4407-82be-5a0bdec15219/ZVE10+V2_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/290b1b9c-1b62-4407-82be-5a0bdec15219/ZVE10+V2_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Sony ZV-E10 — this is the baseline camera &amp; lens allocated for Skype Station</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="results-3">Sony RX10</h4>
  


  
  <p class="">This was the camera that started it all — the original camera I used for Skype Station. This is an <em>old</em> camera (2013!) but covers all the basics: constant f/2.8 aperture, a relatively large 1.0” sensor, eye-AF and even supports modern Sony hot-shoe accessories. After seeing the modern cameras, you can totally tell this is a substantial downgrade but if you take into account it’s age, this is stellar. This camera has a maximum video resolution of 1080, so keep that in mind.</p>


  






  




  
  <p class="sqsrte-large">Shot specifics:</p><ul data-rte-list="default"><li><p class="">The video stream is <strong>1080</strong></p></li><li><p class="">This camera has a built in lens with a constant aperture of f/2.8 I shot this at 18mm (about 48mm equivalent)</p></li><li><p class="">Aperture was locked off at f/2.8</p></li><li><p class="">Shutter speed was locked off at 1/50s</p></li><li><p class="">White balance was locked off at 5500K</p></li></ul>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/54ef5b37-003c-4984-b4ba-e4fd086e23ba/RX10_Squooshed.jpg" data-image-dimensions="1920x1080" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/54ef5b37-003c-4984-b4ba-e4fd086e23ba/RX10_Squooshed.jpg?format=1000w" width="1920" height="1080" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/54ef5b37-003c-4984-b4ba-e4fd086e23ba/RX10_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/54ef5b37-003c-4984-b4ba-e4fd086e23ba/RX10_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/54ef5b37-003c-4984-b4ba-e4fd086e23ba/RX10_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/54ef5b37-003c-4984-b4ba-e4fd086e23ba/RX10_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/54ef5b37-003c-4984-b4ba-e4fd086e23ba/RX10_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/54ef5b37-003c-4984-b4ba-e4fd086e23ba/RX10_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/54ef5b37-003c-4984-b4ba-e4fd086e23ba/RX10_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Sony RX10 - the camera that started it all</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">Initially this image looks noisier than the previous but the specific choice of using ‘bricks’ as a backdrop helps a lot and lets some of the noise be ‘explained away’. If you remember that this camera is limited to 1080, this is actually very workable quality.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="results-4">OnePlus 9 Pro</h4>
  


  
  <p class="">I got <a href="https://www.minmaxgeek.com/blog/new-phones">new phones</a> a little while back so this was a good opportunity to see just how far smartphones have come. Using a plugin called <a href="https://www.dev47apps.com/obs/" target="_blank">DroidCam</a>, we can feed a camera stream via the network into OBS. This is actually <em>really cool</em> because this is a super easy way to get into multi-cam streaming/recording. From what I can tell, the stream is limited to 1080 (coming into OBS) but the camera on the phone is capable of 4K so I suspect that through the process of super-sampling, noise is reduced substantially.</p>


  






  




  
  <p class="sqsrte-large">Shot specifics:</p><ul data-rte-list="default"><li><p class="">The video stream is <strong>super-sampled 1080</strong></p></li><li><p class="">The phone has multiple lenses, from what I can tell, this is shot using the primary lens which is 1/1.43”, 23mm (equivalent)</p></li><li><p class="">Aperture is f/1.8 (but with crop factor, this comes out to f/16.7)</p></li><li><p class="">There’s no option to lock off shutter speed</p></li><li><p class="">There is an option to lock off white-balance but there’s no numbers — just a scale that you drag, so I opted to leave this on ‘auto’</p></li></ul>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7446a632-2d3b-4d34-a16e-4a4d7e8b1834/OP9+Pro_Squooshed.jpg" data-image-dimensions="1920x1080" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7446a632-2d3b-4d34-a16e-4a4d7e8b1834/OP9+Pro_Squooshed.jpg?format=1000w" width="1920" height="1080" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7446a632-2d3b-4d34-a16e-4a4d7e8b1834/OP9+Pro_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7446a632-2d3b-4d34-a16e-4a4d7e8b1834/OP9+Pro_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7446a632-2d3b-4d34-a16e-4a4d7e8b1834/OP9+Pro_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7446a632-2d3b-4d34-a16e-4a4d7e8b1834/OP9+Pro_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7446a632-2d3b-4d34-a16e-4a4d7e8b1834/OP9+Pro_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7446a632-2d3b-4d34-a16e-4a4d7e8b1834/OP9+Pro_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/7446a632-2d3b-4d34-a16e-4a4d7e8b1834/OP9+Pro_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">OnePlus 9 Pro - crazy what we can do with smartphones</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">So right off the bat, one huge takeaway here is that smartphones are <em>awesome</em> in terms the image quality they can put out - everything is crisp and sharp and there’s virtually no noise. This comes at the cost of </p><ol data-rte-list="default"><li><p class="">Limited adjustability. Maybe this is a OnePlus limitation, maybe it’s an app limitation etc.</p></li><li><p class="">Smartphone video tends to trend towards overdoing the sharpness filters though; in this specific context, I think it’s fine however, smartphones also overdo the saturation levels: this is the most saturated result by a huge margin</p></li><li><p class="">Battery life, heat etc.,</p></li></ol><p class="">For short bursts, phones make an excellent supplemental camera if you can deal with the extra saturation. Specific to Skype Station, one thing to note is that a lot of phones have their cameras in the corners of the phone — which makes it tricky to physically place the phone behind a small teleprompter as it’s really easy to hit the sides of the teleprompter.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="results-5">Logitech C920</h4>
  


  
  <p class="">What might be the original premium webcam, this was <em>the</em> webcam to get in the early 2010s and sadly, that’s about when Logitech’s drive to innovate and push out better products went out to lunch. They launched the Brio 4K a little while back but that feels like a case of too little, too late. Now that we’ve had a taste for what is possible, the C920 is categorically <em>bad</em>. </p>


  






  




  
  <p class="sqsrte-large">Shot specifics:</p><ul data-rte-list="default"><li><p class="">The video stream is <strong>1080</strong></p></li><li><p class="">Information on specifics of this webcam are exceedingly difficult to find</p></li><li><p class="">From what I can guess, this has a 1/3” sensor and uses a 28mm equivalent focal length</p></li><li><p class="">There’s almost nothing we can set, everything is ‘auto’</p></li></ul>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f4cff640-7486-4435-a719-d39d4eee6c23/C920_Squooshed.jpg" data-image-dimensions="1920x1080" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f4cff640-7486-4435-a719-d39d4eee6c23/C920_Squooshed.jpg?format=1000w" width="1920" height="1080" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f4cff640-7486-4435-a719-d39d4eee6c23/C920_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f4cff640-7486-4435-a719-d39d4eee6c23/C920_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f4cff640-7486-4435-a719-d39d4eee6c23/C920_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f4cff640-7486-4435-a719-d39d4eee6c23/C920_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f4cff640-7486-4435-a719-d39d4eee6c23/C920_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f4cff640-7486-4435-a719-d39d4eee6c23/C920_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f4cff640-7486-4435-a719-d39d4eee6c23/C920_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Logitech C920 - hard to think, this was the best we could do at one point</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">A decade ago, this webcam was hot stuff but I don’t think it has aged well. I think Logitech got comfortable with ‘<em>well, it’s better than integrated webcam, what else are you going to do</em>’ and when COVID and <a href="https://amzn.to/3ZCDAqK" target="_blank">Elgato’s Camlink</a> carved up a whole new market segment. </p><p class="">Logitech has released a couple minor follow-up webcams recently, but I can’t imagine they’ve substantially improved <em>anything</em> - certainly not for the ~$100 they are asking.</p><ul data-rte-list="default"><li><p class="">C920</p><ul data-rte-list="default"><li><p class="">C920S: (lol) Adds a privacy cover (something you could just <a href="https://amzn.to/3Jg3ATx" target="_blank">add</a> anyways)</p></li><li><p class="">C920E: (lol) Microphone is disabled by default, also adds a privacy cover</p></li><li><p class="">C920X: (lol) Adds a 3-month license for <a href="https://www.xsplit.com" target="_blank">Xplit</a></p></li></ul></li><li><p class="">C922: Adds a nearly pointless 60fps recording — only at 720P</p><ul data-rte-list="default"><li><p class="">C922X: (lol) Adds a 3-month license for <a href="https://www.xsplit.com" target="_blank">Xplit</a></p></li><li><p class="">C922E: (lol) Microphone is disabled by default, also adds a privacy cover</p></li></ul></li><li><p class="">C930: widens the field of view to 90° (up from 78°); whether this is useful is dependent on your specific setup</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="results-6">Insta360 Link 4K</h4>
  


  
  <p class="">And finally we get to the camera I set out to test, the <a href="https://amzn.to/3EYf2AC" target="_blank">Insta360 Link</a>.  While it’s not truly unique — there is a similar, slightly cheaper <a href="https://amzn.to/41KvfmJ" target="_blank">OBSBOT Tiny PTZ 4K</a> but I would argue the Link is more compelling because of the [ever so slightly] bigger sensor and smaller footprint - the Insta360 Link is positively <em>tiny</em>, even when compared to the OBSBOT which is already quite small. Of course, what I’m here to investigate is the image quality.</p>


  






  




  
  <p class="sqsrte-large">Shot specifics:</p><ul data-rte-list="default"><li><p class="">With HDR, the stream is limited to <strong>1080</strong>. Without HDR, the stream is <strong>4K</strong></p></li><li><p class="">This camera has a built in lens of 26mm (equivalent)</p></li><li><p class="">Aperture was locked off at f/1.8 (f/9.7 equivalent)</p></li><li><p class="">There’s no control for the shutter speed</p></li><li><p class="">White balance was locked off at 5500K</p></li></ul>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="With HDR (1080)" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1678070348306-3BU8LHFHSVZDNAOYUIOW/Link4K_HDROn_Squooshed.jpg" role="button" aria-labelledby="6405524c8b8b161418962d23-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1678070348306-3BU8LHFHSVZDNAOYUIOW/Link4K_HDROn_Squooshed.jpg" data-image-dimensions="1920x1080" data-image-focal-point="0.5,0.5" alt="With HDR (1080)" data-load="false" data-image-id="6405524c8b8b161418962d23" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1678070348306-3BU8LHFHSVZDNAOYUIOW/Link4K_HDROn_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  With HDR (1080)
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Without HDR (4K)" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1678070348225-3C827WR3G2B5LI33X0G6/Link4K_HDROff_Squooshed.jpg" role="button" aria-labelledby="6405524cdabb8a5dc9ced978-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1678070348225-3C827WR3G2B5LI33X0G6/Link4K_HDROff_Squooshed.jpg" data-image-dimensions="1920x1080" data-image-focal-point="0.5,0.5" alt="Without HDR (4K)" data-load="false" data-image-id="6405524cdabb8a5dc9ced978" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1678070348225-3C827WR3G2B5LI33X0G6/Link4K_HDROff_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Without HDR (4K)
                
              
            
          

          
        

      
    
  

  











  
  <p class="">It’s a bit unfortunate that HDR comes at the cost of a resolution drop (you also lose high-framerate recording but that’s less of an issue in this application). If all I knew was the 1080-footage-with-HDR, I think I would be satisfied but now knowing how sharp it can be without HDR? In my opinion, you can claw back a bit of the colors with a bit of grading and looking at them back to back, the HDR footage starts to look bad.</p>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="sqsrte-large">One small gotcha…</p><p class="">When run through OBS, the video feed introduces a noticeable amount of lag. Oddly enough, I noticed that there was substantially more lag if the video feed was configured as H264 rather than MJPEG — and here I thought encoding tech had gone past the days when this was even something to consider. Pardon the following grainy captures — there’s only so much I can do with animated gifs ;)</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/44a00303-fddf-4b35-baa8-9452dbb08cbc/LagGIF.gif" data-image-dimensions="628x480" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/44a00303-fddf-4b35-baa8-9452dbb08cbc/LagGIF.gif?format=1000w" width="628" height="480" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/44a00303-fddf-4b35-baa8-9452dbb08cbc/LagGIF.gif?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/44a00303-fddf-4b35-baa8-9452dbb08cbc/LagGIF.gif?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/44a00303-fddf-4b35-baa8-9452dbb08cbc/LagGIF.gif?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/44a00303-fddf-4b35-baa8-9452dbb08cbc/LagGIF.gif?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/44a00303-fddf-4b35-baa8-9452dbb08cbc/LagGIF.gif?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/44a00303-fddf-4b35-baa8-9452dbb08cbc/LagGIF.gif?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/44a00303-fddf-4b35-baa8-9452dbb08cbc/LagGIF.gif?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class=""><strong>Configured as H264</strong></p><p class="">The lag here is quite noticeable and will certainly be jarring for people viewing it.</p>
          </figcaption>
        
      
        </figure>
      

    
  


  













































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6cf8e79a-c255-40a0-9c27-c7e8ef4e453f/LagGif_MJPEG.gif" data-image-dimensions="526x480" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6cf8e79a-c255-40a0-9c27-c7e8ef4e453f/LagGif_MJPEG.gif?format=1000w" width="526" height="480" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6cf8e79a-c255-40a0-9c27-c7e8ef4e453f/LagGif_MJPEG.gif?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6cf8e79a-c255-40a0-9c27-c7e8ef4e453f/LagGif_MJPEG.gif?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6cf8e79a-c255-40a0-9c27-c7e8ef4e453f/LagGif_MJPEG.gif?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6cf8e79a-c255-40a0-9c27-c7e8ef4e453f/LagGif_MJPEG.gif?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6cf8e79a-c255-40a0-9c27-c7e8ef4e453f/LagGif_MJPEG.gif?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6cf8e79a-c255-40a0-9c27-c7e8ef4e453f/LagGif_MJPEG.gif?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6cf8e79a-c255-40a0-9c27-c7e8ef4e453f/LagGif_MJPEG.gif?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class=""><strong>Configured as MJPEG</strong></p><p class="">There is still a bit of lag but it is <em>substantially</em> reduced.</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">The process of doing the stream capture and then converting to an animated gif does tend to exaggerate the motion a bit (which is helpful in this case when I’m trying to identify lag). In the real world, (where frames are not being decimated to create animations), there is virtually no lag when configured as MJPEG. A bit disappointing that this limitation cropped up given that I thought almost anything with more computational horsepower than a glass of water could handle H264 now. So for best results with the Insta360 Link, it appears we should:</p><ul data-rte-list="default"><li><p class="">Set HDR off</p></li><li><p class="">Use 4K resolution</p></li><li><p class="">Bring colors back with a quick grade</p></li><li><p class="">Configure the feed to use MJPEG</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="conclusions">Conclusions?</h3>
  


  
    
  
  <p class="">The image quality from the <a href="https://amzn.to/3YweGIE" target="_blank">Insta360 Link</a> (non-HDR) looks <span data-text-attribute-id="119d8d92-7f2c-4101-99d1-1840f88b51e8" class="sqsrte-text-highlight"><em>great</em></span>. Compared back to back with the ZV-E10, for sharpness, it definitely punches well above its weight. It’s only when you start to look for differences:</p><ul data-rte-list="default"><li><p class="">The lamp in the background is sharper (because the ZV-E10 has a much shallower depth of field)</p></li><li><p class="">Looking back and forth between the photos, you might notice bit of the mannequins face might have some noise (the sensor on the ZV-E10 is much bigger so there will be less noise)</p></li></ul><p class="">Categorically, the ZV-E10 is better — but the fact that the Link passes the quick-glance test is incredible. The Link isn’t exactly cheap ($400) but it’s in a great position where anything cheaper is substantially worse and anything meaningfully better will cost a lot more. Worth noting is the possibility of using a smartphone as a portable-camera although this depends on your specific phone (as you start looking at older and older phones, the capabilities may fall off dramatically) and you’ll need to figure a way to handle the heat and drain on the battery.</p><p class="">I initially set out to see about finding a camera option for a more portable Skype station — and the Insta360 looks like the camera that fulfills that niche.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1678072946846-LHMGUOQK7TL41BHDE9MQ/Blog+Covers_Squooshed.jpg?format=1500w" medium="image" isDefault="true" width="1500" height="1000"><media:title type="plain">Interim Skype Station Update</media:title></media:content></item><item><title>New work laptop…</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Fri, 03 Mar 2023 13:00:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/new-work-laptop-2023</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:63ff5caa9f640902c843ba1f</guid><description><![CDATA[My work laptop was up for a refresh, and not soon enough — my previous 
laptop no longer wanted to communicate with the battery. For work, we 
typically use these laptops as if they were desktops — outside of meetings, 
they are docked to power, external monitors, keyboards, mice, network etc. 
so I’m going to look at this machine as if it was a desktop.

This laptop is also my first encounter with Windows 11, so that should be 
fun.]]></description><content:encoded><![CDATA[<p class="">Our work laptops were up for a refresh - and not a moment too soon: my previous laptop has some serious issues with the communication with the battery (a, uh, somewhat important component of a mobile-focused device). This laptop also is my first actual interaction with Windows 11, so that’s gonna be <em>fun</em> given the bad press I’ve heard about it. </p><p class="">This post is after about a week of transitioning to the new laptop and I wanted to capture the initial thoughts and document some of the fixes I had to apply to make it less stupid.</p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#new-machine">New machine</a></p></li><li><p class=""><a href="#performance">Actual performance observations</a></p><ul data-rte-list="default"><li><p class=""><a href="#performance-1">SSD Performance</a></p></li><li><p class=""><a href="#performance-2">High resolution performance</a></p></li><li><p class=""><a href="#performance-2">Network </a><a href="#performance-3">performance</a></p></li></ul></li><li><p class=""><a href="#other-fixes">Other fixes</a></p><ul data-rte-list="default"><li><p class=""><a href="#fix-1">Additional drives to organize your files</a></p></li><li><p class=""><a href="#fix-2">Sticky mouse edges in Windows 11</a></p></li><li><p class=""><a href="#fix-3">Changing wallpaper/lockscreen</a></p></li><li><p class=""><a href="#fix-4">‘Improving’ the resolution</a></p></li></ul></li><li><p class=""><a href="#early-thoughts">Early thoughts on this laptop</a></p></li></ul>


  






  



<hr />
  
    <h3 id="new-machine">New machine</h3>
  


  
  <p class="">So I got a new work laptop recently and sadly, it’s mostly sad news: there are some neat things about it but on the whole, it’s almost certainly downgrade for two user groups:</p><ul data-rte-list="default"><li><p class="">Those looking for high-performance (even high-performance by laptop standards) and</p></li><li><p class="">Anyone who uses this laptop-as-a-desktop. You know: almost perma-docked, hooked up to monitors, external keyboard, mouse etc. — so ‘most people’</p></li></ul>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="sqsrte-large">The Good</p><p class="">Since this is mostly bad news, let’s get the positives out of the way:</p><ul data-rte-list="default"><li><p class="">The new laptop is thinner, lighter, sleeker, feels nicer to the touch</p></li><li><p class="">They added another USB-C port!</p></li><li><p class="">Reduced the [required] charging brick down to 65W. This is great because it has a trickle-down benefit of allowing a much wider variety of chargers to power the laptop</p></li><li><p class="">The laptop keyboard <em>didn’t get any worse</em> (not a very high bar I know, but I’ll take it)</p></li><li><p class="">Out of the box it supported my weird work monitor setup that was based around adding two <a href="https://www.evga.com/Products/Specs/GPU.aspx?pn=274951db-fc9d-4141-b309-ea25fe9e1740" target="_blank">eVGA UVPlus+ </a>adapters</p></li><li><p class="">Some meaningful performance gains!</p></li><li><p class="">Unique to me: the old laptop battery cells would constantly fail. When the battery failed, you would know really fast because, not only would it fail to charge, the processor would be locked at 800MHz until the battery was removed/replaced.</p></li></ul><p class="sqsrte-large">The Bad</p><ul data-rte-list="default"><li><p class="">Windows 11. Full stop. More on this in a bit.</p></li></ul><ul data-rte-list="default"><li><p class="">The force-power-down time has been <em>increased</em> from 12-seconds to 14-seconds (!!). I can’t fathom why they would need to do this, perhaps, their customer base was accidentally holding the power button down for 12-seconds at a time and unintentionally powering down their laptops?</p></li><li><p class="">They removed the ubiquitous Dell DC barrel port (likely in an effort to keep the laptop thin). This is super unfortunate because those power bricks were much more reliable and (perhaps unique to me), I have a bunch of those handy. There <em>is</em> an <a href="https://www.dell.com/en-ca/shop/dell-adapter-74mm-barrel-to-usb-c-65-watt-maximum-output/apd/470-acfh/pc-accessories" target="_blank">official adapter</a> that I might pick up to continue using my tried and true power bricks</p></li><li><p class="">Went from a quad-core processor to a ‘dual core’ processor and all the mess that comes with that</p></li></ul><blockquote><p class=""><strong>Seriously? Dual-core?</strong></p><p class="sqsrte-small">Thankfully not, I’m just being playful about it and poking a bit of fun at how Intel uses P-cores (performance) and E-cores (efficiency) in their processor architecture. The high-performance purist in me only really counts P-cores — especially when I’m using the laptop primarily as a faux-desktop configuration anyways.</p><p class="sqsrte-small">For reference, the old laptop had an <a href="https://ark.intel.com/content/www/us/en/ark/products/193563/intel-core-i78665u-processor-8m-cache-up-to-4-80-ghz.html" target="_blank">i7-8665U</a> and the replacement now has an <a href="https://www.intel.ca/content/www/ca/en/products/sku/226258/intel-core-i71265u-processor-12m-cache-up-to-4-80-ghz/specifications.html" target="_blank">i7-1265U</a>. High performance jokes aside, the new processor <em>is faster</em> but my problem with both the old and new processors is the abysmal 15W TDP rating. </p><p class="sqsrte-small">In other words: it’s a laptop processor, so it’s <em>always</em> going to be terrible. Since I use it like a desktop, I’m going to compare to to a desktop.</p></blockquote><ul data-rte-list="default"><li><p class="">Hopefully unique to me: in an ironic twist, within a week, the primary Thunderbolt/USB-C port partially failed. It still accepts power, but the data connectivity no longer works (or at least, works intermittently). Thankfully, this laptop has two such ports. I don’t blame Dell for this per-se, <strong>this is just Thunderbolt being dumb</strong>.</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="performance">Actual performance observations</h3>
  


  
    <h4 id="performance-1">SSD performance</h4>
  


  
  <p class="">The old laptop shipped with a <a href="https://semiconductor.samsung.com/ssd/pc-ssd/pm991-pm991a/mzvlq512hblu-00-00-07/" target="_blank">512GB Samsung PM991 NVME</a> drive. On paper, this is fairly performant — it should be about on par with the more recognizable Samsung 960 EVO. The real world performance is eye opening. It’s not perfect, but just as an approximation, we can look at <a href="https://crystalmark.info/en/software/crystaldiskmark/" target="_blank"><strong>CrystalDiskMark</strong></a><strong> </strong>to benchmark the drives.</p>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/be00afc1-cc39-463d-95b8-c5f6e21ccfb4/OldLaptop_Squooshed.jpg" data-image-dimensions="1500x400" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/be00afc1-cc39-463d-95b8-c5f6e21ccfb4/OldLaptop_Squooshed.jpg?format=1000w" width="1500" height="400" sizes="(max-width: 640px) 100vw, (max-width: 767px) 66.66666666666666vw, 66.66666666666666vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/be00afc1-cc39-463d-95b8-c5f6e21ccfb4/OldLaptop_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/be00afc1-cc39-463d-95b8-c5f6e21ccfb4/OldLaptop_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/be00afc1-cc39-463d-95b8-c5f6e21ccfb4/OldLaptop_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/be00afc1-cc39-463d-95b8-c5f6e21ccfb4/OldLaptop_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/be00afc1-cc39-463d-95b8-c5f6e21ccfb4/OldLaptop_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/be00afc1-cc39-463d-95b8-c5f6e21ccfb4/OldLaptop_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/be00afc1-cc39-463d-95b8-c5f6e21ccfb4/OldLaptop_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">NVME performance on old laptop</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="">I don’t think it’s fair to think the drives will benchmark at their theoretical numbers but the relative performance here is <em>atrocious</em>. I don’t know how much blame to associate with a bottlenecked processor versus ‘enterprise bloatware’. </p><p class="">But there are some performance <em>improvements! </em>The new laptop comes with a <a href="https://product.skhynix.com/products/ssd/cssd/pc801_bc901.go" target="_blank">1TB SK Hynix PC801 NVME</a> drive and on paper, this is a total monster of a drive.</p>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f6e65813-a7d6-403e-b8c8-c4bd8e3e17d9/NewDrive_Squooshed.jpg" data-image-dimensions="1500x374" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f6e65813-a7d6-403e-b8c8-c4bd8e3e17d9/NewDrive_Squooshed.jpg?format=1000w" width="1500" height="374" sizes="(max-width: 640px) 100vw, (max-width: 767px) 66.66666666666666vw, 66.66666666666666vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f6e65813-a7d6-403e-b8c8-c4bd8e3e17d9/NewDrive_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f6e65813-a7d6-403e-b8c8-c4bd8e3e17d9/NewDrive_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f6e65813-a7d6-403e-b8c8-c4bd8e3e17d9/NewDrive_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f6e65813-a7d6-403e-b8c8-c4bd8e3e17d9/NewDrive_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f6e65813-a7d6-403e-b8c8-c4bd8e3e17d9/NewDrive_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f6e65813-a7d6-403e-b8c8-c4bd8e3e17d9/NewDrive_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/f6e65813-a7d6-403e-b8c8-c4bd8e3e17d9/NewDrive_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">NVME performance on new laptop</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="">Compared to the theoretical ceiling, the improvement in write-throughput here is monumental, but IOPs still seem to  be held back. If we compare the performance from old-laptop to new-laptop, the difference is eye opening:</p>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/850f7d88-ae3e-42f4-a388-2cf3a5eb0399/OldToNew_Squooshed.jpg" data-image-dimensions="1500x379" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/850f7d88-ae3e-42f4-a388-2cf3a5eb0399/OldToNew_Squooshed.jpg?format=1000w" width="1500" height="379" sizes="(max-width: 640px) 100vw, (max-width: 767px) 66.66666666666666vw, 66.66666666666666vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/850f7d88-ae3e-42f4-a388-2cf3a5eb0399/OldToNew_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/850f7d88-ae3e-42f4-a388-2cf3a5eb0399/OldToNew_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/850f7d88-ae3e-42f4-a388-2cf3a5eb0399/OldToNew_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/850f7d88-ae3e-42f4-a388-2cf3a5eb0399/OldToNew_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/850f7d88-ae3e-42f4-a388-2cf3a5eb0399/OldToNew_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/850f7d88-ae3e-42f4-a388-2cf3a5eb0399/OldToNew_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/850f7d88-ae3e-42f4-a388-2cf3a5eb0399/OldToNew_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Performance change from old- to new-laptop</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="">To shed some light, let’s compare against an actual desktop PC (happens to be running <a href="https://www.westerndigital.com/en-ca/products/internal-drives/wd-black-sn850-nvme-ssd#WDS100T1XHE" target="_blank">WD SN850</a>)</p>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8bfecafa-86a8-43f5-b231-1fb8332dea98/Desktop_Squooshed.jpg" data-image-dimensions="1500x376" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8bfecafa-86a8-43f5-b231-1fb8332dea98/Desktop_Squooshed.jpg?format=1000w" width="1500" height="376" sizes="(max-width: 640px) 100vw, (max-width: 767px) 83.33333333333334vw, 83.33333333333334vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8bfecafa-86a8-43f5-b231-1fb8332dea98/Desktop_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8bfecafa-86a8-43f5-b231-1fb8332dea98/Desktop_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8bfecafa-86a8-43f5-b231-1fb8332dea98/Desktop_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8bfecafa-86a8-43f5-b231-1fb8332dea98/Desktop_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8bfecafa-86a8-43f5-b231-1fb8332dea98/Desktop_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8bfecafa-86a8-43f5-b231-1fb8332dea98/Desktop_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8bfecafa-86a8-43f5-b231-1fb8332dea98/Desktop_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">NVME performance on a desktop PC</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="">I did run the numbers multiple times on all the machines to verify that there is at least some sense of consistency. Knowing that both laptops have a similar amount of enterprise bloat, the improvement from old- to new-laptop comes from a combination of the new drive being inherently faster but even more so, what must be reduced bottle-necking of the PCIE controller (in the processor). </p><p class="">That being said, even a newer processor architecture leaves a ton of IOPs performance on the table. When we compare to a full-fat desktop setup — which doesn’t have nearly as fast of an NVME drive, we can see that the full desktop environment has enough horsepower to fill out the numbers!</p><blockquote><p class="sqsrte-large">Take away re: slow drive performance:</p><p class="">Your solid state drive is slow because your processor is weak.</p></blockquote><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="performance-2">High-resolution performance</h4>
  


  
  <p class="">I imagine this won’t apply to most people, but there are definitely some scenarios where connecting a virtual monitor can introduce quite a bit of lag. Definitely made me step back and try to think of the last time I ever saw this happen — other than on the previous 15W laptop.</p>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4fb2c9a9-23ed-4f63-99ca-31a8ef38410e/2996e518-c7c7-4335-9b7a-9719abadbca9.gif" data-image-dimensions="1084x849" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4fb2c9a9-23ed-4f63-99ca-31a8ef38410e/2996e518-c7c7-4335-9b7a-9719abadbca9.gif?format=1000w" width="1084" height="849" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4fb2c9a9-23ed-4f63-99ca-31a8ef38410e/2996e518-c7c7-4335-9b7a-9719abadbca9.gif?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4fb2c9a9-23ed-4f63-99ca-31a8ef38410e/2996e518-c7c7-4335-9b7a-9719abadbca9.gif?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4fb2c9a9-23ed-4f63-99ca-31a8ef38410e/2996e518-c7c7-4335-9b7a-9719abadbca9.gif?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4fb2c9a9-23ed-4f63-99ca-31a8ef38410e/2996e518-c7c7-4335-9b7a-9719abadbca9.gif?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4fb2c9a9-23ed-4f63-99ca-31a8ef38410e/2996e518-c7c7-4335-9b7a-9719abadbca9.gif?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4fb2c9a9-23ed-4f63-99ca-31a8ef38410e/2996e518-c7c7-4335-9b7a-9719abadbca9.gif?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4fb2c9a9-23ed-4f63-99ca-31a8ef38410e/2996e518-c7c7-4335-9b7a-9719abadbca9.gif?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">“Super [not] responsive”</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="performance-3">Network performance</h4>
  


  
  <p class="">Moving a bunch of data across a network takes computational horsepower (Captain Obvious strikes again) but just how much is needed isn’t that obvious. On my network, I can test somewhere in the 7500/6000 Mbit/s with the hardware I have on hand. Using <a href="https://openspeedtest.com?ref=logo" target="_blank">OpenSpeedTest</a> isn’t perfect, but certainly gives me some general performance pictures.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0f1c13ba-4df7-4380-a38a-37c4d1657d5d/OpenSpeed_squooshed.jpg" data-image-dimensions="1500x843" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0f1c13ba-4df7-4380-a38a-37c4d1657d5d/OpenSpeed_squooshed.jpg?format=1000w" width="1500" height="843" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0f1c13ba-4df7-4380-a38a-37c4d1657d5d/OpenSpeed_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0f1c13ba-4df7-4380-a38a-37c4d1657d5d/OpenSpeed_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0f1c13ba-4df7-4380-a38a-37c4d1657d5d/OpenSpeed_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0f1c13ba-4df7-4380-a38a-37c4d1657d5d/OpenSpeed_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0f1c13ba-4df7-4380-a38a-37c4d1657d5d/OpenSpeed_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0f1c13ba-4df7-4380-a38a-37c4d1657d5d/OpenSpeed_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0f1c13ba-4df7-4380-a38a-37c4d1657d5d/OpenSpeed_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Results running on R9 3950X, 10G. Give or take 500 Mbit/s this is what I generally accept as the performance ceiling on my network</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">One thing I wanted to check was if the new laptop would choke out with network traffic.  Using a basic <a href="https://amzn.to/3SHK6dO" target="_blank">USB 2.5GbE dongle</a>, I did some tests on a freshly rebooted machine at the desktop.</p>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/801bc6bb-56d4-4f34-ae6e-e68382ffe860/NICPerf_squooshed.jpg" data-image-dimensions="1500x248" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/801bc6bb-56d4-4f34-ae6e-e68382ffe860/NICPerf_squooshed.jpg?format=1000w" width="1500" height="248" sizes="(max-width: 640px) 100vw, (max-width: 767px) 66.66666666666666vw, 66.66666666666666vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/801bc6bb-56d4-4f34-ae6e-e68382ffe860/NICPerf_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/801bc6bb-56d4-4f34-ae6e-e68382ffe860/NICPerf_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/801bc6bb-56d4-4f34-ae6e-e68382ffe860/NICPerf_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/801bc6bb-56d4-4f34-ae6e-e68382ffe860/NICPerf_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/801bc6bb-56d4-4f34-ae6e-e68382ffe860/NICPerf_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/801bc6bb-56d4-4f34-ae6e-e68382ffe860/NICPerf_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/801bc6bb-56d4-4f34-ae6e-e68382ffe860/NICPerf_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Network performance vs CPU load</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="">The synergy between the network performance and processor load is definitely interesting: remember this test is done on a fresh reboot, with nothing running, at the desktop. And with those ideal conditions, we are still seeing CPU saturation -- imagine actually using the computer!</p><p class="">As we scale to newer and/or more powerful machines, we can see the required CPU load go way down -- leaving room for you to actually use the computer while downloads are happening</p><blockquote><p class="sqsrte-large">Take away re: slow network performance</p><p class="">Your network is slow because the processor is weak.</p></blockquote><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="win11">Windows 11</h3>
  


  
  <p class="">For the first five minutes of using the laptop, I thought Windows 11 was fine — <em>great</em> even. You get a refreshed aesthetic and some nicer touches on things etc. and my overall opinion of it remains about the same: it’s great if you’re only ‘stopping by to use it quickly’. As soon as you sit down to actually do anything? It’s a trainwreck. For me, almost all of my issues revolve around changes to Explorer and the Start Menu.</p>


  






  
























  
  





<ul data-should-allow-multiple-open-items="true" data-accordion-icon-placement="left" data-is-last-divider-visible="" data-is-expanded-first-item="" data-is-divider-enabled="true" data-accordion-title-alignment="left" class="accordion-items-container" data-is-first-divider-visible="" data-accordion-description-alignment="left" data-accordion-description-placement="left"
>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            No Drag and Drop
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">This one is a doozy. As of 21H2, drag and drop functionality just does not work the way you would think it should. You can’t drag a file into an open Notepad instance, you can’t drag a file onto a Notepad icon, you can’t drag a file into Notepad on the start bar.</p><p class="">You <em>can</em> however, do a bunch of bs to indirectly get drag and drop to work (like drag ⟶ alt+tab,⟶ drop) which I’m never <em>ever</em> going to do.</p><p class="">To directly and specifically fix this issue, navigate to <strong>HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell\Update\Packages</strong> and add a new DWORD32 <strong>UndockingDisabled</strong> and set it to <strong>1</strong>.</p><p class="">Restart the explorer process and you can drag and drop again! Except there’s a catch…</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Start Button doesn't work
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">Once you’ve fixed drag and drop you’ll notice the start button no longer functions (clicking on it, ctrl+esc, windows key - nothin).</p><p class="">It took me awhile to notice this because I primarily use Win+R to interact with things and <strong>shutdown -f -r -t 0</strong> is less frustrating than clicking restart, walking away and coming back to a dialog saying “are you sure you want to restart, but these apps are still open yo”</p><p class="">Funny enough, if you undo the drag &amp; drop registry setting hack, it will restore the start menu functionality until the next reboot. So: apply the registry fix, restart explorer, undo the registry fix.</p><p class="">If you’re lazy you can probably automated this into a startup batch file. I just kept a pair of exported registry keys on my desktop.</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Taskbar is just plain dumb
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">This is really an extension of the above two related issues. In its ‘broken state’ you can’t do anything useful with the taskbar — you’re stuck with “combine always”, never having labels, not being able to resize it or move it. You <em>can</em>, however, change the size of the icons in the taskbar (whoopie!). There’s got to be a better way to fix this.</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Show all notification icons
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">I’ve always wanted to see all the notification icons — without having to click on a stupid thing to expand it. In Windows 10 this was readily accessible via a  ‘always show all icons and notifications in the taskbar’ setting. Of course this option is now gone.</p><p class="">If you run the following shortcut, it restores the Windows 10 option dialog allowing you to set it.</p><p class="">C:\Windows\explorer.exe shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}</p>
        
      

      
        
      

    </li>
  
</ul>
&nbsp;<hr />&nbsp;
  
  <p class="sqsrte-large">Please, fix it all</p><p class="">There are more annoyances (like the <a href="https://www.tomshardware.com/how-to/windows-11-classic-context-menus" target="_blank">context menu</a> or the <a href="https://windowsreport.com/windows-11-file-explorer-ribbon/" target="_blank">Explorer ribbon menu</a>) but at least for me, those pale in comparison. Thankfully, there is an easy fix that knocks out most of the issues</p><ol data-rte-list="default"><li><p class="">Grab <a href="https://github.com/valinet/ExplorerPatcher/releases" target="_blank">Explorer Patcher</a> which is also free. Run this, it’ll blank our your desktop for a moment and then you’re done, now your start bar behaves ‘correctly’</p></li><li><p class="">Grab <a href="https://winaero.com/download-winaero-tweaker/" target="_blank">WinAero Tweaker</a>, which thankfully, is freeware</p></li></ol><p class="">Within WinAero Tweaker, have a look through the settings and adjust your system to be less dumb</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="other-fixes">Other fixes</h3>
  


  
    <h4 id="fix-1">Additional drives to organize your files</h4>
  


  
    
  
  <p class="">I like to keep my files organized into separate partitions/drives. The work laptop comes with Bitlocker enabled so there’s a bit of a dance that needs to be done:</p><ol data-rte-list="default"><li><p class=""><strong>Suspend Bitlocker</strong></p><ul data-rte-list="default"><li><p class="">Open the BitLocker settings window: Win+R, <span data-text-attribute-id="370dbd22-4dae-4ef5-84e4-c7d71d6cd280" class="sqsrte-text-highlight"><strong>explorer.exe shell:::{D9EF8727-CAC2-4e60-809E-86F80A666C91}</strong></span></p></li><li><p class="">Locate the drive you want to suspend BitLocker for and click <strong>Suspend protection</strong></p></li></ul></li><li><p class=""><strong>Do your partition shuffling</strong></p><ul data-rte-list="default"><li><p class="">Open the disk management snap-in: Win+R, <span data-text-attribute-id="f321e716-d578-4ea6-bb1f-b1107f15ada9" class="sqsrte-text-highlight"><strong>diskmgmt.msc</strong></span></p></li><li><p class="">To make room for new partitions, first I shrink C</p></li><li><p class="">Then create new partitions, don’t format during the partition creation wizard</p></li><li><p class="">If a BitLocker popup is shown, go ahead and encrypt the drive. If no such popup is shown, switch to the Bitlocker settings window, locate your drive and encrypt it</p></li><li><p class="">Once all the new partitions are encrypted, go ahead and resume Bitlocker protection on C. Format any outstanding partitions if needed and configure the drive letters as desired</p></li></ul></li><li><p class=""><strong>Done</strong>, now you have a bit better file organization</p></li></ol><p class="">If you don’t feel comfortable (or can’t) do the partition and Bitlocker dance, there is a fallback method to do this. To do a cheater way of doing this, navigate to your root drive and create some folders to organize you data. For example:</p><ul data-rte-list="default"><li><p class="">C:\MyFiles</p><ul data-rte-list="default"><li><p class="">C:\MyFiles\Logs</p></li><li><p class="">C:\MyFiles\Archive</p></li><li><p class="">C:\MyFiles\Repository</p></li></ul></li></ul><p class="">Now from Explorer, utilize the <a href="https://support.microsoft.com/en-gb/windows/map-a-network-drive-in-windows-29ce55d1-34e3-a7e2-4801-131475f9557d#ID0EBD=Windows_11" target="_blank">Map a Network Drive</a> functionality and map your folder using the pattern <span data-text-attribute-id="b8366939-f58b-461d-9f99-9d05d7a2c4b3" class="sqsrte-text-highlight"><strong>localhost\C$\MyFiles\Logs</strong></span> to your desired drive letter. For most scenarios, this will behave the way you’d expect with a negligible penalty.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="fix-2">Sticky mouse edges in Windows 11</h4>
  


  
  <p class="">This was definitely an odd one: in Windows 10 introduced the idea of "sticky edges" for multi-monitor setups. In theory, it's supposed to make dragging windows between multiple monitors a bit easier but some people (i.e., me) don't like it -- I use hotkeys to bounce applications between monitors. You'll know sticky edges is at work when your mouse cursor gets to the edge of a monitor, and if you move the mouse cursor slowly, it will be 'stuck' in that monitor. In order to get the cursor to the next monitor, you'll need to move the mouse cursor faster -- to 'jump over the edge' so to speak.</p><p class="">In Windows 11, settings for this have effectively disappeared (and/or the functionality officially seemed to be removed) but I was still encountering a sticky mouse situation. Comically, the root cause was actually the UX for handling multiple monitors. In Windows 10, when you rearrange multiple monitors around, they snap up next to each other. In Windows 11, this doesn't appear to be the case and you have to be extra careful to make sure the monitors are really butting up against each other. This problem seems to be magnified with monitors arranged up-down rather than left-right. </p><p class="">Consider the these two scenarios, specifically looking at monitors 1, 2, 6 and 5. In both scenarios below, there is no issue moving the cursor left-right between screens but definitely vertically.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Not working as desired" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;In this configuration, the mouse gets ‘stuck’ transitioning between 1⇔6 and 2⇔5.  If you look at the gap between 1⇔6 you’ll agree that it’s the same/smaller than, say, the gap between 4⇔6. The gap between 2⇔5 is &lt;em&gt;definitely&lt;/em&gt; smaller.&lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;But according to Windows 11, there is a substantial gap here causing the mouse to get ‘stuck’.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1677854644693-BFOCA9D2JGFNZICIEKFN/NotWorking.jpg" role="button" aria-labelledby="640207b417a1f3767e879e95-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1677854644693-BFOCA9D2JGFNZICIEKFN/NotWorking.jpg" data-image-dimensions="1051x424" data-image-focal-point="0.2857142857142857,0.4940671759136653" alt="Not working as desired" data-load="false" data-image-id="640207b417a1f3767e879e95" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1677854644693-BFOCA9D2JGFNZICIEKFN/NotWorking.jpg?format=1000w" /><br>
                </a>
                
                  Not working as desired
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Now, working as desired" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;If we literally scatter the monitors and intentionally drag them back into place, now there is no issue moving the cursor between 1⇔6 nor, 2⇔5.&lt;/p&gt;&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Note the &lt;em&gt;massive &lt;/em&gt;gap between 6⇔5 but there’s no sticky-effect with the cursor as it seems to only affect vertical transitions (either that, or it’s much more intolerant).&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1677854644674-OYKAL3URM3VQEJSZTG4D/Working.jpg" role="button" aria-labelledby="640207b40fab811bc3f270ed-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1677854644674-OYKAL3URM3VQEJSZTG4D/Working.jpg" data-image-dimensions="1032x421" data-image-focal-point="0.17687074829931973,0.30805562337239584" alt="Now, working as desired" data-load="false" data-image-id="640207b40fab811bc3f270ed" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1677854644674-OYKAL3URM3VQEJSZTG4D/Working.jpg?format=1000w" /><br>
                </a>
                
                  Now, working as desired
                
              
            
          

          
        

      
    
  

  




  








  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="fix-3">Changing wallpaper/lockscreen</h4>
  


  
    
  
  <p class="">For these laptops, the wallpaper and lockscreen are intrinsically linked and will display the same picture. To change your wallpaper:</p><ol data-rte-list="default"><li><p class=""><span data-text-attribute-id="a4d01bbd-b748-429d-9123-4f84ad2d6089" class="sqsrte-text-highlight">C:\Windows\Web\Wallpaper\Windows</span></p></li><li><p class="">Replace <strong>img1.jpg</strong> with whatever image you would like to use. You can either delete/overwrite the original file or rename it so you have a copy to roll back to</p></li></ol><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="fix-4">'Improving' the resolution</h4>
  


  
  <p class="">The laptop screen is 1920x1080 which we can sanity check by visiting something like <a href="https://screenresolutiontest.com" target="_blank">screenresolutiontest</a>. There are two ways to ‘force’ a higher resolution but they come limitations.</p>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5e800975-dc9d-41f3-b21a-9678e7a48e18/Orig_1080_squooshed.jpg" data-image-dimensions="1344x484" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5e800975-dc9d-41f3-b21a-9678e7a48e18/Orig_1080_squooshed.jpg?format=1000w" width="1344" height="484" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5e800975-dc9d-41f3-b21a-9678e7a48e18/Orig_1080_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5e800975-dc9d-41f3-b21a-9678e7a48e18/Orig_1080_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5e800975-dc9d-41f3-b21a-9678e7a48e18/Orig_1080_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5e800975-dc9d-41f3-b21a-9678e7a48e18/Orig_1080_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5e800975-dc9d-41f3-b21a-9678e7a48e18/Orig_1080_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5e800975-dc9d-41f3-b21a-9678e7a48e18/Orig_1080_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5e800975-dc9d-41f3-b21a-9678e7a48e18/Orig_1080_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">This laptop has a built resolution of 1920x1080…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="sqsrte-large">Method 1</p><ul data-rte-list="default"><li><p class="">Open the laptop (so the screen activates)</p></li><li><p class="">Connect a higher resolution display to the laptop </p></li><li><p class="">Select the option to ‘Duplicate these displays’</p></li></ul><p class="">Now, you’ll notice that your laptop’s built in screen is displaying the higher resolution and if you scroll down you can even verify that it isn’t ‘cheating’ by using a 25% scaling factor. Simply leave the monitor physically connected and switch the input on the monitor to something else. The downside here is that you don’t have the benefit of multiple physical displays but your laptop will behave as if it was 4K natively. Not sure if this will work on all laptops, but it certainly does on this work one.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Method 1" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Using a physical display to force the resolution on the built-in display and then using (only) the built-in display&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1682522124069-A5Z6QHR42K7TA8HIFWRL/External+Display.jpg" role="button" aria-labelledby="6449400b3f512d77c4fcf006-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1682522124069-A5Z6QHR42K7TA8HIFWRL/External+Display.jpg" data-image-dimensions="1195x1058" data-image-focal-point="0.40476190476190477,0.35448702298677887" alt="Method 1" data-load="false" data-image-id="6449400b3f512d77c4fcf006" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1682522124069-A5Z6QHR42K7TA8HIFWRL/External+Display.jpg?format=1000w" /><br>
                </a>
                
                  Method 1
                
              
            
          

          
        

      
    
  

  











  
  <p class="sqsrte-large">Method 2:</p><p class="">You’ll need to have a VNC (or maybe remote desktop) setup configured. I made a more in-depth write-up <a href="https://www.minmaxgeek.com/blog/work-laptops#how-does-this-work" target="_blank">here</a> using my previous laptop</p><ul data-rte-list="default"><li><p class="">Buy a <a href="https://amzn.to/442vnzc" target="_blank">virtual display dongle</a> and plug it in</p></li><li><p class="">Select the option to ‘Show only on 2’</p></li><li><p class="">Now you can close the laptop lid if you want</p></li></ul><p class="">Now, when you remote into this machine, you’ll have access to the higher resolution. Again, you’ll have some limitations based on the number of dongles you can plug in etc.</p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Method 2" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Using a virtual dongle to set the resolution and then remoting into the machine&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1682522244596-XGCIYQP0YM38LQG5ELLT/Virtual_squooshed.jpg" role="button" aria-labelledby="64494084de9d593a221a7e31-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1682522244596-XGCIYQP0YM38LQG5ELLT/Virtual_squooshed.jpg" data-image-dimensions="1173x996" data-image-focal-point="0.445578231292517,0.28333349609375" alt="Method 2" data-load="false" data-image-id="64494084de9d593a221a7e31" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1682522244596-XGCIYQP0YM38LQG5ELLT/Virtual_squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Method 2
                
              
            
          

          
        

      
    
  

  











  
  <p class=""><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="early-thoughts">Early thoughts on this laptop</h3>
  


  
  <p class="">Out of the box, the new laptop is a mixed bag: the device itself is definitely superior (even with the ‘dual-core’, low-TDP processor) than the predecessor. The underwhelming processor hamstrings what would otherwise be a stellar NVME, but even with that handicap, it’s still <strong>very good</strong>. </p><blockquote><p class="sqsrte-large">Low-performance perspective</p><p class="">For a long time, I’ve thought that maybe I was being a bit <em>too </em>harsh on mobile processors for simply existing, but getting a this new machine was a great opportunity to get some cold hard numbers. Seeing the processor redline at 100% with downloads and seeing the write-performance get absolutely tanked; so much of what we do with these machines boils down to ‘internet with the network’ and ‘write some stuff on the local machine’, this provides an explanation of why the machine feels sluggish.</p></blockquote><p class="">Hardware limitations aside though, Windows 11 as it renders the entire machine dead on arrival - or at least until the annoyances are mitigated. I try not to hate on things because they are new and different and objectively, there <em>are</em> a lot of neat UX improvements with Windows 11, but it just came at the expense of dumbing down the user experience when you actually sit down and try and use it. I’ve heard that a future update has fixed some of the annoyances, but that’s not currently available to us so, I’ll have to revisit that in the future.</p><blockquote><p class="sqsrte-large">Is the old laptop <em>that</em> bad?</p><p class="">Truthfully, I don’t think so — I think a large part of the perceived (and measurable) pain with the old laptop lies in what I’ll call ‘enterprise bloatware’ — software, settings and policies that [rightfully] should be on a work machine. If there’s an opportunity to sterilize the machine from scratch, the performance would be substantially improved (the issue of what appears to be a faulty battery connection notwithstanding).</p></blockquote><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1677860074079-C7R4FYHWTTXRWRUY4C7F/Blog+Covers_squooshed.jpg?format=1500w" medium="image" isDefault="true" width="1500" height="1000"><media:title type="plain">New work laptop…</media:title></media:content></item><item><title>Security Audit (2023.1)</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Fri, 06 Jan 2023 07:05:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/security-audit</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:63b5d5dbe19d3600e6fa934b</guid><description><![CDATA[Over the year-end break, I moved my password manager away from LastPass. I 
didn’t move for security reasons but more so for usability issues and the 
security issues were purely an unfortunate coincidence. I used this 
transition as an opportunity to do a full audit of the credentials and I 
stumbled across some fun (read: annoying) discoveries.]]></description><content:encoded><![CDATA[<p class="">Over the year-end break, I moved my password manager away from LastPass. I didn’t move for <a href="https://blog.lastpass.com/2022/12/notice-of-recent-security-incident/" target="_blank">security reasons</a>&nbsp;but more so for usability issues and the security issues were purely an unfortunate coincidence. I used this transition as an opportunity to do a full audit of the credentials and I stumbled across some <em>fun</em> (read: annoying) discoveries.</p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#start">Why was I with LastPass originally? Why change?</a></p></li><li><p class=""><a href="#thoughts">Thoughts on the credential audit</a></p><ul data-rte-list="default"><li><p class=""><a href="#thoughts-a">Stealth wiping</a></p></li><li><p class=""><a href="#thoughts-b">Messy wipes</a></p></li><li><p class=""><a href="#thoughts-c">Automatic lockdown</a></p></li><li><p class=""><a href="#thoughts-d">Have I been pwnd?</a></p></li></ul></li><li><p class=""><a href="#2fa">Revisiting 2FA with Authy</a></p></li></ul>


  






  



<hr />
  
    <h3 id="start">Why was I with LastPass originally? Why change?</h3>
  


  
  <p class="">When I originally transitioned to using a password manager forever ago, I chose LastPass for the same reasons ‘everyone else’ did  — it was the popular option that was well marketed. It was approachable, did well in terms of usability and value-add. Over the years, the security issues haven’t bothered me nearly as much as the usability quirks. </p><p class="">A few things really got to me over the years:</p>


  






  




  
  <ol data-rte-list="default"><li><p class="">It takes <strong>four</strong> clicks to get a username/password into your clipboard. So potentially eight mouse clicks to log into something. The count is even higher on phones where you may need to switch back and forth between processes (and sometimes having to re-authenticate in between). Thankfully with phones, you can have the option of pinning copy-notifications to make it a bit less frustrating</p></li></ol><ol data-rte-list="default"><li><p class="">By default, the extension will clear the clipboard after 60 seconds. 99% of the time this isn’t an issue (especially if you’re aware of this) but there’s a rare occasion when the “would you like to save this site” prompt doesn’t trigger (say, due to the way the site’s account-creation is set up) and if it takes &gt;60s to get the activation email etc., you’re in for a surprise when your password is cleared.</p></li><li><p class="">Seemingly random reasons to re-authenticate. I understand the monthly re-authentication, that’s fine and I can even understand getting signed out randomly here and there, but I’ve had a few cases where I’m authenticating (with 2FA too, for extra fun) five or six times in a 30 second period</p></li><li><p class="">The extension will populate a little icon in text-boxes that allows you to invoke LastPass (normally, to trigger a “search for logins for this site” functionality). To things bother me about this feature: [1] many times it interferes with the ‘eye’ (show me what I typed) and [2] it’s rare, but sometimes the button just doesn’t work.</p></li><li><p class="">There wasn’t the ability to (easily and neatly) add ‘sub-entries’. For example: logging into your bank will include a login and password but what if there are challenge questions? PIN numbers? PIN number specific for calling into phone-banking vs support? There’s no way to consolidate this into a single object if you wanted to.</p></li></ol>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e60a00c6-7959-4447-892a-fff2cedf5d32/LastPassClickCount.gif" data-image-dimensions="348x304" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e60a00c6-7959-4447-892a-fff2cedf5d32/LastPassClickCount.gif?format=1000w" width="348" height="304" sizes="(max-width: 640px) 100vw, (max-width: 767px) 25vw, 25vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e60a00c6-7959-4447-892a-fff2cedf5d32/LastPassClickCount.gif?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e60a00c6-7959-4447-892a-fff2cedf5d32/LastPassClickCount.gif?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e60a00c6-7959-4447-892a-fff2cedf5d32/LastPassClickCount.gif?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e60a00c6-7959-4447-892a-fff2cedf5d32/LastPassClickCount.gif?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e60a00c6-7959-4447-892a-fff2cedf5d32/LastPassClickCount.gif?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e60a00c6-7959-4447-892a-fff2cedf5d32/LastPassClickCount.gif?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e60a00c6-7959-4447-892a-fff2cedf5d32/LastPassClickCount.gif?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">So much clicking to get the credentials…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">On the big scale, these are relatively small issues by themselves, but LastPass presents itself as a premium player in this space (and they certainly charge a premium price tag). At this level (and price!) I’m much less tolerant of these issues.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="thoughts">Thoughts on the credential audit</h3>
  


  
  <p class="">When I started, I had about 500 credentials. After everything was migrated, consolidated and cleaned-up, I now have just over 265. That’s a huge drop looking at consolidating multiple related credentials (for example., combining PIN and challenge questions into the ‘main’ entry) only accounted for about 60 or so entries. Maybe 30 accounts were for websites that were no longer kicking around. </p><p class="">So what about the almost 150 remaining entries? I’ve got some <em>stories</em>.</p>


  






  



&nbsp;<hr />&nbsp;
  
    <h4 id="thoughts-a">Stealth wiping</h4>
  


  
  <p class=""> Let me tell you a story about <em>product registration</em>.</p><p class="">Oftentimes when you buy stuff, the product manufacturer wants you to register it (ostensibly to get your contact information so they can sell you more stuff but that’s beside the point). So let’s say you create an account and register your product. Some time passes and a few months/years later, you buy another product and go to dutifully register it. Depending on how long it’s been, there is a more than good chance your account doesn’t exist anymore and all the things you registered? Probably gone.</p><p class="">I can understand how some services might want to occasionally purge inactive accounts for product registration, that’s a bit silly. Oddly, there are some notable web-services that purge accounts (I should note, there’s no notification of the purge — if there was an email sent saying “your inactive account is going to get purged” that’s totally fine)</p>


  






  




  
  <ul data-rte-list="default"><li><p class="sqsrte-large"><strong>Web services</strong></p><ul data-rte-list="default"><li><p class="">BlazeMeter</p></li><li><p class="">Fongo</p></li><li><p class="">MyPrepaidCenter </p></li><li><p class="">OpenDNS</p></li><li><p class="">Webex</p></li></ul></li><li><p class="sqsrte-large"><strong>E-Retailer</strong></p><ul data-rte-list="default"><li><p class="">CDW</p></li><li><p class="">DataPro</p></li></ul></li></ul>


  






  




  
  <ul data-rte-list="default"><li><p class="sqsrte-large"><strong>Product registration</strong></p><ul data-rte-list="default"><li><p class="">Aukey</p></li><li><p class="">Anker</p></li><li><p class="">Black &amp; Decker</p></li><li><p class="">Bosch (power tools)*</p></li><li><p class="">Flir</p></li><li><p class="">LG (appliances)</p></li><li><p class="">NEEWER</p></li><li><p class="">Porter-Cable</p></li><li><p class="">RAVPower</p></li><li><p class="">Worx</p></li><li><p class="">Zotac</p></li></ul></li></ul>


  






  




  
  <p class="">Bosch is a bit of an interesting one. My account (with product registration) got deleted, so I created a new account (using the same email). When the ‘new’ account was created, my previously registered tools showed up. While this was convenient for me, I’m not sure if I like the idea that a ‘deleted’ account (the notification said the account was <em>deleted</em>) still has associated information floating around. </p><p class="">Looking just at product registrations, this now has me looking at purchases in a different light. Specifically looking at power tools for a second:</p><ul data-rte-list="default"><li><p class="">Accounts still in working order despite not logging in for years:</p><ul data-rte-list="default"><li><p class="">Milwaukee</p></li><li><p class="">Ridgid power tools (orange) and Vacs (red)</p></li><li><p class="">Ryobi</p></li><li><p class="">Kreg Tools</p></li><li><p class="">Bosch (my account got wiped but was able to be restored, so I’ll log it here for now)</p></li><li><p class="">EGO (but my account is still quite new so I wouldn’t expect it to be wiped)</p></li></ul></li><li><p class="">Accounts that got wiped without notice</p><ul data-rte-list="default"><li><p class="">Black &amp; Decker</p></li><li><p class="">Porter-Cable</p></li><li><p class="">Worx</p></li></ul></li></ul><p class="">Having my accounts (and associated registered items) quietly wiped leaves me with an <em>odd </em>feeling about the vendors. In fairness, while I’ve not had any issue with the tools … what if I did? It costs next to nothing to store the <em>minuscule</em> amount of data associated with my account &amp; registered products, so what gives?</p><blockquote><p class="sqsrte-large">All things being equal (or perhaps, close), I’d certainly shy away from brands where my data gets stealth wiped.</p></blockquote><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="thoughts-b">Unclean wipes</h4>
  


  
  <p class="">Accounts getting stealth-wiped seems to be the signature move for power-tool companies; for small electronics companies they took it another step: not only is your account is stealth wiped but they got rid of the entire concept of ‘creating an account’ and/or ‘registering your product’ — so forget even making a new account to register a recent purchase. Fun times.</p><p class="">Sometimes, you get some companies that just drop the ball even when it comes to wiping, like <strong>UPS</strong>. My account was stealth wiped; I know this because the credentials don’t work. </p><ul data-rte-list="default"><li><p class="">When I trigger “I forgot my username”, I get an email from them telling me “this is the username and email associated with the login”</p></li><li><p class="">If I try the “Please reset my password”, that process fails</p></li><li><p class="">If I try and create a new account, I can’t because the account is still in use </p></li></ul><p class="">As someone who understands a bit of how the software works, all i can do is shake my head. Thankfully, I don’t actually really need this account for anything.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="thoughts-c">Automatic lockdown</h4>
  


  
  <p class="">I had a fun time with <strong>Marriott</strong> — if you change your email <em>and</em> phone number, you can’t log in for at least a day. Something about “you recently changed your contact info, you can’t log in at this time”.</p><p class="">I can understand why they might do this — if I was going to steal an account, the first thing I would do would be to change the contact information of the account! But if they are going to do this lock-down, maybe put a warning that “hey we noticed you just changed your email, if you change your phone, you won’t be able to log in”.  I don’t travel enough (nor care for Marriott) so this was just an amusing nuisance of having to make a note to come back in a day or two to verify the credential migration was successful.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="thoughts-d">Have I been pwnd?</h4>
  


  
  <p class="">I’m a huge fan of the site <a href="https://haveibeenpwned.com" target="_blank">haveibeenpwnd</a> where you can punch in your email (or phone number) to see if it’s shown up on a leak somewhere in the past. This can be a bit of an warning beacon to go and do a comprehensive password update. There’s a <a href="https://haveibeenpwned.com/FAQs" target="_blank">FAQ</a> to cover the obvious questions that arise from a service like this.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="2fa">Revisiting 2FA with Authy</h3>
  


  
  <p class="">After I got my accounts migrated over, this was a pretty good time to revisit 2FA as well. I regularly check a <a href="https://2fa.directory/ca/" target="_blank">directory</a> of sites that support 2FA to see if I can add 2FA to any of my existing accounts (and in some cases, move away from SMS to time-generated codes).</p><p class="">Until now, my code-generator app of choice has been <a href="https://play.google.com/store/apps/details?gl=US&amp;hl=en_CA&amp;id=com.google.android.apps.authenticator2" target="_blank">Google Authenticator</a> and it while it works great, I did start to have problems with it a few updates back (it’s been bugging me for about a year now). Making an educated guess, when I launch Google Authenticator, it goes through all of the entries and starts generating the one-time keys and then it finishes loading the app. You’ll notice that when the app launches, all of the entries already have keys being generated.</p><p class="">At time of writing, I have about 70 accounts protected by 2FA and it regularly takes 3+ seconds to launch the app. Add my gripe of it being a general pain in the butt to manage the entries (relabelling and sorting), I wanted to see if there was a better option.</p><p class="">I settled on trying <a href="https://play.google.com/store/apps/details?gl=US&amp;hl=en_CA&amp;id=com.authy.authy" target="_blank">Authy</a> and it’s been <em>great.</em> I don’t care for the backup &amp; multi-device sync features but the app launches <em>fast</em>. The one-time keys are only generated when I click on the entry I want which I think is why the application launches so faster and is generally more responsive. I can very easily relabel entries and sort everything more easily. It’s also a nice touch that I can add icons to the entries and that I can also perform search.</p><blockquote><p class="sqsrte-large">What about the other [dis]advantages between Google Authenticator vs Authy?</p><p class="">Most of the time, people focus on the ability to sync across multiple devices and/or do backups. For me, this is a non-issue since I run rooted, so snapshotting the entire application’s data provides me with the ability to clone my authenticator to another device if needed.</p></blockquote><p class="">There are still a ton of sites that use SMS as means of 2FA and one thing that has helped me keep my sanity is to create a single contact (i.e., ‘2FA’) that has all of the phone numbers (and/or email addresses) so that when the 2FA codes come in, they come in to a singular entry in your messages-view rather than spread across a billion different entries. This is a long-game optimization hack as you’ll need to add the SMS contacts as they come in, over time. But it does get better — and you can migrate it with you to new phones.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672989781438-TMWV8V3XQED06D2TC8UB/cover_squooshed.jpg?format=1500w" medium="image" isDefault="true" width="1200" height="800"><media:title type="plain">Security Audit (2023.1)</media:title></media:content></item><item><title>Fixing Synology ‘Untrusted Certificate’</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Tue, 03 Jan 2023 21:18:08 +0000</pubDate><link>https://www.minmaxgeek.com/blog/fix-synology-ssl</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:63b49b908222a052ac40b96c</guid><description><![CDATA[For the last few years now, every time I log into the management portal for 
my NAS, I have to click through the annoying ‘this page is untrusted’ 
warnings from Chrome. Enough is enough, I finally set aside some time to 
fix this.

Most of the guides online seem to be built around getting LetsEncrypt 
hooked up (which I don’t want) or they were written with DSM6 in mind…

Sadly, DSM7+ removed the ability to easily generate a self-signed cert so I 
had to do it ‘the long way’]]></description><content:encoded><![CDATA[<p class="">With HTTPS is enabled, whenever I access the management portal for my NAS, I get a very well-intentioned warning about how the certificate isn’t trusted and how <em>all the baddies</em> could be trying to bust into my NAS. I have dutifully clicked the Advanced ➞ Proceed anyways option but this has been bugging me for a while now and I finally got around to fixing this nuisance.</p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#starting-point">Starting point</a></p></li><li><p class=""><a href="#easy">The easy options</a></p></li><li><p class=""><a href="#step-1">Step 1 - Prerequisites</a></p></li><li><p class=""><a href="#step-2">Step 2 - Become a CA</a></p><ul data-rte-list="default"><li><p class=""><a href="#step-2a">[A] Generate a private key</a></p></li><li><p class=""><a href="#step-2b">[B] Create our root certificate</a></p></li><li><p class=""><a href="#step-2c">[C] Install the Root Certificate</a></p></li><li><p class=""><a href="#step-2d">Recap</a></p></li></ul></li><li><p class=""><a href="#step-3">Step 3 - Create the signed certificate</a></p><ul data-rte-list="default"><li><p class=""><a href="#step-3a">[A] Get the CSR from DSM</a></p></li><li><p class=""><a href="#step-3b">[B] Create our own CSR</a></p></li><li><p class=""><a href="#step-3c">[C] Special sauce</a></p></li><li><p class=""><a href="#step-3d">[D] Sign the NAS certificate</a></p></li><li><p class=""><a href="#step-3e">Recap</a></p></li></ul></li><li><p class=""><a href="#step-4">Step 4 - Add signed certificate to DSM</a></p></li><li><p class=""><a href="#tldr">TLDR Steps</a></p></li></ul>


  






  



<hr />
  
    <h3 id="starting-point">Starting Point</h3>
  


  
  <p class="">Every time I navigate to my NAS’s management portal, Chrome makes sure to tell me how my connection isn’t private and that attackers are lurking around the corner and while it’s not a huge deal to just carry on, it’s a <em>nuisance</em>. </p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b3fc1a29-9c3d-4a10-8ada-36d65a0c8cb3/ssl_warning_squooshed.jpg" data-image-dimensions="924x608" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b3fc1a29-9c3d-4a10-8ada-36d65a0c8cb3/ssl_warning_squooshed.jpg?format=1000w" width="924" height="608" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b3fc1a29-9c3d-4a10-8ada-36d65a0c8cb3/ssl_warning_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b3fc1a29-9c3d-4a10-8ada-36d65a0c8cb3/ssl_warning_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b3fc1a29-9c3d-4a10-8ada-36d65a0c8cb3/ssl_warning_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b3fc1a29-9c3d-4a10-8ada-36d65a0c8cb3/ssl_warning_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b3fc1a29-9c3d-4a10-8ada-36d65a0c8cb3/ssl_warning_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b3fc1a29-9c3d-4a10-8ada-36d65a0c8cb3/ssl_warning_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/b3fc1a29-9c3d-4a10-8ada-36d65a0c8cb3/ssl_warning_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
      
        </figure>
      

    
  


  



  
  <p class="">My NAS isn’t open to the internet, I don’t use the QuickConnect functionality and have no desire to go down that road - if that’s something you want, Synology has a <a href="https://kb.synology.com/en-my/DSM/help/DSM/AdminCenter/connection_certificate?version=7" target="_blank">KB article</a> on it. For users that don’t want this, it’s initially an exercise in frustration because Google search results will yield two types of results:</p><ol data-rte-list="default"><li><p class="">How to setup LetsEncrypt to handle SSL certificates for your NAS or</p></li><li><p class="">How to setup a self-signed certificate for your NAS</p></li></ol><p class="">The latter option sounds great until you realize that this functionality was only available in DSM6. Surely, we can’t let this stop us!</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="easy">The easy options</h3>
  


  
  <p class="">There are a few easy options</p><ol data-rte-list="default"><li><p class="">It’s not a big deal, just do the Advanced ➞ Proceed dance every time</p></li><li><p class="">If you’re only ever accessing the management portal from your local network, maybe turn off HTTPS? Is it <em>really </em>necessary after all?</p></li><li><p class="">Utilize site-settings to allow insecure content</p></li></ol><p class="">Since I use <a href="https://www.eff.org/https-everywhere" target="_blank">HTTPS Everywhere</a>, turning off HTTPS doesn’t really work for me so realistically, I’m left with the last option. This workaround doesn’t make the problem go away but can reduce the nuisance-factor. By leveraging <a href="https://support.google.com/chrome/answer/114662?co=GENIE.Platform%3DDesktop&amp;hl=en" target="_blank">Site Settings</a>, we can override the behavior for the management portal site specifically. Just scroll down and set <strong>Insecure content</strong> to <em>Allow </em>and that’s it!</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/553b51fc-60fc-4851-85bc-e3c564d11757/site-setting_squooshed.jpg" data-image-dimensions="639x75" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/553b51fc-60fc-4851-85bc-e3c564d11757/site-setting_squooshed.jpg?format=1000w" width="639" height="75" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/553b51fc-60fc-4851-85bc-e3c564d11757/site-setting_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/553b51fc-60fc-4851-85bc-e3c564d11757/site-setting_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/553b51fc-60fc-4851-85bc-e3c564d11757/site-setting_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/553b51fc-60fc-4851-85bc-e3c564d11757/site-setting_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/553b51fc-60fc-4851-85bc-e3c564d11757/site-setting_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/553b51fc-60fc-4851-85bc-e3c564d11757/site-setting_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/553b51fc-60fc-4851-85bc-e3c564d11757/site-setting_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
      
        </figure>
      

    
  


  



  
  <p class="">After setting this to Allow, I noticed that I was prompted <em>once</em> about the super insecure site and then I wasn’t bothered again for a long time.  You still get the ‘Not Secure’ flag in the address bar so this still bugs the hell out of me.</p>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="">To fix this, we’ll need to “make the certificate valid”. At a high level, this has three stages:</p><ol data-rte-list="default"><li><p class="">Become a Certificate Authority (CA)</p></li><li><p class="">Create a certificate for the NAS</p></li><li><p class="">Install the certificate for the NAS</p></li></ol><p class="">Seems easy enough. </p><p class="">Of course, to make things more challenging, I’m opting to do this purely in Windows since I just don’t want to spin up and maintain a virtual Linux environment just for this. If you’re more versed with Linux, this may flow a bit more naturally for you.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-1">Step 1 - Pre-requisites</h3>
  


  
  <p class="">Working within Windows (and not counting <a href="https://learn.microsoft.com/en-us/windows/wsl/about" target="_blank">WSL</a> or anything), before we can do anything, we have to get the <a href="https://wiki.openssl.org/index.php/Binaries" target="_blank">openssl tools</a>. Pick whichever pre-compiled binary you feel comfortable with (specifically, I went with the ‘<a href="https://slproweb.com/products/Win32OpenSSL.html" target="_blank">Light installer</a>’ option).</p><p class="">During installation, I opted to copy the binaries to the \bin folder, rather than the \Windows directory. </p><p class="">We will be working entirely out of the \bin folder, so go ahead and open a Command Prompt window and navigate to our \bin folder</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-2">Step 2 - Become a CA</h3>
  


  
  <p class=""><em>At a high level, we want to create a private key (protected by a password) and then, using that private key, go ahead and create a [public] certificate.</em></p>


  






  




  
    <h4 id="step-2a">[A] Generate a private key</h4>
  


  
  <p class="">We don’t need to become a full-fledged CA, we just need the bits and pieces absolutely necessary just so we can create some certs. In our working folder, go ahead and create a file ‘pass.txt’. This file should contain a strong password as this is what secures our CA. By using a separate file to store the password, we can just refer to this file instead of having to type the password out again and again,</p><p class="">OpenSSL has two commands that will create a private key for us: <strong>genpkey</strong> and the older (but still valid) <strong>genrsa</strong>. In the following sample, I’ve opted for 4096-bit keys (because, heck, why not).</p>


  






  



<blockquote>
<p><code data-preserve-html-node="true">openssl genpkey -algorithm RSA -pass file:<span>pass.txt</span> -out <span>ca-key.pem</span> -pkeyopt rsa_keygen_bits:<span>4096</span> -aes256</code>  </p>
</blockquote>
<blockquote>
<p><code data-preserve-html-node="true">openssl genrsa -aes256 -passout file:<span>pass.txt</span> -out <span>ca-key.pem</span> <span>4096</span></code></p>
</blockquote>


  
  <p class="">Running this command will create a <strong>ca-key.pem</strong> file in our working folder. We can verify that the private key is good by using the following command:</p>


  






  



<blockquote>
<p><code data-preserve-html-node="true">openssl rsa -in <span>ca-key.pem</span> -check -noout -passin file:<span>pass.txt</span></code></p>
</blockquote>


  
  <p class="">If all goes well, the output should be: <strong>RSA key ok</strong></p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-2b">[B] Create our root certificate</h4>
  


  
  <p class="">We can use the ca-key.pem private key we just created, to create our root certificate. Here, I opted for 10-year expiry on the root certificate.</p>


  






  



<blockquote>
<p><code data-preserve-html-node="true">openssl req -new -x509 -sha256 -days <span>3650</span> -passin file:<span>pass.txt</span> -key <span>ca-key.pem</span> -out <span>ca.pem</span></code></p>
</blockquote>


  
  <p class="">When we run this command, we will be prompted to provide some information. I opted to specify the country and the common-name, leaving everything else as blank</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/072ac742-9b95-422d-9c28-663d9aa82b63/createCA_squooshed.jpg" data-image-dimensions="655x235" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/072ac742-9b95-422d-9c28-663d9aa82b63/createCA_squooshed.jpg?format=1000w" width="655" height="235" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/072ac742-9b95-422d-9c28-663d9aa82b63/createCA_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/072ac742-9b95-422d-9c28-663d9aa82b63/createCA_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/072ac742-9b95-422d-9c28-663d9aa82b63/createCA_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/072ac742-9b95-422d-9c28-663d9aa82b63/createCA_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/072ac742-9b95-422d-9c28-663d9aa82b63/createCA_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/072ac742-9b95-422d-9c28-663d9aa82b63/createCA_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/072ac742-9b95-422d-9c28-663d9aa82b63/createCA_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true">Creating the root certificate</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-2c">[C] Install the Root Certificate</h4>
  


  
  <p class="">By installing the root certificate on our machine(s), any certificates signed by this root-certificate are automatically trusted. On Windows it’s probably easiest to first convert the certificate:</p>


  






  



<blockquote>
<p><code data-preserve-html-node="true">openssl x509 -outform der -in <span>ca.pem</span> -out <span>ca.der</span></code></p>
</blockquote>


  
  <p class="">This creates a more familiar certificate file in our working folder - install this into the Trusted Root Certificates store. You can do this per-user or per-machine (I opted to do per-machine).</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-2d">Recap</h4>
  


  
  <p class="">At this point we have a few files in our working folder:</p>


  






  



<ul>
<li><span data-preserve-html-node="true">pass.txt</span> - This file contains the password that we secure our private key with. </li>
<li><span data-preserve-html-node="true">ca-key.pem</span>  - This is the private key for the CA</li>
<li><span data-preserve-html-node="true">ca.pem</span> - This is the public facing certificate</li>
<li><span data-preserve-html-node="true">ca.der</span> - This is the public facing certificate, in a different format. For Windows users, this will be the file we install on each machine</li>
</ul>


  
  <p class="">With these files, we are now a certificate authority and we can sign downstream certificates! Make sure we put these files in a safe spot somewhere.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-3">Step 3 - Create the signed certificate</h3>
  


  
    <h4 id="step-3a">[A] Get the CSR from DSM</h4>
  


  
  <p class="">So the first thing to do is get the Certificate Signing Request (CSR) from our NAS Management portal. Instructions may vary for different versions of DSM but for 7.1x, the steps are:</p><ol data-rte-list="default"><li><p class="">Log into the NAS</p></li><li><p class="">Open <strong>Control Panel</strong></p></li><li><p class="">Open <strong>Security</strong></p></li><li><p class="">Select <strong>Certificate</strong></p></li><li><p class="">Click <strong>Settings</strong></p></li><li><p class="">Click <strong>Advanced</strong></p></li><li><p class="">Click <strong>Create certificate signing request (CSR)</strong></p></li></ol>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672786223222-010SF5AT0PWC515KVK9X/csr1_squooshed.jpg" role="button" aria-label="" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672786223222-010SF5AT0PWC515KVK9X/csr1_squooshed.jpg" data-image-dimensions="500x353" data-image-focal-point="0.2788725353422619,0.34992335392878604" alt="csr1_squooshed.jpg" data-load="false" data-image-id="63b4b12f022e951fa48ff112" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672786223222-010SF5AT0PWC515KVK9X/csr1_squooshed.jpg?format=1000w" /><br>
                </a>
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672786223188-EPRTJS1TXLC2S88YCL05/csr2_squooshed.jpg" role="button" aria-label="" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672786223188-EPRTJS1TXLC2S88YCL05/csr2_squooshed.jpg" data-image-dimensions="500x421" data-image-focal-point="0.401302415497449,0.430603519562752" alt="csr2_squooshed.jpg" data-load="false" data-image-id="63b4b12f399be3070165efdb" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672786223188-EPRTJS1TXLC2S88YCL05/csr2_squooshed.jpg?format=1000w" /><br>
                </a>
                
              
            
          

          
        

      
    
  

  











  
  <p class="">Creating the CSR requires you to fill out some information — I opted to set the private key length to be the same as everything else so far (4096), and for the common name, I set it as one of the hostnames for my NAS. </p><p class="">DSM will prompt you to download a zip with two files in it:</p><ul data-rte-list="default"><li><p class=""><strong>server.key</strong> — this is the key that we need to sign using our CA</p></li><li><p class=""><strong>server.csr</strong> — this contains the settings we just filled out when creating the CSR</p></li></ul><p class="">The server.csr file, as exported, is intended for us to send to a third party (paid) certificate authority to then sign (and they can’t help us with local IPs anyways) so we won’t actually need that file, we’ll make our own csr in a moment.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-3b">[B] Create our own CSR</h4>
  


  
  <p class="">From the archive.zip we just downloaded, extract the server.key file to our working directory.  Before we totally forget what this file is, I would <em>strongly suggest</em> renaming it to something you might have a better chance of remembering: <strong>echo_server.key. </strong>We ca use this file to create our own CSR.</p>


  






  



<blockquote>
<p><code data-preserve-html-node="true">openssl req -new -key <span>echo_server.key</span> -out <span>echo_server.csr</span></code></p>
</blockquote>


  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-3c">[C] Special sauce</h4>
  


  
  <p class="">Create a file in our working directory, <strong>echo_config.txt</strong> and add the following text. Adjust the DNS/IP entries to match the values you have set for your NAS.</p><ul data-rte-list="default"><li><p class=""><strong>DNS entries</strong>: add as many as you want here — whatever friendly label you want to associate with your NAS. </p><ul data-rte-list="default"><li><p class="">You can use just a simple hostname (i.e., echo) or you can use a ‘more proper’ FQDN (i.e., echo.lan)</p></li><li><p class="">Note that you <em>can</em> have a bunch of names here as well (although most people, I imagine, will be okay with one or two)</p></li></ul></li><li><p class=""><strong>IP entries</strong>: whatever IP addresses are associated with your NAS, add them here. </p><ul data-rte-list="default"><li><p class="">If you want to plan for the future, you can preemptively add IP addresses for planned-upgrades down the road here too! What I mean by this is, for example, my NAS (DS1817+) has a PCIE expansion slot and right now, I have a 1x10Gig NIC in there (192.168.15.1) — down the road, I might add replace this NIC with a 2x10G so it might be prudent for me to also preemptively add the IP for that second NIC (192.168.15.2)</p></li></ul></li></ul>


  






  



<hr />&nbsp;<p><code data-preserve-html-node="true">authorityKeyIdentifier=keyid,issuer<br>basicConstraints=CA:FALSE<br>keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment<br>subjectAltName = @alt_names</code></p><code data-preserve-html-node="true"></code><p><code data-preserve-html-node="true">[alt_names]<br>DNS.1 = echo<br>DNS.2 = echo10<br>IP.0 = 192.168.10.1<br>IP.1 = 192.168.10.2<br>IP.2 = 192.168.10.3<br>IP.3 = 192.168.10.4<br>IP.4 = 192.168.15.1<br>IP.5 = 192.168.15.2<br></code></p>

&nbsp;
  
  <p class="">To break down the values I used here in my example, my NAS currently has five NICs, spread across two DNS/host entries:</p><ul data-rte-list="default"><li><p class="">I have ‘echo’ and ‘echo10’ representing the labels I want to associate with my NAS for accessing via 1G and 10G. </p></li><li><p class="">I added four IPs for the four 1G NICs on my NAS (192.168.10.1, 192.168.10.2, 192.168.10.3, 192.168.10.4) </p></li><li><p class="">I added one IP for the single 10G NIC currently on my NAS (192.168.15.1) </p></li><li><p class="">Since I know I want to one day upgrade by 1x10G NIC for a 2x10G NIC, I  preemptively added an additional IP for that (192.168.15.2)</p></li></ul>


  






  



&nbsp;
  
  <p class="">This is a V3 certificate extension config file and as it might suggest, this allows us to associate link all of those DNS/IP entries to the certificate we are about to create.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-3d">[D] Sign the NAS certificate</h4>
  


  
  <p class="">Now we have everything in place to finally create our signed NAS certificate:</p>


  






  



<blockquote>
<p><code data-preserve-html-node="true">openssl x509 -req -in <span>echo_server.csr</span>  -CA <span>ca.pem</span> -CAkey <span>ca-key.pem</span> -CAcreateserial -out <span>echo_signed.pem</span> -days <span>3650</span> -sha256 -extfile <span>echo_config.txt</span> -passin file:<span>pass.txt</span></code></p>
</blockquote>












































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/17112d8c-5bdc-4b0e-b3da-3f5aa3c719a6/csr3_squooshed.jpg" data-image-dimensions="319x45" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/17112d8c-5bdc-4b0e-b3da-3f5aa3c719a6/csr3_squooshed.jpg?format=1000w" width="319" height="45" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/17112d8c-5bdc-4b0e-b3da-3f5aa3c719a6/csr3_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/17112d8c-5bdc-4b0e-b3da-3f5aa3c719a6/csr3_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/17112d8c-5bdc-4b0e-b3da-3f5aa3c719a6/csr3_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/17112d8c-5bdc-4b0e-b3da-3f5aa3c719a6/csr3_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/17112d8c-5bdc-4b0e-b3da-3f5aa3c719a6/csr3_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/17112d8c-5bdc-4b0e-b3da-3f5aa3c719a6/csr3_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/17112d8c-5bdc-4b0e-b3da-3f5aa3c719a6/csr3_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
          
        

        
      
        </figure>
      

    
  


  



  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-3e">Recap</h4>
  


  
  <p class="">So at this point, we have a bunch of files in our working folder:</p>


  






  



<ul>
<li><p><span data-preserve-html-node="true">pass.txt</span> - This file contains the password that we secure our private key with. </p>
</li>
<li><p><span data-preserve-html-node="true">ca-key.pem</span>  - This is the private key for the CA</p>
</li>
<li><p><span data-preserve-html-node="true">ca.pem</span> - This is the public facing certificate</p>
</li>
<li><p><span data-preserve-html-node="true">ca.der</span> - This is the public facing certificate, in a different format. For Windows users, this will be the file we install on each machine  </p>
</li>
<li><p><span data-preserve-html-node="true">echo_server.key</span> - This is the server.key file downloaded from our NAS when we clicked 'Create certificate signing request (CSR)</p>
</li>
<li><p><span data-preserve-html-node="true">echo_server.csr</span> - This is the CSR we created from the echo_server.key file (instead of using the file in the archive we downloaded)</p>
</li>
<li><p><span data-preserve-html-node="true">echo_config.txt</span> - A custom file we put together to define the different DNS/IP values to be associated with the signed certificate</p>
</li>
<li><p><span data-preserve-html-node="true">echo_signed.pem</span> - This is the signed certificate! This is the echo_server.key file, signed by our CA</p>
</li>
</ul>


  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-4">Step 4 - Add signed certificate to DSM</h3>
  


  
  <p class="">In DSM, we can now add the signed key:</p><ol data-rte-list="default"><li><p class="">Log into the NAS</p></li><li><p class="">Open <strong>Control Panel</strong></p></li><li><p class="">Open <strong>Security</strong></p></li><li><p class="">Select <strong>Certificate</strong></p></li><li><p class="">Click <strong>Add</strong></p></li></ol>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672788232859-BSCT6NZIF5TWZ5K0CV1D/add1_squooshed.jpg" role="button" aria-label="" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672788232859-BSCT6NZIF5TWZ5K0CV1D/add1_squooshed.jpg" data-image-dimensions="638x550" data-image-focal-point="0.3536642684417517,0.3847531296136811" alt="add1_squooshed.jpg" data-load="false" data-image-id="63b4b9080188f2325da44ed0" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672788232859-BSCT6NZIF5TWZ5K0CV1D/add1_squooshed.jpg?format=1000w" /><br>
                </a>
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672788232947-TXCSXLUDQV7IEQJTI6JI/add2_squooshed.jpg" role="button" aria-label="" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672788232947-TXCSXLUDQV7IEQJTI6JI/add2_squooshed.jpg" data-image-dimensions="650x545" data-image-focal-point="0.3536642684417517,0.40754315135924796" alt="add2_squooshed.jpg" data-load="false" data-image-id="63b4b90883dfae76d23fd1a5" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672788232947-TXCSXLUDQV7IEQJTI6JI/add2_squooshed.jpg?format=1000w" /><br>
                </a>
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672788233577-X8DCPOFWQ6TWD3E27RZL/add3_squooshed.jpg" role="button" aria-label="" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672788233577-X8DCPOFWQ6TWD3E27RZL/add3_squooshed.jpg" data-image-dimensions="640x545" data-image-focal-point="0.36052428784013607,0.35272705078125" alt="add3_squooshed.jpg" data-load="false" data-image-id="63b4b909abb180210e4320aa" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672788233577-X8DCPOFWQ6TWD3E27RZL/add3_squooshed.jpg?format=1000w" /><br>
                </a>
                
              
            
          

          
        

      
    
  

  











  
  <blockquote><p class="sqsrte-large">Note</p><p class="">I’ve noted sometimes that the add operation can go into a limbo state where it’s ‘working’ — give it a minute and if there’s no progress, reload the portal page and re-add it.</p></blockquote><p class="">After you’ve added the cert, there’s just one step needed. Under <strong>Settings ➞ Advanced</strong>, set (or verify) the System default certificate is the certificate you just added.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/26f95032-36e1-45bb-ad21-452609907631/add4_squooshed.jpg" data-image-dimensions="593x414" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/26f95032-36e1-45bb-ad21-452609907631/add4_squooshed.jpg?format=1000w" width="593" height="414" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/26f95032-36e1-45bb-ad21-452609907631/add4_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/26f95032-36e1-45bb-ad21-452609907631/add4_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/26f95032-36e1-45bb-ad21-452609907631/add4_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/26f95032-36e1-45bb-ad21-452609907631/add4_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/26f95032-36e1-45bb-ad21-452609907631/add4_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/26f95032-36e1-45bb-ad21-452609907631/add4_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/26f95032-36e1-45bb-ad21-452609907631/add4_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
      
        </figure>
      

    
  


  



  
  <p class="">If you have multiple NAS units that you want to fix this for, repeat Step 3-4 for each one. When you reload the browser, the insecure warning will be gone!</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8a13660f-bcb6-454d-a9e3-fbdb008e2452/success1_squooshed.jpg" data-image-dimensions="329x252" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8a13660f-bcb6-454d-a9e3-fbdb008e2452/success1_squooshed.jpg?format=1000w" width="329" height="252" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8a13660f-bcb6-454d-a9e3-fbdb008e2452/success1_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8a13660f-bcb6-454d-a9e3-fbdb008e2452/success1_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8a13660f-bcb6-454d-a9e3-fbdb008e2452/success1_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8a13660f-bcb6-454d-a9e3-fbdb008e2452/success1_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8a13660f-bcb6-454d-a9e3-fbdb008e2452/success1_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8a13660f-bcb6-454d-a9e3-fbdb008e2452/success1_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/8a13660f-bcb6-454d-a9e3-fbdb008e2452/success1_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
      
        </figure>
      

    
  


  



  
  <p class="">Since you’re not likely going to deal with this for a long time, I’d recommend making some copious notes itemizing what all of the files are and backing them all up somewhere because in 10 years, you’ll come back to this and have no idea what any of it is.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="tldr">TLDR Steps</h3>
  


  
  <p class="">More-so a note for me when I have to revisit this down the road:</p><ol data-rte-list="default"><li><p class="">Install OpenSSL somewhere, navigate to the installation folder \bin</p></li><li><p class="">Create CA</p><ul data-rte-list="default"><li><p class="">Create a file, <strong>pass.txt</strong> with the strong password for private key in it</p></li><li><p class=""><strong>Create the private key</strong>: openssl genpkey -algorithm RSA -pass file:pass.txt -out ca-key.pem -pkeyopt rsa_keygen_bits:4096 -aes256 </p></li><li><p class=""><strong>Verify the private key</strong>: openssl rsa -in ca-key.pem -check -noout -passin file:pass.txt</p></li><li><p class=""><strong>Use the private key to make our public root cert</strong>: openssl req -new -x509 -sha256 -days 3650 -passin file:pass.txt -key ca-key.pem -out ca.pem</p><ul data-rte-list="default"><li><p class="">Specify the country</p></li><li><p class="">Specify the Common Name</p></li><li><p class="">Everything else can be blank</p></li></ul></li><li><p class=""><strong>Convert the root cert to the easier DER format</strong>: openssl x509 -outform der -in ca.pem -out ca.der</p></li><li><p class="">Install the ca.der certificate on the machines we will be accessing the NAS portal from</p></li></ul></li><li><p class="">Get the CSR package from DSM</p><ul data-rte-list="default"><li><p class="">Log into DSM ➞ Control Panel ➞ Security ➞ Certificates </p></li><li><p class="">Settings ➞ Advanced ➞ Create certificate signing request (CSR) ➞ download this file (server.zip)</p></li><li><p class="">From server.zip, extract server.key to our working folder &amp; rename it to something that makes more sense. The other file doesn’t matter</p></li></ul></li><li><p class=""><strong>Create our own CSR</strong>: openssl req -new -key echo_server.key -out echo_server.csr</p></li><li><p class=""><strong>Create EXT file (echo_config.txt)</strong>: <a href="#step-3c">Scroll up</a> to see what goes in it</p></li><li><p class=""><strong>Sign the server key (from DSM) with our CA cert</strong>: openssl x509 -req -in echo_server.csr&nbsp; -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out echo_signed.pem -days 3650 -sha256 -extfile echo_config.txt -passin file:pass.txt </p></li><li><p class="">Add the certificate to DSM (these steps may change in 10yrs ha, but for now in DSM7 this is what I did)</p><ul data-rte-list="default"><li><p class="">Log into DSM ➞ Control Panel ➞ Security ➞ Certificates </p></li><li><p class="">Add ➞ Private key = echo_server.key, Certificate = echo_signed.pem</p></li><li><p class="">Settings ➞ Advanced ➞ set System Default to the certificate we just added</p></li></ul></li></ol><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1672847075109-GZ0N9G4XNRCZQLDLRQ5Y/cover_squooshed.jpg?format=1500w" medium="image" isDefault="true" width="1200" height="800"><media:title type="plain">Fixing Synology ‘Untrusted Certificate’</media:title></media:content></item><item><title>Upgrading my Networking Gear (2022.4)</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Thu, 10 Nov 2022 13:00:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/networking-upgrade-2022-4</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:62fabced3163b53a97ddcdd2</guid><description><![CDATA[In an earlier installment, I tackled “what if the ISP goes down?” and in 
this update, I tackle the question “what if the power goes out?” We have a 
UPS to catch the network for short blips, but what about extended outages? 
I wanted to get a way to maintain multi-hour uptime without a lot of 
infrastructure rework/expense all while keeping it super easy to implement.]]></description><content:encoded><![CDATA[<p class="">Earlier in the series, I tackled the problem of  “what if the ISP goes down” and in this update, I’m back to tackle the counterpoint: “what if the power goes out”? While we don’t get a lot of extended power outages, I do know that the utility company has some planned outages for infrastructure upgrades in the near future. Since my wife works from home, it’s important that we maintain as much uptime as possible. I have a UPS on the network stack but in this post, I’m going to work on scaling back the power draw to maximize uptime.</p>


  






  



<hr />&nbsp;
  
  <p class="sqsrte-large">Networking Series</p><p class="">This post is part of a series, check out the other posts!</p>


  






  



<hr />&nbsp;
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#starting-point">Starting point</a></p></li><li><p class=""><a href="#endurance-1">Endurance mode</a></p><ul data-rte-list="default"><li><p class=""><a href="#endurance-1a">Thinking out loud...</a></p></li><li><p class=""><a href="#endurance-1b">Implementation attempt (and failure!)</a></p></li><li><p class=""><a href="#endurance-1c">So what gives?</a></p></li><li><p class=""><a href="#endurance-1d">New plan</a></p></li></ul></li><li><p class=""><a href="#future">Looking ahead</a></p></li></ul>


  






  



<hr />
  
    <h3 id="starting-point">Starting point</h3>
  


  
  <p class="">In a previous update, network failover was something I addressed and generally, it works really well - during as blip, the network seamlessly fails over to cellular and comes back to fiber/cable when the connection is restored. We are in reasonable shape to deal with the next telecommunications outage but this begs the question — what if the telecoms are fine but there’s a localized power outage?</p><p class="">During an extended power outage, we could transition to using laptops but would still need to get network access. For convenience, and because the main switches would be powered down, the easiest way to go about this is to drop down to a single access point and all the critical devices can connect wirelessly. One limitation of my current networking stack is just <em>how much of it</em> needs to be powered on to implement this. Here, I’m referring to the number of devices (and their associated wattage) that I need to support with a UPS:</p>


  






  



&nbsp;










































  

    

      <figure data-test="image-block-v2-outer-wrapper" data-sqsp-image-classic-block-layout="overlap" class="
            sqs-block-image-figure
            image-block-outer-wrapper
            image-block-v2
            design-layout-overlap
            combination-animation-site-default
            individual-animation-site-default
            individual-text-animation-site-default
            image-position-right
            
          " data-scrolled
      >

        
          
            
            
              
              
              
              
              
              
              
              <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/562159f9-6c9f-49fb-a76b-d96153abc5b8/Orig_Squooshed.jpg" data-image-dimensions="1015x1654" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/562159f9-6c9f-49fb-a76b-d96153abc5b8/Orig_Squooshed.jpg?format=1000w" width="1015" height="1654" sizes="(max-width: 640px) 100vw, (max-width: 767px) 83.33333333333334vw, 83.33333333333334vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/562159f9-6c9f-49fb-a76b-d96153abc5b8/Orig_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/562159f9-6c9f-49fb-a76b-d96153abc5b8/Orig_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/562159f9-6c9f-49fb-a76b-d96153abc5b8/Orig_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/562159f9-6c9f-49fb-a76b-d96153abc5b8/Orig_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/562159f9-6c9f-49fb-a76b-d96153abc5b8/Orig_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/562159f9-6c9f-49fb-a76b-d96153abc5b8/Orig_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/562159f9-6c9f-49fb-a76b-d96153abc5b8/Orig_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

              
            
          
            
          

        

        
          
          <figcaption data-width-ratio class="image-card-wrapper">
            

              
                <p class="sqsrte-large">Currently</p>
              

              
                <ul data-rte-list="default"><li><p class="">Router (ER7206), 9W max</p></li><li><p class="">10G Switch (TL-SX3008F),  15W max</p></li><li><p class="">1G Switch (TL-SG3428X), 24W max</p></li><li><p class="">Main AP (EAP-225),  13W max</p></li><li><p class="">Fiber ONT, 9W max</p></li><li><p class="">Hardware controller (OC300),  15W max (<em>optional</em>)</p></li><li><p class="">PiHole (Raspberry Pi 4), 6W max (potentially <em>optional</em>)</p></li></ul>
              

              

            
          </figcaption>
        

      </figure>

    

  


&nbsp;
  
  <p class="">Not counting any power conversion inefficiencies, my UPS would have to provide somewhere in the neighborhood of 70-91W (using maximum power draw values) just to provide Wi-Fi to the house. According to CyberPower’s <a href="https://www.cyberpowersystems.com/tools/runtimes/" target="_blank">runtime calculator</a>, this should give me 1.5-2 hours of runtime. Anecdotally, this is consistent with the actual runtime I was seeing during power outages but more is always better right? </p><p class="">I set a mental goal of <em>at least</em> 4 hours runtime so that Wi-Fi uptime could keep up with the runtime of the laptops on battery power and all of this, without expanding/upgrading my UPS at this time. As such, the only way to eek extra runtime out of the network-stack is to reduce its power draw.</p><p class="">Enter Endurance Mode.</p><p class="sqsrte-small"><a href="#toc" target="">[Back to Top]</a></p>


  






  




  
    <h3 id="endurance-1">Endurance Mode</h3>
  


  
  <p class="">With Endurance Mode, I wanted to cut out all the devices that wasn’t crucial to providing basic Wi-Fi coverage to the house. The easiest way to swap the entire network stack out for a single travel-router; the travel-router already has a built-in Wi-Fi access point, but depending on where I place the travel router (likely magnetized to the side of the rack), it’s very likely that signal quality throughout the house won’t be great. So I’ll plan for possibly [re-]using an existing access-point to provide house-wide coverage.</p>


  






  



&nbsp;










































  

    

      <figure data-test="image-block-v2-outer-wrapper" data-sqsp-image-classic-block-layout="overlap" class="
            sqs-block-image-figure
            image-block-outer-wrapper
            image-block-v2
            design-layout-overlap
            combination-animation-site-default
            individual-animation-site-default
            individual-text-animation-site-default
            image-position-right
            
          " data-scrolled
      >

        
          
            
            
              
              
              
              
              
              
              
              <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53913095-5a2b-49b2-96f6-5d5d3b50e2b6/Plan1_Squooshed.jpg" data-image-dimensions="502x899" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53913095-5a2b-49b2-96f6-5d5d3b50e2b6/Plan1_Squooshed.jpg?format=1000w" width="502" height="899" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53913095-5a2b-49b2-96f6-5d5d3b50e2b6/Plan1_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53913095-5a2b-49b2-96f6-5d5d3b50e2b6/Plan1_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53913095-5a2b-49b2-96f6-5d5d3b50e2b6/Plan1_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53913095-5a2b-49b2-96f6-5d5d3b50e2b6/Plan1_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53913095-5a2b-49b2-96f6-5d5d3b50e2b6/Plan1_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53913095-5a2b-49b2-96f6-5d5d3b50e2b6/Plan1_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/53913095-5a2b-49b2-96f6-5d5d3b50e2b6/Plan1_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

              
            
          
            
          

        

        
          
          <figcaption data-width-ratio class="image-card-wrapper">
            

              
                <p class="sqsrte-large">Endurance Mode</p>
              

              
                <ul data-rte-list="default"><li><p class="">Fiber ONT, 9W max</p></li><li><p class=""><a href="https://amzn.to/3SPySlM" target="_blank">GL.iNET GL-SFT1200</a> travel router, 6W max</p></li><li><p class="">Main AP (EAP-225), 13W max (technically optional)</p></li></ul>
              

              

            
          </figcaption>
        

      </figure>

    

  


&nbsp;
  
  <p class="">Beyond reducing the power-consumption, there are two soft-requirements for this project:</p><ol data-rte-list="default"><li><p class="">To minimize the amount of additional network gear ($) required to implement this and,</p></li><li><p class="">Make it so the actual process of cutting over is <em>dead simple:</em> during a power outage, I want to be able to cut over in <em>seconds</em> and I want the process to be brainless</p></li></ol><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="endurance-1a">Thinking out loud...</h4>
  


  
  <p class="">When I say keep the process simple, I mean that I don’t want to be fumbling around, unplugging and replugging network cables in the dark — everything should be pre-connected and ready to go so that it’s just a matter of flicking some switches. </p><p class="">At a high level, I wanted to find a way to <em>fully connect</em> both networks and use power-switches to control which set of equipment was live - something like this:</p>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5eb42ad1-3689-462a-ab61-4280a56e2dc7/Plan2_squooshed.jpg" data-image-dimensions="1559x1680" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5eb42ad1-3689-462a-ab61-4280a56e2dc7/Plan2_squooshed.jpg?format=1000w" width="1559" height="1680" sizes="(max-width: 640px) 100vw, (max-width: 767px) 66.66666666666666vw, 66.66666666666666vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5eb42ad1-3689-462a-ab61-4280a56e2dc7/Plan2_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5eb42ad1-3689-462a-ab61-4280a56e2dc7/Plan2_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5eb42ad1-3689-462a-ab61-4280a56e2dc7/Plan2_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5eb42ad1-3689-462a-ab61-4280a56e2dc7/Plan2_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5eb42ad1-3689-462a-ab61-4280a56e2dc7/Plan2_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5eb42ad1-3689-462a-ab61-4280a56e2dc7/Plan2_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/5eb42ad1-3689-462a-ab61-4280a56e2dc7/Plan2_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">At a high level, this is pretty straightforward — except those tricky red lines…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="">When I built the <a href="https://www.minmaxgeek.com/blog/mini-network-rack-mk2">Network Rack Mk 2</a>, I specifically went out of my way to put everything on independent power switches to facilitate this: during an extended power outage, I could toggle the power switches to turn off all of the blue devices and turn on the grey devices; after a quick network drop, we would be able to carry on our day with laptops over wireless. The magic sauce is in the dotted-red lines— a way to simultaneously connect two Routers to a single connection port on the Fiber ONT and also to connect my main access point to two devices at once.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="endurance-1b&gt;">Implementation attempt (and failure!)</h4>
  


  
  <p class="">If you search online, you can find a plethora of “ethernet splitter” type devices. They all come with very obvious caveats and disclaimers:</p><blockquote><p class=""><em>This Ethernet splitter allows two computers to share one Ethernet line ONE AT A TIME, but it DOESN'T SUPPORT Both computers to connect onto the internet Simultaneously. Just ONE output port is working.</em></p><p class=""><em>Please note-the output port of this RJ45 network splitter does not support two computers connected to the network at the same time. Only one output port is working at a time.</em></p><p class=""><em>The splitter cable expand one RJ 45 outlet to two standard 8P8C design. Please noted that only one port could be used at one time.</em></p><p class=""><em>It does not support two devices to access the internet at the same Time. Only one device can be connected to the internet at a time.</em></p></blockquote><p class="">So far so good. I <em>specifically</em> only want one network to be powered up at a given time anyways, so this is perfect! Being a sucker for this, I bought two of these too-good-to-be-true dongles: one to split the connections for the routers and one to split the connector to the access point.</p>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/bfc1680e-1489-4dea-9501-bbd3db7bd7c5/Plan3_squooshed.jpg" data-image-dimensions="955x1579" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/bfc1680e-1489-4dea-9501-bbd3db7bd7c5/Plan3_squooshed.jpg?format=1000w" width="955" height="1579" sizes="(max-width: 640px) 100vw, (max-width: 767px) 66.66666666666666vw, 66.66666666666666vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/bfc1680e-1489-4dea-9501-bbd3db7bd7c5/Plan3_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/bfc1680e-1489-4dea-9501-bbd3db7bd7c5/Plan3_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/bfc1680e-1489-4dea-9501-bbd3db7bd7c5/Plan3_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/bfc1680e-1489-4dea-9501-bbd3db7bd7c5/Plan3_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/bfc1680e-1489-4dea-9501-bbd3db7bd7c5/Plan3_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/bfc1680e-1489-4dea-9501-bbd3db7bd7c5/Plan3_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/bfc1680e-1489-4dea-9501-bbd3db7bd7c5/Plan3_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Spoiler: if this looks too good to be true, you’re on to something…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="">On paper, this looks like it’s a <em>perfect fit for my needs: </em>during normal operations, the blue devices are powered on and the grey device is off — which meets the requirement of only having one device connected at a time. During endurance operations, the blue devices power down and the grey device powers up, also maintaining the single-device requirement.</p><p class="">This did not work as intended, I couldn’t get either port to work consistently (in the manner I wanted) <em>and</em> in the limited scenarios I could get it to work, the signal was reduced from 1000-Mbit to 100-Mbit. Obviously this is a stupid flop. This entire category of products almost feels maliciously labelled as ethernet splitters. </p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="endurance-1c">So what gives?</h4>
  


  
  <p class="">The big clue is the drop to 100-Mbit. When you look at these devices as ethernet mux/demux, it makes a <em>lot</em> more sense. So under the hood, ethernet cables generally have 8-wires running in them. For gigabit (or faster) networks, all 8-wires are utilized however, an older (slower) standard only requires 4-wires. With this bit of extra knowledge we can surmise that under the hood, these devices are splitting a [faster] 8-wire connection into two [slower] 4-wire connections.</p><p class="">So these “ethernet splitter” devices need to be bought in pairs (which is not always evident in product descriptions) and they drop your line speed to 100-Mbit (which is also deceptively ignored in most of the documentation). A better label would be to call it an <strong>ethernet multiplexer/demultiplexer</strong> (or compressor/decompressor)</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6a996101-f1e1-47d8-b4ad-f6e845fd9c87/Mux_squooshed.jpg" data-image-dimensions="1727x384" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6a996101-f1e1-47d8-b4ad-f6e845fd9c87/Mux_squooshed.jpg?format=1000w" width="1727" height="384" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6a996101-f1e1-47d8-b4ad-f6e845fd9c87/Mux_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6a996101-f1e1-47d8-b4ad-f6e845fd9c87/Mux_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6a996101-f1e1-47d8-b4ad-f6e845fd9c87/Mux_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6a996101-f1e1-47d8-b4ad-f6e845fd9c87/Mux_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6a996101-f1e1-47d8-b4ad-f6e845fd9c87/Mux_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6a996101-f1e1-47d8-b4ad-f6e845fd9c87/Mux_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/6a996101-f1e1-47d8-b4ad-f6e845fd9c87/Mux_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">How these <em>ethernet splitters </em>“work”…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <blockquote><p class="sqsrte-large">The takeaway</p><p class="">Just don’t buy these types of products. They are too good to be true and will never do what you hope they will.</p></blockquote><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="endurance-1d">New plan</h4>
  


  
  <p class="">I originally balked at adding a switch to the picture because of the additional power draw but I stumbled upon the <a href="https://amzn.to/3DpfypB" target="_blank">D-Link DGS-105</a> unmanaged switch that uses an <em>astonishing</em> <strong>1.85W</strong> (and is wall-mountable which is a bonus); this way I can keep my normal-router and travel-router plugged in at all times, toggling between them using power switches.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/58dd3dc1-7bb0-4c99-aeb5-e590bca36d0f/Plan4_squooshed.jpg" data-image-dimensions="1351x1336" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/58dd3dc1-7bb0-4c99-aeb5-e590bca36d0f/Plan4_squooshed.jpg?format=1000w" width="1351" height="1336" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/58dd3dc1-7bb0-4c99-aeb5-e590bca36d0f/Plan4_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/58dd3dc1-7bb0-4c99-aeb5-e590bca36d0f/Plan4_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/58dd3dc1-7bb0-4c99-aeb5-e590bca36d0f/Plan4_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/58dd3dc1-7bb0-4c99-aeb5-e590bca36d0f/Plan4_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/58dd3dc1-7bb0-4c99-aeb5-e590bca36d0f/Plan4_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/58dd3dc1-7bb0-4c99-aeb5-e590bca36d0f/Plan4_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/58dd3dc1-7bb0-4c99-aeb5-e590bca36d0f/Plan4_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
          
        

        
      
        </figure>
      

    
  


  



  
  <p class="">One downside of this plan is that I need to have a dedicated access point for endurance mode (added cost). Finding a solution for the access point is a bit more complicated. I have a few options:</p><ul data-rte-list="default"><li><p class="">Do nothing, just use the built-in WiFi on the travel router. This costs me nothing (power-wise) and initial tests suggested that it does have an astonishing broadcast strength in ideal conditions, where I plan to mount the unit (magnetized to a sheet of steel), the performance will suffer substantially</p></li><li><p class="">Get another dedicated EAP225 (13W). I know the entire [wireless] network can be driven off a single EAP225 and this would be one of the cheapest (money and power) option</p></li><li><p class="">Move my current EAP225 (13W) to be used in endurance mode and get a new access point to use as my ‘main AP’</p></li></ul><p class="">This last option now lets me consider getting the first WiFi 6 (or even 6E) support in the house. There are a few candidates:</p><ul data-rte-list="default"><li><p class="">EAP690E HD - 51W(!!), WiFi 6E, quad-band, massive throughput, not available yet</p></li><li><p class="">EAP680E HD - power values not known yet (guessing 40W), WiFi 6E, tri band, not available yet</p></li><li><p class="">EAP660 HD / EAP670 - 22W, WiFi 6, dual-band only</p></li><li><p class="">EAP610 / EAP620HD / EAP650 - 15W, WiFi 6, dual-band only</p></li></ul>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="">Ultimately, I settled on the EAP690E HD as it was the no-compromise, check-all-the-boxes option. At time of writing, it’s not available yet, but I wanted to get everything ready so that, if the product reviews were positive, I could simply buy it, install it and be done. This is where I ran into the only (amusing) hiccup. The AP is damn <em>huge</em>. I was planning on stuffing it into the drop-ceiling, between joists but at over 11” in diameter, the specific spot I was planning on, didn’t work out.</p><p class="">I opted to move the AP location to a nearby spot and threw together a quick platform to simply place the future AP (for now, since the EAP225 is acting as my ‘main’ AP, I have that wired up there). </p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/883da4fd-60e6-4a8b-b9cf-3872ce843ece/DPN01589_squooshed.jpg" data-image-dimensions="2500x1753" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/883da4fd-60e6-4a8b-b9cf-3872ce843ece/DPN01589_squooshed.jpg?format=1000w" width="2500" height="1753" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/883da4fd-60e6-4a8b-b9cf-3872ce843ece/DPN01589_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/883da4fd-60e6-4a8b-b9cf-3872ce843ece/DPN01589_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/883da4fd-60e6-4a8b-b9cf-3872ce843ece/DPN01589_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/883da4fd-60e6-4a8b-b9cf-3872ce843ece/DPN01589_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/883da4fd-60e6-4a8b-b9cf-3872ce843ece/DPN01589_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/883da4fd-60e6-4a8b-b9cf-3872ce843ece/DPN01589_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/883da4fd-60e6-4a8b-b9cf-3872ce843ece/DPN01589_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Platform that can support the bigger access points (and give me easy access to it, if needed)</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">For the time being (while I wait for the access point to be released), I’ll need to do one additional step of moving the access point from the main network to the endurance network (and then back, when the power is restored). Once the AP is released, this won’t need to be done.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="future">Looking ahead</h3>
  


  
  <p class="">As a follow up to Project Endurance, I’d like to look at splitting up the UPS coverage for the network to provide dedicated power coverage for certain devices (i.e., each NAS to be caught by a dedicated UPS).</p><p class="">The next network purchase will likely be the <a href="https://www.tp-link.com/us/business-networking/omada-sdn-access-point/eap690e-hd/" target="_blank">TP-Link EAP690E HD</a> (again, assuming no glaring issues with reviews) followed by a router upgrade. The router I was waiting for, the <a href="https://amzn.to/3TlMQvV" target="_blank">TP-Link ER8411</a> is due to be released soon but I’m not in a rush to transition since my ISP doesn’t yet offer faster-than-gigabit speeds anyways.</p><p class="">Of course, in a never ending push of technology (and father time), my current main NAS (DS1817+ with 10G) is definitely getting long in the tooth, particularly re: running VMs — I really want to have VMs running off NVME SSDs for the next NAS, so this is something that I’ll need to keep an eye on over the next few years. In the meantime, I think I’d like to get a <a href="https://amzn.to/3fyHEHj" target="_blank">2x10G NIC</a> for my NAS so that I can keep the 2.5G (or less) traffic from congesting the 10G flow. While I’m in there, I might upgrade the fans in the NAS to <a href="https://amzn.to/3EdWZp9" target="_blank">Noctuas</a> not because I’m having issues with the stock fans but to get in front of issues that will inevitably come along.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c104fff4-d330-4235-8dcf-2d85b8ebacc2/DPN01590+4_squooshed.jpg" data-image-dimensions="2500x4232" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c104fff4-d330-4235-8dcf-2d85b8ebacc2/DPN01590+4_squooshed.jpg?format=1000w" width="2500" height="4232" sizes="(max-width: 640px) 100vw, (max-width: 767px) 33.33333333333333vw, 33.33333333333333vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c104fff4-d330-4235-8dcf-2d85b8ebacc2/DPN01590+4_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c104fff4-d330-4235-8dcf-2d85b8ebacc2/DPN01590+4_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c104fff4-d330-4235-8dcf-2d85b8ebacc2/DPN01590+4_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c104fff4-d330-4235-8dcf-2d85b8ebacc2/DPN01590+4_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c104fff4-d330-4235-8dcf-2d85b8ebacc2/DPN01590+4_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c104fff4-d330-4235-8dcf-2d85b8ebacc2/DPN01590+4_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c104fff4-d330-4235-8dcf-2d85b8ebacc2/DPN01590+4_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
      
        </figure>
      

    
  


  



  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />&nbsp;










































  

    

      <figure data-test="image-block-v2-outer-wrapper" data-sqsp-image-classic-block-layout="card" class="
            sqs-block-image-figure
            image-block-outer-wrapper
            image-block-v2
            design-layout-card
            combination-animation-site-default
            individual-animation-site-default
            individual-text-animation-site-default
            image-position-left
            image-linked
          " data-scrolled
      >

        
          
            
            
              
              
              
              
              
              
              
              <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png" data-image-dimensions="1500x806" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=1000w" width="1500" height="806" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/18594bb8-c67c-4b2b-b891-3a99440d4730/Logo_Squooshed.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

              
            
          
            
          

        

        
          
          <figcaption data-width-ratio class="image-card-wrapper">
            

              
                <h2>Network Update (2022.3)</h2>
              

              
                <p class="">In the previous installment, I finish getting the ethernet runs in place and get basic DNS sinkholing setup with Pi-hole.</p>
              

              
                
                  
                    
                      <a data-sqsp-image-classic-block-link-button href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-3" class="sqs-button-element--primary">Read More</a>
                    
                  
                
              

            
          </figcaption>
        

      </figure>

    

  


&nbsp;
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/png" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1668024733779-G7995CSE7SITNOWM8PNU/Logo_Squooshed.png?format=1500w" medium="image" isDefault="true" width="1500" height="806"><media:title type="plain">Upgrading my Networking Gear (2022.4)</media:title></media:content></item><item><title>Upgrading my Networking Gear (2022.3)</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Fri, 04 Nov 2022 21:10:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/networking-upgrade-2022-3</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:636478e39f327858eba24886</guid><description><![CDATA[In the last installment, I tackled redundancy and made preparations for 
getting the final bits of networking laid down. In this update: the last of 
the cable has been laid down and all of the major pieces of equipment are 
in place, so I can take a bit of time to finally give some attention to 
improving the day-to-day usability of the network.]]></description><content:encoded><![CDATA[<p class="">When I had left off with the <a href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-2" target="_blank">last update</a>, I had a few bits of pre-requisite infrastructure work left to be done most of which can be summarized as “run a bunch of ethernet cables all over the place”.  Since then, this work has been completed and all of the major networking pieces are in place (for now). This means I can work on refining the configuration and usability of the network.</p>


  






  



<hr />&nbsp;
  
  <p class="sqsrte-large">Networking Series</p><p class="">This post is part of a series, check out the other posts!</p>


  






  



<hr />&nbsp;
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#step-1">Hardware changes</a></p><ul data-rte-list="default"><li><p class=""><a href="#step-1a">Ethernet runs</a></p></li><li><p class=""><a href="#step-1b">Tuning the outdoor coverage</a></p></li><li><p class=""><a href="#step-1c">Indoor APs</a></p></li></ul></li><li><p class=""><a href="#step-2">Ad-Blocking</a></p><ul data-rte-list="default"><li><p class=""><a href="#step-2a">DNS Sinkholing</a></p></li><li><p class=""><a href="#step-2b">Raspberry Pi</a></p></li><li><p class=""><a href="#step-2c">Getting sidetracked by tragedy</a></p></li></ul></li><li><p class=""><a href="#future">Looking ahead</a></p></li></ul>


  






  



<hr />
  
    <h3 id="step-1">Hardware changes</h3>
  


  
    <h4 id="step-1a">Ethernet runs</h4>
  


  
  <p class="">At the end of the previous update, I was waiting on getting the rest of the house wired up; we had determined that the easiest/cleanest way to run the ethernet was via the outside of the house so I had run ethernet lines from my network hub to a staging area near the side of the house. Pre-terminating the ethernet ends and using couplers gave me two benefits:</p><ol data-rte-list="default"><li><p class="">I could finish getting the connections in the rack complete and get all of the runs in the ceiling tidied up beforehand and,</p></li><li><p class="">If there was ever a problem with a line running out of the house, I could troubleshoot more easily (rather than having to dig inside my rack) and if needed, I could (in theory), replace individual lines more easily</p></li></ol><p class="">I made extensive use of <a href="https://amzn.to/3h4pPjz" target="_blank">Cord Dotz</a>  to ensure that all of the runs were as well-labelled as can be — in the event of failure, I didn’t want to have to sift through a sea of identical-cables to determined which was which.</p><p class="">Ultimately, I ran seven lines out of the house:</p><ul data-rte-list="default"><li><p class="">Three for cameras</p></li><li><p class="">One for an outdoor access point</p></li><li><p class="">Two going to my wife’s upstairs office</p></li><li><p class="">One going to the living room to provide a hard-line to the living room TV</p></li></ul><blockquote><p class="sqsrte-large">Pro-tip</p><p class="">When choosing conduit, always size <em>up</em> — trying to go with a smaller conduit to reduce the ‘aesthetic impact’ is totally not worth the exponential increase in effort trying to snake a crap-ton of ethernet cables around bends etc.</p></blockquote>


  






  



&nbsp;










































  

    

      <figure data-test="image-block-v2-outer-wrapper" data-sqsp-image-classic-block-layout="collage" class="
            sqs-block-image-figure
            image-block-outer-wrapper
            image-block-v2
            design-layout-collage
            combination-animation-site-default
            individual-animation-site-default
            individual-text-animation-site-default
            image-position-left
            
          " data-scrolled
      >

        
          
            
            
              
              
              
              
              
              
              
              <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89417248-914a-484d-95ea-e2e7c7a11d14/outdoorAP2_squooshed.jpg" data-image-dimensions="834x1178" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89417248-914a-484d-95ea-e2e7c7a11d14/outdoorAP2_squooshed.jpg?format=1000w" width="834" height="1178" sizes="(max-width: 640px) 100vw, (max-width: 767px) 66.66666666666666vw, 66.66666666666666vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89417248-914a-484d-95ea-e2e7c7a11d14/outdoorAP2_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89417248-914a-484d-95ea-e2e7c7a11d14/outdoorAP2_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89417248-914a-484d-95ea-e2e7c7a11d14/outdoorAP2_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89417248-914a-484d-95ea-e2e7c7a11d14/outdoorAP2_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89417248-914a-484d-95ea-e2e7c7a11d14/outdoorAP2_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89417248-914a-484d-95ea-e2e7c7a11d14/outdoorAP2_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/89417248-914a-484d-95ea-e2e7c7a11d14/outdoorAP2_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

              
            
          
            
          

        

        
          
          <figcaption data-width-ratio class="image-card-wrapper">
            

              
                <p class="sqsrte-large">The final result</p>
              

              
                <p class="">This is ultimately what we set out to do: get two ethernet lines into the office on the other side of the wall and mount an access point for outdoor coverage. </p><p class="">Electrical boxes always look so <em>massive</em> in-hand until you find yourself trying to wrangle four sets of ethernet cable <em>and</em> some couplers - then you’ll be cursing at just how tiny everything is!</p>
              

              

            
          </figcaption>
        

      </figure>

    

  


&nbsp;
  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-1b">Tuning the outdoor coverage</h4>
  


  
  <p class="">The one last step to do was to tinker with the orientation of the antennae to maximize coverage in the backyard. This was <em>quite</em> tedious actually as there were <em>so many permutations</em> to try out; I settled on trying the antenna at 45° intervals (angle and rotation) and for each configuration, I took a heat-map.</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/69475cfe-6a74-4aa5-bcee-0e84e2b7afc5/HeatMap.gif" data-image-dimensions="833x515" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/69475cfe-6a74-4aa5-bcee-0e84e2b7afc5/HeatMap.gif?format=1000w" width="833" height="515" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/69475cfe-6a74-4aa5-bcee-0e84e2b7afc5/HeatMap.gif?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/69475cfe-6a74-4aa5-bcee-0e84e2b7afc5/HeatMap.gif?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/69475cfe-6a74-4aa5-bcee-0e84e2b7afc5/HeatMap.gif?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/69475cfe-6a74-4aa5-bcee-0e84e2b7afc5/HeatMap.gif?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/69475cfe-6a74-4aa5-bcee-0e84e2b7afc5/HeatMap.gif?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/69475cfe-6a74-4aa5-bcee-0e84e2b7afc5/HeatMap.gif?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/69475cfe-6a74-4aa5-bcee-0e84e2b7afc5/HeatMap.gif?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true" class="">A few of the WiFi heat-maps I generated from walking around the yard, testing the signal out — I got my steps in!</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">It makes sense that tinkering with the angle and rotation of the antennae would make a difference in signal quality but I was quite surprised to see just how substantial the difference would be, visually. I used <a href="https://play.google.com/store/apps/details?gl=US&amp;hl=en_CA&amp;id=com.ubnt.usurvey" target="_blank">WiFiman</a> app to take the heat-maps. </p><p class=""><em>Something to note</em>: while your first instinct might be to maximize the signal throughout the entire space, you may want to reconsider and have the fall-off happen as you start to near the edge of your property (both for security and general WiFi ‘tidiness’ reasons). This is where having a heatmap can really help you visualize where to start cutting off your signal.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step=1c">Indoor APs</h4>
  


  
  <p class="">For the living room and the upstairs office, I made use of wall access points (specifically the <a href="https://amzn.to/3t3TxI8" target="_blank">TP-Link EAP-235 Wall</a>)  I primarily chose this as a means of ‘getting a bunch of connections to the wall with just a single cable’ and the increased overall wireless coverage was purely a side benefit. Obviously, connecting three downstream devices simultaneously would cut the available bandwidth down to (roughly) 333 Mbit/s (at worst) but in some applications it may not matter. </p>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Compact formfactor" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667568325951-VCYA02MAMD5AI8XV3HZV/wall2_squooshed.jpg" role="button" aria-labelledby="636512c517da1e5642488834-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667568325951-VCYA02MAMD5AI8XV3HZV/wall2_squooshed.jpg" data-image-dimensions="800x800" data-image-focal-point="0.5,0.5" alt="Compact formfactor" data-load="false" data-image-id="636512c517da1e5642488834" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667568325951-VCYA02MAMD5AI8XV3HZV/wall2_squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Compact formfactor
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Takes a single ethernet through the back" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667568326367-QB5202TENOH1U66B4NPZ/wall3_squooshed.jpg" role="button" aria-labelledby="636512c697f68c64fd0a025e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667568326367-QB5202TENOH1U66B4NPZ/wall3_squooshed.jpg" data-image-dimensions="800x800" data-image-focal-point="0.5,0.5" alt="Takes a single ethernet through the back" data-load="false" data-image-id="636512c697f68c64fd0a025e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667568326367-QB5202TENOH1U66B4NPZ/wall3_squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Takes a single ethernet through the back
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Provides WiFi and three downstream connections" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667568325871-OS54BC1BP1541TKLL16Y/wall1_squooshed.jpg" role="button" aria-labelledby="636512c540466065d4951d63-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667568325871-OS54BC1BP1541TKLL16Y/wall1_squooshed.jpg" data-image-dimensions="800x800" data-image-focal-point="0.5,0.5" alt="Provides WiFi and three downstream connections" data-load="false" data-image-id="636512c540466065d4951d63" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667568325871-OS54BC1BP1541TKLL16Y/wall1_squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Provides WiFi and three downstream connections
                
              
            
          

          
        

      
    
  

  











  
  <p class="">For my applications, I was planning on only using one port at a time and the other two would just be a bonus; in the case of the upstairs office, I had a second cable run to provide 2.5G/10G as a dedicated higher speed line.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="step-2">Ad-blocking</h3>
  


  
    <h4 id="step-2a">DNS sinkholing</h4>
  


  
  <p class="">Nobody likes ads and while I can understand the need for ads, what I dislike more are ‘bad’ websites - and I don’t mean “we’re going to hack you” (although those aren’t nice either) — I mean websites that are just done <em>poorly</em>. Also: why is it that the “important” websites (i.e., banking, government, taxes etc.) all just coincidentally happen to be built like crap? On the angle of ads, while I don’t mind the occasional ad, my god, some sites are just absolutely <em>littered</em> with them and it always seems to be super obnoxious ads too.</p><p class="">With the rest of the centralized networking in place, it made sense to finally look at centralizing ad- and malware-blocking. I went with a two prong solution of <a href="https://pi-hole.net" target="_blank"><strong>Pi-Hole</strong></a> and a private DNS provider like <a href="https://nextdns.io" target="_blank"><strong>NextDNS</strong></a>. </p><p class="">Pi-Hole is a system that I manage/control and NextDNS (or similar) is a third party provider: both of these systems work by filtering web requests based on the domain-name: so for example, if you know that ads are being served by ads.somewebsite.com, you can block requests going to that url. The advantage here is that any device that connects through Pi-Hole (or NextDNS) will be ‘protected’ without any additional configuration. </p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e2307b22-7cc7-4317-994c-cd7c95082917/DnsCompare.jpg" data-image-dimensions="2345x723" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e2307b22-7cc7-4317-994c-cd7c95082917/DnsCompare.jpg?format=1000w" width="2345" height="723" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e2307b22-7cc7-4317-994c-cd7c95082917/DnsCompare.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e2307b22-7cc7-4317-994c-cd7c95082917/DnsCompare.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e2307b22-7cc7-4317-994c-cd7c95082917/DnsCompare.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e2307b22-7cc7-4317-994c-cd7c95082917/DnsCompare.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e2307b22-7cc7-4317-994c-cd7c95082917/DnsCompare.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e2307b22-7cc7-4317-994c-cd7c95082917/DnsCompare.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/e2307b22-7cc7-4317-994c-cd7c95082917/DnsCompare.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
          
        

        
      
        </figure>
      

    
  


  



  
  <blockquote><p class="sqsrte-large">Why use two systems?</p><p class="">The big differentiator here is that the Pi-Hole is really only [easily] accessible from <em>within</em> my network. For devices like my phone which I use in and out of the home, I wanted a solution that would provide me some ad- and malware-blocking out of the home as well. </p><p class="">It’s possible to use Pi-Hole out of the home but (at least for how I have it configured, using via VPN), it’s not a great experience. Next DNS has a free tier that allows for 300K queries per month which is perfect for running two phones.</p></blockquote><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-2b">Raspberry Pi</h4>
  


  
  <p class="">Pi-Hole can be run on a variety of platforms and a popular option is to run it using <a href="https://hub.docker.com/r/pihole/pihole" target="_blank">Docker</a> however I opted to run Pi-Hole as a standalone appliance using a dedicated Raspberry Pi.</p><blockquote><p class="sqsrte-large">A love-hate (almost entirely -hate) relationship with Docker</p><p class="">I really like the <em>idea</em> of Docker: run a bunch of lightweight things that spin up and down easy-peasy. It’s all sunshine and rainbows except either [a] I want to encapsulate things that aren’t services (i.e., give me <em>Photoshop</em> as a Docker container) or [b] the stuff I want to run wants <em>all-the-performance</em> (i.e., video encoding) where the “low-power, low-footprint” ethos doesn’t really mesh well. </p></blockquote><p class="">I like the idea of a dedicated, single-tasking <em>thing </em>that does one thing (DNS stuff) and does it well. I went with a <a href="https://amzn.to/3EJwdH0" target="_blank">Raspberry Pi 4 (8G)</a>  which I nabbed before prices went <em>too stupid</em>. I used a <a href="https://amzn.to/3MMIrAJ" target="_blank">passive mountable enclosure</a> to let me magnet-mount it to the side of the rack to keep the clutter down. </p>


  






  



&nbsp;


  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Totally passive case" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;No moving parts to fail, no noise to make&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667580885102-CTP3LQ68UW2Q3EFQ9FHY/IMG_20220813_181327_squooshed.jpg" role="button" aria-labelledby="636543d4356d8b5f74b05463-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667580885102-CTP3LQ68UW2Q3EFQ9FHY/IMG_20220813_181327_squooshed.jpg" data-image-dimensions="2000x900" data-image-focal-point="0.42857142857142855,0.5087594696969697" alt="Totally passive case" data-load="false" data-image-id="636543d4356d8b5f74b05463" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667580885102-CTP3LQ68UW2Q3EFQ9FHY/IMG_20220813_181327_squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Totally passive case
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Magnet mount" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Just a small magnet recessed into some plywood to allow me to stick this to the side of the rack&lt;/p&gt;" data-lightbox-theme="" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667580885229-FICCRJVOJO3CKXEBBG8R/IMG_20220813_181332_squooshed.jpg" role="button" aria-labelledby="636543d4760381011f53f977-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667580885229-FICCRJVOJO3CKXEBBG8R/IMG_20220813_181332_squooshed.jpg" data-image-dimensions="4000x1800" data-image-focal-point="0.46938775510204084,0.19057765151515152" alt="Magnet mount" data-load="false" data-image-id="636543d4760381011f53f977" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667580885229-FICCRJVOJO3CKXEBBG8R/IMG_20220813_181332_squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Magnet mount
                
              
            
          

          
        

      
    
  

  










&nbsp;
  
  <p class="">I didn’t need the top of the line model but with the inflated prices, it was only a few bucks to max out the RAM so it made sense. At some point, I’d like to get a <em>second</em> Raspberry Pi and run a second [dedicated] Pi-Hole instance: this way I can do updates/maintenance on one Raspberry Pi without impacting the network as a whole. Given the chip (and Pi-specific) shortage, it’ll be awhile before I can tackle this.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="step-2c">Getting sidetracked by tragedy</h4>
  


  
  <p class="">Once I got my Pi-Hole in a good steady state, I made the move to run it from a SD card to a USB key and then finally a SSD. I’m not a Linux expert by any means so one thing I did learn to do was to make sure I had multiple backup copies of <em>everything</em>. </p><p class="">When setting up initially, I went for the full-fat GUI experience — the <em>only</em> thing this Pi was going to do was run Pi-Hole so there was <em>plenty</em> of horsepower left to run VNC and a GUI. Leveraging the easy-mode “SD Card Copier” makes things so much less annoying than trying to brute-force copy SD-cards. Fully expecting SD cards, USB keys and even SSDs to fail, I made multiple copies of everything as cold-spares</p><p class="">Nevertheless, <em>something </em>did go wrong. One time, when I was powering down the Pi, I tried powering it back up and was in Kernel Panic, unable to mount partition mode. I was <em>not</em> in the mood to troubleshoot this (esp. as a relative noob), so I went with the nuclear option: just reimage the SSD back to a backup, I lose a bit of configuration but I’m back up and running shortly. This was a very long night and even though I ultimately got back up and running, I’m not entirely sure <em>why</em> it broke or how it is working again now with effectively no change..</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="true" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/325430d9-caff-46cc-af8d-eae9798a2119/Troubleshoot_Squooshed.jpg" data-image-dimensions="2000x1324" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/325430d9-caff-46cc-af8d-eae9798a2119/Troubleshoot_Squooshed.jpg?format=1000w" width="2000" height="1324" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/325430d9-caff-46cc-af8d-eae9798a2119/Troubleshoot_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/325430d9-caff-46cc-af8d-eae9798a2119/Troubleshoot_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/325430d9-caff-46cc-af8d-eae9798a2119/Troubleshoot_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/325430d9-caff-46cc-af8d-eae9798a2119/Troubleshoot_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/325430d9-caff-46cc-af8d-eae9798a2119/Troubleshoot_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/325430d9-caff-46cc-af8d-eae9798a2119/Troubleshoot_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/325430d9-caff-46cc-af8d-eae9798a2119/Troubleshoot_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">Ultimately a very confusing night…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  













































  

    

      <figure data-test="image-block-v2-outer-wrapper" data-sqsp-image-classic-block-layout="card" class="
            sqs-block-image-figure
            image-block-outer-wrapper
            image-block-v2
            design-layout-card
            combination-animation-site-default
            individual-animation-site-default
            individual-text-animation-site-default
            image-position-right
            
          " data-scrolled
      >

        
          
            
            
              
              
              
              
              
              
              
              <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4832d4c2-14f6-4df2-99b5-14c4a69b46bd/working_meme_squooshed.jpg" data-image-dimensions="625x477" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4832d4c2-14f6-4df2-99b5-14c4a69b46bd/working_meme_squooshed.jpg?format=1000w" width="625" height="477" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4832d4c2-14f6-4df2-99b5-14c4a69b46bd/working_meme_squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4832d4c2-14f6-4df2-99b5-14c4a69b46bd/working_meme_squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4832d4c2-14f6-4df2-99b5-14c4a69b46bd/working_meme_squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4832d4c2-14f6-4df2-99b5-14c4a69b46bd/working_meme_squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4832d4c2-14f6-4df2-99b5-14c4a69b46bd/working_meme_squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4832d4c2-14f6-4df2-99b5-14c4a69b46bd/working_meme_squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/4832d4c2-14f6-4df2-99b5-14c4a69b46bd/working_meme_squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

              
            
          
            
          

        

        
          
          <figcaption data-width-ratio class="image-card-wrapper">
            

              
                <p class="sqsrte-large">Super confusing</p>
              

              
                <p class="">Ultimately, I have no idea why the initial drive stopped working, why the backup images and cold-spare drives (which were all tested previously) refused to work and then, magically, it started working again. At the end of the (very long) night, I was back up and running in the exact same configuration I had before this mess.</p>
              

              

            
          </figcaption>
        

      </figure>

    

  


&nbsp;<hr />&nbsp;
  
  <p class="">From previous testing with the equipment involved, I had determined the Raspberry Pi is unable to boot using the [SATA - USB B] and I quickly determined that <em>this time, </em>the SD Card Copier was unable to deal with [SATA - USB A]. After a handful of hours, I eventually got everything back and working again (albeit with a month old configuration). I had been <em>meaning to</em> get backups and synchronization setup but just didn’t get around to it. This was the push I needed 😉</p><p class="">To do this, I created a shared folder on the NAS as well as a new set of credentials with access to this share. Then, on the Raspberry Pi, create a convenient script (I put mine as <strong>/usr/local/bin/pi-backup</strong>) and I added the following:</p>


  






  



&nbsp;<p><code data-preserve-html-node="true">#!/bin/sh</code></p><code data-preserve-html-node="true"><p>sudo umount ~/<span>some_folder_name</span>  <span>|| /bin/true  </span> </p>
<p>sudo mount -t cifs -o username=<span>NAS_user</span>,password=<span>NAS_password</span>,uid=1000 //<span>NAS_IP</span>/<span>NAS_shared_folder_name</span> ~/<span>some_folder_name</span>  </p>
<p>cd ~/<span>some_folder_name</span>/<span>Pi1</span>  </p></code><p><code data-preserve-html-node="true">pihole -a -t</code>  </p>
<p>This should mostly be straightforward, the only two things of note are:</p>
<ol>
<li>The <span data-preserve-html-node="true">|| /bin/true  </span>  is appended to ignore any errors unmounting the NAS drive (i.e., if the drive wasn't mounted in the first place)</li>
<li>I added a subfolder <span data-preserve-html-node="true">Pi1</span> so that each individual Raspberry Pi could have its own distinct configuration backup</li>
</ol>


  
  <p class="">I modified the file for execute privileges (<strong>sudo chmod +x /usr/local/bin/pi-backup</strong>) and now I can quickly create a backup of the Pi-Hole configuration with just a simple call. Easily adjustable so that each [future] Raspberry Pi has a copy of this to be able to back it up. This leverages the built-in <a href="https://docs.pi-hole.net/core/pihole-command/#teleport" target="_blank">Teleport</a> command to perform the configuration backup.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="future">Looking ahead</h3>
  


  
  <p class="">I’d like to go down the rabbit hole of Raspberry Pi a bit more; at the very least, I’d like to run another unit as a failover — this way I can do maintenance/updates on one (or suffer some kind of failure) without being a pain on the network as a whole. I’d also like to get a couple more units to play around with Home Assistant and as a VPN box. With this many units, I’d be running out of space to magnet-mount them on the side of the rack so I would probably look at something like a <a href="https://amzn.to/3WelXwG" target="_blank">POE rack-mount</a>.</p><p class="">Over the upcoming year-end break I’d like to spend some time to tackle (or at least start looking at) two things:</p><ol data-rte-list="default"><li><p class="">Replacing the fans on my NAS units with some <a href="https://amzn.to/3A80z2T" target="_blank">Noctua fans</a>; nothing currently wrong with the fans on there but they are more than a few years old now and I’d like to get ahead of any potential problems while I have a break</p></li><li><p class="">Following the <em>weirdness </em>(for lack of a better word) with the Raspberry Pi and also as a follow up to my <a href="https://www.minmaxgeek.com/blog/data-loss" target="_blank">Data Loss</a>, I’d like to spend some time to refine my data backup strategy to make it more robust.</p></li></ol><p class="">All of this is me trying to avoid the big problem on the horizon: that I’ve effectively ran out of rackspace. At some point (next year perhaps?), I’ll consider going for a four-post rack and “finally” be done. Ish.</p><p class="">I have an idea for an upcoming [networking] mini-project thought, ‘Project Endurance’.  That’ll be the next update!</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />&nbsp;










































  

    

      <figure data-test="image-block-v2-outer-wrapper" data-sqsp-image-classic-block-layout="card" class="
            sqs-block-image-figure
            image-block-outer-wrapper
            image-block-v2
            design-layout-card
            combination-animation-site-default
            individual-animation-site-default
            individual-text-animation-site-default
            image-position-left
            image-linked
          " data-scrolled
      >

        
          
            
            
              
              
              
              
              
              
              
              <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/fc43e1ed-12ec-47be-8975-5b37fdcdddca/Logo_Squooshed.png" data-image-dimensions="1500x806" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/fc43e1ed-12ec-47be-8975-5b37fdcdddca/Logo_Squooshed.png?format=1000w" width="1500" height="806" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/fc43e1ed-12ec-47be-8975-5b37fdcdddca/Logo_Squooshed.png?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/fc43e1ed-12ec-47be-8975-5b37fdcdddca/Logo_Squooshed.png?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/fc43e1ed-12ec-47be-8975-5b37fdcdddca/Logo_Squooshed.png?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/fc43e1ed-12ec-47be-8975-5b37fdcdddca/Logo_Squooshed.png?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/fc43e1ed-12ec-47be-8975-5b37fdcdddca/Logo_Squooshed.png?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/fc43e1ed-12ec-47be-8975-5b37fdcdddca/Logo_Squooshed.png?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/fc43e1ed-12ec-47be-8975-5b37fdcdddca/Logo_Squooshed.png?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

              
            
          
            
          

        

        
          
          <figcaption data-width-ratio class="image-card-wrapper">
            

              
                <h2>Network Upgrade (2022.2)</h2>
              

              
                <p class="">In the second installment of my networking upgrades, I tackle redundancy and tidying up the overall network as I get ready for the final networking runs to be laid.</p>
              

              
                
                  
                    
                      <a data-sqsp-image-classic-block-link-button href="https://www.minmaxgeek.com/blog/networking-upgrade-2022-2" class="sqs-button-element--primary">Read More</a>
                    
                  
                
              

            
          </figcaption>
        

      </figure>

    

  


&nbsp;
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/png" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1667595467074-6TZWTQX24QXMA7CY6C18/Logo_Squooshed.png?format=1500w" medium="image" isDefault="true" width="1500" height="806"><media:title type="plain">Upgrading my Networking Gear (2022.3)</media:title></media:content></item><item><title>A smartwatch as a notification relay</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Fri, 16 Sep 2022 20:55:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/smart-watch</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:63247a0b5e6e2e303b255b42</guid><description><![CDATA[The snappiness of my new phone was a bit out of place with the sluggishness 
of my old smartwatch so I set out to ‘just take a look’ at what options are 
on the market. Just looking at the headline features of almost every 
smartwatch out there, you’d think the user-base consists entirely of 
olympians and/or sleep-apnea patients. Thankfully my needs are a bit 
simpler: just reliably relay notifications to my watch.]]></description><content:encoded><![CDATA[<p class="">My wife bought me a <a href="https://www.samsung.com/us/mobile/wearables/smartwatches/sm-r770nzsaxar-sm-r770nzsaxar/" target="_blank">Galaxy Watch S3 Classic</a>  a <em>ages</em> years ago when it first came out and after recently getting the <a href="https://www.minmaxgeek.com/blog/new-phones">new phones</a> setup, I was revisiting the thought of getting a new watch. Going against all the advice, recommendations and reviews out there, I ended up going with the <a href="https://www.oneplus.com/ca_en/oneplus-watch" target="_blank">OnePlus Watch</a>. I’m only a few days into the new watch but I acclimatize quickly — and the reviews are right: the feature set is a bit bare so there isn’t a whole lot to have to get used to. </p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#options">Selecting an upgrade</a></p><ul data-rte-list="default"><li><p class=""><a href="#upgrade-1">Samsung’s offerings</a></p></li><li><p class=""><a href="#upgrade-2">Re-evaluating my needs</a></p></li><li><p class=""><a href="#upgrade-3">What about the OnePlus watch?</a></p></li></ul></li><li><p class=""><a href="#review">So how does the OnePlus watch fare?</a></p></li><li><p class=""><a href="#fixing-google">Side quest to fix Chat/Hangouts notifications</a></p></li><li><p class=""><a href="#thoughts">The final verdict</a></p></li></ul>


  






  



<hr />
  
    <h3 id="options">Selecting an upgrade</h3>
  


  
    <h4 id="upgrade-1">Samsung's offerings</h4>
  


  
  <p class="">After enjoying the Gear S3 watch, I bought my wife the successor, the Galaxy Watch. I initially bought her the larger 46mm variant (prioritizing battery life) but that ended up being a bit too bulky so I returned that for the smaller 42mm variant. Of course, while setting it up, I took the time to play with it as well and it was <em>noticeably</em> more responsive. The 46mm and 42mm variants only really differed in their physical size (and thus the battery capacity) and were otherwise identical in performance</p>


  






  



&nbsp;
  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link rel="stylesheet" href="/s/sheet-no-overflow.css" type="text/css" >
<table cellpadding="0" cellspacing="0" class="waffle"><thead><tr><th class="row-header freezebar-origin-ltr"></th><th id="0C0" class="column-headers-background">A</th><th id="0C1" class="column-headers-background">B</th><th id="0C2" class="column-headers-background">C</th><th id="0C3" class="column-headers-background">D</th></tr></thead><tbody><tr><th id="0R0" class="row-headers-background">1</th><td class="s0"></td><td dir="ltr" class="s1">Gear S3</td><td dir="ltr" class="s1">Galaxy Watch (46mm)</td><td dir="ltr" class="s1">Galaxy Watch (42mm)</td></tr><tr><th id="0R1" class="row-headers-background">2</th><td dir="ltr" class="s2">Year Released</td><td dir="ltr" class="s3">2016</td><td dir="ltr" class="s3">2018</td><td dir="ltr" class="s3">2018</td></tr><tr><th id="0R2" class="row-headers-background">3</th><td dir="ltr" class="s2">Weight</td><td dir="ltr" class="s3">59g</td><td dir="ltr" class="s3">63g</td><td dir="ltr" class="s3">49g</td></tr><tr><th id="0R3" class="row-headers-background">4</th><td dir="ltr" class="s2">Screen size</td><td dir="ltr" class="s3">1.3&quot;</td><td dir="ltr" class="s3">1.3&quot;</td><td dir="ltr" class="s3">1.2&quot;</td></tr><tr><th id="0R4" class="row-headers-background">5</th><td dir="ltr" class="s2">Screen resolution</td><td dir="ltr" class="s3">360x360</td><td dir="ltr" class="s3">360x360</td><td dir="ltr" class="s3">360x360</td></tr><tr><th id="0R5" class="row-headers-background">6</th><td dir="ltr" class="s2">Always On Display</td><td dir="ltr" class="s3">yes</td><td dir="ltr" class="s3">yes</td><td dir="ltr" class="s3">yes</td></tr><tr><th id="0R6" class="row-headers-background">7</th><td dir="ltr" class="s2">Special Input</td><td dir="ltr" class="s3">Rotating Bezel</td><td dir="ltr" class="s3">Rotating Bezel</td><td dir="ltr" class="s3">Rotating Bezel</td></tr><tr><th id="0R7" class="row-headers-background">8</th><td dir="ltr" class="s2">Water/Dust Resistance</td><td dir="ltr" class="s3">IP68</td><td dir="ltr" class="s3">IP68</td><td dir="ltr" class="s3">IP68</td></tr><tr><th id="0R8" class="row-headers-background">9</th><td dir="ltr" class="s2">Protection</td><td dir="ltr" class="s3">Gorilla Glass SR+</td><td dir="ltr" class="s3">Gorilla Glass DX+</td><td dir="ltr" class="s3">Gorilla Glass DX+</td></tr><tr><th id="0R9" class="row-headers-background">10</th><td dir="ltr" class="s2">OS</td><td dir="ltr" class="s3">Tizen 5.5</td><td dir="ltr" class="s3">Tizen 5.5</td><td dir="ltr" class="s3">Tizen 5.5</td></tr><tr><th id="0R10" class="row-headers-background">11</th><td dir="ltr" class="s2">Chipset</td><td dir="ltr" class="s3">Exynos 7270</td><td dir="ltr" class="s4">Exynos 9110</td><td dir="ltr" class="s4">Exynos 9110</td></tr><tr><th id="0R11" class="row-headers-background">12</th><td dir="ltr" class="s2">CPU</td><td dir="ltr" class="s3">Dual-Core 1GHz</td><td dir="ltr" class="s4">Dual-Core 1.15GHz</td><td dir="ltr" class="s4">Dual-Core 1.15GHz</td></tr><tr><th id="0R12" class="row-headers-background">13</th><td dir="ltr" class="s2">RAM</td><td dir="ltr" class="s3">0.75GB</td><td dir="ltr" class="s4">1.5GB</td><td dir="ltr" class="s4">1.5GB</td></tr><tr><th id="0R13" class="row-headers-background">14</th><td dir="ltr" class="s2">Wi-Fi Support</td><td dir="ltr" class="s3">Wi-Fi 4 (N)</td><td dir="ltr" class="s3">Wi-Fi 4 (N)</td><td dir="ltr" class="s3">Wi-Fi 4 (N)</td></tr><tr><th id="0R14" class="row-headers-background">15</th><td dir="ltr" class="s2">Bluetooth Support</td><td dir="ltr" class="s3">4.2</td><td dir="ltr" class="s3">4.2</td><td dir="ltr" class="s3">4.2</td></tr><tr><th id="0R15" class="row-headers-background">16</th><td dir="ltr" class="s2">Battery Size</td><td dir="ltr" class="s3">380 mAh</td><td dir="ltr" class="s4">472 mAh</td><td dir="ltr" class="s5">270 mAh</td></tr><tr><th id="0R16" class="row-headers-background">17</th><td dir="ltr" class="s2">Charging</td><td dir="ltr" class="s6">Wireless</td><td dir="ltr" class="s6">Wireless</td><td dir="ltr" class="s6">Wireless</td></tr></tbody></table>
  

&nbsp;
  
  <p class="">Although the newer watch was definitely snappier, at the time (2018), there wasn’t a compelling reason to upgrade for the sake of upgrading since my watch was still plenty fine.  When we compare to Samsung’s modern offerings we can start to see some substantial improvements:</p>


  






  



&nbsp;
  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link rel="stylesheet" href="/s/sheet-no-overflow.css" type="text/css" >
<table cellpadding="0" cellspacing="0" class="waffle"><thead><tr><th class="row-header freezebar-origin-ltr"></th><th id="1722392641C0" class="column-headers-background">A</th><th id="1722392641C1" class="column-headers-background">B</th><th id="1722392641C2" class="column-headers-background">C</th><th id="1722392641C3" class="column-headers-background">D</th><th id="1722392641C4" class="column-headers-background">E</th></tr></thead><tbody><tr><th id="1722392641R0" class="row-headers-background">1</th><td class="s0"></td><td dir="ltr" class="s1">Gear S3</td><td dir="ltr" class="s1">Galaxy Watch (46mm)</td><td dir="ltr" class="s1">Galaxy Watch 4 Classic</td><td dir="ltr" class="s1">Galaxy Watch 5 Pro</td></tr><tr><th id="1722392641R1" class="row-headers-background">2</th><td dir="ltr" class="s2">Year Released</td><td dir="ltr" class="s3">2016</td><td dir="ltr" class="s3">2018</td><td dir="ltr" class="s3">2021</td><td dir="ltr" class="s3">2022</td></tr><tr><th id="1722392641R2" class="row-headers-background">3</th><td dir="ltr" class="s2">Weight</td><td dir="ltr" class="s3">59g</td><td dir="ltr" class="s3">63g</td><td dir="ltr" class="s3">52g</td><td dir="ltr" class="s3">47g</td></tr><tr><th id="1722392641R3" class="row-headers-background">4</th><td dir="ltr" class="s2">Screen size</td><td dir="ltr" class="s3">1.3&quot;</td><td dir="ltr" class="s3">1.3&quot;</td><td dir="ltr" class="s3">1.4&quot;</td><td dir="ltr" class="s3">1.4&quot;</td></tr><tr><th id="1722392641R4" class="row-headers-background">5</th><td dir="ltr" class="s2">Screen resolution</td><td dir="ltr" class="s3">360x360</td><td dir="ltr" class="s3">360x360</td><td dir="ltr" class="s4">450x450</td><td dir="ltr" class="s4">450x450</td></tr><tr><th id="1722392641R5" class="row-headers-background">6</th><td dir="ltr" class="s2">Always on display</td><td dir="ltr" class="s3">yes</td><td dir="ltr" class="s3">yes</td><td dir="ltr" class="s3">yes</td><td dir="ltr" class="s3">yes</td></tr><tr><th id="1722392641R6" class="row-headers-background">7</th><td dir="ltr" class="s2">Special Input</td><td dir="ltr" class="s3">Rotating Bezel</td><td dir="ltr" class="s3">Rotating Bezel</td><td dir="ltr" class="s5">None</td><td dir="ltr" class="s5">None</td></tr><tr><th id="1722392641R7" class="row-headers-background">8</th><td dir="ltr" class="s2">Water/Dust Resistance</td><td dir="ltr" class="s3">IP68</td><td dir="ltr" class="s3">IP68</td><td dir="ltr" class="s3">IP68</td><td dir="ltr" class="s3">IP68</td></tr><tr><th id="1722392641R8" class="row-headers-background">9</th><td dir="ltr" class="s2">Protection</td><td dir="ltr" class="s3">Gorilla Glass SR+</td><td dir="ltr" class="s3">Gorilla Glass DX+</td><td dir="ltr" class="s6">Gorilla Glass DX</td><td dir="ltr" class="s4">Sapphire</td></tr><tr><th id="1722392641R9" class="row-headers-background">10</th><td dir="ltr" class="s2">OS</td><td dir="ltr" class="s3">Tizen 5.5</td><td dir="ltr" class="s3">Tizen 5.5</td><td dir="ltr" class="s4">Android Wear</td><td dir="ltr" class="s4">Android Wear</td></tr><tr><th id="1722392641R10" class="row-headers-background">11</th><td dir="ltr" class="s2">Chipset</td><td dir="ltr" class="s3">Exynos 7270</td><td dir="ltr" class="s4">Exynos 9110</td><td dir="ltr" class="s4">Exynos W920</td><td dir="ltr" class="s4">Exynos W920</td></tr><tr><th id="1722392641R11" class="row-headers-background">12</th><td dir="ltr" class="s2">CPU</td><td dir="ltr" class="s3">Dual-Core 1GHz</td><td dir="ltr" class="s4">Dual-Core 1.15GHz</td><td dir="ltr" class="s4">Dual-Core 1.18Ghz</td><td dir="ltr" class="s4">Dual-Core 1.18Ghz</td></tr><tr><th id="1722392641R12" class="row-headers-background">13</th><td dir="ltr" class="s2">RAM</td><td dir="ltr" class="s3">0.75GB</td><td dir="ltr" class="s4">1.5GB</td><td dir="ltr" class="s4">1.5GB</td><td dir="ltr" class="s4">1.5GB</td></tr><tr><th id="1722392641R13" class="row-headers-background">14</th><td dir="ltr" class="s2">Wi-Fi Support</td><td dir="ltr" class="s3">Wi-Fi 4 (N)</td><td dir="ltr" class="s3">Wi-Fi 4 (N)</td><td dir="ltr" class="s3">Wi-Fi 4 (N) Dual-Band</td><td dir="ltr" class="s3">Wi-Fi 4 (N) Dual-Band</td></tr><tr><th id="1722392641R14" class="row-headers-background">15</th><td dir="ltr" class="s2">Bluetooth Support</td><td dir="ltr" class="s3">4.2</td><td dir="ltr" class="s3">4.2</td><td dir="ltr" class="s4">5.0</td><td dir="ltr" class="s4">5.2</td></tr><tr><th id="1722392641R15" class="row-headers-background">16</th><td dir="ltr" class="s2">Battery Size</td><td dir="ltr" class="s3">380 mAh</td><td dir="ltr" class="s4">472 mAh</td><td dir="ltr" class="s6">361 mAh</td><td dir="ltr" class="s4">590mAh</td></tr><tr><th id="1722392641R16" class="row-headers-background">17</th><td dir="ltr" class="s2">Charging</td><td dir="ltr" class="s7">Wireless</td><td dir="ltr" class="s7">Wireless</td><td dir="ltr" class="s7">Wireless</td><td dir="ltr" class="s8">Wireless Fast (10W)</td></tr></tbody></table>
  

&nbsp;
  
  <p class="">Looking at the modern watches, we can finally start to see a meaningful jump with the latest Galaxy Watch 5 Pro — which, of course, is the most <a href="https://amzn.to/3DvZzI0" target="_blank">expensive</a> — $500 at time of writing!! There are a few things of note:</p>


  






  
























  
  





<ul data-should-allow-multiple-open-items="" data-accordion-icon-placement="left" data-is-last-divider-visible="" data-is-expanded-first-item="" data-is-divider-enabled="true" data-accordion-title-alignment="left" class="accordion-items-container" data-is-first-divider-visible="" data-accordion-description-alignment="left" data-accordion-description-placement="left"
>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Chargers
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">It’s not immediately apparent just looking at a spreadsheet but Samsung changed the <a href="https://www.samsung.com/us/support/answer/ANS00088982/" target="_blank">style of charger</a> in 2019 so all my existing chargers would not work with any of the current generation watches. </p><p class="">This is annoying because Nicole’s watch would still be using the older charger so we would have to have multiple sets of chargers lying around (at least until I buy her a new watch). The second annoyance is that I like to keep multiple chargers in different places so it would be an added expense to deploy those chargers for the new watch.</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Goodbye rotating bezel
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">One of the best features of the Samsung watches was the brilliant use of the rotating bezel as an input mechanism - you had a solid, tactile <em>thing </em>that you could interact with to (literally) scroll through the watch interface with. I’m sure that the modern watches work just perfectly fine just using gestures and taps.</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Android Wear
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">No more Tizen OS! I’m not sure how I feel about this. In theory, Google Wear is a great thing as it makes apps and support so much less tedious. That being said, I never really had any problems with Tizen and our use case is pretty simple.</p>
        
      

      
        
      

    </li>
  
</ul>

  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="upgrade-2">Re-evaluating my needs</h4>
  


  
  <p class="">In light of the substantial asking price and the hassle of having to figure something out for charging the watch, I needed to figure out what I actually from my watch. It ends up being stupid simple:</p><ol data-rte-list="default"><li><p class="">Show me notifications from apps of my choosing</p></li><li><p class="">Provide a mechanism for “find my phone”</p></li><li><p class="">Be water resistant</p></li><li><p class="">Give me good battery life</p></li></ol><p class="">You will note that this list is devoid of the biggest talking point of the entire smartwatch and wearable space: health and fitness. Almost every smartwatch will offer <em>some</em> kind of basic fitness crap: heart rate monitoring, steps etc. so <em>even if I cared</em> about this stuff, the ‘basics’ should be present on almost every option.  For the most part, I’m treating the health and fitness functionality as whimsical party-tricks.</p><p class="">The big takeaway here is that, since health and fitness barely registers as a requirement, this opens up the doors to a lot more options (read: cheaper options).</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="upgrade-3">What about the OnePlus watch?</h4>
  


  
  <p class="">Coming off the heels of getting the phones setup, the first entry on my radar was the <a href="https://www.oneplus.com/ca_en/oneplus-watch" target="_blank">OnePlus watch</a>. From the way the watch is presented, it’s clear they focused on style over substance but if the watch manages to meet my needs <em>and </em>happens to be stylish? That would be a win all around.</p>


  






  



&nbsp;
  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link rel="stylesheet" href="/s/sheet-no-overflow.css" type="text/css" >
<table cellpadding="0" cellspacing="0" class="waffle"><thead><tr><th class="row-header freezebar-origin-ltr"></th><th id="117785589C0" class="column-headers-background">A</th><th id="117785589C1" class="column-headers-background">B</th><th id="117785589C2" class="column-headers-background">C</th><th id="117785589C3" class="column-headers-background">D</th></tr></thead><tbody><tr><th id="117785589R0" class="row-headers-background">1</th><td class="s0"></td><td dir="ltr" class="s1">Gear S3</td><td dir="ltr" class="s1">Galaxy Watch 5 Pro</td><td dir="ltr" class="s1">OnePlus Watch</td></tr><tr><th id="117785589R1" class="row-headers-background">2</th><td dir="ltr" class="s2">Year Released</td><td dir="ltr" class="s3">2016</td><td dir="ltr" class="s3">2022</td><td dir="ltr" class="s3">2021</td></tr><tr><th id="117785589R2" class="row-headers-background">3</th><td dir="ltr" class="s2">Weight</td><td dir="ltr" class="s3">59g</td><td dir="ltr" class="s3">47g</td><td dir="ltr" class="s3">45g</td></tr><tr><th id="117785589R3" class="row-headers-background">4</th><td dir="ltr" class="s2">Screen size</td><td dir="ltr" class="s3">1.3&quot;</td><td dir="ltr" class="s3">1.4&quot;</td><td dir="ltr" class="s3">1.4&quot;</td></tr><tr><th id="117785589R4" class="row-headers-background">5</th><td dir="ltr" class="s2">Screen resolution</td><td dir="ltr" class="s3">360x360</td><td dir="ltr" class="s4">450x450</td><td dir="ltr" class="s4">454x454</td></tr><tr><th id="117785589R5" class="row-headers-background">6</th><td dir="ltr" class="s2">Always on display</td><td dir="ltr" class="s3">yes</td><td dir="ltr" class="s3">yes</td><td dir="ltr" class="s3">yes</td></tr><tr><th id="117785589R6" class="row-headers-background">7</th><td dir="ltr" class="s2">Special Input</td><td dir="ltr" class="s3">Rotating Bezel</td><td dir="ltr" class="s5">None</td><td dir="ltr" class="s5">None</td></tr><tr><th id="117785589R7" class="row-headers-background">8</th><td dir="ltr" class="s2">Water/Dust Resistance</td><td dir="ltr" class="s3">IP68</td><td dir="ltr" class="s3">IP68</td><td dir="ltr" class="s3">IP68</td></tr><tr><th id="117785589R8" class="row-headers-background">9</th><td dir="ltr" class="s2">Protection</td><td dir="ltr" class="s3">Gorilla Glass SR+</td><td dir="ltr" class="s4">Sapphire</td><td dir="ltr" class="s5">None</td></tr><tr><th id="117785589R9" class="row-headers-background">10</th><td dir="ltr" class="s2">OS</td><td dir="ltr" class="s3">Tizen 5.5</td><td dir="ltr" class="s4">Android Wear</td><td dir="ltr" class="s6">Custom RTOS</td></tr><tr><th id="117785589R10" class="row-headers-background">11</th><td dir="ltr" class="s2">Chipset</td><td dir="ltr" class="s3">Exynos 7270</td><td dir="ltr" class="s4">Exynos W920</td><td dir="ltr" class="s4">STM32</td></tr><tr><th id="117785589R11" class="row-headers-background">12</th><td dir="ltr" class="s2">CPU</td><td dir="ltr" class="s3">Dual-Core 1GHz</td><td dir="ltr" class="s4">Dual-Core 1.18Ghz</td><td dir="ltr" class="s6">Not-specified</td></tr><tr><th id="117785589R12" class="row-headers-background">13</th><td dir="ltr" class="s2">RAM</td><td dir="ltr" class="s3">0.75GB</td><td dir="ltr" class="s4">1.5GB</td><td dir="ltr" class="s4">1GB</td></tr><tr><th id="117785589R13" class="row-headers-background">14</th><td dir="ltr" class="s2">Wi-Fi Support</td><td dir="ltr" class="s3">Wi-Fi 4 (N)</td><td dir="ltr" class="s3">Wi-Fi 4 (N) Dual-Band</td><td dir="ltr" class="s6">None</td></tr><tr><th id="117785589R14" class="row-headers-background">15</th><td dir="ltr" class="s2">Bluetooth Support</td><td dir="ltr" class="s3">4.2</td><td dir="ltr" class="s4">5.2</td><td dir="ltr" class="s4">5.0</td></tr><tr><th id="117785589R15" class="row-headers-background">16</th><td dir="ltr" class="s2">Battery Size</td><td dir="ltr" class="s3">380 mAh</td><td dir="ltr" class="s4">590mAh</td><td dir="ltr" class="s4">402mAh</td></tr><tr><th id="117785589R16" class="row-headers-background">17</th><td dir="ltr" class="s2">Charging</td><td dir="ltr" class="s7">Wireless</td><td dir="ltr" class="s8">Wireless Fast (10W)</td><td dir="ltr" class="s8">Wireless Fast</td></tr></tbody></table>
  

&nbsp;
  
  <p class="">We don’t have a lot of visibility into the CPU or the operating system so it’s difficult to do an on-paper comparison (all three phones are using different operating systems too). Going by online reviews, consensus seemed to be that the OnePlus watch was very snappy, charged quickly and had incredible battery life. For downsides, the watch is disliked for being too basic and not offering very much by way of apps, watch-faces, customization etc.</p><p class="">The crazy amount of battery life on the watch changes the way I care about the charging situation — I don’t necessarily want (or care) to have watch-chargers in various places anymore — I can just keep one charger at my desk and charge it once a week for 15-minutes and be good to go. This has the added benefit of decluttering the limited space I have on my night stand. It all comes down to whether or not the watch, with all it’s missing functionality, can manage to meet by basic needs or not.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="review">So how does the OnePlus watch fare?</h3>
  


  
  <p class="">I bit the bullet and ordered the <a href="https://amzn.to/3dkEBkN" target="_blank">OnePlus watch</a> and I picked up a matching <a href="https://amzn.to/3QOvR4i" target="_blank">watch band</a> to go with it. From an aesthetic perspective, I love it: they nailed the shape, curves, angles and the choice and finish of materials is spot on. I quite like the use of plastic for the underside as well: I personally like the feel and I imagine it’ll be more comfortable to wear on super warm/cold days. They definitely hit a home run for the way it looks and how it feels. </p><p class=""><em>My comments are with respect to version </em><strong><em>11_B.70</em></strong><em>.</em></p>


  






  
























  
  





<ul data-should-allow-multiple-open-items="" data-accordion-icon-placement="left" data-is-last-divider-visible="" data-is-expanded-first-item="" data-is-divider-enabled="true" data-accordion-title-alignment="left" class="accordion-items-container" data-is-first-divider-visible="" data-accordion-description-alignment="left" data-accordion-description-placement="left"
>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Watch Faces
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">This is the first area where you start to see that the prime directive of the watch was to prioritize battery life and responsiveness, everything else be damned.</p><p class="">The selection is <em>abysmal</em>. Full stop. There are <span><strong>54</strong></span> available watch faces to choose from and perplexingly, before you can set your watch to use a given face, you must preload that watchface onto the watch - of which you have <strong>14</strong> available slots. From an OS design perspective, I get why they did this but it’s just a little jarring when coming from a full-experience smart watch.</p><p class="">My main complaint though is that there are not a lot of <em>simple and clean </em>[digital] options. I did manage to find three really clean analog options for which I am very grateful, but if you’re looking for a digital watch face, I only found ~1.5 options.</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Always On Display
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">From what I’ve read, this wasn’t available at launch and was provided via a software update and people were a bit miffed about that. Thankfully I had the update available so I had access to this. Enabling the AOD though leads to a few perplexing things:</p><p class="">Firstly there exactly <span><strong>four</strong></span> (4) always-on watch faces: two analog, two digital. Of the four, only one of the analog faces is clean and while the two digital faces are mostly clean, they have odd background shapes on them (one has a single skewed triangle, the other has a boatload of circles). I understand the need for hardcoded AOD watchfaces - it’s easier to manage resources when the faces are predefined but why can’t we get one uncluttered digital display as well?</p><p class="">This brings me to a related problem: with the AOD displaying a watch, when I flick my wrist to wake the watch up, it then wakes to the watch-face I pre-loaded and then selected. It would be nice to just keep the same watch face for both (even if has to be the predefined one). All of this is very odd from a design perspective.</p><p class=""><span><strong>Note</strong></span>: you can only set the AOD watchface using the watch directly which is odd.</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Interacting with the display
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">With an emphasis on battery life, the watch has a maximum delay of <strong>8 seconds</strong> before the watch turns the display off (or switches to the AOD). </p><p class="">This is more of an oddity with the “why even bother having a main watchface”. After all, both the main and AOD watch face show the same things (actually my AOD displays the date, something the main watch face <em>doesn’t</em> show me).</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            The Update Process
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">Out of the box I had an update available which was nice, but the update process was peculiar. Firstly, the update process needed me to have 40% battery life remaining before it would allow me to start. For a watch that has a marketing-advertised number of <em>two-weeks</em> that seems excessive. Even with active-GPS, the battery life is advertised as <em>25 hours</em>.</p><p class="">The update process is pretty standard: download the update on your phone, transmit the update to the watch and then transmit a go signal to the watch to tell it to do it’s thing. The 40% battery requirement prevents you from even <em>transferring</em> the update to the watch (even if the watch is plugged in). The transmit process took a lot longer than I expected (feels like 15 minutes to transfer) and the phone app tells you not to use the watch or phone during the update.</p><p class="">That warning isn’t messing around - I accidentally replied to a message on my phone and even though the watch seemed to finish the update, I had to redo everything (including the transmit) because <em>reasons</em>. </p><p class="">All in all, a very peculiar update process.</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Swiping to 'go back'
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">This is a minor one but on the OnePlus phones, to go back, you swipe from the right of the screen towards the left. On the OnePlus watch, it’s the other way — you swipe from the left of the watch face towards the right.</p><p class="">Would it have hurt to have them do the same thing (or even allow swiping from either side to trigger a ‘go back’)</p>
        
      

      
        
      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Watch 'applet list'
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">When you open up the watch applet list to see what you can do with your watch, the list of applets is static and predefined (which makes sense if you understand that they did this for RTOS battery and performance reasons)</p><p class="">It’s just a bit of a pain for me since I have to scroll through a bunch of fitness crap I don’t care about to get to the app I want; this is also one of those times when I really miss the rotating bezel dial on my old watch. Thankfully, you can very easily bind the alternate [physical] button to any one of those apps.</p><p class=""><strong>Pro-tip:</strong> when you’re setting up your watch, set the alternate button to launch the Settings app!</p>
        
      

      
        
      

    </li>
  
</ul>

  
  <p class="">Most of these are relatively minor quirks of the watch and I can live with all of them if it delivers on the primary reason I got a watch in the first place — to pass along notifications. </p><p class="">Broadly speaking, notifications worked like a charm:</p><ul data-rte-list="default"><li><p class="">GMail notifications</p></li><li><p class="">Phone and text notifications</p></li><li><p class="">Skype and Teams chats</p></li><li><p class="">Camera alerts</p></li></ul><p class="">One notable missing entry is Google Chats (formerly Hangouts) notifications - I struggled to get them to get them to the watch. Very intermittently, I would get notifications to the watch (maybe one notification for 50-100 messages). Poking a bit further, the problem isn’t the watch or it’s software — any notification that made it to the phone was faithfully passed along to the watch but Chat/Hangouts notifications just weren’t getting to the phone.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="fixing-google">Side quest to fix Chat/Hangouts notifications</h3>
  


  
  <p class="">The problem ultimately is Google’s Chat/Hangouts trying to be clever. The underlying issue has some merit: if you are using a computer to chat and happen to have your phone on you, should you get notifications on your phone? Google seems to think ‘no’ and I can certainly see the motivation to prevent duplicate notifications. Where this falls apart is that it relies on ‘something’ figuring out which system you are ‘actively using’ at any given moment and how fast the cutover should be. </p><p class="">Getting the notifications to work for me involved a few things to check for:</p><ul data-rte-list="default"><li><p class="">Prerequisites:</p><ul data-rte-list="default"><li><p class="">Make sure the app on the phone has notifications enabled and set the way you want</p></li><li><p class="">Make sure OnePlus Health app is set to synchronize that application’s notification to your phone</p></li><li><p class="">If needed (likely is), </p><ul data-rte-list="default"><li><p class="">lock the OnePlus health app so it doesn’t get closed to aggressively</p></li><li><p class="">disable power optimization for the OnePlus health app</p></li></ul></li></ul></li><li><p class="">Google Chat (on Desktop). I happen to use the standalone app:</p><ul data-rte-list="default"><li><p class="">Check the Settings Gear window and <strong>uncheck</strong> ‘Allow chat notifications’</p></li><li><p class="">If you’re missing notifications for just one person (or perhaps a select few people), in the chat conversation view, click on their name at the top (it’s a dropdown) and make sure it the setting says ‘turn off notifications’ (meaning notifications are on) and <em>not</em> ‘turn on notifications’ (meaning the notifications are off)</p></li></ul></li><li><p class="">Google Chat (app): under settings, make ‘Mobile notifications’ is turned on and double check that your entire phone isn’t running in ‘Do not disturb’ mode (at least while you troubleshoot)</p></li></ul><p class="">Once you get notifications working reliably, you can revisit whether you specifically need to have an application locked to stay running all the time or not.</p><blockquote><p class="sqsrte-large">But I want notifications on all devices (including PC)? Let me manage ‘duplicates’ on a per-device basis</p><p class="">Unfortunately it doesn’t look like you can do this. Google’s assumption is that you don’t have a bunch of computers in front of you all connected to chat and that you may want to reply back from any given one.</p></blockquote><p class="">Now that I have [chat] notifications on the watch, I find the notifications to be <em>bland</em> — they are functional but that’s it.  Their update indicated that ‘Enabled notification app icons for the most frequently used apps’  which is neat but it seems like Chat is not one of them, so my notification icons are generic. A minor gripe for now.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="thoughts">The final verdict</h3>
  


  
  <p class="">After tinkering with Chats notifications to get them to work, I can say that the primary requirement of the watch has been met: it gets me notifications reliably of the things I care about. As for some of the other [limited] things you can do with the watch:</p><ul data-rte-list="default"><li><p class="">The alarm app, while basic, is perfectly fine</p></li><li><p class="">I love the Do-not-disturb / bedtime mode of the watch (being a totally separate setting from any Do-not-disturb setting you might have on your phone)</p></li><li><p class="">I don’t take it seriously, but for fun, sometimes I check out the sleep-tracking</p></li><li><p class="">The remote camera trigger (for your phone’s camera) is neat albeit gimmicky</p></li><li><p class="">The find-my-phone functionality works as advertised</p></li><li><p class="">The built-music app can be run in two different modes: you can either use it as a standalone music player that plays music on your watch <em>or</em> you can use it as a remote control for media playing on your phone. This is actually really awesome if you happen to be listening to music on your phone but have your phone on your desk or something. My headphones have a button that lets me pause/resume but on the watch, I can also change songs and adjust the volume. This works for <em>video</em> as well (i.e., YouTube) which is awesome. I have no interest in using the watch as a local standalone music player.</p></li></ul><p class="">While I originally wanted to have a few chargers (say, one for a travel bag), I think with the ridiculous battery life of this watch and fast charging, this bypasses any charge-anxiety concerns.</p><p class="">Don’t get me wrong, the software experience of this watch is definitely much rougher than it ought to be in 2022 and the software feels unpolished but for my primary objective of being a cost effective notification relay, this watch checks all the boxes I need it to.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1663364316590-9EJTA3B7ZKRETF46X7YV/WatchCover_Squooshed.jpg?format=1500w" medium="image" isDefault="true" width="1500" height="806"><media:title type="plain">A smartwatch as a notification relay</media:title></media:content></item><item><title>A New Phone Adventure</title><category>Tech</category><dc:creator>DP</dc:creator><pubDate>Sun, 11 Sep 2022 17:25:00 +0000</pubDate><link>https://www.minmaxgeek.com/blog/new-phones</link><guid isPermaLink="false">6020ac0b21a9b86f0577e29e:60535320d9a09304764a163f:631ce2e0c60ee464ddb06ec1</guid><description><![CDATA[I’ve been planning on a phone upgrade in the next year or so but my wife 
had the misfortune of breaking her phone recently. This was a perfect 
excuse to push that schedule up a bit sooner. It was a bit of an adventure 
picking out a new phone and then dealing with the various challenges in 
getting the phone into what I would consider a ‘usable’ state.]]></description><content:encoded><![CDATA[<p class="">To make tech support and maintenance easier on me, both my wife and I use the same phone (happens to be the <a href="https://www.gsmarena.com/oneplus_7t-9816.php" target="_blank">OnePlus 7T</a> which we nabbed a few years ago for a great price). Generally speaking, we have no complaints with it although now in 2022, it’s just starting to get a bit long in the tooth. OnePlus published what I thought was a fairly reasonable maintenance/update <a href="https://community.oneplus.com/thread?id=1462181" target="_blank">policy</a> back in 2021 where their flagship-tier phones would receive support for <em>3-major android releases and security updates for 4-years</em>.</p><p class="">The phone launched in 2019 with Android 10 and as such, I would expect that support would go to Android 12 and/or 2023. At the time of writing, Android 12 is in beta-testing and we’re rapidly approaching the 2023 cutoff for security updates. I had a plan to upgrade the phone(s) in 2023 sometimes (depending on what models were on sale etc.). My wife’s luck had different plans though and she had the misfortune of cracking her phone screen with the most insignificant of drops.</p><p class="">Or maybe it’s an excuse to buy new phones. I’ll never say.</p>


  






  



<hr />
  
    <h3 id="toc">Quick Links</h3>
  


  
  <ul data-rte-list="default"><li><p class=""><a href="#recovery">'Recovering' the old phone</a></p></li><li><p class=""><a href="#contenders">The contenders</a></p></li><li><p class=""><a href="#refurb">Enter: the refurb market…</a></p></li><li><p class=""><a href="#refurb-results">So how was the refurbished experience?</a></p></li><li><p class=""><a href="#too-easy">No plan survives contact with the enemy...</a></p></li><li><p class=""><a href="#setup">OnePlus 9 Pro (T-Mobile) setup, start to finish</a></p><ul data-rte-list="default"><li><p class=""><a href="#setup-1">[01] Prerequisites</a></p></li><li><p class=""><a href="#setup-2">[02] Converting to EU and unlocking the bootloader</a></p></li><li><p class=""><a href="#setup-3">[03] Updating the phone via OTA</a></p></li><li><p class=""><a href="#setup-4">[04] Preparing for Android 12</a></p></li><li><p class=""><a href="#setup-5">[05] Major update: moving to Android 12</a></p></li><li><p class=""><a href="#setup-6">[06] Doing updates on our terms</a></p></li></ul></li><li><p class=""><a href="#dumb">Now to fix all the dumb...</a></p></li><li><p class=""><a href="#excitement">Not enough excitement</a></p></li><li><p class=""><a href="#looking-back">Looking Back</a></p></li></ul>


  






  



<hr />
  
    <h3 id="recovery">'Recovering' the old phone</h3>
  


  
  <p class="">By the time I got to the phone, the AMOLED had leaked everywhere and almost the entire phone was blacked out. While we <em>could</em> walk away from phone with relatively little data loss (at most, 2-days worth of content not backed-up), how hard could it possibly to access/use a phone almost totally blind? Right?</p><p class="">I was hoping that it was just a <em>visual</em> problem — that I was <em>just </em>working blind. My plan was to fire up my identical phone and walk through the process with the two phones side by side and eyeballing where I had to touch on her phone. No dice, almost the entirety of the touch screen was non-responsive as well: there was only about a postage stamp worth of responsive touch screen in the bottom right corner. We got <em>really lucky</em> that the selfie-camera was not impacted by the broken screen I was able to use Face Unlock to get into the phone. By touching the screen every so often, I could keep the lock screen from triggering.</p><p class="">I was able to remotely install apps to the phone; specifically, I went with <a href="https://play.google.com/store/apps/details?id=net.christianbeier.droidvnc_ng" target="_blank"><strong>droidVNC-NG</strong></a>. I was hoping to use voice activation to launch the application (since I would have no way of launching it via the screen), but due to the ‘odd’ name of the app, we couldn’t figure out a way to get OK Google to voice-launch the app. Luckily, I happen to create a folder on the desktop in the bottom right and my launcher allows me to ‘Add Apps’ to this folder. The second stroke of luck was that the ‘Add Apps’ interface is a single-column list of app the apps. Of course, finding the app in this list was still a challenge but as a third stroke of luck, the app actually has a longer name: droidVNC-NG Admin Panel — and I was just barely able to make out the text in a small patch of visible screen. By connecting a keyboard to the OTG port, I was able to add the app to the folder.</p><p class="">I had to briefly switch back to a mouse in order to launch the app because the app icon was placed ever so slightly outside of the still-functioning touch range. Getting the app launched only a small step into the journey — an app like this requires a whole bunch of permissions! From here on, I switched back to the keyboard and bounced between the two phones side by side, counting how many tabs it took to select focus on the elements I wanted to select before pressing [enter] to click it:</p><ol data-rte-list="default"><li><p class="">Click the START button</p></li><li><p class="">An accessibility popup would show —&gt; figure out how to click YES</p></li><li><p class="">This would then take me to a list of installed apps —&gt; find droidVNC-NG from this list and click on it</p></li><li><p class="">This would take me to the [accessibility] details page of the app —&gt; find a way to toggle the accessibility switch to on</p></li><li><p class="">This would trigger a confirmation popup —&gt; find a way to click ALLOW</p></li><li><p class="">Clicking ALLOW just applies the setting and dismisses the popup — I’m still stuck in the app-details page and have to find a way back to the droidVNC-NG app</p></li><li><p class="">Getting back into the droidVNC-NG app, there would be a second popup waiting for me (file permissions) —&gt; find a way to click YES</p></li><li><p class="">This would trigger an Android permissions confirmation —&gt; find a way to click ALLOW</p></li><li><p class="">This would trigger an Android screen casting confirmation —&gt; find a way to click START NOW</p></li></ol>


  






  






  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="Ooof" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This is what the screen looked like when I got around to the phone. I’m effectively working blind and with almost all of the touch functionality gone&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913550257-A6Z28C7EZKA7K9T8EF6S/Before_Squooshed.jpg" role="button" aria-labelledby="631e0c0dfd70475c107bf0bd-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913550257-A6Z28C7EZKA7K9T8EF6S/Before_Squooshed.jpg" data-image-dimensions="576x1280" data-image-focal-point="0.5,0.5" alt="Ooof" data-load="false" data-image-id="631e0c0dfd70475c107bf0bd" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913550257-A6Z28C7EZKA7K9T8EF6S/Before_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Ooof
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Finally able to launch the droidVNC-NG" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;This is what &lt;em&gt;normal&lt;/em&gt; users see. Of course, with this screen, most of is blacked out…&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913583785-W5277TM4EFMHCI9NOZY5/VNC1_Squooshed.jpg" role="button" aria-labelledby="631e0c2f50a76f56c309194e-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913583785-W5277TM4EFMHCI9NOZY5/VNC1_Squooshed.jpg" data-image-dimensions="1080x2326" data-image-focal-point="0.5,0.5" alt="Finally able to launch the droidVNC-NG" data-load="false" data-image-id="631e0c2f50a76f56c309194e" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913583785-W5277TM4EFMHCI9NOZY5/VNC1_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Finally able to launch the droidVNC-NG
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Somehow clicking the Start button" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Triggers a dialog that I can’t read, in the middle of the screen where I can’t touch&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913588821-ZZOH5EPAGF5UYQF5AY77/VNC2_Squooshed.jpg" role="button" aria-labelledby="631e0c3430bbe319feff08ac-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913588821-ZZOH5EPAGF5UYQF5AY77/VNC2_Squooshed.jpg" data-image-dimensions="1080x2400" data-image-focal-point="0.5,0.5" alt="Somehow clicking the Start button" data-load="false" data-image-id="631e0c3430bbe319feff08ac" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913588821-ZZOH5EPAGF5UYQF5AY77/VNC2_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Somehow clicking the Start button
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="If you manage to click Yes" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;It switches over to the Android accessibility view. You have to find droidVNC-NG from this list — and the list of applications will be different each phone based on what apps are installed.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913592179-3QVTCR80SMTI489N7UAH/VNC3_Squooshed.jpg" role="button" aria-labelledby="631e0c38cdcd537108f152c3-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913592179-3QVTCR80SMTI489N7UAH/VNC3_Squooshed.jpg" data-image-dimensions="1080x2400" data-image-focal-point="0.5,0.5" alt="If you manage to click Yes" data-load="false" data-image-id="631e0c38cdcd537108f152c3" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913592179-3QVTCR80SMTI489N7UAH/VNC3_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  If you manage to click Yes
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="If you manage to click on your app" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Then (because most of the screen is black), I think it takes me to a blank page (or that the screen has turned off)&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913596210-Z1STGT1MPNTFOEYY5Q9U/VNC4_Squooshed.jpg" role="button" aria-labelledby="631e0c3c9b49d62fbb129a45-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913596210-Z1STGT1MPNTFOEYY5Q9U/VNC4_Squooshed.jpg" data-image-dimensions="1080x2400" data-image-focal-point="0.5,0.5" alt="If you manage to click on your app" data-load="false" data-image-id="631e0c3c9b49d62fbb129a45" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913596210-Z1STGT1MPNTFOEYY5Q9U/VNC4_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  If you manage to click on your app
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="If you manage to toggle the switch" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Then it shows me a prompt I can’t read. If I manage to confirm the prompt, then the prompt is simply dismissed— I need to find a way back to the droidVNC-NG app&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913599117-FOYDPU5ACBDBRXEV6LE1/VNC5_Squooshed.jpg" role="button" aria-labelledby="631e0c3f6f7b7e79278606cf-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913599117-FOYDPU5ACBDBRXEV6LE1/VNC5_Squooshed.jpg" data-image-dimensions="1080x2400" data-image-focal-point="0.5,0.5" alt="If you manage to toggle the switch" data-load="false" data-image-id="631e0c3f6f7b7e79278606cf" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913599117-FOYDPU5ACBDBRXEV6LE1/VNC5_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  If you manage to toggle the switch
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Getting back into the app" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;There’s another dialog I can’t read —  and because I can’t see it, it looks like the first dialog so for awhile I thought something had failed.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913603279-K7A7M4G460MLDA19ECH5/VNC6_Squooshed.jpg" role="button" aria-labelledby="631e0c43569c7802a293ade6-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913603279-K7A7M4G460MLDA19ECH5/VNC6_Squooshed.jpg" data-image-dimensions="1080x2400" data-image-focal-point="0.5,0.5" alt="Getting back into the app" data-load="false" data-image-id="631e0c43569c7802a293ade6" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913603279-K7A7M4G460MLDA19ECH5/VNC6_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Getting back into the app
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="After confirming that dialog" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;You get the standard Android permission dialog&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913607026-97MOV8RUL5YLONRY43PU/VNC7_Squooshed.jpg" role="button" aria-labelledby="631e0c46bf2ae46e552f4fda-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913607026-97MOV8RUL5YLONRY43PU/VNC7_Squooshed.jpg" data-image-dimensions="1080x2400" data-image-focal-point="0.5,0.5" alt="After confirming that dialog" data-load="false" data-image-id="631e0c46bf2ae46e552f4fda" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913607026-97MOV8RUL5YLONRY43PU/VNC7_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  After confirming that dialog
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Last dialog!" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913610253-U47Y1GGXWC8GDR22UPXN/VNC8_Squooshed.jpg" role="button" aria-labelledby="631e0c4af27caa32e405d439-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913610253-U47Y1GGXWC8GDR22UPXN/VNC8_Squooshed.jpg" data-image-dimensions="1080x2400" data-image-focal-point="0.5,0.5" alt="Last dialog!" data-load="false" data-image-id="631e0c4af27caa32e405d439" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913610253-U47Y1GGXWC8GDR22UPXN/VNC8_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Last dialog!
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Finally, no more nuisance dialogs" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Now just to figure out [a] what control has focus and [b] how many Tab clicks to get focus to the START button…&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913614373-UF0E5F4B4RNJBOLX3KLS/VNC9_Squooshed.jpg" role="button" aria-labelledby="631e0c4ee262f068e0b80d5b-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913614373-UF0E5F4B4RNJBOLX3KLS/VNC9_Squooshed.jpg" data-image-dimensions="1080x2400" data-image-focal-point="0.5,0.5" alt="Finally, no more nuisance dialogs" data-load="false" data-image-id="631e0c4ee262f068e0b80d5b" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913614373-UF0E5F4B4RNJBOLX3KLS/VNC9_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Finally, no more nuisance dialogs
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Erureka" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Finally, after all that keystroke guessing, I’m able to remote into the phone.&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913638529-S13F1EP5V1OZ4BC6UTQR/Success_Squooshed.jpg" role="button" aria-labelledby="631e0c66cda7a26f9b979596-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913638529-S13F1EP5V1OZ4BC6UTQR/Success_Squooshed.jpg" data-image-dimensions="922x1855" data-image-focal-point="0.5,0.5" alt="Erureka" data-load="false" data-image-id="631e0c66cda7a26f9b979596" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662913638529-S13F1EP5V1OZ4BC6UTQR/Success_Squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Erureka
                
              
            
          

          
        

      
    
  

  
    
    
    
     
  











  
  <p class="">At this point, I’m able to VNC into the phone from a desktop or, comically, even another phone. I already had the phones hooked up to be able to access the NAS so I was able to quickly dump files to the network and also manually fired the backup/sync tools. Given the current state of this phone, I took this time to also:</p><ul data-rte-list="default"><li><p class=""><em>Triple verify</em> that VNC is set to auto-start on boot up: I don’t want to have to do this again if the phone randomly decides it wants to reboot for whatever reason</p></li><li><p class="">Disable all alarm clocks</p></li><li><p class="">Disable the lock-screen password. Note: you can still authenticate the lock screen over VNC, but given the new nature of this phone, I wanted to streamline the process</p></li><li><p class="">Turned off Bluetooth (to break any connections to accessories that wouldn’t really be used with this phone anymore)</p></li><li><p class="">Extend the display sleep time to 30 minutes (not that it really matters)</p></li><li><p class="">I enabled USB debugging on the phone and authorized my PC</p></li></ul><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="contenders">The contenders</p>
  


  
  <p class="">Before the OnePlus 7T, we previously used the OnePlus 3T and OnePlus 5 so we had an accumulation a few of the specialty chargers and cables over the years so, unless there was a monumental reason otherwise, I wanted to limit the search to OnePlus phones (or alternatively, OPPO or Realme phones if I couldn’t find a suitable option). </p><blockquote><p class="sqsrte-large">What’s so special about these phones?</p><p class="">All three brands use a proprietary charging system called ‘VOOC’ (sometimes branded as Warp-, Dash- or Dart-charge). You may have heard of USB-PD (power-delivery) or the popular Qualcomm Quick Charge; VOOC provides the same rapid-charge functionality as those other systems but instead of ramping up voltage during the charging process, it ramps up current.</p><p class="">All of these systems provide a means of rapidly-charging batteries but, charging via VOOC generally keeps the heat in the power brick rather than the phone (and power bricks generally can handle and dissipate heat a bit better than compact batteries in tight enclosures… The second notable advantage of VOOC charging is that the charging performance isn’t nearly as affected by what you’re doing on your phone while charging: you could charge while gaming or watching videos and the charge time would mostly be the same. </p></blockquote>


  






  




  
  <p class="sqsrte-large">What I wanted</p><ul data-rte-list="default"><li><p class="">Must: <em>not </em>be stupid-priced</p></li><li><p class="">Must have: A phone that uses Dash/Warp/VOOC charging </p></li><li><p class="">Must have: A performance uplift compared to our current phone (Snapdragon 855+ with 8GB RAM)</p></li><li><p class="">Ideally have: some form of official dust/water resistance</p></li><li><p class="">Ideally have: WiFi 6 support (none of the phones I looked at yet support WiFi 6e)</p></li><li><p class="">Ideally have: better battery capacity than my current phone (3800mAh)</p></li><li><p class="">Ideally have:  for cameras, <em>not</em> be a major step back in the main, wide and macro camera</p></li><li><p class="">Would be nice but not a deal breaker: 256GB storage. Apps, media etc. have really bloated over the years</p></li><li><p class="">Would be nice but not a deal breaker: wireless charging (I probably won’t be able to use it anyways since I use magnetic mounts)</p></li><li><p class="">Would be nice but not a deal breaker: dual-SIM</p></li></ul>


  






  




  
  <p class="sqsrte-large">What was available from OnePlus at the time:</p><ul data-rte-list="default"><li><p class="">OnePlus 10 Pro - $1030 CAD</p></li><li><p class="">OnePlus 10T - $850 CAD (promotional pricing)</p></li><li><p class="">OnePlus 9 Pro - $1170 CAD</p></li><li><p class="">OnePlus 9 - $840 CAD</p></li><li><p class="">OnePlus 8 Pro - $950 CAD</p></li><li><p class="">Nord N20 - $380 CAD</p></li></ul>


  






  




  
  <p class="">For context, we bought the OnePlus 7T in 2020 for an absolute steal price of $350 CAD. Phone prices have definitely jumped a lot in the interim!  With the exception of the Nord N20, each successive phone generally is more performant than the previous (and certainly more performant than our current phones). I threw together a quick sheet to group all of the specs that matter to me, highlighting substantial standouts:</p>


  






  




  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link rel="stylesheet" href="/s/sheet-no-overflow.css" type="text/css" >
<table cellpadding="0" cellspacing="0" class="waffle"><thead><tr><th class="row-header freezebar-origin-ltr"></th><th id="0C0" class="column-headers-background">A</th><th id="0C1" class="column-headers-background">B</th><th id="0C2" class="column-headers-background">C</th><th id="0C3" class="column-headers-background">D</th><th id="0C4" class="column-headers-background">E</th><th id="0C5" class="column-headers-background">F</th><th id="0C6" class="column-headers-background">G</th><th id="0C7" class="column-headers-background">H</th></tr></thead><tbody><tr><th id="0R0" class="row-headers-background">1</th><td></td><td dir="ltr" class="s0">OnePlus 7T</td><td dir="ltr" class="s1"><a target="_blank" href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=11218">Nord N20</a></td><td dir="ltr" class="s1"><a target="_blank" href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=9919">OnePlus 8 Pro</a></td><td dir="ltr" class="s1"><a target="_blank" href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10747">OnePlus 9</a></td><td dir="ltr" class="s1"><a target="_blank" href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10806">OnePlus 9 Pro</a></td><td dir="ltr" class="s1"><a target="_blank" href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=11622">One Plus 10T</a></td><td dir="ltr" class="s1"><a target="_blank" href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=11234">OnePlus 10 Pro</a></td></tr><tr><th id="0R1" class="row-headers-background">2</th><td dir="ltr" class="s2">Price available to me</td><td dir="ltr" class="s3">Paid 350CAD</td><td dir="ltr" class="s3">380CAD</td><td dir="ltr" class="s3">950CAD</td><td dir="ltr" class="s3">840CAD</td><td dir="ltr" class="s3">1170CAD</td><td dir="ltr" class="s3">850CAD</td><td dir="ltr" class="s3">1030CAD</td></tr><tr><th id="0R2" class="row-headers-background">3</th><td dir="ltr" class="s2">Year Released</td><td dir="ltr" class="s3">2019</td><td dir="ltr" class="s3">2022</td><td dir="ltr" class="s3">2020</td><td dir="ltr" class="s3">2021</td><td dir="ltr" class="s3">2021</td><td dir="ltr" class="s3">2022</td><td dir="ltr" class="s3">2022</td></tr><tr><th id="0R3" class="row-headers-background">4</th><td dir="ltr" class="s2 softmerge">Last Year of Security Updates</td><td dir="ltr" class="s3">2023</td><td dir="ltr" class="s3">2025</td><td dir="ltr" class="s4">2024</td><td dir="ltr" class="s3">2025</td><td dir="ltr" class="s3">2025</td><td dir="ltr" class="s3">2026</td><td dir="ltr" class="s3">2026</td></tr><tr><th id="0R4" class="row-headers-background">5</th><td dir="ltr" class="s2">OS Support</td><td dir="ltr" class="s3">Android 10-12</td><td dir="ltr" class="s5">Android 11-12</td><td dir="ltr" class="s5">Android 10-12</td><td dir="ltr" class="s6">Android 11-13</td><td dir="ltr" class="s6">Android 11-13</td><td dir="ltr" class="s6">Android 12-14</td><td dir="ltr" class="s6">Android 12-14</td></tr><tr><th id="0R5" class="row-headers-background">6</th><td dir="ltr" class="s2">Max Cellular</td><td dir="ltr" class="s3">4G</td><td dir="ltr" class="s3">5G</td><td dir="ltr" class="s3">5G</td><td dir="ltr" class="s3">5G</td><td dir="ltr" class="s3">5G</td><td dir="ltr" class="s3">5G</td><td dir="ltr" class="s3">5G</td></tr><tr><th id="0R6" class="row-headers-background">7</th><td dir="ltr" class="s2">CPU</td><td dir="ltr" class="s3">Snapdragon 855+</td><td dir="ltr" class="s5">Snapdragon 695</td><td dir="ltr" class="s3">Snapdragon 865</td><td dir="ltr" class="s3">Snapdragon 888</td><td dir="ltr" class="s3">Snapdragon 888</td><td dir="ltr" class="s3">Snapdragon 8+ Gen 1</td><td dir="ltr" class="s3">Snapdragon 8+ Gen 1</td></tr><tr><th id="0R7" class="row-headers-background">8</th><td dir="ltr" class="s2">RAM</td><td dir="ltr" class="s3">8GB</td><td dir="ltr" class="s5">6GB</td><td dir="ltr" class="s6">12GB</td><td dir="ltr" class="s3">8GB</td><td dir="ltr" class="s6">12GB</td><td dir="ltr" class="s6">16GB</td><td dir="ltr" class="s3">12G</td></tr><tr><th id="0R8" class="row-headers-background">9</th><td dir="ltr" class="s2">Storage</td><td dir="ltr" class="s3">128GB</td><td dir="ltr" class="s3">128GB</td><td dir="ltr" class="s3">256GB</td><td dir="ltr" class="s3">128GB</td><td dir="ltr" class="s3">256GB</td><td dir="ltr" class="s3">256GB</td><td dir="ltr" class="s3">256GB</td></tr><tr><th id="0R9" class="row-headers-background">10</th><td dir="ltr" class="s2">Storage Type</td><td dir="ltr" class="s3">UFS 3.0</td><td dir="ltr" class="s5">UFS 2.2</td><td dir="ltr" class="s3">UFS 3.0</td><td dir="ltr" class="s6">UFS 3.1</td><td dir="ltr" class="s6">UFS 3.1</td><td dir="ltr" class="s6">UFS 3.1</td><td dir="ltr" class="s6">UFS 3.1</td></tr><tr><th id="0R10" class="row-headers-background">11</th><td dir="ltr" class="s2">Latest Wi-Fi</td><td dir="ltr" class="s3">Wi-Fi 5 (AC)</td><td dir="ltr" class="s3">Wi-Fi 5 (AC)</td><td dir="ltr" class="s6">Wi-Fi 6 (AX)</td><td dir="ltr" class="s6">Wi-Fi 6 (AX)</td><td dir="ltr" class="s6">Wi-Fi 6 (AX)</td><td dir="ltr" class="s6">Wi-Fi 6 (AX)</td><td dir="ltr" class="s6">Wi-Fi 6 (AX)</td></tr><tr><th id="0R11" class="row-headers-background">12</th><td dir="ltr" class="s2">Latest Bluetooth</td><td dir="ltr" class="s3">5</td><td dir="ltr" class="s3">5.1</td><td dir="ltr" class="s3">5.1</td><td dir="ltr" class="s3">5.2</td><td dir="ltr" class="s3">5.2</td><td dir="ltr" class="s3">5.2</td><td dir="ltr" class="s3">5.2</td></tr><tr><th id="0R12" class="row-headers-background">13</th><td dir="ltr" class="s2">Battery</td><td dir="ltr" class="s3">3800mAh</td><td dir="ltr" class="s3">4500mAh</td><td dir="ltr" class="s3">4510mAh</td><td dir="ltr" class="s3">4500mAh</td><td dir="ltr" class="s3">4500mAh</td><td dir="ltr" class="s3">4800mAh</td><td dir="ltr" class="s3">5000mAh</td></tr><tr><th id="0R13" class="row-headers-background">14</th><td dir="ltr" class="s2">Wired Charging</td><td dir="ltr" class="s3">30W</td><td dir="ltr" class="s3">33W</td><td dir="ltr" class="s3">30W</td><td dir="ltr" class="s6">65W</td><td dir="ltr" class="s6">65W</td><td dir="ltr" class="s6">65W</td><td dir="ltr" class="s6">65W</td></tr><tr><th id="0R14" class="row-headers-background">15</th><td dir="ltr" class="s2">Wireless Charging</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">30W</td><td dir="ltr" class="s3">15W</td><td dir="ltr" class="s3">50W</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">50W</td></tr><tr><th id="0R15" class="row-headers-background">16</th><td dir="ltr" class="s2">Reverse Wireless Charging</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">3W</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">Yes, speed unknown</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">Yes, speed unknown</td></tr><tr><th id="0R16" class="row-headers-background">17</th><td dir="ltr" class="s2">USB Power Delivery</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">Yes</td></tr><tr><th id="0R17" class="row-headers-background">18</th><td dir="ltr" class="s2">Camera - Main</td><td dir="ltr" class="s3">48MP f/1.6, 26mm, OIS</td><td dir="ltr" class="s3">64MB, f/1.8,  <span>EIS</span></td><td dir="ltr" class="s3">48MP f/1.6, 26mm, OIS</td><td dir="ltr" class="s3">48MP, f/1.8, 23mm, <span>EIS</span></td><td dir="ltr" class="s3">48MP, f/1.8, 23mm, OIS</td><td dir="ltr" class="s3">50MP, f/1.8, 24mm OIS</td><td dir="ltr" class="s3">48MP, f/1.8, 23mm, OIS</td></tr><tr><th id="0R18" class="row-headers-background">19</th><td dir="ltr" class="s2">Camera - Wide</td><td dir="ltr" class="s3">16MP f/2.2, 17mm</td><td dir="ltr" class="s5">None</td><td dir="ltr" class="s6">48MP f/2.2, 14mm</td><td dir="ltr" class="s6">50MP, f/2.2, 14mm</td><td dir="ltr" class="s6">50MP, f/2.2, 14mm</td><td dir="ltr" class="s3">8MP, f/2.2</td><td dir="ltr" class="s6">50MP, f/2.2, 14mm</td></tr><tr><th id="0R19" class="row-headers-background">20</th><td dir="ltr" class="s2">Camera - Tele</td><td dir="ltr" class="s3">12MP f/2.2, 51mm (2X)</td><td dir="ltr" class="s5">None</td><td dir="ltr" class="s3">8MP, f/2.4, <span>75mm (3x), OIS</span></td><td dir="ltr" class="s5">None</td><td dir="ltr" class="s3">8MP, f/2.4, <span>77mm (3X), OIS</span></td><td dir="ltr" class="s5">None</td><td dir="ltr" class="s3">8MP, f/2.4, <span>77mm (3X), OIS</span></td></tr><tr><th id="0R20" class="row-headers-background">21</th><td dir="ltr" class="s2">Camera - Front</td><td dir="ltr" class="s3">16MP f/2.0, 25mm</td><td dir="ltr" class="s3">16MP, <span>f/2.4</span>, 25mm</td><td dir="ltr" class="s3">16MP, <span>f/2.5</span>, 25mm</td><td dir="ltr" class="s3">16MP, <span>f/2.4</span>, 25mm</td><td dir="ltr" class="s3">16MP, <span>f/2.4</span>, 25mm</td><td class="s3"></td><td dir="ltr" class="s3"><span>32MP</span>, <span>f/2.2</span></td></tr><tr><th id="0R21" class="row-headers-background">22</th><td dir="ltr" class="s2">Camera - Other</td><td class="s3"></td><td dir="ltr" class="s3">2MP, f/2.4 macro</td><td dir="ltr" class="s3">5MP, f/2.4 color filtering camera</td><td dir="ltr" class="s3">2MP, f/2.4 black &amp; white</td><td dir="ltr" class="s3">2MP, f/2.4 black &amp; white</td><td dir="ltr" class="s3">2MP, f/2.4 macro</td><td class="s3"></td></tr><tr><th id="0R22" class="row-headers-background">23</th><td dir="ltr" class="s2">Max Video</td><td dir="ltr" class="s3">4K60, 1080@240, 720@960</td><td dir="ltr" class="s5">1080@30, 720@120</td><td dir="ltr" class="s3">4K60, 1080@240, 720@<span>480</span></td><td dir="ltr" class="s3"><span>8K30</span>, 4K60, 1080@240, 720@<span>480</span></td><td dir="ltr" class="s3"><span>8K30</span>, <span>4K120</span>, 1080@240, 720@<span>480</span></td><td dir="ltr" class="s3">4K60, 1080@240, 720@<span>480</span></td><td dir="ltr" class="s3"><span>8K24, 4K120</span>, 1080@240, 720@<span>480</span></td></tr><tr><th id="0R23" class="row-headers-background">24</th><td dir="ltr" class="s2">Screen - Resolution</td><td dir="ltr" class="s3">1080x2400</td><td dir="ltr" class="s3">1080x2400</td><td dir="ltr" class="s6">1440x3168</td><td dir="ltr" class="s3">1080x2400</td><td dir="ltr" class="s6">1440x3216</td><td dir="ltr" class="s3">1080x2412</td><td dir="ltr" class="s6">1440x3216</td></tr><tr><th id="0R24" class="row-headers-background">25</th><td dir="ltr" class="s2">Screen - Refresh</td><td dir="ltr" class="s3">90</td><td dir="ltr" class="s5">60</td><td dir="ltr" class="s6">120</td><td dir="ltr" class="s6">120</td><td dir="ltr" class="s6">120</td><td dir="ltr" class="s6">120</td><td dir="ltr" class="s6">120</td></tr><tr><th id="0R25" class="row-headers-background">26</th><td dir="ltr" class="s2">Screen - Protection</td><td dir="ltr" class="s3">Gorilla Glass 5</td><td dir="ltr" class="s4">Yes, unknown, assuming v5</td><td dir="ltr" class="s3">Gorilla Glass 5</td><td dir="ltr" class="s3">Gorilla Glass 5</td><td dir="ltr" class="s3">Gorilla Glass 5</td><td dir="ltr" class="s3">Gorilla Glass 5</td><td dir="ltr" class="s6">Gorilla Glass Victus</td></tr><tr><th id="0R26" class="row-headers-background">27</th><td dir="ltr" class="s2">Screen - Always On Display</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s6">Yes</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s6">Yes</td><td dir="ltr" class="s6">Yes</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s6">Yes</td></tr><tr><th id="0R27" class="row-headers-background">28</th><td dir="ltr" class="s2">SIM Slots</td><td dir="ltr" class="s3">2</td><td dir="ltr" class="s3"></td><td dir="ltr" class="s3">2</td><td dir="ltr" class="s3">2</td><td dir="ltr" class="s3">2</td><td dir="ltr" class="s3">2</td><td dir="ltr" class="s3">2</td></tr><tr><th id="0R28" class="row-headers-background">29</th><td dir="ltr" class="s2">Dust Resistance</td><td dir="ltr" class="s3">Nothing official</td><td dir="ltr" class="s3">Nothing official</td><td dir="ltr" class="s6">IP68</td><td dir="ltr" class="s3">Nothing official (on the model available)</td><td dir="ltr" class="s6">IP68</td><td dir="ltr" class="s3">Nothing official</td><td dir="ltr" class="s6">IP68</td></tr><tr><th id="0R29" class="row-headers-background">30</th><td dir="ltr" class="s2">USB Type-C</td><td dir="ltr" class="s3">3.1</td><td dir="ltr" class="s5">2.0</td><td dir="ltr" class="s3">3.1</td><td dir="ltr" class="s3">3.1</td><td dir="ltr" class="s3">3.1</td><td dir="ltr" class="s5">2.0</td><td dir="ltr" class="s3">3.1</td></tr><tr><th id="0R30" class="row-headers-background">31</th><td dir="ltr" class="s2">USB OTG</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s5">No</td><td dir="ltr" class="s3">Yes</td></tr></tbody></table>
  

&nbsp;<hr />&nbsp;
  
  <p class="">To begin the elimination process:</p><ul data-rte-list="default"><li><p class="">Without even looking at prices, the <a href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=9919" target="_blank">OnePlus 8 Pro</a> (released 2020 with Android 10) was out because it doesn’t really give us any more breathing room on software-support — OS support would only extend to Android 12 (no improvement) and security updates would only go another year.</p></li><li><p class="">I eliminated both the <a href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=11234" target="_blank">OnePlus 10 Pro</a> and <a href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10806" target="_blank">OnePlus 9 Pro</a> purely on the grounds of just being <em>too damn expensive</em>.</p></li><li><p class="">The <a href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=11218" target="_blank">Nord N20</a> is a really interesting option — I would only be buying one and this would act as a stop-gap phone for Nicole until we both upgrade in 2023. At that time, I <em>would</em> end up buying two identical phones during the upgrade cycle because I don’t really want to maintain two separate hardware platforms. I ended up <em>not</em> going this route because it’s simply too much money for such a drop in <em>everything </em>across the board especially knowing that I would be spending big-bucks in less than year’s time.</p></li></ul><p class="">The <a href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=11622" target="_blank">OnePlus 10T</a> has some <em>controversy</em> with it:</p><ul data-rte-list="default"><li><p class="">The elimination of the much beloved alert slider (not a big deal for me — on all my phones, I set the alert slider once when I get the phone and never touch it again</p></li><li><p class="">For 2022 as a flagship-tier phone, the camera situation is … <em>peculiar</em>. I find, for the types of things I need to take pictures of, I primarily use the wide-angle camera which takes a 50% resolution hit compared to my current phone. I know ‘megapixels aren’t everything’ but if I’m going to pay that much money for a phone, I’m not really keep for that kind of a compromise</p></li></ul><p class="">But comparing the <a href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=11622&amp;idPhone3=10747" target="_blank">OnePlus 10T against the OnePlus 9</a> is an interesting dilemma; for what is essentially the same price, the OnePlus 9 is probably the better phone <em>but</em> the OnePlus 10T gives me a longer runway before I have to revisit getting a new phone. At the time, the pricing of the 10T was with a limited time launch-promo (get the higher-spec variant for the lower-spec-price). There was no way I was entertaining this when the promotion ended.</p><p class="">Overall, <strong>I just didn’t like any of these options</strong>.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="refurb">Enter: the refurb market...</h3>
  


  
  <p class="">Not liking <em>any</em> of the options I found: they were way too pricey and/or had way too many compromises, I started looking at the refurbished market (I wasn’t about to touch the used-market with a 10ft pole!) This ended up being a great idea as it gave me some options:</p><ul data-rte-list="default"><li><p class=""><a href="https://amzn.to/3RS8I1M" target="_blank">OnePlus 8 @ $380 CAD</a></p></li><li><p class=""><a href="https://amzn.to/3xe4ZDI" target="_blank">OnePlus 8T+ @ $450 CAD</a></p></li><li><p class=""><a href="https://amzn.to/3xgESMp" target="_blank">OnePlus 9 @ $510 CAD</a></p></li><li><p class=""><a href="https://amzn.to/3L4iH1C" target="_blank">OnePlus 9 Pro @ $640 CAD</a></p></li></ul><p class="">Again, throwing these into a spreadsheet:</p>


  






  




  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link rel="stylesheet" href="/s/sheet-no-overflow.css" type="text/css" >
<table cellpadding="0" cellspacing="0" class="waffle"><thead><tr><th class="row-header freezebar-origin-ltr"></th><th id="474847401C0" class="column-headers-background">A</th><th id="474847401C1" class="column-headers-background">B</th><th id="474847401C2" class="column-headers-background">C</th><th id="474847401C3" class="column-headers-background">D</th><th id="474847401C4" class="column-headers-background">E</th><th id="474847401C5" class="column-headers-background">F</th></tr></thead><tbody><tr><th id="474847401R0" class="row-headers-background">1</th><td></td><td dir="ltr" class="s0">OnePlus 7T</td><td dir="ltr" class="s1"><a target="_blank" href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10161">OnePlus 8</a></td><td dir="ltr" class="s1"><a target="_blank" href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10512">OnePlus 8T+</a></td><td dir="ltr" class="s1"><a target="_blank" href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10747">OnePlus 9</a></td><td dir="ltr" class="s1"><a target="_blank" href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10806">OnePlus 9 Pro</a></td></tr><tr><th id="474847401R1" class="row-headers-background">2</th><td dir="ltr" class="s2">Price available to me</td><td dir="ltr" class="s3">Paid 350CAD</td><td dir="ltr" class="s3">380CAD</td><td dir="ltr" class="s3">450CAD</td><td dir="ltr" class="s3">510CAD</td><td dir="ltr" class="s3">640CAD</td></tr><tr><th id="474847401R2" class="row-headers-background">3</th><td dir="ltr" class="s2">Year Released</td><td dir="ltr" class="s3">2019</td><td dir="ltr" class="s3">2020</td><td dir="ltr" class="s3">2020</td><td dir="ltr" class="s3">2021</td><td dir="ltr" class="s3">2021</td></tr><tr><th id="474847401R3" class="row-headers-background">4</th><td dir="ltr" class="s2 softmerge">Last Year of Security Updates</td><td dir="ltr" class="s3">2023</td><td dir="ltr" class="s4">2024</td><td dir="ltr" class="s4">2024</td><td dir="ltr" class="s3">2025</td><td dir="ltr" class="s3">2025</td></tr><tr><th id="474847401R4" class="row-headers-background">5</th><td dir="ltr" class="s2">OS Support</td><td dir="ltr" class="s3">Android 10-12</td><td dir="ltr" class="s5">Android 10-12</td><td dir="ltr" class="s6">Android 11-13</td><td dir="ltr" class="s6">Android 11-13</td><td dir="ltr" class="s6">Android 11-13</td></tr><tr><th id="474847401R5" class="row-headers-background">6</th><td dir="ltr" class="s2">Max Cellular</td><td dir="ltr" class="s3">4G</td><td dir="ltr" class="s3">5G</td><td dir="ltr" class="s3">5G</td><td dir="ltr" class="s3">5G</td><td dir="ltr" class="s3">5G</td></tr><tr><th id="474847401R6" class="row-headers-background">7</th><td dir="ltr" class="s2">CPU</td><td dir="ltr" class="s3">Snapdragon 855+</td><td dir="ltr" class="s3">Snapdragon 865</td><td dir="ltr" class="s3">Snapdragon 865</td><td dir="ltr" class="s3">Snapdragon 888</td><td dir="ltr" class="s3">Snapdragon 888</td></tr><tr><th id="474847401R7" class="row-headers-background">8</th><td dir="ltr" class="s2">RAM</td><td dir="ltr" class="s3">8GB</td><td dir="ltr" class="s3">8GB</td><td dir="ltr" class="s6">12GB</td><td dir="ltr" class="s3">8GB</td><td dir="ltr" class="s6">12GB</td></tr><tr><th id="474847401R8" class="row-headers-background">9</th><td dir="ltr" class="s2">Storage</td><td dir="ltr" class="s3">128GB</td><td dir="ltr" class="s3">128GB</td><td dir="ltr" class="s3">256GB</td><td dir="ltr" class="s3">128GB</td><td dir="ltr" class="s3">256GB</td></tr><tr><th id="474847401R9" class="row-headers-background">10</th><td dir="ltr" class="s2">Storage Type</td><td dir="ltr" class="s3">UFS 3.0</td><td dir="ltr" class="s3">UFS 3.0</td><td dir="ltr" class="s6">UFS 3.1</td><td dir="ltr" class="s6">UFS 3.1</td><td dir="ltr" class="s6">UFS 3.1</td></tr><tr><th id="474847401R10" class="row-headers-background">11</th><td dir="ltr" class="s2">Latest Wi-Fi</td><td dir="ltr" class="s3">Wi-Fi 5 (AC)</td><td dir="ltr" class="s6">Wi-Fi 6 (AX)</td><td dir="ltr" class="s6">Wi-Fi 6 (AX)</td><td dir="ltr" class="s6">Wi-Fi 6 (AX)</td><td dir="ltr" class="s6">Wi-Fi 6 (AX)</td></tr><tr><th id="474847401R11" class="row-headers-background">12</th><td dir="ltr" class="s2">Latest Bluetooth</td><td dir="ltr" class="s3">5</td><td dir="ltr" class="s3">5.1</td><td dir="ltr" class="s3">5.1</td><td dir="ltr" class="s3">5.2</td><td dir="ltr" class="s3">5.2</td></tr><tr><th id="474847401R12" class="row-headers-background">13</th><td dir="ltr" class="s2">Battery</td><td dir="ltr" class="s3">3800mAh</td><td dir="ltr" class="s3">4300mAh</td><td dir="ltr" class="s3">4500mAh</td><td dir="ltr" class="s3">4500mAh</td><td dir="ltr" class="s3">4500mAh</td></tr><tr><th id="474847401R13" class="row-headers-background">14</th><td dir="ltr" class="s2">Wired Charging</td><td dir="ltr" class="s3">30W</td><td dir="ltr" class="s3">30W</td><td dir="ltr" class="s6">65W</td><td dir="ltr" class="s6">65W</td><td dir="ltr" class="s6">65W</td></tr><tr><th id="474847401R14" class="row-headers-background">15</th><td dir="ltr" class="s2">Wireless Charging</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">15W</td><td dir="ltr" class="s3">50W</td></tr><tr><th id="474847401R15" class="row-headers-background">16</th><td dir="ltr" class="s2">Reverse Wireless Charging</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">Yes, speed unknown</td></tr><tr><th id="474847401R16" class="row-headers-background">17</th><td dir="ltr" class="s2">USB Power Delivery</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s3">Yes</td></tr><tr><th id="474847401R17" class="row-headers-background">18</th><td dir="ltr" class="s2">Camera - Main</td><td dir="ltr" class="s3">48MP f/1.6, 26mm, OIS</td><td dir="ltr" class="s3">48MP f/1.6, 26mm, OIS</td><td dir="ltr" class="s3">48MP f/1.6, 26mm, OIS</td><td dir="ltr" class="s3">48MP, f/1.8, 23mm, <span>EIS</span></td><td dir="ltr" class="s3">48MP, f/1.8, 23mm, OIS</td></tr><tr><th id="474847401R18" class="row-headers-background">19</th><td dir="ltr" class="s2">Camera - Wide</td><td dir="ltr" class="s3">16MP f/2.2, 17mm</td><td dir="ltr" class="s3">16MP f/2.2, <span>14mm</span></td><td dir="ltr" class="s3">16MP f/2.2, <span>14mm</span></td><td dir="ltr" class="s6">50MP, f/2.2, 14mm</td><td dir="ltr" class="s6">50MP, f/2.2, 14mm</td></tr><tr><th id="474847401R19" class="row-headers-background">20</th><td dir="ltr" class="s2">Camera - Tele</td><td dir="ltr" class="s3">12MP f/2.2, 51mm (2X)</td><td dir="ltr" class="s5">None</td><td dir="ltr" class="s5">None</td><td dir="ltr" class="s5">None</td><td dir="ltr" class="s3">8MP, f/2.4, <span>77mm (3X), OIS</span></td></tr><tr><th id="474847401R20" class="row-headers-background">21</th><td dir="ltr" class="s2">Camera - Front</td><td dir="ltr" class="s3">16MP f/2.0, 25mm</td><td dir="ltr" class="s3">16MP, <span>f/2.4</span>, 25mm</td><td dir="ltr" class="s3">16MP, <span>f/2.4</span>, 25mm</td><td dir="ltr" class="s3">16MP, <span>f/2.4</span>, 25mm</td><td dir="ltr" class="s3">16MP, <span>f/2.4</span>, 25mm</td></tr><tr><th id="474847401R21" class="row-headers-background">22</th><td dir="ltr" class="s2">Camera - Other</td><td class="s3"></td><td dir="ltr" class="s3">2MP, f/2.4 macro</td><td dir="ltr" class="s3">5MP, f/2.4 macro</td><td dir="ltr" class="s3">2MP, f/2.4 black &amp; white</td><td dir="ltr" class="s3">2MP, f/2.4 black &amp; white</td></tr><tr><th id="474847401R22" class="row-headers-background">23</th><td dir="ltr" class="s2">Max Video</td><td dir="ltr" class="s3">4K60, 1080@240, 720@960</td><td dir="ltr" class="s3">4K60, 1080@240, 720@<span>480</span></td><td dir="ltr" class="s3">4K60, 1080@240, 720@<span>480</span></td><td dir="ltr" class="s3"><span>8K30</span>, 4K60, 1080@240, 720@<span>480</span></td><td dir="ltr" class="s3"><span>8K30</span>, <span>4K120</span>, 1080@240, 720@<span>480</span></td></tr><tr><th id="474847401R23" class="row-headers-background">24</th><td dir="ltr" class="s2">Screen - Resolution</td><td dir="ltr" class="s3">1080x2400</td><td dir="ltr" class="s3">1080x2400</td><td dir="ltr" class="s3">1080x2400</td><td dir="ltr" class="s3">1080x2400</td><td dir="ltr" class="s6">1440x3216</td></tr><tr><th id="474847401R24" class="row-headers-background">25</th><td dir="ltr" class="s2">Screen - Refresh</td><td dir="ltr" class="s3">90</td><td dir="ltr" class="s3">90</td><td dir="ltr" class="s6">120</td><td dir="ltr" class="s6">120</td><td dir="ltr" class="s6">120</td></tr><tr><th id="474847401R25" class="row-headers-background">26</th><td dir="ltr" class="s2">Screen - Protection</td><td dir="ltr" class="s3">Gorilla Glass 5</td><td dir="ltr" class="s3">Gorilla Glass 5</td><td dir="ltr" class="s3">Gorilla Glass 5</td><td dir="ltr" class="s3">Gorilla Glass 5</td><td dir="ltr" class="s3">Gorilla Glass 5</td></tr><tr><th id="474847401R26" class="row-headers-background">27</th><td dir="ltr" class="s2">Screen - Always On Display</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s3">No</td><td dir="ltr" class="s6">Yes</td><td dir="ltr" class="s6">Yes</td><td dir="ltr" class="s6">Yes</td></tr><tr><th id="474847401R27" class="row-headers-background">28</th><td dir="ltr" class="s2">SIM Slots</td><td dir="ltr" class="s3">2</td><td dir="ltr" class="s3">2</td><td dir="ltr" class="s7">1</td><td dir="ltr" class="s3">2</td><td dir="ltr" class="s3">2</td></tr><tr><th id="474847401R28" class="row-headers-background">29</th><td dir="ltr" class="s2">Dust Resistance</td><td dir="ltr" class="s3">Nothing official</td><td dir="ltr" class="s3">Nothing official</td><td dir="ltr" class="s6">IP68</td><td dir="ltr" class="s3">Nothing official (on the model available)</td><td dir="ltr" class="s6">IP68</td></tr><tr><th id="474847401R29" class="row-headers-background">30</th><td dir="ltr" class="s2">USB Type-C</td><td dir="ltr" class="s3">3.1</td><td dir="ltr" class="s3">3.1</td><td dir="ltr" class="s3">3.1</td><td dir="ltr" class="s3">3.1</td><td dir="ltr" class="s3">3.1</td></tr><tr><th id="474847401R30" class="row-headers-background">31</th><td dir="ltr" class="s2">USB OTG</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s3">Yes</td><td dir="ltr" class="s3">Yes</td></tr></tbody></table>
  


  
  <p class="">With these price points, the options become exciting (and viable) again! </p><ul data-rte-list="default"><li><p class="">The <a href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10161" target="_blank">OnePlus 8</a> for the absolute lowest-cost</p></li><li><p class="">The <a href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10420" target="_blank">OnePlus 8T</a> becomes the budget option that sneaks in [official] dust- and water-resistance</p></li><li><p class="">The <a href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10747" target="_blank">OnePlus 9</a> is still a bit of an odd child that arguably is a bit worse than the 8T but gives you a +1 year on the support runway — with a small premium of $60 CAD, that was fair</p></li><li><p class="">The <a href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10806" target="_blank">OnePlus 9 Pro</a> being the least compromises option</p></li></ul><p class="">Unlike the online/new/retail pricing, the refurbished pricing separates the products with meaningful price jumps/drops. Deciding between the <a href="https://www.gsmarena.com/compare.php3?idPhone1=9816&amp;idPhone2=10512&amp;idPhone3=10806" target="_blank">OnePlus 8T and the 9 Pro</a> was a bit of a challenge: I ended up going with the <a href="https://amzn.to/3L4iH1C" target="_blank"><strong>One Plus 9 Pro</strong></a>. I figured the price premium for it is justified by the extra support runaway and having better specs all around.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="refurb-results">So how was the refurbished experience?</h3>
  


  
  <p class="">That’s the one uncertainty of going with refurbished products. In <em>theory</em>, it should be fine, but there’s <em>always </em>a gotcha! I specifically with Amazon Renewed as a bit of a safety net (on top of the ease of returning things as a Prime member) for easy of returns if anything was even a bit out of place. The presentation of the Renewed program is pretty enticing:</p>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0eb31b62-523e-4f32-8d27-845dd3a2ad1a/AmazonRenewed_Squooshed.jpg" data-image-dimensions="1500x522" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0eb31b62-523e-4f32-8d27-845dd3a2ad1a/AmazonRenewed_Squooshed.jpg?format=1000w" width="1500" height="522" sizes="(max-width: 640px) 100vw, (max-width: 767px) 100vw, 100vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0eb31b62-523e-4f32-8d27-845dd3a2ad1a/AmazonRenewed_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0eb31b62-523e-4f32-8d27-845dd3a2ad1a/AmazonRenewed_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0eb31b62-523e-4f32-8d27-845dd3a2ad1a/AmazonRenewed_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0eb31b62-523e-4f32-8d27-845dd3a2ad1a/AmazonRenewed_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0eb31b62-523e-4f32-8d27-845dd3a2ad1a/AmazonRenewed_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0eb31b62-523e-4f32-8d27-845dd3a2ad1a/AmazonRenewed_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0eb31b62-523e-4f32-8d27-845dd3a2ad1a/AmazonRenewed_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
      
        </figure>
      

    
  


  



  
  <p class="">The phones arrived the next day in generic boxes without any visible damage of any kind - they even came with a OnePlus (30W) charger and cable! I was expecting a generic phone charger so this was a great surprise. Both phones powered up fine and, as advertised, were both carrier-unlocked (to be fair, I was only able to test connectivity with the Telus network, but the phones did indicate they were network-unlocked). I was expecting this to be a walk in the park - I’d spend a couple hours tinkering and Nicole would have her phone up and running in no time.</p><p class=""><em>Am I foreshadowing too much?</em></p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="too-easy">No plan survives contact with the enemy...</h3>
  


  
  <p class="">The first clue that something might be amiss was seeing the specific model was the LE2127 — this is the T-Mobile variant although initially I wasn’t phased by this. After all, our current phones (HD1907) were <em>also</em> T-Mobile variants and I didn’t have any major issues with it: the phone shipped with the normal Oxygen OS operating system and I was able to take updates just fine. At this point, the only thing that I knew was that the T-Mobile variant was a single-SIM model only; this was only a small disappointment rather than anything earth shattering.</p><p class="">When I sat down to start running the phone through the gamut of setup tasks, I rebooted it and finally saw what I had missed on the first boot-up. I would have been totally okay with having a jarringly bright-pink splash screen on boot-up, <em>if</em> the OS that booted up was Oxygen OS (the OS that comes with OnePlus phones). <em>Nope</em>. It was a T-Mobile bastardized version of the OS that would only accept updates provided by T-Mobile. This had to go.</p><p class="">This is very much ‘standard phone setup’ for me so at this point, I’m irked but not concerned:</p><ol data-rte-list="default"><li><p class="">Install drivers and prerequisites</p></li><li><p class="">Enable Developer Options and turn on USB debugging and OEM unlocking</p></li><li><p class="">Reboot to the bootloader and unlock it. This wipes the phone</p></li><li><p class="">After the phone comes back, redo step 2 (because the phone was wiped)</p></li><li><p class="">Reboot to the bootloader and flash a temporary root environment</p></li><li><p class="">Side-load Magisk and root the device permanently</p></li><li><p class="">Side-load Oxygen Updater and do a local update to the latest OS</p></li><li><p class="">Once you’re done all of this, <em>now</em> you can log into the phone and setup/restore your apps etc.</p></li></ol>


  






  














































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0668c101-fe09-4bcd-b4be-b5bad756be1f/TMobile_Squooshed.jpg" data-image-dimensions="520x969" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0668c101-fe09-4bcd-b4be-b5bad756be1f/TMobile_Squooshed.jpg?format=1000w" width="520" height="969" sizes="(max-width: 640px) 100vw, (max-width: 767px) 25vw, 25vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0668c101-fe09-4bcd-b4be-b5bad756be1f/TMobile_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0668c101-fe09-4bcd-b4be-b5bad756be1f/TMobile_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0668c101-fe09-4bcd-b4be-b5bad756be1f/TMobile_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0668c101-fe09-4bcd-b4be-b5bad756be1f/TMobile_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0668c101-fe09-4bcd-b4be-b5bad756be1f/TMobile_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0668c101-fe09-4bcd-b4be-b5bad756be1f/TMobile_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/0668c101-fe09-4bcd-b4be-b5bad756be1f/TMobile_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">A jarringly bright bootup screen!</p>
          </figcaption>
        
      
        </figure>
      

    
  


  



  
  <p class="">When I jumped into the bootloader, I saw a message I haven’t seen in <em>forever:</em></p>


  






  



&nbsp;<p><code data-preserve-html-node="true"><strong>&gt; fastboot oem unlock</strong></code></p><code data-preserve-html-node="true"></code><blockquote><code data-preserve-html-node="true"></code><p><code data-preserve-html-node="true">FAILED: (remote: 'Please flash unlock token first.')<br>fastboot: error: Command failed</code></p>
</blockquote>


  
  <p class="">Thinking I had somehow forgotten to enable OEM unlocking and annoyed, I rebooted into the OS and saw that I hadn't forgot to do this at all: OEM unlocking <strong>was</strong> enabled. Despite the ‘OEM unlocking’ setting being set to <em>ON</em>, this was not going to be an easy-peasy setup. Turns out there’s a huge dance you’re “<em>supposed</em>” to do.</p>


  






  



&nbsp;<ol>
<li><p>First, get the unlock code<br><code data-preserve-html-node="true"><strong>&gt; fastboot oem unlock</strong></code></p><code data-preserve-html-node="true"></code><blockquote><code data-preserve-html-node="true"></code><p><code data-preserve-html-node="true">(bootloader) Serial Number:<br>(bootloader) ====================================<br>(bootloader) [8-character-string]<br>(bootloader) ====================================<br>(bootloader) Unlock code:<br>(bootloader) ====================================<br>(bootloader) [32-character-string]<br>(bootloader) [32-character-string]<br>(bootloader) ====================================<br></code></p>
</blockquote>
</li>
<li><p>Now go to the <a href="https://www.oneplus.com/ca_en/unlock_token">unlock website</a></p>
</li>
<li>Fill in your IMEI, serial number (- thats the 8-character string) and the unlock code. It's not eimmediately obvious but you have to combine the two 32-character-strings into a single 64-character code</li>
<li>Wait 7-14 <em>days</em> and they will/may get back to you with an unlock code of some sort, I'm not entirely sure.</li>
<li>You're supposed to save the unlock code as a file (i.e., <strong>unlock_token.bin</strong>)</li>
<li>Now you can unlock the right-to unlock your bootloader:<br><code data-preserve-html-node="true"><strong>&gt; fastboot flash cust_unlock unlock_token.bin</strong></code><blockquote><code data-preserve-html-node="true"></code><p><code data-preserve-html-node="true">target reported max download size of [SOMENUMBER] bytes<br>sending 'cust-unlock' (0 KB)...<br>OKAY [   0.005s]<br>writing 'cust-unlock'...<br>(bootloader) Device is unlocked.
OKAY [   0.005s]<br>finished. total time: 0.010s</code></p>
</blockquote>
</li>
<li>And now you can unlock your bootloader:<br><code data-preserve-html-node="true"><strong>&gt; fastboot oem unlock</strong></code><blockquote><code data-preserve-html-node="true"></code><p><code data-preserve-html-node="true">...<br>OKAY [  0.025s]<br>finished. total time: 0.026s<br></code>  </p>
</blockquote>
</li>
</ol>


  
  <p class="">That’s right. You are expected to wait <strong>7-14 days</strong> to do something that should take <em>milliseconds</em> to do. And this is one of the easier options! Some carriers don’t even provide this and some other brands (i.e., Samsung, LG) may not even allow unlocking of the bootloader <em>period</em>. </p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="setup">OnePlus 9 Pro (T-Mobile) setup, start to finish</h3>
  


  
  <p class="">On the off chance you stumbled on this page trying to set up <em>your</em> OnePlus 9 Pro, the following is a fairly complete documentation of everything I needed to do to get the phone into an acceptable state. There wasn’t a chance in hell I was going to wait for T-Mobile to get back to me with the unlock code — we’re going bypass all of this.  If you’re following along, you’ll need two things:</p><ol data-rte-list="default"><li><p class="">A Windows PC and</p></li><li><p class="">To accept that your phone will get wiped and it’s possible for things to go really wrong!</p></li></ol>


  






  



&nbsp;<hr />&nbsp;
  
  <p class="">At a high level, I need to do a few things:</p><ol data-rte-list="default"><li><p class="">Replace the T-Mobile OS with Oxygen OS by any means necessary (reference <a href="https://forum.xda-developers.com/t/convert-your-t-mobile-le2127-to-eu-via-msm-no-unlock-bin-needed.4272837/" target="_blank">XDA thread</a>)</p></li><li><p class="">Get the phone rooted (reference <a href="https://forum.xda-developers.com/t/guide-magisk-unlock-root-keep-root-oos-12-c-63.4252373/" target="_blank">XDA thread</a>)</p></li><li><p class="">Get call recording setup (reference <a href="https://github.com/chenxiaolong/BCR" target="_blank">GitHub repo</a>)</p></li><li><p class="">Finish setting up the phone</p></li><li><p class="">Fix any stupid-behaviour or quirks as I encounter them</p></li></ol><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="setup-1">[01] Prerequisites</h4>
  


  
  <p class="sqsrte-large">Basic Connectivity</p><p class="">You’ll want to download a few things before we get started:</p><ol data-rte-list="default"><li><p class="">Download the latest <a href="https://developer.android.com/studio/releases/platform-tools" target="_blank">Android SDK Platform tools</a>. Extract them somewhere; for this example, we’ll use <strong>C:\android-platform-tools</strong></p></li><li><p class="">Download and install the OnePlus drivers. If Windows update doesn’t sort you out, you can get some drivers from <a href="https://oneplususbdrivers.com" target="_blank">here</a></p></li><li><p class="">Download and extract the <a href="https://developer.android.com/studio/run/win-usb" target="_blank">Google USB driver</a></p></li><li><p class="">Download the Qualcomm USB drivers. I got mine from <a href="https://androidfilehost.com?fid=14943124697586335873" target="_blank">here</a>. Extract this somewhere</p></li></ol><p class="">Before we continue on, we need to prepare a few things:</p><ul data-rte-list="default"><li><p class="">Plug your phone in now, select <strong>File Transfer / Android Auto</strong> as the USB connection mode</p></li><li><p class="">If there is a missing driver in Device Manager, point the drivers to the OnePlus drivers you installed above. You should be able to open My Computer and navigate into the phone’s internal storage without issue</p></li><li><p class="">Enable <strong>Developer Options</strong>. On normal phones, you’d tap on <em>Build Number</em> a bunch of times, but for the T-Mobile, you’ll need to tap on <em>Software Version</em></p></li><li><p class="">In Developer Options, enable the following settings:</p><ul data-rte-list="default"><li><p class="">OEM Unlocking</p></li><li><p class="">Advanced Reboot</p></li><li><p class="">USB Debugging — if your phone is plugged in at this point, you will get a confirmation if you want to trust the RSA thumbprint (of the computer); go ahead and check the box and trust it</p><p data-rte-preserve-empty="true" class=""></p></li></ul></li></ul><p class="sqsrte-large">Verify ADB Works</p><ul data-rte-list="default"><li><p class="">Open command prompt and navigate to the platform tools you extracted earlier (<strong>C:\android-platform-tools</strong>). Run <strong>adb devices</strong> and you should see a single device listed. <em>Keep this command prompt window open until we are all done this guide</em>.</p></li></ul>


  






  



&nbsp;<p><code data-preserve-html-node="true"><strong>&gt; adb devices</strong></code></p><code data-preserve-html-node="true"></code><blockquote><code data-preserve-html-node="true"></code><p><code data-preserve-html-node="true">[8-character-string]        device</code></p>
</blockquote>


  
  <p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">Verify Fastboot Works</p><ul data-rte-list="default"><li><p class="">Go ahead and run the command <strong>adb reboot bootloader</strong>. This should reboot the phone to a scary looking screen. Check Windows Device Manager to verify that there aren’t any devices that are missing drivers. If you need drivers, use the Google USB driver you grabbed earlier (or you can also get this from Windows Update —&gt; Optional Updates —&gt; Driver Updates)</p></li></ul>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
              
              
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c29eb291-3c40-48f3-ae2a-e2a50972400c/Fastboot_Squooshed.jpg" data-image-dimensions="2500x1001" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c29eb291-3c40-48f3-ae2a-e2a50972400c/Fastboot_Squooshed.jpg?format=1000w" width="2500" height="1001" sizes="(max-width: 640px) 100vw, (max-width: 767px) 66.66666666666666vw, 66.66666666666666vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c29eb291-3c40-48f3-ae2a-e2a50972400c/Fastboot_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c29eb291-3c40-48f3-ae2a-e2a50972400c/Fastboot_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c29eb291-3c40-48f3-ae2a-e2a50972400c/Fastboot_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c29eb291-3c40-48f3-ae2a-e2a50972400c/Fastboot_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c29eb291-3c40-48f3-ae2a-e2a50972400c/Fastboot_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c29eb291-3c40-48f3-ae2a-e2a50972400c/Fastboot_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/c29eb291-3c40-48f3-ae2a-e2a50972400c/Fastboot_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
            
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p class="">OnePlus 9 Pro at the bootloader screen</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <ul data-rte-list="default"><li><p class="">Run the command <strong>fastboot devices</strong> and this should also return a single device listed</p></li></ul>


  






  



&nbsp;<p><code data-preserve-html-node="true"><strong>&gt; fastboot devices</strong></code></p><code data-preserve-html-node="true"></code><blockquote><code data-preserve-html-node="true"></code><p><code data-preserve-html-node="true">[8-character-string]        fastboot</code></p>
</blockquote>


  
  <p class="">You can either press the power button or run <strong>fastboot reboot</strong>  to reboot the phone back to the normal desktop</p><p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">Verify EDL Works</p><p class="">Getting your phone into EDL mode can be a bit tricky and since the screen is <em>off</em>, there isn’t an easy confirmation that you did it right. Before we get started, you’ll want to have Windows Device Manager open and have easy access to the Qualcomm Drivers you extracted earlier.</p><ol data-rte-list="default"><li><p class="">Power the phone off</p></li><li><p class="">Leave the USB cable plugged into the computer and unplug it from the phone</p></li><li><p class="">Hold down the volume-up and volume-down buttons simultaneously. I hold mine down for a 3-count before proceeding. Do not let go of these buttons yet</p></li><li><p class="">While still holding the volume-up and volume-down buttons down, plug the USB cable into your phone</p></li><li><p class="">Continue holding the volume-up and volume-down buttons for a 2-count and then release them</p></li></ol><p class="">If you did everything right, the screen will <span><em>not</em></span> turn on. Quickly go to Device Manager, and check for devices that might be missing drivers — should be named <strong>QHSUSB_BULK</strong> or similar. Point it at the Qualcomm drivers you extracted earlier. Once the drivers install, the device should now be recognized as <strong>Qualcomm HS-USB QDLoader 9008</strong>.</p><p class="">To get out of this special mode, I held the <strong>Volume Up and Power button for 15-seconds.</strong> Once you’ve verified that EDL works, we can actually get started!</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="setup-2">[02] Converting to EU and unlocking the bootloader</h4>
  


  
  <ol data-rte-list="default"><li><p class="">Disconnect your phone from the computer and power off your phone</p></li><li><p class="">As per the post, download the two files we will need</p><ul data-rte-list="default"><li><p class=""><a href="https://www.androidfilehost.com?fid=14943124697586337355" target="_blank">Conversion package</a> (MD5: 8CC3E5E81D15E28BB10DC5F1E7BD4133). Extract this to a folder somewhere</p></li><li><p class=""><a href="https://www.androidfilehost.com?fid=2188818919693793883" target="_blank">T-Mobile modems</a> (MD5: 1F23347CA9E2924EC4E9D67982857732). Extract the file to our platform tools folder, <strong>C:\android-platform-tools</strong></p></li></ul></li><li><p class="">From the conversion package, run <strong>MsmDownloadTool V4.0.exe</strong>. It takes a moment to launch so be patient!</p></li><li><p class="">Once it launches, you will be presented with a login dialog, select <strong>Other</strong> and click <strong>Next</strong> to continue</p></li><li><p class="">Once you have logged in, the main application will launch. Click <strong>Start</strong> to set the application in listening mode. By putting the application in listening mode, once the phone connects, the application will start to do it’s thing without any further interaction from the user</p></li><li><p class="">Confirm with yourself that you want to continue</p></li><li><p class="">Do the funky volume-up and volume-down button-press thing to get the phone into EDL mode and connected to the computer. If you’re successful, the MSM application will detect it and do it’s thing all on its own. If you miss the timing and the phone just boots up normally, go ahead and power down and try again</p></li><li><p class="">Walk away for 10 minutes and let the MSM application do it’s thing. The phone will reboot automatically when it’s done: you’ll come back to a “Welcome to Android” wizard</p></li><li><p class="">Once you’ve successfully got to the “Welcome to Android'“ wizard, go ahead and click <strong>Stop</strong> in the MSM app and then you can close the app</p></li></ol>


  






  



&nbsp;


  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="MSM App - Login" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Select Other to continue&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662870604246-12U00QB9J66JS7HSW7M9/MSM_1_squooshed.jpg" role="button" aria-labelledby="631d644c8f71a31aac14d6a7-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662870604246-12U00QB9J66JS7HSW7M9/MSM_1_squooshed.jpg" data-image-dimensions="420x345" data-image-focal-point="0.5,0.5" alt="MSM App - Login" data-load="false" data-image-id="631d644c8f71a31aac14d6a7" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662870604246-12U00QB9J66JS7HSW7M9/MSM_1_squooshed.jpg?format=1000w" /><br>
                </a>
                
                  MSM App - Login
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="MSM App - Startup" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Click Start to put the application in listening mode&lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662870605991-O42MM0OTUN2BNNI5UIO3/MSM_2_squooshed.jpg" role="button" aria-labelledby="631d644db67ef2795a37c826-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662870605991-O42MM0OTUN2BNNI5UIO3/MSM_2_squooshed.jpg" data-image-dimensions="1062x592" data-image-focal-point="0.5,0.5" alt="MSM App - Startup" data-load="false" data-image-id="631d644db67ef2795a37c826" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662870605991-O42MM0OTUN2BNNI5UIO3/MSM_2_squooshed.jpg?format=1000w" /><br>
                </a>
                
                  MSM App - Startup
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="MSM App - Listening" data-description="&lt;p class=&quot;&quot; style=&quot;white-space:pre-wrap;&quot;&gt;Here the application is waiting for the phone (in EDL mode) to connect &lt;/p&gt;" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662870607518-VTKB5QEF09VKPNAQUB1K/MSM_3_squooshed.jpg" role="button" aria-labelledby="631d644f4538657879eed645-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662870607518-VTKB5QEF09VKPNAQUB1K/MSM_3_squooshed.jpg" data-image-dimensions="1064x601" data-image-focal-point="0.5,0.5" alt="MSM App - Listening" data-load="false" data-image-id="631d644f4538657879eed645" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662870607518-VTKB5QEF09VKPNAQUB1K/MSM_3_squooshed.jpg?format=1000w" /><br>
                </a>
                
                  MSM App - Listening
                
              
            
          

          
        

      
    
  

  










&nbsp;
  
  <p class="">At this point your phone is has been converted to an EU edition of the phone (which is a good thing). You no longer have a locked bootloader and you can now get all of the updates that have been available for a long time (and not ‘approved’ or made available by T-Mobile).</p><p class="">Go ahead and finish the Welcome to Android wizard — just do the bare minimum to get to the desktop. Don’t get too excited and go and log into the phone and install apps or anything — we’re going to be wiping the phone at least once more so you’ll have to do this all over again.</p><ol data-rte-list="default"><li><p class="">Connect to Wi-Fi or cell</p></li><li><p class="">Disconnect and reconnect your phone to the computer and select <strong>File Transfer / Android Auto</strong> as the connection mode</p></li><li><p class="">Enable Developer Mode and turn on: </p><ul data-rte-list="default"><li><p class=""><strong>OEM Unlocking</strong></p></li><li><p class=""><strong>Advanced Reboot</strong></p></li><li><p class=""><strong>USB debugging</strong> (and re-authorize your computer)</p></li></ul></li><li><p class="">In the command prompt dialog, reboot to bootloader using <strong>adb reboot bootloader</strong></p></li></ol>


  






  



&nbsp;<code data-preserve-html-node="true">**\&gt; fastboot oem unlock**    
&gt;...  
OKAY [  0.025s]  
finished. total time: 0.026s</code>

<p>You will be prompted on your phone on whether you want to proceed or not - unlocking will wipe all data on the phone. Go ahead and confirm to continue. The phone will self-wipe and reboot on its own.</p>


  
  <p class="">After the phone finishes and reboots, complete the ‘Welcome to Android’ wizard again. You know the drill by now:</p><ol data-rte-list="default"><li><p class="">Connect to Wi-Fi or cell</p></li><li><p class="">Disconnect and reconnect your phone to the computer and select <strong>File Transfer / Android Auto</strong> as the connection mode</p></li><li><p class="">Enable Developer Mode and turn on: </p><ul data-rte-list="default"><li><p class=""><strong>OEM Unlocking </strong>- this time confirm that you <em>can’t </em>toggle this because the bootloader is already unlocked!</p></li><li><p class=""><strong>Advanced Reboot</strong></p></li><li><p class=""><strong>USB debugging</strong> (and re-authorize your computer)</p></li></ul></li></ol>


  






  



&nbsp;










































  

    
  
    

      

      
        <figure class="
              sqs-block-image-figure
              intrinsic
            "
        >
          
        
        

        
          
            
          
            
                
                
                
                
                
                
                
                <img data-stretch="false" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/965133a2-d041-493f-8ed7-6350e6233d52/BootloaderUnlocked_Squooshed.jpg" data-image-dimensions="1440x247" data-image-focal-point="0.5,0.5" alt="" data-load="false" elementtiming="system-image-block" data-sqsp-image-classic-block-image src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/965133a2-d041-493f-8ed7-6350e6233d52/BootloaderUnlocked_Squooshed.jpg?format=1000w" width="1440" height="247" sizes="(max-width: 640px) 100vw, (max-width: 767px) 50vw, 50vw" onload="this.classList.add(&quot;loaded&quot;)" srcset="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/965133a2-d041-493f-8ed7-6350e6233d52/BootloaderUnlocked_Squooshed.jpg?format=100w 100w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/965133a2-d041-493f-8ed7-6350e6233d52/BootloaderUnlocked_Squooshed.jpg?format=300w 300w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/965133a2-d041-493f-8ed7-6350e6233d52/BootloaderUnlocked_Squooshed.jpg?format=500w 500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/965133a2-d041-493f-8ed7-6350e6233d52/BootloaderUnlocked_Squooshed.jpg?format=750w 750w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/965133a2-d041-493f-8ed7-6350e6233d52/BootloaderUnlocked_Squooshed.jpg?format=1000w 1000w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/965133a2-d041-493f-8ed7-6350e6233d52/BootloaderUnlocked_Squooshed.jpg?format=1500w 1500w, https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/965133a2-d041-493f-8ed7-6350e6233d52/BootloaderUnlocked_Squooshed.jpg?format=2500w 2500w" loading="lazy" decoding="async" data-loader="sqs">

            
          
        
          
        

        
          
          <figcaption data-sqsp-image-classic-block-caption-container class="image-caption-wrapper">
            <p data-rte-preserve-empty="true" class="">Eesh. All this work for something that should have been easy…</p>
          </figcaption>
        
      
        </figure>
      

    
  


  


&nbsp;
  
  <p class="">The last thing we need to do now is to restore the T-Mobile modem. In the command prompt dialog, reboot to bootloader using <strong>adb reboot bootloader</strong> and run the following commands:</p>


  






  



&nbsp;<p><code data-preserve-html-node="true"><strong>&gt; fastboot flash modem_a NON-HLOS.bin</strong></code></p><code data-preserve-html-node="true"></code><blockquote><code data-preserve-html-node="true"></code><p><code data-preserve-html-node="true">Sending 'modem_a' (214892 KB)          OKAY  [4.992s]<br>Writing 'modem_a'          OKAY [0.614s]<br>finished. total time: 5.628s</code></p>
</blockquote>
<p><code data-preserve-html-node="true"><strong>&gt; fastboot flash modem_b NON-HLOS.bin</strong></code></p><code data-preserve-html-node="true"></code><blockquote><code data-preserve-html-node="true"></code><p><code data-preserve-html-node="true">Sending 'modem_b' (214892 KB)          OKAY  [4.992s]<br>Writing 'modem_b'          OKAY [0.693s]<br>finished. total time: 5.709s</code></p>
</blockquote>


  
  <p class="">Now you can reboot your phone by pressing the power button or running <strong>fastboot reboot</strong>.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="setup-3">[03] Updating the phone via OTA</h4>
  


  
  <p class="">Now that you have a real OS that can get the widely available updates, we’re going to want to go ahead and get the phone updated to latest:</p><ol data-rte-list="default"><li><p class="">Connect to Wi-Fi</p></li><li><p class="">Use the built-in updater (Settings —&gt; About Device) to go ahead download and install the updates. After each update finishes, you’ll need to restart</p></li><li><p class="">After each update, reboot into the bootloader via <strong>adb reboot bootloader</strong></p></li><li><p class="">Flash the modems:</p><ul data-rte-list="default"><li><p class=""><strong>fastboot flash modem_a NON-HLOS.bin</strong></p></li><li><p class=""><strong>fastboot flash modem_b NON-HLOS.bin</strong></p></li></ul></li><li><p class="">Reboot back to the desktop using the power button or <strong>fastboot reboot</strong></p></li><li><p class="">Once you’re back to the desktop, check the current build version — we’ll want to stop when we get to <strong>11.2.10.10</strong> — this is the last Android 11 update. </p></li></ol><blockquote><p class=""><strong>Stop before updating to Android 12</strong></p><p class="">If you’re not paying attention to the exact version numbers, at some point, during one of the updates, you should get a caution prompt ‘the update you’re about to apply is a major update’. That update is the update to Android 12.</p><p class="">Don’t apply the update yet, go do the next step first,</p></blockquote><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="setup-4">[04] Preparing for Android 12</h4>
  


  
  <p class="sqsrte-large">Prerequisites</p><p class="">Once you’re on version 11.2.10.10, the next update will push us to Android 12 and there are a few things we’ll want to do in preparation. On your computer</p><ul data-rte-list="default"><li><p class="">Download the last Magisk installer from <a href="https://github.com/topjohnwu/Magisk/releases" target="_blank">here</a></p></li><li><p class="">Download a root checking application from <a href="https://www.apkmirror.com/apk/joeykrim/root-checker-basic/" target="_blank">here</a></p></li><li><p class="">Download the latest Oxygen Updater from <a href="https://www.apkmirror.com/apk/adhiraj-singh-chauhan/oxygen-updater/" target="_blank">here</a></p></li><li><p class="">This <a href="https://mega.nz/file/OMwFCCaC#fxd__qy_4bYgwqHnaWF-6vefUn7o96h9KTc4HPm2cs4" target="_blank">Untouched/Magisked (BA)</a> package for version 11.2.10.10 (MD5: 936F2D6C5ABB19908DD20AEFA5AFF052). From this archive, extract the magisk_boot.img file to the platform tools folder, <strong>C:\android-platform-tools</strong>. If you find yourself on a slightly different version than 11.2.10.10, have a look at this <a href="https://forum.xda-developers.com/t/guide-magisk-unlock-root-keep-root-oos-12-c-63.4252373/" target="_blank">XDA thread</a>, you may be able to find a matching package — just remember to look for the ‘BA’ variant since this is now an EU phone.</p></li></ul><p class="">Side load the applications:</p><ol data-rte-list="default"><li><p class="">Connect your phone to the computer for file-transfer</p></li><li><p class="">Copy the APKs to your phone (the \Downloads folder is fine)</p></li><li><p class="">Using a file manager like Google Files, navigate to that folder and run those APKs to  install them (you’ll  be prompted to grant rights to access that folder as well as perform the installation)</p></li></ol><p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">Booting to Temporary Root</p><ol data-rte-list="default"><li><p class="">[Optional] Using the root checker app, verify that we <em>don’t </em>have root</p></li><li><p class="">Using the command prompt dialog, reboot to the bootloader: <strong>adb reboot bootloader</strong></p></li><li><p class="">Once you get to the bootloader, we can go ahead and reboot into a temporary rooted-environment</p></li></ol>


  






  



&nbsp;<p><code data-preserve-html-node="true"><strong>&gt; fastboot boot magisk_boot.img</strong></code></p><code data-preserve-html-node="true"></code><blockquote><code data-preserve-html-node="true"></code><p><code data-preserve-html-node="true">Sending 'boot.img' (98304 KB)          OKAY  [2.300s]<br>Booting           OKAY [0.280s]<br>finished. total time: 2.708s</code></p>
</blockquote>


  
  <p class="">Once you’re back in the desktop, you can use the root-checking application to confirm that you have root — you’ll get a prompt asking you for root permissions (you’ll need to grant it for toot to be detected)</p>


  






  



&nbsp;


  

  



  
    
      

        

        

        
          
            
              
                
                <a data-title="No root!" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662925222216-58YE7UK0T52EVESE7WIS/Root-no-squooshed.jpg" role="button" aria-labelledby="631e39a61688641c580348e1-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662925222216-58YE7UK0T52EVESE7WIS/Root-no-squooshed.jpg" data-image-dimensions="1440x886" data-image-focal-point="0.5,0.5" alt="No root!" data-load="false" data-image-id="631e39a61688641c580348e1" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662925222216-58YE7UK0T52EVESE7WIS/Root-no-squooshed.jpg?format=1000w" /><br>
                </a>
                
                  No root!
                
              
            
          

          
        

      

        

        

        
          
            
              
                
                <a data-title="Root!" data-description="" data-lightbox-theme="dark" href="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662925222432-8ZUEICSS9GT7ZMJH6Q94/Root-yes-squooshed.jpg" role="button" aria-labelledby="631e39a6b67ef2795a4893a2-title" class="
                    image-slide-anchor
                    
                      js-gallery-lightbox-opener
                    
                    content-fill
                  "
                >
                  
                    <span class="v6-visually-hidden">View fullsize</span>
                  
                  <img class="thumb-image" elementtiming="system-gallery-block-grid" data-image="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662925222432-8ZUEICSS9GT7ZMJH6Q94/Root-yes-squooshed.jpg" data-image-dimensions="1440x901" data-image-focal-point="0.5,0.5" alt="Root!" data-load="false" data-image-id="631e39a6b67ef2795a4893a2" data-type="image" src="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662925222432-8ZUEICSS9GT7ZMJH6Q94/Root-yes-squooshed.jpg?format=1000w" /><br>
                </a>
                
                  Root!
                
              
            
          

          
        

      
    
  

  










&nbsp;
  
  <p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">Getting Permanent Root</p><p class="">The phone only has root until it reboots — and we have a lot more rebooting to do! To get permanent root we need to do the following:</p><ol data-rte-list="default"><li><p class="">Launch the <strong>Magisk</strong> app</p></li><li><p class="">In the first box, ‘Magisk’, click <strong>Install</strong></p></li><li><p class="">You will get some options, choose <strong>Direct Install (Recommended)</strong></p></li><li><p class="">Once it finishes, go ahead and reboot</p></li><li><p class="">Once you’re back, run the root checking application to confirm that you still have too</p></li></ol><p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">Fixing the Modems</p><ol data-rte-list="default"><li><p class="">On this <a href="https://forum.xda-developers.com/t/tmo-oos-cos-data-fix.4392893/" target="_blank">XDA thread</a>, download the <strong>Data_Retain.zip</strong> attachment. Copy this to your phone</p></li><li><p class="">Launch the <strong>Magisk</strong> app</p></li><li><p class="">At the bottom, select the <strong>Modules</strong> tab</p></li><li><p class="">Click Install from storage and install the <strong>Data_Retain.zip</strong> attachment</p></li><li><p class="">After the package is flashed, go ahead and <strong>reboot</strong></p></li></ol><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="setup-5">[05] Major update: moving to Android 12</h4>
  


  
  <p class="">Using the system update (Settings —&gt; About Device), go ahead and apply the major update (at the time of writing, the version number of the update happened to be 11.C.47_1470_202203102117). </p><p class="sqsrte-large"><strong><em>DO NOT REBOOT AFTER THE UPDATE.</em></strong></p><p class="">After the update completes, we need to apply root to the new OS:</p><ol data-rte-list="default"><li><p class="">Launch the <strong>Magisk</strong> app</p></li><li><p class="">In the first box, ‘Magisk’, click <strong>Install</strong></p></li><li><p class="">Select <strong>Direct Install (Recommended)</strong> —&gt; <strong>DON’T REBOOT</strong></p></li><li><p class="">Go back and select <strong>Install to Inactive Slot (After OTA)</strong>. It will prompt you that you’ll need to reboot for it to take apply. Continue with the installation</p></li><li><p class="">Now you can reboot</p></li></ol><p class="">After you’re rebooted, go ahead do some quick checks</p><ul data-rte-list="default"><li><p class="">Verify the OS is Android 12</p></li><li><p class="">You may need to re-enable developer mode and/or re-enable the USB Debugging setting</p></li><li><p class="">Verify that you still have root</p></li></ul><p class="">Once that’s done, download the local update application from <a href="https://oxygenos.oneplus.net/OPLocalUpdate_For_Android12.apk">here</a> (MD5: ADF932B2FD4C2A2B379C9427197B6B6A) and copy it to your phone and install it. This is needed because OnePlus decided to remove the ability to do local updates with their Android 12 OS. This APK restores that functionality.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h4 id="setup-6">[06] Doing updates on our terms</h4>
  


  
  <p class="">These steps are the process I use for long term maintenance of the phone. At a high level: <strong>grab latest package from Oxygen Updater —&gt; Update (don’t reboot) —&gt; Preserve root —&gt; Reboot.</strong></p><ol data-rte-list="default"><li><p class="">Launch the <strong>Oxygen Updater</strong> application. If it’s your first time running the application, walk through the wizard; make sure that your device is set to <strong>OnePlus 9 Pro (EU)</strong> and that you’ve selected the <strong>Stable (full)</strong> updates. Once finished, go ahead and download the latest update. At the time of writing this was 11.C.62_1620202206251349. </p><ul data-rte-list="default"><li><p class="">If this is your first time, make rough note of the file size and the filename of the update. In my case, the filename was b906713f52384ca3b1f64eaa36c6db0c.zip and was 4.16GB</p></li></ul></li><li><p class="">Once the download is complete, you can close the app and <strong>System Update</strong> application</p></li><li><p class="">Click the gear in the top right corner to perform the update —&gt; <strong>DON’T REBOOT</strong></p></li><li><p class="">As before, launch the Magisk application </p><ul data-rte-list="default"><li><p class="">Select <strong>Direct Install (Recommended)</strong> —&gt; <strong>DON’T REBOOT</strong></p></li><li><p class="">Go back and select <strong>Install to Inactive Slot (After OTA)</strong>. It will prompt you that you’ll need to reboot for it to take apply. Continue with the installation</p></li><li><p class="">Now you can reboot</p></li></ul></li><li><p class="">After the reboot, you can confirm that your phone has the expected version</p></li><li><p class="">Now you can delete the downloaded update using any means you want (either from a file manager on the phone, or you can connect to a computer and delete it that way). The update will always be in the root path of the phone and will always be a .zip file that matches what you noted in Step 2.</p></li></ol><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="dumb">Now to fix all the dumb...</h3>
  


  
  <p class="">Now, I’m ready to log into the various services (Google account etc.) and get the phones setup. In the brief time I spent setting up the phones, I’ve found a few really dumb things with Android 12; most of these stupid changes are pushed down by Google, but some of it from the OnePlus implementation of Android 12 (or possibly made worse). </p>


  






  
























  
  





<ul data-should-allow-multiple-open-items="true" data-accordion-icon-placement="left" data-is-last-divider-visible="true" data-is-expanded-first-item="" data-is-divider-enabled="" data-accordion-title-alignment="left" class="accordion-items-container" data-is-first-divider-visible="true" data-accordion-description-alignment="left" data-accordion-description-placement="left"
>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            No local updates
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">We already fixed this above but for reasons unknown, OnePlus removed the ability to perform local OS upgrades.</p><p class=""><strong>Fix</strong>: download <a href="https://oxygenos.oneplus.net/OPLocalUpdate_For_Android12.apk" target="_blank">this</a> (MD5: ADF932B2FD4C2A2B379C9427197B6B6A) and install it. This will create a shortcut in your launcher called ‘System Updater’.</p>
        
      

      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Swapping out the Dialer
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">OnePlus is now using a strictly-Google phone stack (phone, contacts, messaging apps). I don’t mind the messaging app but the phone/contacts app is horrendous - says me, someone who averages <em>one</em> call a year - maybe. As an additional nuisance, the Google phone app mangles support for call recording as well. So it’s ugly <em>and</em> nonfunctional.</p><p class="">I really tried to find a way to <em>not</em> use third-party phone/dialer apps, but after spending a couple hours trying to brute force a pre-Android 12 dialer app into Android 12, I just gave up and settled for something that would be simple and clean.</p><p class="">I settled on <a href="https://play.google.com/store/apps/details?gl=US&amp;hl=en_CA&amp;id=com.simplemobiletools.dialer" target="_blank"><strong>Simple Dialer</strong></a><strong> </strong>and it lives up to its namesake.</p>
        
      

      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Restoring call recording functionality
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">The pre-Android 12 OnePlus dialer supported call recording and while it was a <em>bit</em> kludgy to get setup initially, once set up (requiring a Magisk module to activate), sonce setup it <em>just worked</em>.</p><p class="">The Google dialer supports call recording — but only for certain locales as determined by Google. And the recording has all kinds of issues depending on whether or not the screen has gone to sleep (i.e., because you raised the handset to your ear) before the call has connected or not. </p><p class="">I ended up going with a dialer-agnostic recorder, ‘<a href="https://github.com/chenxiaolong/BCR" target="_blank">Basic call Recorder</a>’. Installation is super straightforward: using Magisk, flash the zip package. OnePlus devices need one extra step: extract the APK embedded in the zip and install that as well.</p><p class=""><strong>Note</strong>: if you’re going down this route, it’s probably a good idea to double check the laws in your area regulating this.</p>
        
      

      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            Restoring the Power Menu
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">Android 11 introduced a <em>really</em> cool  thing to the long-press Power Menu — the ability to add smart-home shortcuts there! Think of having a button right there for interacting with any of your Google Home devices! (<a href="https://www.android.com/intl/en_ca/android-11/#a11-device-controls-article" target="_blank">link</a>). Since this was such a great feature, the natural thing to do was to <a href="https://twitter.com/joaomgcd/status/1402921242987053060" target="_blank">remove it</a> in Android 12.</p><p class="">I feel like this problem may be magnified by the OnePlus OS skin: I can <em>see </em>the old power menu controls but when I go to try and add controls, it just refuses to let me.</p><p class=""><strong>Fix:</strong> Install <a href="https://github.com/KieronQuinn/ClassicPowerMenu" target="_blank"><strong>Classic Power Menu</strong> </a>which replaces the OS power menu where I can customize some of the reboot options available. The headline feature however, is that it brings back the smart-home controls to this menu. I disabled the entry for Google Pay/Wallet since that’s not supported by my bank in Canada anyways.</p><p class="">This app uses the Accessibility service to hijack the power-button long-press event to display its own custom view and because of this reliance on the Accessibility service, there <em>is </em>a delay — you see the stock power menu for 100ms or so and then the override kicks in. The author provides a way to avoid this delay using an XPOSED module, but I couldn’t get it to work at all when the module was active. This feels like an OxygenOS thing so maybe I’ll revisit this in a few months. For now, I can live with the slight delay.</p>
        
      

      

    </li>
  
    <li class="accordion-item">

      

      <p aria-level="3" role="heading" class="
          accordion-item__title-wrapper
          sqsrte-large
          
          
        "
      >
        <button
          class="accordion-item__click-target"
          aria-expanded="false"
          style="
            padding-top: 15px;
            padding-bottom: 15px;
            padding-left: 0px;
            padding-right: 0px;
          "
        >
          <span class="accordion-item__title"
          >
            No more support for LT2P
          </span>
          
            
              
                
                
              
            
          
        </button>
      </p>
      
        
          <p class="">Android 12 dropped support for anything but IKEv2 VPNs which, really, isn’t a bad thing per se, just an <em>inconvenient </em>thing - it’s super awesome to just have an L2TP VPN baked into the pulldown menu that I can very quickly access.</p><p class="">On my networking side, it looks like support for this is <a href="https://www.tp-link.com/ca/support/faq/3447/" target="_blank">coming/already-here</a>; it just happens that my specific equipment isn’t supported yet. Something to look forward to I suppose.</p><p class="">In the meanwhile, the workaround is to reconfigure my network to use OpenVPN. On the phones, I can create two easy shortcuts “VPN ON” (which auto connects the specific OpenVPN profile) and “VPN Off”. There’s only one caveat (so far) of not being able to access my custom private-DNS provider whilst on VPN, but [a] that’s a fairly minor inconvenience and [b] technically can be circumvented by toggling the private DNS provider.</p>
        
      

      

    </li>
  
</ul>

  
  <p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="excitement">Not enough excitement</h3>
  


  
  <p class="">Because all of this complexity and hoop jumping wasn’t enough fun, I managed to [accidentally] self-sabotage myself. The best part is that this happened after I had got the phone updated to the latest Android 12 - I was ready to finally log into my Google account and get apps installed etc. I was going to call it a night (it was 4AM) before tackling the apps in the morning so I did one final reboot just sanity check that I was in a good state.</p><p class="">And the phone refused to boot: it was stuck on the very first power-on screen (<em>before </em>the OS starts to boot) with a Qualcomm crash-dump. It <em>struggled</em> to even load the Android Recovery environment - the only environment that it would load with any kind of consistency was the bootloader.</p><p class="">I’m not sure what exactly happened but this is what I <em>think </em>happened:</p><ul data-rte-list="default"><li><p class="">After updating to Android 12 (and doing multiple reboots in the process), I did one last reboot. This was while the phone was plugged into the computer</p></li><li><p class="">While it rebooted, I unplugged the phone to bring it closer to me</p></li><li><p class=""><em>Somehow</em> during that reboot, the phone kicked into EDL mode</p></li><li><p class="">I still had the MSM app running in the background in listening mode. After all, to my understanding, the app would only do it’s thing if you went through the annoying process to get the phone into the special EDL mode</p></li><li><p class="">Unbeknownst to me, the phone was in EDL mode and the MSM app started to brute force rewrite the phone</p></li><li><p class="">And with perfect timing, I disconnected the phone from the computer</p></li></ul><p class="">Thankfully, I was able to get the phone back into EDL mode and brute force the entire process again (starting essentially from scratch again). </p><p class="">This is why in my steps above, I explicitly state that after the MSM app has finished, you should  (at the least), stop it. Better yet, exit the application to completely remove the possibility of this happening. </p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  




  
    <h3 id="looking-back">Looking Back</h3>
  


  
  <p class="sqsrte-large">Was it worth it?</p><p class="">Out of the box, the hardware was fine - great even, considering I got OnePlus chargers when I was expecting generic no-name chargers. The phones appear to be in excellent condition and there was only one oddity I noticed: that the phones (while in T-Mobile mode) refused to take updates (that were pushed by T-Mobile). I recall trying it twice, on each phone: downloading the nearly 4GB update, installing, rebooting and then being presented with the same update again as if it didn’t take. </p><p class="">To answer the question, given that I broke the phones into submission, <strong>absolutely</strong> it was worth it. The underlying hardware is plenty good and I get the phones to do what I want and how I want it and at a fairly ‘great’ price. There some hairy moments where I wasn’t sure if I was going to be dead in the water with a locked bootloader or if the phone was going to even boot (see: excitement); it was hella frustrating to have to redo everything more than few times as I stumbled along but I eventually got the phones broken down into submission.</p><p class="">If I had to use the phones without breaking them into submission (even assuming that I was able to get the officially supported OS updates working)? <strong>Probably not</strong> for two reasons</p><ol data-rte-list="default"><li><p class="">T-Mobile is particularly lacklustre on getting updates out in a timely fashion (this isn’t just a T-Mobile things, <em>all carriers</em> are abysmal at it)</p></li><li><p class="">It doesn’t matter what kind of a deal I got with the phones - if it doesn’t do the things I want, then it’s no good to me at all</p></li></ol><p class="">But this is me. Everyone is different - perhaps it’s not as big a deal if you’re just using a phone for Instagram-only.</p><blockquote><p class="">If I had bought the phone directly from OnePlus, then all of this hassle wouldn’t have really mattered — I’d be able to [easily] unlock the bootloader and be on my way. The downside of course is paying nearly twice the price.</p></blockquote><p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">Rage against the industry</p><p class="">While this particular phone happens to exhibit problems associated with T-Mobile, they are by no means alone in this. All carriers (in North America it seems) are really, <em>really</em> bad about it. I think toxic might be a better word to describe it. A phone is just a <span><em>thing</em></span> that <em>happens</em> to operate a network that provides connectivity. Imagine if your washer-dryer could only receive power from the outlet if you bought the washer-dryer from an appliance store associated with power company A. Or if you were building something but your none of your screws would since into wood because your screwdriver wasn’t the same brand.</p><p class="">I’m not sure about other parts of the world, but in Canada, I can’t even [easily] walk into a store and buy a phone plain and simple. No account, no plan, just pay for <em>hardware</em> and walk out. “Sorry you need to have a plan”.  The sheer hoops that people have to jump through to change carrier is nightmarish. Locked SIMs, locked bootloaders, all of it is so anti-consumer. </p><p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">Root/Jailbreak is ‘dangerous’</p><p class="">This is an amusing one and while it’s not completely false - yes, if you root/jailbreak your phone and then do certain things, you <em>can</em> do bad things. I get that, there’s some truth to that. But how many times have people run into a problem with a <em>computer</em> — an objectively ‘higher tier’ device and the ‘solution’ is “Oh! you need to run as administrator” or “you need to sudo command”. Nobody blinks an eye when you have to sudo/Administrator something on a computer but on a phone? It’s doom and gloom.</p><p class="">And the audacity to try and limit things <em>because</em> you’re rooted/jailbroken? Try logging into a bank website on a computer browser with admin privileges. Huh - you can do it. No fuss.  Try connecting a bank app on a rooted device and you get warnings of doom and gloom. This is from ‘reputable’ companies like banks which have <em>such</em> a focus on security that your password has to be a whopping 8-characters long and if you’re lucky, they’ll even make you use upper and lower case characters. /s</p><p class="">There <em>ought</em> to be hoops to jump through to root/jailbreak your device: unwary users <em>can</em> cause problems with their devices and these users tend to be the vocal ones but at the end of the day, phones are <span><em>just hardware</em></span>. No, I don’t have a solution for this that doesn’t end in ‘<em>ban stupid users’</em>.  I’m glad OnePlus/T-Mobile does come with a mechanism to unlock the bootloaders but there’s no functional reason in the world that shouldn’t be an automated system with a 12-hour turnaround. </p><p class="">If I had bought the phone from OnePlus directly, this wouldn’t have been a problem and I could have just click-clack-presto, bootloader unlocked. OnePlus doesn’t care if I unlock the bootloader and they are the ones <em>making </em>the phone. Why the hell does a carrier, which is nothing more than a glorified sales/middleman care so much? I am grateful that, at least, this is a <em>possibility</em> even if it is a huge PITA. There are some brands (Samsung, LG: I’m looking <em>especially</em> at you) that lock it down at the manufacturer level.</p><p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">Phones software is fairly indestructible</p><p class="">With the ‘excitement’ of nuking my phone when I was practically at the finish line, I’ve realized that the term ‘bricking’ is way, way, <em>waaaaayyy</em> overused and in fact, phones are <em>much</em> more resilient than people think. Sure, you might need specialized software, skills and/or experience to recover from that scenario but counterpoint: suppose something falls on your windshield and it’s a spidery cracked mess — you wouldn’t say “this car is now a write-off because I can’t personally fix it”.</p><p class="">I’ve noticed that there is a trend to say ‘hard bricked’ and ‘soft bricked’ to try and differentiate between actually totally making a device permanently ruined versus “I screwed something up”.</p><p data-rte-preserve-empty="true" class=""></p><p class="sqsrte-large">Why didn’t I go with the screen repair route?</p><p class="">The cost of just the hardware (screen, AMOLED, digitizer) would depend on the just what components needed to be replaced - I knew it was more than just the glass ($30) as the AMOLED had leaked everywhere and the touch functionality was lost on 98% of the screen, pushing the minimum parts-cost to $100 and likely closer to $300. Given that we paid 350 CAD for ours new (<em>and</em> could get a refurbished <a href="https://www.amazon.ca/OnePlus-128GB-8GB-RAM-HD1907/dp/B08C27KCTC/ref=sr_1_4?crid=OB958IALT4KN&amp;keywords=oneplus%207t&amp;qid=1662884288&amp;sprefix=oneplus%207t%2Caps%2C90&amp;sr=8-4" target="_blank">OnePlus 7T for 330 CAD</a> at the time, it just didn’t make money sense to go down that road.</p><p class="sqsrte-small"><a href="#toc">[Back to Top]</a></p>


  






  



<hr />
  
    
  


  
  <p class="sqsrte-small">Product links may be affiliate links: MinMaxGeek may earn a commission on any purchases made via said links without any additional cost to you.</p>]]></content:encoded><media:content type="image/jpeg" url="https://images.squarespace-cdn.com/content/v1/6020ac0b21a9b86f0577e29e/1662931028537-STM1S6YI0985J3SNJM67/Cover_Squooshed.jpg?format=1500w" medium="image" isDefault="true" width="1500" height="767"><media:title type="plain">A New Phone Adventure</media:title></media:content></item></channel></rss>