Anybody who has spent any amount of time reading my content over the past few years knows what my small server project is. For those of you not in the know, it was basically my attempt to stop using an old desktop as my home server and transition all of its duties to SBCs (Single Board Computers) which are smaller, quieter, cooler, less performant and most importantly, use way less power. That project was a success. I eventually ended up with four ODroid XU4Qs handling various tasks. After I finished that project I started to get more ambitious. Could I actually take this project to the next level and curtail the power usage of my home office?

Now to be clear: This was a much harder nut to crack than small server was. Namely because when it comes to my work, I need a particular level of processing power as I’m a software developer and there are additional compatibility performance concerns that hinder my ability to curtail power usage. I spent a lot of time at the beginning of this project trying to figure out a way to move my workflow over to various Raspberry Pi units, namely the 4th gen units with 4 gigabytes and 8 gigabytes of RAM. Sadly, it just wasn’t doable. I still need too many things that the Raspberry Pi platform just cannot provide.

Namely and depressingly, I still need the ability to use Windows. Despite how far and wide I have spread my hatred and disdain for Windows as a platform, even I cannot escape the ghosts of Christmas past which force me to interact with it. Without some ability to use and interact with Windows, I would not be able to keep my current job. Let me assure you all that outside of work related tasks, my interaction with Windows remains non-existent and I would have it no other way. Nonetheless the long and short of this is to illustrate that as much as I wanted to make a low powered ARM device work in this situation, It just wasn’t in the cards, no matter how much time I pissed away trying to make it work.

Workstation Side Image

So I could’ve just stuck with one of the many cheapo Intel / AMD laptops I keep in reserve. However I didn’t want to do that either. It turns out that x86 laptops are generally noisy little beasts and I really wanted my office to be as quiet as possible. So I ended up getting two ODroid H2 single board computers. They have large heatsinks and low RPM fans on the top that when configured properly stay on all the time and generate next to nothing in terms of noise while keeping the internals quite cool. The first one of these (box with the blue power button on the right) was purchased by a current employer of mine and natively runs Windows 10 for the express purposes of doing their work. This was an original ODroid H2 unit, so it has an Intel Quad Core J4105 Celeron processor. It also has 16 gigs of RAM installed, along with a terabyte and a half of SSD disk space. The second unit (box with the blue power button on the left) was very similar except it was a later revision of the ODroid H2 called the ODroid H2+. It is basically the same as the first revision except it has a slightly faster J4115 processor instead and has dual 2.5 gigabit ethernet ports instead of dual 1.0 gigabit ethernet ports. It of course is entirely my own, so it runs Pop OS 20.10 and is my primary workstation.

My personal H2 is assigned to the leftmost two monitors in my group of four monitors. Depending on whether or not I’m doing work for my employer the other H2 either uses one monitor or no monitors. In the use case where it has a monitor, I use the wonderful Barrier software to allow me to seamlessly control both boxes with the mouse and keyboard connected to my personal box. It is a great setup and has worked exceptionally well. When the Windows H2 isn’t being used, I have employed the use of a DisplayPort Splitter to turn one DisplayPort port into two ports on my personal H2. This allows me to use three monitors on a box that only has a single HDMI and single DisplayPort output. In practice each H2 uses anywhere between 5 to 20 watts of power depending upon what they are doing.

The fourth, rightmost monitor, is 100% dedicated to my office AppleTV. Typically while I work I’m generally letting something play on Plex or I have a Twitch stream playing to add background noise if I’m not listening to music. The AppleTV has proven to be a wonderfully low powered option for handling these sorts of tasks. When it comes to performance-per-watt Apple is at the top of the heap and even an old pre-4k AppleTV is not an exception to that.

In addition to those things my office also has a soundbar, a wireless headset, a simple switch for switching between the audio output devices (which also has a button that allows me to mute everything with a press), a powered USB Hub (plugged into my primary box and connects webcam and external USB SSD storage to it), a powered USB switch (allows keyboard and mouse to be switched to all the boxes), an Amazon Echo and an hardware audio mixer. I would be reticent to neglect to mention that the hardware audio mixer is one of my favorite pieces of equipment. Prior to purchasing that I had a bunch of dumb audio switches which determined what audio outputs I could hear whereas now I can hear them all at the same time and mix them individually with hardware knobs. It uses very little power and makes my life much easier. Oh and we have a postage scale, which is generally off, so it’s not being counted as part of the typical power draw.

I will also add that the Amazon Echo is here (generally the mic is muted 100% of the time so privacy concerns are minimal) as my wife find its convenient to use the one in the living room to let me know that dinner is ready. Also as a last little pro tip: I also learned that plugging a USB Hub into a USB Switch is generally a bad idea. It creates a bunch of weird USB issues such as laggy keystokes and USB related errors in the Linux Kernel log that worried me a great deal. My advice? Don’t plug a USB hub into a switch. Don’t believe me? I tried this with multiple combinations of hardware, host machines and operating systems and it was consistently a pain in my ass. So just don’t do it.

The combined power usage of all these devices which I use in a typical work day tops out at just under 110 watts. This quite an accomplishment in my opinion. My work has not been hampered in any significant way either. I have enough processing power and enough RAM and enough software compatibility to do all the things I need to do. I can even run heavy legacy Windows 10 VMs which are required for some legacy contract work I am still on the hook for without skipping a beat.

Finally I also have a Mister FPGA gaming unit setup in the far right corner of the picture. It’s power usage has not been taken into consideration as it’s not something I use very often. Nevertheless if you love retro gaming, you’ll want to look into building one of these for yourself. It’s quite choice. Warning: But not cheap.

Server Side Image

The remaining 40 watts of power is used by the server side of the room. Note that even though there is a monitor in that picture, it is typically off as it’s only there in case shit hits the fan (aka I need to access the console of the Pi 400s so I can fix things), so it isn’t counted as part of the power measurements here. There is also a Raspberry Pi 4 8 gigabyte model on the desk which is typically off as it is my testbed for playing with a full desktop experience on an ARM based SBC. This of course is still very much a work in progress. Also if you are wondering what the official Raspberry Pi keyboard and mouse in front of the PI 400s are for, they are connected to that test unit for when I use it. The mouse pad is a custom item I purchased off of Zazzle for entirely too much money but it was so cute and matched the RPI motif so well that I just couldn’t resist.

Those ODroid XU4Qs I mentioned earlier have now been replaced by two Raspberry Pi 400s and I could not be happier. Software support for the XU4 platform was starting to lag and despite the fact that they are “supported” by mainline Linux kernels, they never ran particularly stable with a mainline kernel in my experience, especially when you start doing lots of IO over USB External drives as my nightly jobs tend to do. My PI 400s are connected to three six terabyte external USB 3.0 SATA spinning rust drives. These drives basically store all of my media, files and backups for the house. While the PI 400s are a little slower and use more power than the XU4Qs, the reality is that they run way better due to a much higher level of optimization on the software side. The wide software support enjoyed by Raspberry Pis running Raspberry Pi OS is ultimately awesome compared to what I had with Armbian on the XU4Qs. It is important to note that I am running Raspberry Pi OS 64 bit on both units as I wanted a platform I know would be viable into the future for years to come. Let’s face the facts people: 32 bit processors and operating systems are dead tech.

Beyond that I got a Spectrum Cable Modem, an HDMI switch (for the Pi 400s in case I need to access their consoles), a PoE capable 8 port network switch, a Unifi Edge Router X-1, a Unifi CloudKey and a Unifi AC-LR wireless access point. There is a Brother laser printer there but it sits idle 99% of the time so that’s how I counted it’s power usage.

Office Lamp Image

How did I measure all this? Well I bought a Kill A Watt unit and measured the power usage when it came to the workstation side of the room. On the server side of the room I simply hit some buttons on each UPS I have sitting on the floor to show the current watts being used and added those numbers together. My initial goal here was to hit 100 watts of total power usage or less, but alas that just wasn’t feasible. I could squeeze some extra power savings out of the monitors by running them in Eco mode, but honestly I just can’t stand looking at them in Eco mode. They are just too bright and I can’t turn on the built in blue light filters when they are configured that way. So I am incurring an extra 8 watts of total power usage because I hate eye strain. But I managed to save another 10 watts just by switching out the old fluorescent bulb in my office lamp (which was given to me by my in-laws and I just love to death) for a new LED bulb. That was literally the easiest most pain free upgrade I made that saved power as the lamp not only turns on faster and gives off the same quality and quantity of light, but uses 10 watts of power versus 21 watts with the old bulb. In addition I switched out my three old mismatched 1080p Asus monitors (two 27" and one 24") for four brand new matched 1080p Asus monitors (two 24" and two 27") which way less power than the old ones. My three old monitors used about 75 watts of power all together and my four new monitors use about 48 watts (without eco mode) all together. Technology has come a long way.

In any event, this has been a labor of love for me but alas the project has come to an end now. It would be very difficult to lower power usage much further without incurring significant changes that may actually hinder my ability to be productive. One of the goals here was not only to use the least amount of power possible in my office, but to do it without bending over backwards to accommodate the sacrifices made to get there. So what you have here is a modern and efficient setup which allows to me get my work done (and even a tiny bit of light gaming here and there) while keeping my negative environmental impact to a minimum.

So why was this project so important to me? Well simply put: Climate change is real and it’s long past time that we all started taking it more seriously. That having been said, that was a huge motivating factor for me here. I didn’t want to feel like my work itself was having a profoundly negative impact on the environment and now that I’ve finally gotten to that point, I could not be more thrilled. In time I suspect more people will become interested in pursuing setups such as this as the climate begins to exert more and more pressure upon us to curb our wasteful ways not only in my industry but in society as a whole.

As for where this project goes next… I really don’t know. For the time being I’m content with the progress I have made. But of course I am reserving the right to change my mind. After all, if I didn’t do that what would be the point? Changing one’s mind from time to time keeps life interesting, does it not? If anybody would like more details on this setup, feel free to reach out to me via email or on Twitter (yeah I’m back on Twitter for the time being) and I’ll be more than happy to help in any way that I reasonably can. In the meantime, please accept my thanks for taking the time to read through this post as it was long and jam packed full of information.