Small Form Factor, Near-Silent, Low-Power Personalized Computer

In the spring of 2010 I decided to build a powerful, yet near-silent work-station that could fit in the corner of my desk.

Requirements:

As an enthusiast project I put (almost) no constraints on:

Initial Hardware Configuration:

Comments on the Initial Hardware Configuration:

Top down view w/o lid+back plane: Stock PSU, AXP-140, GF 8400GS

Stock PSU, AXP-140, GF 8400GS.

Top rear view w/o lid+back plane: AXP-140, GF 8400GS, Slimline DVD w. top mounted SSD

AXP-140, GF 8400GS, Slimline DVD w. top mounted SSD. Note P4 + PSU cable placement.

Rear view w/o lid+back plane: AXP-140, GF 8400GS, Fan mount

AXP-140, Slimline DVD, GF 8400GS (with filed bracket and PSU plug), Fan mount.

Test of Initial Hardware Configuration:

The system was first tested with memtest86+, running the fan on 5V (up to 390RPM), using no airduct between the fan and the heatsink and without the case lid. With the Base Clock (BCLK) set to 160MHz (up from 133MHz) on no other BIOS changes, the system was stable for 7 hours and did not overheat, drawing 75W from the stock PSU (running at 4.16GHz up from 3.46GHz presumably using a single core).

Booting Linux with BCLK = 160MHz the system was however not able to correctly count prime numbers on all four cores with this single overclocking-change to the BIOS.

At BCLK=142Mhz and the fan spinning at 390RPM the system could reliably count primes on all four cores for more than ten hours, drawing about 94W (on the 220V side). The MOSFETs and the PCH did however get very hot, the MOSFET almost 70C above ambient temperature, the PCH somewhat less. (The ambient temperature was 18C +/- 0.5C).

The i5 CPU has a "Digital Thermal Sensor" (DTS) with an unusual read-out. Immediately after powering up the PC the BIOS would briefly show the ambient temperature (18C) for both the PWM and PCH sensors, while the CPU temperature would initially read out at an impossibly low 4C. As such I reconfigured the temperature read-outs under Linux to add 14C to the reported CPU temperature by writing a /etc/sensors.d/sensors.conf. All CPU temperatures below are based on this 14C correction (making at least readouts around 18C reasonable accurate).

The GPU is tested with qvdpautest (under Linux), the GF 8400GS can decode 1920x1080 H.264 at 61 frames/s (no over-clocking), which is about 20% faster than Nvidia ION (on an Intel Atom system).

Some memory bandwidths measured with Memtest86+ (RAM clock multiplier: 8):
BCLK [MHz]Memory Bandwidth [MB/s]
16010171
15010025
148 9892
145 9692
133 9397

Although the MOSFET and PCH temperatures were lower and perhaps acceptable for non-overclocked usage, I decided to take the system apart and improve the MOSFET and PCH cooling.

Memtest86+ screendump: CPU @ 4.16GHz (BCLK=160MHz, DRAM clock multiplier: 8), Memory Bandwidth: 10171 MB/s

Memtest86+ screendump: CPU @ 4.16GHz (BCLK=160MHz, DRAM clock multiplier: 8), Memory Bandwidth: 10171 MB/s.



Second Hardware Configuration:

The P55 PCH with the heatsink removed

The P55 PCH with the heatsink removed.

The stock and the ZM-NB32K Northbridge heatsinks

The stock and the Zalman ZM-NB32K Northbridge heatsinks.

The HR-09 Type 4 MOSFET Heatsink bottom modified and its unmodified back-up

The HR-09 Type 4 MOSFET Heatsink bottom modified and its unmodified back-up.

The HR-09 Type 4 MOSFET Heatsink top+bottom modified and its unmodified back-up

The HR-09 Type 4 MOSFET Heatsink top+bottom modified and its unmodified back-up.

Ready to fasten the HR-09 to the MOSFETs: The MOSFETs with cable insulation as spacing, (grey) sticky thermal grease on top and (white) silicone in between. The HR-09 info card was used keep any excess thermal grease and silicone from flowing towards the CPU

Ready to fasten the HR-09 to the MOSFETs: The MOSFETs with cable insulation as spacing, (grey) sticky thermal grease on top and (white) silicone in between. The HR-09 info card was used keep any excess thermal grease and silicone from flowing towards the CPU.

While the silicone hardens the modified HR-09 is kept in place by the HR-09 info card on the back, a piece of rubber tubing on the front and a one kilogram Diving lead weight on top

While the silicone hardens the modified HR-09 is kept in place by the HR-09 info card on the back, a piece of rubber tubing on the front and a one kilogram SCUBA Diving lead block on top.

The AXP-140 remounted with the modified HR-09 MOSFET heatsink and the Zalman ZM-NB32K Northbridge heatsink underneath

The AXP-140 remounted with the modified HR-09 MOSFET heatsink and the Zalman ZM-NB32K Northbridge heatsink underneath.

Successful flash of BIOS P55MI420 using UNetbootin, Freedos 1.0 and a 2GB USB Memory Stick. 220V power

Successful flash of BIOS P55MI420 using UNetbootin, Freedos 1.0 and a 2GB USB Memory Stick.

Test of Second Hardware Configuration:

The 2010-02-05 BIOS had an unexpected limitation: The BCLK is now limited to 150MHz.

The same is true both for the 2010-04-20 BIOS and the oldest (2009-12-31) BIOS available from the DFI website. The BIOS was therefore flashed with the most recent 2010-04-20 version.

The initial CPU load experiment (BCLK=142MHz, the fan spinning at 390RPM, no air duct between the fan and the CPU heatsink, without the case lid) was redone, again drawing up to 94W (on the 220V side). The system reliably counted primes on all four cores for several hours. This time the PWM temperature stabilized itself at 49C above the ambient (19C) temperature and the PCH temperature stabilized itself at 45C above the ambient temperature.

Under these conditions the improved MOSFET cooling thus reduced the PWM temperature with 20C, with the less critical PCH temperature being reduced almost as much!

To evaluate the GPU cooling, the CPU load experiment was extended with repeated runs of qvdpautest (which puts a load on the GPU). With 390RPM, no lid and without the air duct, the GPU temperature would reach 51C above ambient (19C).

Third Hardware Configuration:

Rear view w/o lid, back plane and PCIe bracket: Air duct II with free flow through rearmost half of gap between AXP-140 and GF 8400 GS. A piece of the plastic sheet over the GF 8400GS can be seen on the right

Rear view w/o lid, back plane and PCIe bracket: Air duct II with free flow through rearmost half of gap between AXP-140 and GF 8400 GS. A piece of the plastic sheet over the GF 8400GS can be seen on the right.

The assembled system with the front plate tilted down: The wonderfully compact 200W PW-200-M PSU with 30cm P4 cable soldered onto component, upper side, (black) modified Xilence Y-Cable with 5V for PWM fan and SDD+DVD power supply soldered onto lower side, Hitachi SSX-102K LC-OFC speaker cable soldered onto lower side of PSU for 12V supply. In the very front the 20A ammeter with the shunt resistor (ca. 12cm 1.5mm<sup>2</sup> copper wire coiled up). Above the slimline DVD with the SDD below

The assembled system with the front plate tilted down: The wonderfully compact 200W PW-200-M PSU with 30cm P4 cable soldered onto component, upper side, (black) modified Xilence Y-Cable with 5V for PWM fan and SDD+DVD power supply soldered onto lower side, Hitachi SSX-102K LC-OFC speaker cable soldered onto lower side of PSU for 12V supply. In the very front the 20A ammeter with the "shunt" resistor (ca. 12cm 1.5mm2 copper wire coiled up). Above the slimline DVD with the SDD below.

Top front view w/o lid+front plate showing card reader without its front plate and metal cover. Front and rear 16mm x 3mm bolts visible

Top front view w/o case lid+front plate showing card reader without its front plate and metal cover. Front and rear 16mm x 3mm bolts visible.

Top view w/o case lid showing rear part of card reader and the air duct with direct air flow from the fan to the GPU heatsink. The back shows the drive bay with a hole so a screw driver can get to the screw holding the card readers metal cover. To the right of that hole a slit in the drive bay has been cut for a SATA + 5V power cable. Another visible detail is the notch cut into the end of the bolt(s) that come up through the fan, which makes it easier to adjust the fan height

Top view w/o case lid showing rear part of card reader and the air duct with direct air flow from the fan to the GPU heatsink. Towards the back the drive bay has a hole so a screw driver can get to the screw holding the card readers metal cover. To the right of that hole a slit in the drive bay has been cut for a SATA + 5V power cable. Another visible detail is the notch cut into the end of the bolt(s) that come up through the fan, which makes it easier to adjust the fan height.

Test of Third Hardware Configuration:

A bit of Overclocking:

The options for overclocking are quite restricted with the updated BIOS. The PC was not able to POST with the CPU clock multiplier reduced from 26. With the CPU core voltage (Vcore) unmodifiable as well, the base clock could not be increased by much. These are the few changes I did: With this Memtest86+ can be reliably run at BCLK=150MHz and qvdpautest and hpcc also runs OK. Running the above CPU load test would however causes processes to segfault. This problem persisted with hyperthreading disabled.

Reducing BCLK to 146MHz (for a Memtest86+ bandwidth of 10315MB/s), the system would be completely stable under intense (over)load, intended to stress CPU+memory, GPU and PCH:

Four processes counting primes, one rsyncing two USB disks, one repeatedly running qvdpautest, one running an f-spot slideshow and to really make sure the GPU was busy an additional (occasionally non-smooth) 10Mb/s H.264 video playback. To assess the responsiveness of the PC I was at the same editing this web-page via sshfs while listening to (smoothly played) MP3.

The HyperX RAM modules are actually rated at 12800MB/s and can reputedly go significantly faster, so with the current BIOS settings I am not getting even the nominal capacity of those extra fast RAM modules.

With the fan spinning at 625RPM (not audible due to the spinning USB disks used for testing) the PC draws up to 134W (on the 220V side - but see below), and the temperature increases over ambient (19C) are:

Performance

Using the above BIOS settings (and BCLK decremented to 145MHz to provide some margin in stability) I made some additional performance measurements on the PC.

While idle the PC consumes 60W (but see below) and with the fan spinning at 455RPM the temperature increases over ambient (19C) are: Memtest86+ memory bandwidth: 10245MB/s

Since the GPU runs at its default settings, the output of qvdpautest is largely unchanged, except for the surface put/get bits which is up by 12-13%.

As hinted above the HPC Challenge Benchmark is now available as a standard package (hpcc) in Ubuntu.
So simply by installing (sudo apt-get install hpcc openmpi-bin) and running hpcc (mpirun -np 2 hpcc) I benchmarked my new PC with the venerable 'High Performance Linpack' (HPL) at over 14GFLOPS.
(For comparison the standard Dell Optiplex 755 in my office reaches 4.4GFLOPS).
Using a single CPU on my PC the HPL runs at 8GFLOPS and with four (relying on Hyper-threading) the HPL runs at 15GFLOPS.
(I speculate that the modest gain with Hyper-threading is because the memory-bound HPL has been optimized to avoid cache misses).
I find it truly amazing to have this kind of computing power sitting silently in the corner of my desk, since I once used new supercomputers to get this level of performance.



Memtest86+ screendump: CPU @ 3.92GHz (BCLK=150MHz, DRAM clock multiplier: 10), Memory Bandwidth: 10598 MB/s

Memtest86+ screendump: CPU @ 3.92GHz (BCLK=150MHz, DRAM clock multiplier: 10), Memory Bandwidth: 10598 MB/s.

Front view with mainboard BIOS POST code (AA) LED visible through the open DVD slot

Front view with mainboard BIOS POST code (AA) LED visible through the open DVD slot.

Fourth Hardware Configuration

In June 2010 I had the opportunity to upgrade to a WQHD (2560x1440) monitor!

Since the GF 8400GS graphics card does not support WQHD I needed to upgrade the graphics card as well. As mentioned above a Geforce 210 based card would suit my space and low-power requirements. The only passively cooled, low-profile, single-slot, GF 210 based card I could find was the ECS Silent Series NSG210C-512QR-H, which is extra interesting because it uses DDR3 memory. Unfortunately it is difficult to buy this card at my (EU) location.

However, having already crossed the boundary of sawing of parts of brand new computer parts, I realized that the passively cooled, low-profile EVGA GeForce 210 could be used. The heatsink of the EVGA GF 210 is about 8-9mm too tall for the SST-PT09B case. However, since the TDP of the GF 210 is comparable to the TDP of my GF 8400GS, it should be no problem to keep the GF 210 cool with a heatsink reduced to the size of that of the GF 8400GS.

The EVGA aluminium heatsink weighs about 210g and consists of 30 fins protruding from a 5mm thick base. Fifteen of the fins have their base close to the circuit board (with thermal contact to the GPU), these fins have a height of about 26.7mm. For the other 15 fins the base is raised away from the board, those fins are about 13.0mm tall. Reducing the height of the fins by 8mm is thus a significant reduction of the overall heatsink surface. (Although the weight reduction is only about 30g).

Some practical notes on the EVGA GF 210 heatsink pruning:

Performance of the Fourth Hardware Configuration:

While idle the PC consumes 54W, i.e. the GF 210 gives a 6W (@ 220V) reduction in power consumption over the GF 8400GS.

With the fan spinning at 455RPM the temperature increases over ambient (20C) are pretty much unchanged, except for the GPU which now runs 5C cooler: The qvdpautest benchmark (with BCLK=145MHz) shows comparable surface bandwidth and decoding speed, while in the mixer part the GF 210 is significantly faster than GF 8400GS.

Also with the GF 210, playback of 10Mb/s H.264 video causes an increase in power consumption of about 6W (@ 220V).

Redoing the above (over)load test with the GF 210 and the fan spinning at 625RPM consumes 125W down from 134W with the GF 8400GS - but see also below.

Under this load the temperature increases over ambient (20C) are:
In spite of the significant reduction of the GPU heatsink surface, the graphics card upgrade has lead to a small (2C) decrease of GPU temperature and also to an as yet unexplained (4C) reduction of the PCH temperature.

The pruned EVGA GF 210 in place. (Bracket and air duct still to be mounted)

The pruned EVGA GF 210 in place. (Bracket and air duct still to be mounted).

Fifth Hardware Configuration

From top to bottom: the Point of View Nvidia GeForce 8400 GS, the pruned EVGA GF 210 and the ECS Silent Series NSG210C-512QR-H. (Brackets and VGA connectors removed)

From top to bottom: the PoV GF 8400 GS, the pruned EVGA GF 210 and the ECS GF 210. (Brackets and VGA connectors removed).

WQHD screendump w. Nvidia-settings, qvdpautest, disk utility and sensors (Click image for full size)

WQHD screendump w. Nvidia-settings, qvdpautest, disk utility and sensors (Click image for full size).

Performance of the Fifth Hardware Configuration:

Sixth Hardware Configuration

Since the power draw with a properly adjusted power supply is less than 8A, there is plenty of capacity for a GPU upgrade. The currently installed GeForce 210 card has a TDP of 30W. The GeForce 240 has a TDP of 69W, i.e. about 40W more. The next step up would be a GeForce GTS 250 with a TDP of 150W, i.e. an increase of up to 120W which would probably be too much both in terms of power draw and in impact on the cooling. Also, the GeForce GTS 250 is based on a 55nm process, while the GeForce 240 is based on a 40nm process, so the GeForce GTS 250 would not use the extra power that efficiently. In trying to mount the Sparkle card the end-points of the CPU-heat-pipes collide with the GPU cooler. This can be fixed grinding away a bit of the GPU cooler. The next obstacle is that the end-point of the lower Sparkle heat-pipe collides with casing of the motherboard analogue audio socket. Instead of cutting away part of this casing on the expensive motherboard, the "U-turn" part of the heat-pipes can be bent a bit instead. The grinding of the cooler should be done only after unmounting the cooler from the graphics card and after peeling off the adhesive insulation from the heat-sink. Otherwise the electrically conductive tiny pieces of ground off cooler may later short-circuit parts of the graphics card.

Performance of the Sixth Hardware Configuration:

With the above mentioned bending and grinding, it was still difficult to mount the card completely vertically. Additionally, I was also more interested in a GeForce 240 card with memory faster than DDR3. For this reason I decided to benchmark the PC without the improvised air duct and therefore without (comparable) temperature readings. Instead I decided to get a GDDR5 based GeForce 240 card, see below.
The Sparkle SXT2401024S3L-NMP with VGA connector and bracket removed and the cooler unmounted. Parts of the cooler has been ground off to make space for the end points of the CPU heat pipes.

The Sparkle SXT2401024S3L-NMP with VGA connector and bracket removed and the cooler unmounted. Parts of the cooler has been ground off to make space for the end points of the CPU heat pipes.

Seventh Hardware Configuration

The fastest GT 240 based card currently available is the Sparkle Calibre X240G which has 1GB of GDDR5 memory. In addition to having higher memory band-width, the Sparkle Calibre card is also clocked at higher frequencies than normal GT 240 based cards. However, this card has a dual-slot, actively cooled aluminium heatsink which is not usable for my near-silent PC. Additionally, the Sparkle X240G card is full height.

The solution is to replace the cooler with a heat-sink cooler that fits in the narrow space between the CPU cooler and the back-side of the graphics card with heat-pipes that pass from the front to the back side of the card in the same fashion as the Sparkle SXT2401024S3L-NMP. The mounting holes of the cooler from the Sparkle SXT2401024S3L-NMP are not compatible with those of the Sparkle X240G card. I therefore looked for an older graphics card with a heatsink that would fit my purpose.

One such cooler that looks promising is that of the Sapphire ATI HD 2600 XT Ultimate, another is that of the MSI R3650 Radeon HD 3650. After only a few days I purchased a used MSI card on ebay for about 20 Euro (incl. shipping).

Although the mounting holes of the MSI card are compatible with the Sparkle X240G card, the following issues must be resolved: Substantial parts of the fins of the MSI cooler are removed using a jigsaw, a file, sand paper and various milling cutters mounted in a drill press. On the bright side this reduces the weight of the cooler so much that a mounting bracket is no longer required, and the cooler can thus be mounted closer to the graphics card. To prevent the cooler from creating short-circuits on the graphics card, the side of the cooler that faces the graphics card is covered with adhesive insulation, as Sparkle do it with their SXT2401024S3L-NMP.

The heatpipes must be bent with great care: If a heat-pipe ruptures or collapses completely the whole cooler is ruined. As long as a heat-pipe does not collapse, it is less important if its cross-section area is reduced in places. What is important is that the circumference of the heat-pipe is not reduced, since the liquid phase of the coolant flows along the inner surface of the heat-pipe.

The cooling capability of the heat-pipes after the modification is verified by heating the mounting plate and checking that the ends of boths heat-pipes become warm.

With only two SATA connectors available the SATA cable of the card reader is not used, leaving the eSATA port of the card reader inactive.

Performance of the Seventh Hardware Configuration:

Comparing the (over)load test with that of the ECS GF 210 shows in increase in power consumption of 36W (3A at 12V). With the fan spinning 10% faster than when benchmarking with the ECS GF 210 card, the CPU is 1C cooler, but the GT215 GPU runs 13C warmer than the GT218. Also the PWM and especially the PCH are significantly warmer, 9C for the PWM and a whopping 20C for the PCH.

The temperature increases for the PWM and PCH can be explained by the fact that they are now cooled exclusively with air that has already been absorbing heat from the CPU and GPU coolers. A second difference is that the air that cools the GPU cooler now flows below the CPU cooler past the PCH cooler.

Sparkle Calibre X240G without bracket and with a heavily reduced heat-sink cooler from a MSI R3650 Radeon HD 3650

Sparkle Calibre X240G without bracket and with a heavily reduced heat-sink cooler from a MSI R3650 Radeon HD 3650.

Eighth Hardware Configuration

After the GPU upgrade the PCH cooling needs an improvement. Secondly, I became aware of a faint clicking noise from the Scythe fan, presumably from the ball bearing.
The Extreme Spirit II (ES-II) north-bridge cooler is four years old and no longer that easy to find. But I got one for 25 Euro (incl. shipping) and found its combination of compact size, large surface with 25 fins and massive base appealing. Without the fan and the fan bracket, it consists of 130g copper.

The ES-II is obviously too tall to fit underneath the CPU-cooler but compared with the work required for the GPU cooling that was easily fixed.

I first inserted a long screw into the upper mounting hole for the fan bracket through the 14 upper fins, making them more rigid. I similarly reinserted the screw from the lower mounting hole for the fan bracket through the lower 7 fins making them rigid as well.

I then mounted the upper 14 fins between two thin pine-boards and carefully pressed on the lower 7 fins, causing the heatpipes to bend around the middle 4 fins. I also bent the heatpipes between the base and the lower fins a bit.

This caused the heatpipes with the upper 14 fins to be horizontal instead of vertical, reducing the height of the cooler to 44mm which allows it to fit underneath the CPU cooler, see photo.

The ES-II was mounted with its upper fins (pretty much) parallel to those of the CPU cooler, since this allows the air to flow both down and from the direction of the GPU towards the opposite side air outlet. The mounting works best with the end-points of the heat-pipes pointing towards the RAM. Still, the mounting bolts needed to be shortened by about 3mm and the taller nuts that came with the ES-II replaced with standard eight (and 3mm diameter). Additionally, the edge of the upper fins that face the CPU socket had to be filed down, to not collide with the heat-pipes of the CPU-cooler, see photo.

Unlike the Scythe fan, the Alpenföhn 140mm Wing Boost PWM-fan is a stand alone fan. It it less noisy, perhaps due to a combination of its hydraulic bearings, its rubber-covered frame, and its so called Wing Boost blade design. At 550 RPM it is still inaudible at 1m distance. Additionally, it can spin as slowly as 300 RPM at 12V. Since the frame is fully 140mm by 140mm about 15mm of the drive bracket has to be cut away to fit it.

Although the PC can draw just over 10A at full load, the moving iron ammeter has the advantage 0.2A markers and of a higher spacing of the markers in the typical range of the current from 4A to 8A. The new ammeter has a poor resolution below 3A, but this is below the idle draw. The new and old ammeters were verified to indicate the same current to the 0.5A precision of the old model. See photo.

Performance of the Eighth Hardware Configuration:


Thermaltake Extreme Spirit II without fan bent to fit underneath the CPU cooler

Thermaltake Extreme Spirit II without fan bent to fit underneath the CPU cooler.

The bent and filed Thermaltake Extreme Spirit II fitted underneath the CPU cooler. The filing visible on the right side of the ES-II was an experiment and is not necessary for the current mounting

The bent and filed Thermaltake Extreme Spirit II fitted underneath the CPU cooler. The filing visible on the right side of the ES-II was an experiment and is not necessary for the current mounting.

Front view without case lid and drives and with the front plate tilted down showing the modified GPU cooler and the cables around it. Note how the cables do not obstruct the view (through the open DVD tray) of the BIOS display

Front view without case lid and drives and with the front plate tilted down showing the modified GPU cooler and the cables around it. Note how the cables do not obstruct the view (through the open DVD tray) of the BIOS display.

Top view w/o case lid showing rear part of card reader (without SATA cable and therefore an inactive eSATA port), the Sparkle X240G card with its modified cooling and the (spinning!) Alpenföhn fan

Top view w/o case lid showing rear part of card reader (without SATA cable and therefore an inactive eSATA port), the Sparkle X240G card with its modified cooling and the (spinning!) Alpenföhn fan.

Current Hardware Configuration

In addition to the initial list of hardware the PC has been modified with these parts:
Front view showing Personalized Computer under full load with moving iron ammeter (at 9.6A), spinning DVD and card reader with SDHC and CF cards

Personalized Computer under full load with moving iron ammeter (at 9.6A), spinning DVD and card reader with SDHC and CF cards.

Possible Modifications/Variations:

That's it!

Actually, no. This page is a work in progress and will likely be updated with some performance results and hopefully new ideas.

But to conclude on the PC itself: I am very satisfied with my new personalized PC since its performance suits my mathematically inclined computing needs very well, without noise and without taking up too much space.