H170 Computer Build

December 18, 2016

After further reading on the very latest hardware, it is becoming clear to me that the speed of innovation is making many of our current devices obsolete almost as I write this, and that purchasing a high-end system doesn't make economic sense. Specifically the Thunderbolt 3 technology (at 40Gigabit/Second throughput) will make nearly every other connector obsolete. Additionally mainboard link speeds, and main memory speeds are doubling and tripling within only a 2-3 year span of time. 5 years from now fiber-optic wiring may be the norm in a computer case, along with 10Gigabit ethernet. Unless you have no computer at all, it makes no sense to waste money on anything near the high-end.

A few days ago I began considering ways to minimize expense and still put together a decent workhorse which could be used to offload processing tasks. My thoughts turned to a 2006-model HP-Pavilion which had crapped-out a couple years ago, and I began pulling it apart. This episode went about as you'd imagine, with lots of dust, and a pile of old parts sitting on my livingroom floor. Several hand-washings later I was able to get a good look inside the case. After a bit of measuring and googling I determined I could fit either a micro-ATX or a mini-ITX board into this box. The wheels began spinning in my brain as I imagined how a new system could be built.

The box had a recent power-supply, purchased a couple years ago, and I believed this should have sufficient numbers and types of connectors. Similarly there were fans in this box which could be reused. I also had some spare hard-drives laying around, an early model 256GigaByte SSD, and a couple 300GigaByte Velociraptors. For a linux system, this should probably be more than enough storage. In fact with linux you can almost pick a distribution to match your computer speed and storage capabilities (with MSWindows you're kind of stuck with whatever Microsft gives you). The only things I would need to get the system running were a motherboard, memory, and a CPU. This was a good project, and it really didn't take very long to complete. It's been probably 20 years since I've put together a computer system from scratch, and I enjoyed doing this.

I first researched motherboards, and decided that anything less than the 1151 socket generation of chipsets would be too slow. I also didn't need to overclock, since that isn't the purpose of this computer. I narrowed my focus to the H170 chipset (it's basically the Z170 without overclocking capability and perhaps 2/3 the PCIe lanes). I was staring at two Gigabyte boards, a mini-ITX and micro-ATX, over at Amazon. This is a nice way to research since you can get product close-ups by hovering the mouse over an image. I was torn between these two choices, but eventually opted for the micro-ATX due to the additional working space provided with the larger board, and also the upgradeability of this board (and for some reason, which I think was related to the onboard wifi and dual ethernet ports, the mini-ITX was about $40 more expensive). The micro-ATX has an M.2 slot on the top of the board, as well as a Thunderbolt connector, 64GigaByte memory capacity, and more PCIe slots than the smaller board. The micro-ATX is in many ways like a full ATX board, but with a smaller form factor. If you choose a mini-ITX then you're settling with fewer features and no upgrade possibility.

Estimating Power Requirements

One of my concerns was whether the power-supply size would be adequate. To determine this I used a site called PcPartPicker.Com . Clicking on 'Start a System Build' allows you to add current products to a virtual system, and the site will tell you the power consumption for the set of components you've selected. If you create a profile (site username+password) you can then name and save your build. It turns out the system I had in mind only consumed about 250Watts, which actually did surprise me a little bit. Regardless, the 400Watt psu I had would be more than adequate. If I start adding daughter-cards and hard-disks then that might change, but initially I should be ok with a 400Watt psu.

Once the motherboard was decided, the memory and cpu were easy to pick out. Since I live about 2 blocks from a MicroWarehouse, I am almost obliged to be a computer-geek, and I am. MicroWarehouse does price-matching for Amazon and NewEgg, so I ended up with a really sweet deal on these parts. I was expecting close to $600 expense, but I walked away with only $450 out-of-pocket. Originally I was looking at the Intel Skylake 6600 i5 processor, but finally decided on a 6500 since it includes a cpu cooling fan with thermal paste pre-applied. There's nothing difficult about picking out a cpu cooler and applying thermal paste, but it's an additional expense and extra work for only an incremental speed gain (3.2GigaHertz on the 6500 versus slightly higher for the 6600 since it's overclockable). I decided I probably wouldn't notice the speed difference, and I have no intention of playing with clock speeds anyway.

Installing a cpu, cooling fan, and memory onto a motherboard really is pretty trivial, but there are instructions if you need them (if nothing else use Google or Youtube). Here are a few photos at various stages of the process.

It's hard to get a sense for the size of this case, but it's only 15 inches tall, a little smaller than a mid-tower case. I reused the wire running to the power switch and LEDs, but other than that I abandoned all the front-panel wiring from the old HP Pavilion. I pulled up some old HP documentation , and comparing with the new Gigabyte board manual I determined this original HP power wire could be plugged straight into the new board. I also learned the difference between the Gigabyte's 4-pin system fan connector and my fan's 3-pin connector was a VCC (voltage) pin, which makes use of pulse width modulation, allowing you to control fan speeds from software. As such it's ok to use a 3-pin wire on a 4-pin connector - you simply forego the speed control.

Probably the most difficult part of this entire process was getting old hard-disks to fit snugly into a foreign case. This task involved pulling out a lot of old parts, cannibalizing, fitting and testing, well in advance of installing the motherboard. I also examined the PSU connectors in detail to determine compatibility with the installed components. These are considerations you take for granted when buying new or letting someone else put things together. The rear-panel IO cutout (provided with the motherboard) was also on the agenda, and fortunately the HP case used standard sizes, so everything fit correctly. After so much planning, installing the board into the case and hooking up all the wires went without issue.

Powering Up

My 256Gb SSD already had a bootable copy of Kali Linux on it, and I was crossing my fingers that this would just work. Microsoft installations usually involve finding the correct hardware drivers, while Linux has a reputation of finding things automatically. With ethernet plugged in, I plugged the power cable into the wall. After flipping some of the power switches for a minute or two, I got lights on the motherboard and spinning fans. I was thrilled to see the Gigabyte bios flash past on the display. I then glanced up to see the GRUB boot menu, and without thinking I just hit the enter button quickly. After only a second or two I was at a full Gnome3 desktop. This went more smoothly than I could have hoped.

I initially performed the requisite apt-get software updates, which took over an hour because I hadn't used this boot disk in a while. After completion of software updates I rebooted the machine, and then tested all USB ports. Every USB device was recognized without any problem, both for the onboard headers and the USB3 expansion card. I also fired up GParted and created two new ext4 partitions, one each for the two Velociraptors, then rebooted the machine. Both mass storage volumes automatically mounted and appeared on the desktop, without any problem. This whole process was fairly painless, and now I have my secondary headless machine for offloading tasks.

Several photos of the final power-up.

 

-R. Foreman

 

Update

January 20, 2017

After working with this new system for a few weeks, I began to notice disturbing behaviors in the graphical interface of the Linux operating system. Specifically, some applications (GEdit) would take an inordinant amount of time to launch, and in many cases wouldn't launch at all (the system would just hang). I also noted the inability of some windows to resize correctly when edges were being dragged. I thought about this for a short while, and I couldn't imagine any reason this might happen except for the fact that I wasn't using a dedicated graphic processor. I had decided to use the Intel CPU to perform the work of a GPU as well, because it can. These aberrant behaviors appeared to be the result. The very next day I researched and purchased a new graphics card.

The card I ended up choosing, a MSI Radeon Rx 460 OC with 2Gb DDR5 Ram, was released in August of 2016, and this is relatively recent. Nonetheless it only cost me $95 , and after reviewing the specs of this card compared to other cards, I was satisfied this was my best choice. This card's profile is about 2 inches shorter than most other graphic cards, which was perfect for the tight case I was working with. The small size might also explain the fact that this card has no power connector (it gets its power entirely from the PCIe connection). I learned the power requirements for this graphics card were about 80Watts, which put my total system power required at 330W, well under my 400W PSU. More details about this card can be found here.

After installing the new Radeon card, the previous graphic anomalies did go away, thus confirming that the Intel CPU was likely being over-taxed by acting as both CPU and GPU. After that however I began to experience strange power-off events, at random times and for no explained reason. I suspected that some kind of hybernation or sleep mode had been triggered by installing this card. I followed the instructions here to disable hybernate and suspend modes, and I have not experienced any unexpected shut-downs for several days now.

 

</div>