<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 <title>Hardware Posts · HookRace Blog</title>
 <link href="https://hookrace.net/blog/feed/hardware/" rel="self"/>
 <link href="https://hookrace.net/blog/hardware/"/>
 <updated>2026-02-10T21:22:29-05:00</updated>
 <id>https://hookrace.net/blog/Hardware</id>
 <author>
   <name>Dennis Felsing</name>
   <email>dennis@felsing.org</email>
 </author>

 
 <entry>
   <title>New Hardware and Hacks</title>
   <link href="https://hookrace.net/blog/new-hardware-hacks/"/>
   <updated>2016-07-03T00:00:00-04:00</updated>
   <id>https://hookrace.net/blog/new-hardware-hacks</id>
   <content type="html">
     &lt;p&gt;In my &lt;a href=&quot;/blog/broken-hardware-fixes-hacks-8-years/&quot;&gt;latest post&lt;/a&gt; I showed some
examples of how I ran mostly the same PC hardware over a period of 8 years.
Today I finally finished setting up my new PC hardware in my new home, so I can
report about what I did differently, my thought process, and some problems I
encountered and hacks I did to solve them.&lt;/p&gt;

&lt;p&gt;I’m not sure if this article is interesting for anyone, but I had some fun
setting the new system up and felt like writing about it, so here we go:&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;case&quot;&gt;Case&lt;/h2&gt;

&lt;p&gt;I wanted a smaller case since the old one was a huge ATX tower with way too
many useless ports and fans. I still want a pretty performant system, so an
Intel NUC is out of the question. I don’t need a GPU, since the most
challenging graphics I need is DDNet client, which easily runs at 400 fps at
1920x1080 and 130 fps at 3840x2160 on Intel’s HD Graphics 530 IGP integrated on
Skylake CPUs. But it’s still nice to have a PCIe port in case you ever need it.
So Mini-ITX it is.&lt;/p&gt;

&lt;p&gt;Unfortunately the &lt;a href=&quot;http://www.streacom.com/products/db4-fanless-chassis/&quot;&gt;Streacom DB4&lt;/a&gt; is not available yet, as it would have made for a beautiful silent Mini-ITX cube. Instead I went with the &lt;a href=&quot;https://www.inwin-style.com/en/gaming-chassis/Chopin&quot;&gt;In Win Chopin&lt;/a&gt;, which is even smaller, features no GPU port and has a small integrated PSU rated at 150 W. I was a bit worried about the PSU being strong enough, but you can read more about that later in this post. There really aren’t that many good-looking and reasonable Mini-ITX cases.&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware2/streacom-db4.jpg&quot; alt=&quot;Streacom DB4&quot; /&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware2/in-win-chopin.jpg&quot; alt=&quot;In Win Chopin&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The idea of the In Win Chopin is to use the CPU fan as the only fan to cool the
entire case, pulling air directly from the side, pushing it out of the top.
That’s a stark contrast to my old machine with a total of 9 fans whirring
inside the case.&lt;/p&gt;

&lt;h2 id=&quot;cpu-cooler&quot;&gt;CPU Cooler&lt;/h2&gt;

&lt;p&gt;Of course that means I need a good CPU cooler for the small space. With just 43 mm space for the cooler my choice fell on the &lt;a href=&quot;http://noctua.at/en/nh-l9i&quot;&gt;Noctua NH-L9i&lt;/a&gt;. Unfortunately the manufacturer &lt;a href=&quot;http://noctua.at/en/nh_l9i_tdp_guidelines&quot;&gt;claims a 91 W Skylake CPU barely runs with the NH-L9i&lt;/a&gt;. So let’s check out the CPU and measure some actual temperatures. Even though I switched to a small form factor, another goal of mine is still to keep the noise down to a level where I don’t notice it.&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware2/noctua-nh-l9i.jpg&quot; alt=&quot;Noctua NH L9i&quot; /&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware2/intel-i7-6700k.jpg&quot; alt=&quot;Intel i7 6700k&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;cpu&quot;&gt;CPU&lt;/h2&gt;

&lt;p&gt;There are just two 91 W Intel Skylake CPUs and my choice fell on the i7-6700k.
Since I never had a failed CPU before and planned to play around a bit with the
CPU anyway, thus voiding the warranty, I decided to get a pre-owned one for
cheap. Apparently the CPU was unused, but I wouldn’t believe that.&lt;/p&gt;

&lt;p&gt;There are much nicer Xeon CPUs, especially if you’re willing to risk the
problems of running an engineering sample, but I wouldn’t be able to cool them
properly, wouldn’t need all that performance in the end and miss out on the
IGP (integrated graphics processor), needing a separate GPU instead, taking up
more space.&lt;/p&gt;

&lt;p&gt;Unfortunately it turns out that Skylake can only decode 8 bit H.264 and H.265 in
hardware, while most sources are switching to 10 bit, including UltraHD
Blu-rays and Netflix. If I had the chance I might have waited for Kabylake,
Intel’s next CPU release.&lt;/p&gt;

&lt;p&gt;At first I installed the i7-6700k with the regular Noctua thermal paste and
used it like that for a few days. Unfortunately the system ran louder than I wanted. And changing the fan settings was not a solution since the CPU reached 80°C at load. Clearly I needed a better solution. I already expected this and had some &lt;a href=&quot;http://www.thermal-grizzly.com/en/products/26-conductonaut-en&quot;&gt;Thermal Grizzly Conductonaut&lt;/a&gt; liquid metal thermal paste ready to use.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware2/conductonaut.jpg&quot; alt=&quot;Thermal Grizzly Conductonaut&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Liquid metal thermal pastes conduct heat much better than regular thermal
pastes, but unfortunately they also conduct electricity, so you have to be
careful when applying them. Usually people use this thermal paste to achieve
better overclocking, but my goal is opposite, for now I want a more quiet
system running at low power. Maybe I’ll overclock if I ever need the extra
performance.&lt;/p&gt;

&lt;p&gt;So I delidded my new CPU by removing the heat spreader with a razor
blade. You need a very careful hand for that as a single scratch into the PCB
could ruin your CPU. Of course this also voids the warranty if you have one. I
removed the regular thermal paste between the CPU die and the heat spreader and
applied the Conductonaut instead. The heat spreader can be reattached with
regular silicone from a hardware store. Finally I used the same Conductonaut
thermal paste between the heat spreader and the cooler as well.&lt;/p&gt;

&lt;p&gt;
  &lt;div class=&quot;video-container&quot;&gt;
    &lt;iframe src=&quot;https://www.youtube.com/embed/JkGASegVRiM&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
  &lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;Finally I dared to start my system again, luckily everything still seemed to
work and I couldn’t quite believe the new temperatures: Instead of 80°C at load
I now had just 60°C. I was hoping for a 10-15°C improvement, so that was a nice
surprise.&lt;/p&gt;

&lt;p&gt;My last step was to undervolt the CPU and IGP as far as they would go. You have
to be careful about system stability with this. I set up a few different work
loads to test stability. This further reduced the load temperature to 55°C.
That’s a temperature I can definitely live with and doesn’t even require full
fan speed to keep up. At regular light usage the CPU stays at 30-35°C and I
can’t even hear the fan. I don’t dare to turn off the fan entirely, since it’s
the only active cooling solution for all the other components on the mainboard
as well.&lt;/p&gt;

&lt;h2 id=&quot;screen&quot;&gt;Screen&lt;/h2&gt;

&lt;p&gt;In a few months &lt;a href=&quot;http://www.bbc.co.uk/mediacentre/latestnews/2016/planet-earth-two&quot;&gt;Planet Earth 2&lt;/a&gt; will air in Ultra HD. Since I’m a huge fan of David Attenborough and nature documentaries in general I clearly need a screen capable of showing it. I also want to use my screen as a television at the same time, so this fits in well.&lt;/p&gt;

&lt;p&gt;So the plan was to get a 40” screen with a 3840x2160 resolution, which enables me to work as if I have four 1920x1080 screens, positioned in a 2x2 grid. Luckily this is pretty simple to setup with &lt;a href=&quot;http://xmonad.org/&quot;&gt;xmonad&lt;/a&gt;, my window manager. Using the &lt;a href=&quot;http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Layout-LayoutScreens.html&quot;&gt;LayoutScreens module&lt;/a&gt; I can switch between pretending to have a single large screen or 4 small ones. Since xmonad configuration is just Haskell programming more layouts would of course be possible, but so far I’m happy with this setup.&lt;/p&gt;

&lt;p&gt;It turns out that there is still a problem here which I can’t quite pinpoint
yet: When I use xmonad, mpv, NetWM support, 3840x2160 resolution, and the Intel
IGP driver’s TearFree setting, memory leaks and after a few minutes of watching
some video all 32 GB of RAM are used up and a process is killed. Changing any
single component in this list gets rid of the problem. For now I use DRI3
instead of TearFree, which has slight tearing only in very special cases that I
never encounter in regular usage.&lt;/p&gt;

&lt;p&gt;But one problem I imagine to have with a large screen is that the left and
right edges are so far away that they look distorted. After all when I use two
regular screens I rotate them a bit so I can look at them head-on. So instead I
wanted a curved screen to correct the distortion and get a similar effect to
having the screens rotated. I’m not really convinced of curved screens for a
pure TV setup, but as a computer screen they are great.&lt;/p&gt;

&lt;p&gt;Luckily the &lt;a href=&quot;http://www.samsung.com/de/consumer/tv-av/tv/uhd/UE40JU6740UXZG&quot;&gt;Samsung UE40JU6740&lt;/a&gt; fit all my requirements and was available for
cheap since it’s last year’s model. Getting it to display 3840x2160@60Hz with
reasonable colors is a bit challenging though. There are even guides about how
to &lt;a href=&quot;https://hardforum.com/threads/2015-samsung-4k-tv-as-a-monitor-set-up-guide.1869675/&quot;&gt;properly set these TVs up as computer
screens&lt;/a&gt;.
In the end I have a far better picture than with my old screens, but the input
delay of 40 ms is noticeable when playing &lt;a href=&quot;https://ddnet.org/&quot;&gt;DDNet&lt;/a&gt;. Since I
don’t play much I don’t mind and in case I ever need it it’s possible to get it
down to a more reasonable 20 ms at the loss of color accuracy.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware2/Samsung-UE40JU6740.jpg&quot; alt=&quot;Samsung UE40JU6740&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;mainboard&quot;&gt;Mainboard&lt;/h2&gt;

&lt;p&gt;But now I faced a new challenge: TVs generally don’t support DisplayPort, so in
order to get 3840x2160@60Hz HDMI 2.0 is required. That’s another thing Skylake
CPUs don’t support, so I had two choices: Get an external converter from DP 1.2
to HDMI 2.0, which Club 3D offers. Or alternatively get the only Mini-ITX mainboard with HDMI 2.0, the &lt;a href=&quot;http://www.asrock.com/mb/Intel/Fatal1ty%20Z170%20Gaming-ITXac/&quot;&gt;ASRock Z170 Gaming-ITX/ac&lt;/a&gt;. So now I have a gaming mainboard even though I don’t want to game, oh well.&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware2/club3d.jpg&quot; alt=&quot;Club3D adapter&quot; /&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware2/asrock-z170-gaming-itx.jpg&quot; alt=&quot;ASRock Z170 Gaming-ITX/ac&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In the end both the Club 3D adapter as well as the ASRock motherboard have
nearly the same chips inside, a &lt;a href=&quot;http://www.megachips.us/products/MCDP28_Products.php&quot;&gt;MegaChips
MCDP28&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unfortunately the board still has a few issues even after having been released
nearly a year ago:&lt;/p&gt;

&lt;p&gt;Using the HDMI 2.0 port at 3840x2160@60Hz causes a frame with artifacts every
few minutes, both in Windows and Linux. In Linux sometimes the screen goes
black entirely when I switch on stereo HDMI audio, while mono works. My
assumption is that this is a bandwidth or synchronization problem. So for now I
disabled HDMI audio and this seems to fix the image artifacts. I never planned
to use the HDMI port for audio since I still have my fancy amplifier and
speakers, but it would be nice to get this working.&lt;/p&gt;

&lt;p&gt;Another temporary workaround to get working HDMI 2.0 audio on Linux is to user
another CRTC manually by running &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xrandr --output DP2 --crtc 2&lt;/code&gt;. But in my
experience it’s not 100% reliable and I’m not even sure why it works.&lt;/p&gt;

&lt;p&gt;Actually ASRock &lt;a href=&quot;http://asrock.pc.cdn.bitgravity.com/TSD/TheGuildofsupporting4kx2k@60Hz.pdf&quot;&gt;offers a firmware
update&lt;/a&gt;
for the MegaChips HDMI 2.0 chip, but it doesn’t run on my system and I’m still
talking to the support about it.&lt;/p&gt;

&lt;p&gt;The next issue was that resuming from S3 sleep was broken, also both in Windows
and Linux. I assume this might also have to do with the HDMI 2.0 chip, but I’m
not sure yet. So far my only solution is to keep using an older BIOS version
(1.8) which does not exhibit this problem.&lt;/p&gt;

&lt;p&gt;Instead I get a very strange issue after resuming from sleep. In DDNet client I
get 40 fps instead of 500 fps after the first sleep cycle. My first idea was
that it had something to do with the IGP and power saving, but I couldn’t find
a way to pinpoint it. Finally I noticed that some screens in DDNet have far
fewer FPS than others. Finally it dawned on me: The more text is shown on
screen, the slower it gets.&lt;/p&gt;

&lt;p&gt;Nevertheless it had nothing to do with font rendering. Instead the font
rendering system in DDNet client, which is inherited directly from Teeworlds,
needs to call the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gettimeofday&lt;/code&gt; syscall A LOT. Checking &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dmesg&lt;/code&gt; then confirmed
that after a S3 sleep the Linux kernel clock source switched from TSC to HPET:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Jun 28 22:49:23 al kernel: TSC synchronization [CPU#0 -&amp;gt; CPU#1]:
Jun 28 22:49:23 al kernel: Measured 3072272461 cycles TSC warp between CPUs, turning off TSC clock.
Jun 28 22:49:23 al kernel: tsc: Marking TSC unstable due to check_tsc_sync_source failed
Jun 28 01:17:48 al kernel: clocksource: Switched to clocksource hpet
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Manually setting &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tsc=reliable&lt;/code&gt; makes the clock run backwards after a sleep
cycle. From what I read it sounds like the BIOS is erroneously changing some
TSC registers at suspend or resume. I didn’t find a way to fix these registers
again in the Linux kernel.&lt;/p&gt;

&lt;p&gt;Fortunately the support quickly gave me a BIOS that is supposed to fix this
issue.  Unfortunately I can’t test this since every BIOS version newer than 1.8
doesn’t resume from S3 sleep at all for me.&lt;/p&gt;

&lt;p&gt;Instead I did the best I could and fixed DDNet client to call &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;clock_gettime&lt;/code&gt;
two times per frame instead of potentially thousands of times per frame (once
for each text glyph that is rendered). Some measurement showed that getting the
time with TSC requires 18 ns, while HPET needs 4700 ns on my system, quite a
remarkable difference.&lt;/p&gt;

&lt;h2 id=&quot;storage&quot;&gt;Storage&lt;/h2&gt;

&lt;p&gt;As a nice bonus the mainboard also has an M.2 port on the backside, so I can run a fast &lt;a href=&quot;http://www.samsung.com/semiconductor/products/flash-storage/client-ssd/MZHPV256HDGL?ia=831&quot;&gt;Samsung SM951&lt;/a&gt; SSD. Unfortunately being located on the backside of the mainboard means that air circulation is rather bad, so the SSD runs at a temperature of about 50°C.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware2/samsung-sm951.jpg&quot; alt=&quot;Samsung SM951&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If this becomes a problem later I can try a thin thermal pad to get contact
between the SSD and the metal plate inside the case, thus using it as a cooler.&lt;/p&gt;

&lt;h2 id=&quot;ram&quot;&gt;RAM&lt;/h2&gt;

&lt;p&gt;For memory I actually just bought the cheapest 32 GB DDR4 kit from Crucial at
2133 MHz. Turns out that you can undervolt the RAM a bit and still overclock it
to 2700 MHz. That helps the IGP a bit, but is otherwise not really noticeable.
It turned out that you actually need dual channel RAM to achieve
3840x2160@60Hz, so memory bandwidth is actually a concern.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware2/crucial-32gb.jpg&quot; alt=&quot;Crucial 32 GB&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;keyboard&quot;&gt;Keyboard&lt;/h2&gt;

&lt;p&gt;My choices regarding a keyboard were very limited. I wanted a flat keyboard but no rubberdome since they kept annoying me with their inconsistent feeling and bad quality. The only keyboard to fit these requirements was the &lt;a href=&quot;http://www.cherry.de/cid/keyboards_CHERRY_MX-Board_30.htm?rdeLocaleAttr=en&amp;amp;cpssessionid=SID-FE6BB73E-EA37D60F&amp;amp;WT.mc_id=&quot;&gt;Cherry MX-Board 3.0&lt;/a&gt;. With MX-Blue switches it’s quite loud to type on, but makes my other keyboards feel incredibly cheap.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware2/cherry-mx-board-3.0.jpg&quot; alt=&quot;Cherry MX-Board 3.0&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;mouse&quot;&gt;Mouse&lt;/h2&gt;

&lt;p&gt;Actually I rarely use a mouse since I feel at home in the terminal and use a
few programs with vim-like key bindings, like the Pentadactyl extension for
Firefox. Still I sometimes like to have a mouse and I want it to fulfill two
purposes:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Regular use next to keyboard, for example for casual gaming&lt;/li&gt;
  &lt;li&gt;As a remote control from my couch for watching movies&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first is easy to fulfill of course, you could even buy 2 cheap mice from
eBay for 1 € including shipping. The second purpose requires a wireless mouse
that works well on any surface, a perfect application for the &lt;a href=&quot;https://secure.logitech.com/en-us/product/mx-anywhere2&quot;&gt;Logitech
Anywhere MX2&lt;/a&gt;. It even
feels a bit like a small version of my old MX518, quite a nice bonus.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware2/logitech-anywhere-mx2.jpg&quot; alt=&quot;Logitech Anywhere MX2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To actually use the mouse as a remote control for movie watching I had to set a
few mouse button binds in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mpv&lt;/code&gt;, my video player:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;MOUSE_BTN5 run &quot;mixer&quot; &quot;pcm&quot; &quot;-2&quot;
MOUSE_BTN6 run &quot;mixer&quot; &quot;pcm&quot; &quot;+2&quot;
MOUSE_BTN1 cycle sub-visibility
MOUSE_BTN7 add chapter -1
MOUSE_BTN8 add chapter 1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now I can move through the movie manually or by chapter, switch through audio
tracks, enable subtitles and switch through them, change the global system
volume, toggle fullscreen, and pause and play. That’s quite enough for me.&lt;/p&gt;

&lt;p&gt;Since I barely touch the mouse I expect the battery to last forever. And since
my mainboard already supports Bluetooth, I used that instead of the dongle.&lt;/p&gt;

&lt;p&gt;Unfortunately you have to &lt;a href=&quot;https://github.com/mikolajb/skylake-on-linux#bluetooth&quot;&gt;extract the Bluetooth
firmware&lt;/a&gt; from the
Windows driver.&lt;/p&gt;

&lt;h2 id=&quot;power-consumption&quot;&gt;Power Consumption&lt;/h2&gt;

&lt;p&gt;Initially I was worried about the 150 W PSU of the In Win Chopin. But after
some measurements my concerns turned out to be unnecessary. Since I undervolt
my CPU instead of overclocking it, the maximum I managed to achieve by putting
high loads on CPU and IGP at the same time was 90 W, measured at the wall. At
regular usage the system needs about 16 W, which I consider to be a pretty fine
result for such a powerful machine.&lt;/p&gt;

&lt;h2 id=&quot;final-result&quot;&gt;Final Result&lt;/h2&gt;

&lt;p&gt;The final build assembled in its new environment, where I’m sitting right now
on a Sunday morning to write this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware2/finished1.jpg&quot; alt=&quot;Finished build #1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Closeup of the computer case:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware2/finished2.jpg&quot; alt=&quot;Finished build #2&quot; /&gt;&lt;/p&gt;

   </content>
 </entry>
 
 <entry>
   <title>Broken Hardware, Fixes and Hacks over 8 Years</title>
   <link href="https://hookrace.net/blog/broken-hardware-fixes-hacks-8-years/"/>
   <updated>2016-06-21T00:00:00-04:00</updated>
   <id>https://hookrace.net/blog/broken-hardware-fixes-hacks-8-years</id>
   <content type="html">
     &lt;p&gt;After reading the feedback of my &lt;a href=&quot;/blog/ddnet-evolution-architecture-technology/&quot;&gt;recent article about running
DDNet&lt;/a&gt;, I noticed that people
found it interesting how I’m trying to minimize money and resources. I also
noticed that I had been doing something similar with my personal computing
hardware setup for an even longer time.&lt;/p&gt;

&lt;p&gt;I’ve mostly been using the same hardware for personal computation purposes over
the last 8 years. In this article I want to talk about some of the hardware
I’ve been using, how it broke and how I fixed the problems or worked around
them. My goal was to be frugal about hardware, to keep using the same hardware
for a long time and repair it when possible instead of simply buying new
hardware.&lt;/p&gt;

&lt;!--more--&gt;
&lt;p&gt;The reason for this post is that I’m moving and abandoning my old hardware
setup. There may be some interesting tales in here. Depending on how you value
your time it is probably cheaper to simply buy new stuff instead of repairing
old ones, but I consider it a fun activity and a much more rewarding
experience.&lt;/p&gt;

&lt;p&gt;Whether you call it planned obsolescence or just cheap manufacturing, it’s a
fact that electronic hardware tends to break rather quickly. Most reviews don’t
take any note of this and so it is difficult to find out which hardware to buy
if you value durability. The best I can do is tell you what you should and
should not have bought 8 years ago.&lt;/p&gt;

&lt;p&gt;For each of these topics there are probably much more detailed reports and
guides online, so I will keep it short and just give an overview. If you’re
interested in fixing your own hardware, a search engine of your choice is your
friend.&lt;/p&gt;

&lt;h2 id=&quot;tools-used&quot;&gt;Tools used&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware/weller-wecp-20.jpg&quot; alt=&quot;Weller WECP-20&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The tools I use are absolutely simple: Mostly I just used a Weller WECP-20 for
soldering, regular screwdrivers and some other, older hardware to steal
replacement parts from. Nothing fancy and I don’t claim to do anything special
with it.&lt;/p&gt;

&lt;h2 id=&quot;liquid-crystal-displays&quot;&gt;Liquid-Crystal Displays&lt;/h2&gt;

&lt;p&gt;Let’s start with what in my experience was the most common problem in consumer
electronics, resulting in their failure: broken capacitors&lt;/p&gt;

&lt;p&gt;Or at least it was a major problem for me, probably because much of my failing
hardware was produced around the time of the &lt;a href=&quot;https://en.wikipedia.org/wiki/Capacitor_Plague&quot;&gt;capacitor
plague&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img style=&quot;max-width: 58%; display: inline; padding: 0;&quot; src=&quot;/public/hardware/bad-caps.jpg&quot; alt=&quot;Various bad capacitors&quot; /&gt;&lt;img style=&quot;max-width: 40%; display: inline; padding: 0 0 0 1mm;&quot; src=&quot;/public/hardware/bad-caps-2.jpg&quot; alt=&quot;Another bulging capacitor&quot; /&gt;&lt;/p&gt;

&lt;p&gt;On the right picture  you can see difference between a good capacitor (left)
and a bulging capacitor (right).&lt;/p&gt;

&lt;p&gt;I used a BENQ FP91GP display for the entire time. At some point I also added a
used Samsung SyncMaster P2250.&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/fp91gp.jpg&quot; alt=&quot;BENQ FP91GP&quot; /&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/samsung-syncmaster-p2250.jpg&quot; alt=&quot;Samsung SyncMaster P2250&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Both of them failed at some point, stopping to display anything and making
high-pitched sounds instead. So of course the first thing I did was open them
up. In both of them I found the exact same thing: Bulging capacitors&lt;/p&gt;

&lt;p&gt;When you open up hardware you have to be careful about electric shocks. I never
received one, but especially power supply units (PSUs), which were the broken
parts inside of my displays, can store a high amount of energy for a long time
after disconnecting them from power.&lt;/p&gt;

&lt;p&gt;I didn’t want to buy new capacitors, even though they are available for low
prices and you can even buy a full repair kit online for commonly failing
displays.  Instead I went through even older hardware in the house and
scavenged still functioning capacitors. Mostly you have to look out for three
things:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;New capacitor has &lt;a href=&quot;https://web.archive.org/web/20160204013821/https://www.niccomp.com/help/capsubguide.asp&quot;&gt;correct characteristics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;New capacitor fits into space of the old one&lt;/li&gt;
  &lt;li&gt;Install the new capacitor the right way or more hardware might blow up
(negative stripe on capacitor to white mark on board)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once I found replacement capacitors I desoldered the broken ones and replaced
them. Surprisingly these capacitors from TVs from the 80s still work just fine.
My plan was to buy brand-new capacitors once they fail, but it never happened.&lt;/p&gt;

&lt;p&gt;In hindsight it’s certainly curious to repair old hardware with parts from even
older hardware.&lt;/p&gt;

&lt;h2 id=&quot;power-supply-units&quot;&gt;Power Supply Units&lt;/h2&gt;

&lt;p&gt;The same story didn’t just happen with the PSUs inside of both of my displays,
but also with the power supply unit of my computer. I fixed it in the same way
and the PSU still works to this day. But since my LC Power LC6420 was never
very efficient I bought a replacement anyway, the more efficient HuntKey Jumper
300G.&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/lc-power-lc-6420.jpg&quot; alt=&quot;LC Power LC 6420&quot; /&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/lc-power-lc-6420-2.jpg&quot; alt=&quot;Inside of the LC 6420&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately the new PSU turned out to be too loud for my taste, so I opened
it up immediately and noticed that the fan was fixed to 12 V. I reconnected it
to 5 V instead and tested that the PSU does not overheat with my system even at
high load. I wouldn’t recommend doing this since it immediately voids the
warranty and the PSU can overheat easily. Ideally just buy a modern PSU which
controls its fan properly based on the internal temperature.&lt;/p&gt;

&lt;h2 id=&quot;computer-case&quot;&gt;Computer Case&lt;/h2&gt;

&lt;p&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/nzxt-zero.jpg&quot; alt=&quot;NZXT Zero case&quot; /&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/molex.jpg&quot; alt=&quot;Molex extension cable&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I wasn’t just annoyed with the noise of my PSU though. In the same vein I also
switched all 7 case fans of my NZXT Zero from 12 V to 5 V, thus reducing the
amount of noise significantly. The fix is simple and does not require any
soldering. Instead I used a molex extension cable for the fans and switched its
12 V line to 5 V&lt;/p&gt;

&lt;p&gt;The trick here is to remove the pins from the molex cable with a small
screwdriver, and switch them around so that 12 V and 5 V are switched, which is
quite simple. I just had to make sure that my computer stays cool enough, but
with 9 fans in total running inside of it that was no problem, even in the
nearly noiseless state of running at 5 V.&lt;/p&gt;

&lt;p&gt;The CPU cooler can be controlled by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fancontrol&lt;/code&gt; on Linux and only spins up
when the load is high, otherwise the CPU can be cooled passively, just using
the slight flow of air from the case fans.&lt;/p&gt;

&lt;h2 id=&quot;random-access-memory&quot;&gt;Random Access Memory&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware/ram-ddr3.jpg&quot; alt=&quot;DDR3 RAM&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally let’s get to an entirely different problem, for which I didn’t even
suspect a hardware fault: I’ve been using Gentoo for nearly the entire time,
which means I ended up compiling my own programs and libraries. Compiling a single
large-scale C++ library failed again and again, at seemingly random positions.
The g++ compiler always complained about internal compiler errors. At first I
assumed this was a bug in the GNU Compiler Collection, so I switched to other
versions, but got the same error in each of them. At some point I noticed that
the memory usage increases to multiple GBs when compiling this library and
that’s when it hit me: My main memory might be defective and with most programs
I just don’t notice.&lt;/p&gt;

&lt;p&gt;I booted into Memtest86+ to run the memory benchmark and, lo and behold, a
single byte of my RAM was broken. These were my choices on how to fix this:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Remove the RAM module, but then I don’t get the speed benefit of dual
channel and am missing out on 2 GB of RAM&lt;/li&gt;
  &lt;li&gt;Buy a replacement module, but that costs money&lt;/li&gt;
  &lt;li&gt;Tell the Linux kernel to ignore the broken part of the memory and use the rest of the module&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Of course I went with choice 3. A simple Linux kernel parameter
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;memmap=1$0x0007cec2d74&lt;/code&gt; in GRUB marks 1 byte at the address &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0x0007cec2d74&lt;/code&gt; as
reserved (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$&lt;/code&gt;), preventing the system from using it as regular main memory. A
reboot later everything worked again and I could compile the C++ library. It’s
possible that further parts of this memory module will break in the future and
you have to repeat this process to disable them as well, but so far this has
not happened.&lt;/p&gt;

&lt;p&gt;Working around hardware problems with software is cool. And it’s not like I
notice a single byte of memory missing.&lt;/p&gt;

&lt;h2 id=&quot;graphics-processing-units&quot;&gt;Graphics Processing Units&lt;/h2&gt;

&lt;p&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/geforce-8500-gt.jpg&quot; alt=&quot;GeForce 8500 GT&quot; /&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/radeon-hd4350.jpg&quot; alt=&quot;Radeon HD 4350&quot; /&gt;&lt;/p&gt;

&lt;p&gt;My graphics cards like to break. I don’t really play much except for some 2D
games, so a good GPU never mattered to me. The GeForce 8500 GT started to show
graphics errors after a few years, even while booting, which led me to believe
that the problem was on the hardware side and not software related.&lt;/p&gt;

&lt;p&gt;Putting the GPU into an oven and baking it for a while fixed the problem for a
few days by resoldering cracked solder points, but then it returned. This is
probably related to the switch to lead-free solder in 2006, which is more
brittle.&lt;/p&gt;

&lt;p&gt;I didn’t want to keep baking my GPU, so I used another GPU I had lying around,
which someone else had thrown away: A Radeon HD 4350&lt;/p&gt;

&lt;h2 id=&quot;mouse&quot;&gt;Mouse&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware/logitech-mx-518.jpg&quot; alt=&quot;Logitech MX518&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Logitech MX518 did its job great for the entire time. About 1-2 years ago
the left mouse button stopped working reliably though. When keeping it pressed
it sometimes released on its own at unpredictable moments. That’s a huge
problem while playing something like &lt;a href=&quot;https://ddnet.org/&quot;&gt;DDNet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The first step was of course to open up the mouse. What I saw was that the
plastic of the mouse buttons was worn out to the point that it could barely
press down the actual button inside of the mouse. I reinforced both mouse
buttons with a small piece of thin cardboard. Since then the mouse has not made
any further problems and the buttons work absolutely reliably.&lt;/p&gt;

&lt;h2 id=&quot;keyboard&quot;&gt;Keyboard&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware/logitech-ultra-flat-x.jpg&quot; alt=&quot;Logitech Ultra Flat-X&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’m using a cheap Logitech Ultra Flat-X keyboard, which doesn’t feel terribly
different from a good Thinkpad keyboard. I replaced the green LEDs with blue
ones, but that was just an aesthetic change and was easily done with some more
soldering.&lt;/p&gt;

&lt;p&gt;Unfortunately dust and dirt always accumulate under the keys of a keyboard. If
this keeps going for long enough some keys become unusable, so I took out all
the key caps every year or so to wash them and clean the space below them.
Unfortunately the scissor mechanism on cheap keyboards is quite fragile, so you
have to be careful not to break your keys. I don’t need a numpad, so I used the
numpad keys as replacements.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware/keycaps.jpg&quot; alt=&quot;Keyboard with keys sanded off&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After a few years of usage the key labels wear off. So instead I sanded the
key labels off entirely, leaving clear key caps which look much better even
after many more years of usage. Unfortunately by now the key caps have become
so thin that they are starting to break apart, so it’s definitely time for a new
keyboard.&lt;/p&gt;

&lt;h2 id=&quot;printer&quot;&gt;Printer&lt;/h2&gt;

&lt;p&gt;&lt;img style=&quot;max-width: 70%; display: inline; padding: 0;&quot; src=&quot;/public/hardware/lj4l.jpg&quot; alt=&quot;HP LaserJet 4L&quot; /&gt;&lt;img style=&quot;max-width: 30%; display: inline; padding: 0 0 0 1mm;&quot; src=&quot;/public/hardware/pickup-roller.jpg&quot; alt=&quot;Pickup Roller&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is the oldest piece of hardware in the list so far. This HP LaserJet 4L
has been in continuous use for about 23 years. The only serious thing you need
to worry about with it is to have fresh toner cartridges if you plan to print
extensively. Luckily I got 10 full toner cartridges on eBay for 1 €, taking
care of this problem.&lt;/p&gt;

&lt;p&gt;The only part of the printer I had to replace was the pickup roller, which
became unable to pull in any pages. I tried cleaning it, but in the end decided
to just buy a cheap replacement part, which is easy to find in online shops,
even 23 years after the introduction of the printer.&lt;/p&gt;

&lt;h2 id=&quot;headphones&quot;&gt;Headphones&lt;/h2&gt;

&lt;p&gt;&lt;img style=&quot;max-width: 40%; display: inline; padding: 0;&quot; src=&quot;/public/hardware/superlux-hd-330.jpg&quot; alt=&quot;Superlux HD-330&quot; /&gt;&lt;img style=&quot;max-width: 60%; display: inline; padding: 0 0 0 1mm;&quot; src=&quot;/public/hardware/beyerdynamic-ear-pads.jpg&quot; alt=&quot;Beyerdynamic Ear Pads&quot; /&gt;&lt;/p&gt;

&lt;p&gt;My headphones were not really broken, but rather are a chimera. The base are
cheap Superlux HD-330 headphones (29 €), a not-so-subtle clone of the
Beyerdynamic DT-770 Pro (137 €).&lt;/p&gt;

&lt;p&gt;Nevertheless they still sound fine to me, but I don’t claim to be an expert.
Since I didn’t like the cable I used the old nylon cable from my previous
headphones and soldered them in as replacements. A little bit of soldering gets
you quite far.&lt;/p&gt;

&lt;p&gt;Instead of using the included fake leather ear pads I bought the original ear
pads from Beyerdynamic (21 €), which cost nearly as much as the rest of the
headphones.&lt;/p&gt;

&lt;h2 id=&quot;amplifier&quot;&gt;Amplifier&lt;/h2&gt;

&lt;p&gt;&lt;img style=&quot;max-width: 70%; display: inline; padding: 0;&quot; src=&quot;/public/hardware/marantz-pm710dc.jpg&quot; alt=&quot;Marantz PM710DC&quot; /&gt;&lt;img style=&quot;max-width: 30%; display: inline; padding: 0 0 0 1mm;&quot; src=&quot;/public/hardware/heco-superior-700.jpg&quot; alt=&quot;Heco Superior 700&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Finally here’s the oldest part of my setup: A Marantz PM710DC amplifier from
1980 and HECO Superior 700 speakers from around 1985. The speakers still sound
just fine. The amplifier on the other hand is showing its age:&lt;/p&gt;

&lt;p&gt;The analog potentiometers are filled with dust and you hear a crackling sound
when adjusting the volume. Blowing on them with some compressed air and moving
the potentiometer a few times entirely removes the crackling for me. In more
serious cases potentiometers can also be cleaned with contact cleaner or simply
be replaced with some soldering.&lt;/p&gt;

&lt;h2 id=&quot;desk-light&quot;&gt;Desk Light&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware/ikea-global-work-lamp.jpg&quot; alt=&quot;IKEA Global in working state&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The IKEA Global work lamp is quite useful, as it can be attached to many
surfaces with a clamp and can be moved flexibly. Unfortunately all the flexible
movement kept weakening the plastic connection between lamp and metal arm. In the
end the plastic simply snapped off. My plastic glue didn’t work with this kind
of plastic, so I decided to work around the problem instead.&lt;/p&gt;

&lt;p&gt;Using a few pieces of paper as a buffer the lamp can be inserted into the clamp
directly. Now I have the lamp fixed directly above the desk instead of being
able to move it around freely, but that’s not a big problem because the entire
desk is still well-lit.&lt;/p&gt;

&lt;h2 id=&quot;network-cables&quot;&gt;Network Cables&lt;/h2&gt;

&lt;p&gt;&lt;img style=&quot;max-width: 33%; display: inline; padding: 0;&quot; src=&quot;/public/hardware/cat5e-roll.jpg&quot; alt=&quot;100 m CAT5e roll&quot; /&gt;&lt;img style=&quot;max-width: 33%; display: inline; padding: 0;&quot; src=&quot;/public/hardware/rj45-jack.jpg&quot; alt=&quot;RJ45 Jack&quot; /&gt;&lt;img style=&quot;max-width: 33%; display: inline; padding: 0;&quot; src=&quot;/public/hardware/crimping-tool.jpg&quot; alt=&quot;Crimping Tool&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I used to have lots of old Ethernet cables, some working only up to 100 Mbit/s,
others not working at all at times. Instead of buying many new Ethernet cables,
I opted to buy a 100 meter roll of high quality CAT5e Ethernet cable, a
hundred RJ45 jacks and a crimper tool. Finally I can build as many cables as I
need with the exact lengths I prefer.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/public/hardware/cables.jpg&quot; alt=&quot;Using newly made network cables&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;laptops&quot;&gt;Laptops&lt;/h2&gt;

&lt;p&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/t43p.jpg&quot; alt=&quot;Thinkpad T43p&quot; /&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/t43p-fan.jpg&quot; alt=&quot;Thinkpad T43p Fan&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Initially I had a used Thinkpad T43p from 2005. After a few years of running
Gentoo on it and compiling too many packages the fan broke. Fortunately
replacement fans are easy to find and opening up and repairing old Thinkpads is
a blessing. Printed on the bottom of the laptop you are instructed how to open
which part of the laptop. There are official guides for replacing any part of
the laptop.&lt;/p&gt;

&lt;p&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/x200s.jpg&quot; alt=&quot;Thinkpad x200s&quot; /&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/x200s-battery.jpg&quot; alt=&quot;Thinkpad x200s Battery&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Since 2010 I’m running a used Thinkpad x200s. The only problem it ever had was
a broken battery. But since the laptop features replaceable batteries installing
a cheap replacement battery from eBay is a matter of seconds.&lt;/p&gt;

&lt;h2 id=&quot;home-servers&quot;&gt;Home Servers&lt;/h2&gt;

&lt;p&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/hardware/server.jpg&quot; alt=&quot;Thinkpad T42 Server&quot; /&gt;&lt;img class=&quot;halfimg&quot; src=&quot;/public/q1900-itx.jpg&quot; alt=&quot;Q1900-ITX Server&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Broken Thinkpads make good servers. I had an old, very broken Thinkpad T42
lying around. The screen did not work and it could only be powered from the
battery, while it didn’t run on AC power at all and couldn’t charge the battery
either. My solution was to remove the screen entirely and build a small adapter
with some soldering to connect AC power to the battery connection directly,
leaving out the battery.&lt;/p&gt;

&lt;p&gt;This worked as a home server for a few years, until the performance of such an
old Pentium M system got too low and I switched to a totally passive Q1900-ITX
system in 2014.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;All in all I would say that the hardware held up reasonably well and when it
broke it was usually possible to fix it without replacing the entire device.
More repairable hardware would still be a huge bonus, especially since the
industry has been moving in the opposite direction with ever smaller and more
compacted devices.&lt;/p&gt;

&lt;p&gt;Maybe someone who read this post found it interesting and will have fun fixing
their own hardware (or trying to) once it starts malfunctioning.&lt;/p&gt;

&lt;p&gt;I wrote this up on the exact hardware described in this post, while waiting for
my new hardware to arrive in the next days. I hope build quality and
repairability of PC hardware haven’t gone down in the last years. But only time
will tell.&lt;/p&gt;

&lt;p&gt;Discussion on &lt;a href=&quot;https://news.ycombinator.com/item?id=11942618&quot;&gt;Hacker News&lt;/a&gt; and &lt;a href=&quot;https://www.reddit.com/r/hardware/comments/4pap8e/broken_hardware_fixes_and_hacks_over_8_years/&quot;&gt;r/Hardware&lt;/a&gt;.&lt;/p&gt;

   </content>
 </entry>
 
</feed>
