DIY NAS: 2017 Edition

| Comments

Way back at the end of 2011, I decided that I wanted to build a file server in order to store the backups of each of the computers in my house. I immediately set out on Google and started looking for suggestions on what hardware to use. Ultimately, I was frustrated by what I found. There was no shortage of information, but a lot of the information was buried in forum threads and other difficult-to-consume places. This is what convinced me to build my own NAS and then publish a blog chronicling my adventures. A few weeks after being published, that DIY NAS blog quickly became the most popular article on my blog. So popular in fact, that I’ve repeated it on a yearly basis.

Over the years, there have numerous comments and questions about the other things that could be done with my different DIY NAS builds. The majority of these questions and comments have typically surrounded the serving up of media—a perfectly valid question considering the immense storage requirements of media collections. Other authors of the blogs’ comments have wanted to know about the feasibility of hosting virtual machines on the hardware to fill other computing needs in their homes. The past couple DIY NAS builds, especially the DIY NAS: 2016 Edition, have been on the cusp of being able to stream high-definition video or host virtual machines.

Ultimately, I decided that my goal was to pick hardware capable of handling all of these tasks: file server, virtual machine host, and media streaming. Achieving this goal came at considerable expense, and because of it my bank account has suffered enormously. Please take a moment of silence to commemorate the dollars lost.

Wouldn’t you know it, iXsystems stole a bit of my thunder! They’ve released FreeNAS Corral (aka FreeNAS 10) nearly on the same day that I’m publishing the DIY NAS: 2017 Edition. The ultra converged features of FreeNAS Corral are the ultimate compliment to the hardware I selected for this year’s DIY NAS build. In the coming weeks, I’ll be upgrading the DIY NAS: 2017 Edition to FreeNAS Corral and working on a blog to discuss what I’ve learned. I can’t wait!

CPU & Motherboard

When planning out the DIY NAS builds, the motherboard is where I spend the most effort and typically the most of my budget. When shopping, I’m looking for a motherboard that’s small (Mini ITX form factor preferred), that has a low-power CPU, and has 6 or more SATA ports. In addition to these critical criteria, I’m always on the look-out for passively cooled CPUs, on-board Gigabit network controllers (preferably 2), and even IPMI. Considering my goal of building a box capable of handling the hosting of Virtual Machines and/or transcoding multiple media streams, I was a bit worried that I might have to consider buying a non-integrated CPU and the needed CPU cooling equipment.

I wound up deciding on the Supermicro X10SDV-TLN4F-O (specs) which pretty much demolished any sort of budgetary goals that I had for this year’s DIY NAS build. However, on the other hand, the Supermicro X10SDV-TLN4F-O literally checked off every single feature that I could dream about needing for a NAS:

  • Integrated Intel® Xeon® Processor D-1541
  • Mini-ITX Form Factor
  • Supports up to 128GB DDR4 RAM (ECC or non-ECC)
  • 6 x SATA 3.0 (6Gpbs)
  • IPMI
  • 2 x 10GbE Network
  • 2 x 1GbE Network

The Supermicro X10SDV-TLN4F-O is more than enough motherboard for what I wanted to accomplish. The Xeon D-1541 CPU benchmarks at nearly 3 times the CPU used in last year’s DIY NAS, the Avoton C2750. As far as I’m concerned, the Supermicro X10SDV-TLN4F-O is almost laughably over-equipped for inclusion into a machine whose primary purpose is the storing and hosting of files. And those features are expensive! Coming in at $899, the Supermicro X10SDV-TLN4F-O is the most expensive motherboard/CPU combination I’ve ever purchased. However, considering that the price of last year’s motherboard, the ASRock C2750D4I, is routinely found for $400-450, the Supermicro X10SDV-TLN4F-O actually provides more bang for your buck. It’s definitely expensive, even prohibitively expensive, but I believe that at this point it’s a better value than the ASRock C2750D4I.


For the DIY NAS: 2017 Edition I wound up deciding to go with 64GB (4 x 16GB) of Registered ECC DDR4 2133MHz RAM (specs). In last year’s NAS build and my own DIY NAS upgrade I had wanted to use 64GB of RAM, but the cost on the DIMMs that worked with the ASRock C2750D4I and ASRock C2550D4i were prohibitively expensive at the time. After spending $900 on the Supermicro X10SDV-TLN4F-O motherboard, the cost of the RAM seemed to be a bit more in-line with the rest of the components. Among the things I’ve learned about ZFS is that ZFS loves RAM. If I had a do-over on the DIY NAS: 2016 Edition then I probably would’ve opted to exclude the ZIL/L2ARC SSDs and use that money towards RAM instead—even if it wound up adding two or three hundred dollars to the price tag.

Case, Power Supply, and Cables

If you’ve read last year’s DIY NAS build blog or watched last year’s time-lapse assembly video, then you know that I found working inside the case to be a tad bit challenging. Don’t get me wrong, I still love the U-NAS NSC-800 case and I’m super glad I went through the effort to use it in my own NAS. I wound up having to replace the ASRock C2550D4I in my NAS a couple months ago and I swore back then that I wouldn’t go through that hassle again—especially for a NAS that I’m just going to give away!

In the DIY NAS: 2015 Edition, I used the SilverStone DS380B (specs) and I was quite happy with it. It seemed to have the right set of features: Mini-ITX, 8-hot swappable drive bays, room for a couple 2.5” drives inside, and a decent price point of around $150. About my only complaint with the case was that the drive bays felt a bit on the chintzy/fragile side. I didn’t actually break any of the drive bays, and I was really happy with the end result. Happy enough that I have been planning to use it in the DIY NAS: 2017 Edition for quite some time. The SilverStone DS380B is still ideally suited to be used in a DIY NAS build.

I went a bit overboard with the power supply. The Intel Xeon D-1541 is the most power-hungry component, but has a TDP of a meager 45W. The SilverStone DS380B could support up to 10 total hard support (8 in drive bays, 2 more in the internal bays) using an additional 100W (10W per drive is a generous estimate) or so. Considering the power consumption of the hardware, you may wonder why I bought the 450W SilverStone ST45SF-V3 (specs)? That’s an easy question to answer—compatability! When building the DIY NAS: 2015 Edition I wound up going through what seemed like fourteen—but was more like two—different power supplies trying to find something that fit inside the SilverStone DS380B case. I found that different manufacturers seemed to have different interpretations of the SFX standard or that I was very bad at shopping. The SilverStone ST45SF-V3 was moderately priced, well reviewed, and I was quite confident that it’d work in the SilverStone DS380B case.

In building the machine, I ran into my only disappointment in the Supermicro X10SDV-TLN4F-O: what I found was the onboard headers used to connect to the SilverStone DS380B case’s USB 3.0 front-panel ports were only USB 2.0. Because of that, I had three options: leave the front-panel USB ports disconnected (which I did when I built the DIY NAS: 2015 Edition), buy a USB 3.0 PCI-e card that had a header to support the front panel connectors, or find an adapter to connect a USB 3.0-style connector to a USB 2.0 header. The adapter wound up being the best option because it was inexpensive, it didn’t eat up the only PCI-e slot available on the Supermicro X10SDV-TLN4F-O, and having the added speed of USB 3.0 on the front of the case just isn’t very important to me.

Later on in the assembly, I ended up deciding to replace the SilverStone DS380B’s clever magnetic mesh grill for the side’s case fans with a pair of traditional 120mm fan grills. What I found shortly after I installed and configured FreeNAS was that the hard drives were running alarmingly hot—hot enough for FreeNAS to trigger a critical hard drive temperature alert. While that alert wound up being completely my fault, I did still notice that the hard drives were still quite warm. Removing the SilverStone DS380B’s default fan grill wound up having the most dramatic effect in lowering the hard drives’ temperatures. I’ll dive into this in much greater detail further down in the blog.


FreeNAS Flash Drive

You might be asking yourself, “Why didn’t Brian use some sort of SSD for the OS drive?” and the answer to that is simple: this machine is primarily a NAS! I would rather all M.2, PCI-e, and SATA ports to be used to making additions to improve the performance of the actual NAS. An added benefit of using the USB for the boot device is that it’s an excellent chance to save a few dollars or at the very least redirect the dollars you would’ve spent on an operating system drive and use them to actually add storage or improve the performance of your NAS.

For some reason, I’ve been pretty loyal to SanDisk throughout my NAS-building years. For every NAS that I’ve built since my very first one, I’ve been using the SanDisk Cruzer Fit or Ultra Fit USB drives. They’re small enough that they can plug right into the USB ports on the back of the computer, which makes them readily accessible in the event of a failure. For the DIY NAS: 2017 Edition, I wound up choosing the 16GB SanDisk Ultra Fit. In my own NAS upgrade, I decided I wanted to mirror the FreeNAS USB boot device, and that’s something which I chose to do with the DIY NAS: 2017 Edition as well. Having an OS drive fail in FreeNAS isn’t a huge deal, thanks to it saving your settings on to disk on a daily basis, but adding a mirror is inexpensive and easy, so why not do it?

NAS Hard Disk Drives

Up until this year, I’ve been primarily buying 4TB hard disk drives in my DIY NAS builds. After building the 2016 NAS, I had a feeling that the days of the 4TB hard drive were probably behind me. While upgrading to a 8 x 4TB HDD configuration for the DIY NAS: 2017 Edition would’ve been a logical progression, I wasn’t too crazy about it because I knew it’d definitely be the last time I was going to use a 4TB HDD for this series of NAS builds. This was further complicated by the fact that the Supermicro X10SDV-TLN4F-O motherboard only has 6 SATA ports. Using 8 HDDs would’ve required adding SATA ports via a SATA controller card.

Bigger drives helped solve the limits imposed by the fact that the Supermicro X10SDV-TLN4F-O motherboard only had 6 SATA ports onboard. I wound up digging through both 6TB and 8TB hard drive prices and I ultimately wound up deciding that the 8TB hard drives were the way to go. They carried the biggest sticker price, but similarly offered the best price per terabyte.

2017 NAS HDDs
Seagate 8TB (ST8000DM002)
8 TB
8 TB

When I pick out hard drives for a NAS, I always consult the Backblaze drive statistics blogs. I wasn’t surprised to find that they’d already arrived at the conclusion I had. They also wrote about beginning their migration towards using 8 TB hard drives. I had already decided to buy five 8TB hard drives. In my typical RAIDZ2 configuration, that would leave 24 TB of net storage—a 4TB upgrade from the prior year’s blog. Because I’ve had good luck to date with Western Digital’s Red series of drives, I wound up deciding on buying the WD Red 8TB HDD (WD80EFZX) (specs) and due to the statistics from Backblaze, I also picked the Seagate 8TB (ST8000DM002) (specs). Because I value Backblaze’s statistics more than my own personal experience, I chose to pick three of the Seagate drives and two of the WD Red drives. The fact that the Seagate drive was more affordable made that decision a no-brainer.

Final Parts List

Component Part Name Count Cost
Motherboard Supermicro X10SDV-TLN4F specs 1 $899.00
Memory Crucial 64GB Kit (16GBx4) DDR4 ECC specs 1 $631.99
Case SilverStone Tek DS380B specs 1 $149.99
Power Supply SilverStone Technology 450W SFX ST45SF-V3 specs 1 $64.99
USB 3.0 to 2.0 Motherboard Adapter SIENOC USB 3.0 20 Pin Male to USB 2.0 9 Pin Motherboard Female Cable N/A 1 $5.08
Case Fan Grill 120mm Black Fan Grill / Guard with screws (2 pack) N/A 1 $7.50
OS Drive SanDisk Ultra Fit 16GB USB Flash Drive specs 1 $9.958
Storage HDD 1 Seagate 8TB HDD SATA ST8000DM002 specs 3 $288.99
Storage HDD 2 WD Red 8TB NAS HDD (WD80EFZX) specs 2 $295.99
TOTAL: $3,237.40

When I first saw my Amazon Shopping Cart, I think I stopped breathing for a minute or two. Spending more than three thousand dollars on any computer seems to be a bit financially reckless. My suggestion for most readers would be to avoid faithfully following this parts list as a blueprint for your own NAS, but to instead use it as a starting point and look for areas to cut costs and tweak it to your needs. However, I do think it’s important to point out that about 50% of the total machine’s cost is storage and nearly 30% of the machine’s cost is a seriously powerful, power-efficient, and feature-rich motherboard that carries quite the price premium. It’s an expensive build, but it is also quite powerful and I think it is an excellent value. In fact, I think that it’s a much better value than the DIY NAS: 2016 Edition even if last year’s NAS is around $1,000 cheaper. When you spend smart, you can expect to get what you pay for!

All the 2017 DIY NAS parts,  and then some! Supermicro X10SDV-TLN4F Motherboard Crucial 64GB Kit (16GBx4) DDR4 2133 ECC RAM 2 x SanDisk Ultra Fit 16GB 2 x WD Red 8TB NAS HDD - WD80EFZX 3 x Seagate 8TB Desktop HDD - ST8000DM002 SilverStone Technology 450W SFX (ST45SF-V3) SilverStone Tek DS380B DS380B Case - Drive Trays DS380B Case - Drive Cage #1 DS380B Case - Drive Cage #2 DS380B Case -  Interior #1 DS380B Case - Interior #2 DS380B Case - My ugly Mug

Hardware Assembly, Configuration, and Burn-In


The DIY NAS: 2016 Edition and my own NAS were by far the most difficult computers I’ve ever put together, but I still feel that it was worth the effort. I love my NAS in the U-NAS NSC-800, and everybody I showed it to has been impressed. All that being said, I sure am glad that the DIY NAS: 2017 Edition was built around the SilverStone DS380B again. One night, after my one-year-old son finally zonked out for the evening, I got out all the parts and had the computer assembled and booted up in an hour or two. Working inside the SilverStone DS380B is straightforward enough that I don’t even have any gotchas or helpful tips to suggest. Here are my best suggestions:

  1. Install your RAM while the motherboard is outside the case.
  2. Use your power supply, the motherboard (and its box), and the case’s power button in order to fire up the parts once before putting in the case.
  3. Zip ties, lots and lots of zip ties. You’ll hate them if you ever have to take the machine apart, but you’ll still be glad you did it.

Based on the video above, or the full-length version, it took me less than an hour to put together the DIY NAS: 2017 Edition. Quite a bit faster than the number of hours it took to build either last year’s NAS or my own NAS.

Hard Drive Temperature Issues!

I didn’t really discover this during the actual assembly, but if I had the ability to predict the future, I would’ve wanted to tackle it during the assembly. Once I had FreeNAS installed and running, I noticed that the drives were running hot…very hot. I leapt into action after seeing the FreeNAS GUI log a critical error. The hottest drives were running at 60-62 degrees Celsius and the rest of the drives were between 45 and 55 degrees Celsius. This was way too hot for my comfort.

Unfortunately (and thankfully), I’d done a really dumb thing in the placement of the DIY NAS: 2017 Edition. I had the NAS down on the floor, literally squeezed between a desk and a file cabinet. Due to the lack of any measurable gap on either side of the SilverStone DS380B, this placement was abysmally atrocious for airflow. I’d put it down there to protect it from my nomadic son, who has already developed a fondness for crawling up to devices and pressing power buttons, as my homelab server, my FreeNAS box and my desktop computer can each testify to. Getting better airflow around the NAS helped, but I felt that the drives were still all running a bit warmer than I’d like. The temperatures of the drives fell, but only down to 42 to 49 degrees, which was still too hot.

I wound up taking additional steps, and I’d strongly recommend these for other SilverStone DS380B users—especially those of you with similar hard drive temperature issues.

  1. Remove the SilverSstone magnetic grill and replace it with a pair of less restrictive traditional case fan grills.
  2. Set the speed of the fans to HeavyIO Speed in the IPMI interface (or via the BIOS)
  3. Rearrange the drives to create as many air gaps between drives as is possible.

The combination of these three steps immediately resolved any issues I had with critically hot drives. After making these changes, the temperatures on the drives dropped down to a range of 32 to 40 degrees Celsius. Of the three steps, removing the magnetic grill had the most immediate and dramatic impact on the drive temperatures. The material of the grill must really be restrictive for it to have had that dramatic of an impact on the drive temperature. The second two steps each helped as well, but not nearly as dramatically as removing the grill.

[][df[]]For this year’s build, the above three steps resolved the issues I saw with the hard drives being too hot. However, it also gnawed at me knowing that other people might wind putting more than five drives into the cage and the SilverStone DS380B’s airflow might also haunt them. One additional solution that I’d read about was to create a duct inside the case to force the air across the hard drive cage using cardboard. Because of the DS380B’s big air gap on that side of the case, the path of least resistance for the airflow is to avoid the drive cage. This duct would encourage the air being pushed into the case by the fans to actually enter the drive cage. Even though there’s no shortage of “free” cardboard lying around from all the parts’ packaging, I was a bit worried how the duct would hold up in shipment to the giveaway winner, and it also seemed a bit unprofessional to brag about a computer where I’d employed cardboard and duct tape to solve a problem. Instead of taking the easy route of using some of the cardboard, I decided to go ahead and put my 3D printer to use and design my own fan duct which screws into the case fans—a future blog topic for sure! I’ve published the Cooling Duct for SilverStone D380 on Thingiverse in case you want to 3D print your own and not wait for my blog on designing and printing it.

Because he’s a good dude, my friend Pat is putting his 3D Printer to use in order to sell the pairs of the fan ducts on his Tindie store for $12. If you’re a SilverStone DS380 case owner who wants to increase the airflow across the drive cage, I’d recommend implementing the steps above and also picking up a set of these cooling ducts. You’ll probably also want to make sure you have four 120mm fan screws laying around or pick some up!

First Duct Face Prototype #1 First Duct Face Prototype #2 Final Duct Face #1 Final Duct Face #2 Final Duct Face #3 Final Duct Face #4 Duct Face in the DIY NAS: 2017 Edition #1 Duct Face in the DIY NAS: 2017 Edition #2 Duct Face in the DIY NAS: 2017 Edition #3 Duct Face in the DIY NAS: 2017 Edition #4



Once I’m confident that the motherboard will POST, my biggest concern is always that there’s a lurking bit of bad RAM somewhere on one of the DIMMs. I use one of my numerous spare SanDisk Ultra Fit flash drives to create bootable MemTest86+ USB drive and run it for at least three passes. I almost always wind up running MemTest86+ for more than three passes, but that’s just because I walk away from it for a few days and come back to it at a later point in time. A successful completion of three passes without any errors should be more than enough to give you a warm-and-fuzzy feeling about the condition of your RAM and your computer’s ability to use it.

CPU Torture Test(s)

After a few days (or longer) of running MemTest86+, I’ll run a CPU stress test. My CPU stress test of choice is Prime95 the Mersenne Prime Search program. In Prime95, I choose that I’m doing stress testing and picking the Blend test. The Blend test should hammer away at the CPU and RAM pretty soundly. To gain confidence in the machine’s overall stability, I’ll usually let Prime95 run for around four hours. If the motherboard can handle the CPU being pegged at 100% constantly for four hours, then I usually have a pretty good feeling about the machine’s stability. Keeping the CPU running at 100% capacity generates a lot of heat, and heat is the number one enemy of all computer hardware, particularly components with defects.

FreeNAS Installation and Configuration

Using one of my other computers, I created a bootable USB drive out of the FreeNAS installer ISO. For my sanity’s sake I picked a different brand of USB device than the SanDisk Ultra Fit drives that I’d selected for housing the FreeNAS Operating System. Normally I get out my trusty old monitor and keyboard for first installing and setting up FreeNAS, but for the DIY NAS: 2017 Edition I did the entirety of the setup headless without a monitor using the motherboard’s IPMI interface. When I got to the Choose destination Media screen, I made sure to select both of the SanDisk Ultra Fits. I chose the Boot via BIOS option for the FreeNAS Boot Mode and then allowed the installer to reboot my machine after removing the installation USB drive. The NAS booted FreeNAS up from the OS drives and at the console it reported the URL for the FreeNAS web user interface.

Typical Configuration

In configuring FreeNAS, I employ a very KISS (Keep it simple, stupid!) approach. The more straightforward things are set up, the easier it is for me to understand and fix problems when they arise. I don’t use Active Directory (or any equivalent) at home, so all of my computers’ network configuration is done individually and consistently across each computer. The FreeNAS machine is no different. Here are the steps that I took to set it up:

  1. Updated the FreeNAS hostname to the . where the workgroup matches my other computers (eg: diynas2017.lan)
  2. Created a user in FreeNAS where the username and password reflected the local username and password I’m using on my Windows machines.
  3. Created a group called ShareUsers
  4. Edited my user and added my account to the ShareUsers group
  5. Using the FreeNAS Volume Manager, I created a volume named storage, added all 5 of the 8TB HDDs to the volume, and picked RaidZ2 as my RAID type.
  6. Created a Dataset named share underneath the storage volume.
  7. Modified the permissions of the share dataset:
    1. Set the Owner(group) to ShareUsers
    2. Checked the boxes for Read, Write, and Execute beneath Group
    3. Selected the Set permission recursively checkbox.
  8. Selecting User Services, I enabled the SMB service and made the following settings:
    1. NetBIOS name: diynas2017
    2. Workgroup: lan
    3. Description: DIYNAS2017
  9. Navigating to Sharing –> Windows (SMB) Shares –> Add Windows Share I created a new Share
    1. Path: /mnt/storage/share
    2. Name: share
  10. Enabled Autotune under System –> Advanced

Initial Login Main FreeNAS Page Creating a User in FreeNAS Creating the user group to access the Share Adding user to Share Creating a Volume in via Volume Manager Post-volume creation Creating the Share Dataset Giving the ShareUser group access to the dataset Configuring Samba/CIFS Creating a Windows share pointed at the dataset Enabling the wizardy of Autotune

Completing these steps effectively sets up a disk array which contains two drives’ worth of redundant data. On that disk array, it creates the share folder which the ShareUsers group has permissions to read, write, and modify. Finally, using SMB, that folder is shared as the name “share.” After completing all of these, it’s possible for me to open the share in Windows File Explorer and then make changes to the contents of that new share.

Setting up the Plex Plug-in

Media collections take up so much space that I wouldn’t be surprised at all if they’re at the top of the list of things that people want to store on their NAS. And as long as you’re storing it somewhere, why not also then be able to access that media collection over the network from your various TVs, computers, smartphones, and tablets? It only makes sense that many users would want some way to access their media collections directly on their NAS machines. This is where the FreeNAS plug-in for Plex comes in so handy and is one of the reasons that the Supermicro X10SDV-TLN4F-O’s Xeon D-1541 CPU comes in most handy. With a Passmark score of over 11,000, the Xeon D-1541 CPU would be able to simultaneously transcode five different 1080p streams.

For the first time ever, I decided to try and tackle setting up Plex using the FreeNAS plug-in.

  1. Created a Dataset called media for media storage in FreeNAS.
  2. Set the permissions on the media dataset:
    1. Set the Owner(group) to ShareUsers
    2. Checked the boxes for Read, Write, and Execute beneath Group
    3. Selected the Set permission recursively checkbox.
  3. Added a Windows (SMB) Share for /mnt/storage/media and called it Media
  4. Under Plugins in the FreeNAS UI, I selected PlexMediaServer, hit install, and clicked Ok to install the plugin.
  5. Added storage to the Plex Jail (Jails –> select plexmediaserver__1–>Add Storage)
    1. Source: /mnt/storage/media
    2. Destination /media
  6. Enabled the Plexmediaserver plugin
  7. From the dialog box that popped up afterwards, was able to pull up the Plex UI

At this point, the Plex Media Server was running in its own jail on the DIY NAS: 2017 Edition. I then set up my Media libraries, copied over some of the videos that I recorded while assembling the DIY NAS: 2017 Edition, and via Plex I was playing those videos on a number of devices on my network. If you need help setting up Plex, you can pick up where I left off by starting with Step #2 of the Quick Start Guide from Plex.

Creating FreeNAS Dataset for Media Setting permissions on the Media dataset Creating a Media share in Samba Installing the PlexMediaServer plugin Confirming the PlexMediaServer plugin installation Post PlexMediaServer installation Adding storage to the PlexMediaServer jail Turning on the PlexMediaServer service Logging in to Plex Plex Server Setup Setting up Media Library’s folders in Plex Completing Plex Server Setup Browsing Plex Media Library Watching a video in Plex


When benchmarking the performance of my NAS builds, I’m really interested in two things: throughput and power consumption. The NAS’s ability to send/receive data quickly is its most key component, and power consumption is a sneaky hidden cost that’s good to keep an eye on. However, because I put the Supermicro X10SDV-TLN4F-O in this year’s NAS, it would seem criminal to not point out the phenomenal upgrade in processing power the Intel Xeon D-1541 brings to the table. The Xeon D-1541 benchmarks at nearly three times what last year’s Atom C2750 does and nearly quintuples 2015’s Atom C2550, which is an important benchmark to share.

That being said, on to the benchmarks I care most about!

Power Consumption

Depending on where you live, especially outside of the United States, power consumption winds up being a very sneaky cost of running your own NAS. Especially if you decide to run yours 24x7 like I do. Since building my first NAS, I’ve been willing to pay a premium for hardware that is more power-efficient, which is something I did this year by buying the Supermicro X10SDV-TLN4F-O for its Intel Xeon D-1541 CPU.

Bootup Idle Memtest86+ Prime95 Drive Write Test
124 watts
83 watts
86 watts
126 watts
111 watts

Using the app for one of my Sonoff POWs, I’ve been keeping track of the DIY NAS: 2017 Edition’s consumption of power. In the past 16 days, the NAS used 33.06 kWh worth of energy. That averages out to about 2.066 kWh per day.


I’m a bit embarrassed about the throughput testing. I was so excited about the dual 10Gb NICs that I spent even more money on an Intel X540T2 Network Adapter T2 just so that I could test the DIY NAS: 2017 Edition. I spent more on the X540T2 than I did on my entire 10GbE SFP+ network, which interconnects three different computers! I bought this dual-port 10Gb NIC for the sole purpose of testing something I hadn’t done anywhere yet: link aggregation. I was pretty excited to team the 10GbE interfaces and see if I could really see some high throughput numbers.

Here’s a quick run-through of how I wind up testing throughput on the NAS. With these settings, I’ve been able to routinely demonstrate the saturation of Gigabit NICs. In building my own inexpensive 10GbE SFP+ network, I’ve found that I wasn’t able to use these steps to saturate those 10GbE links. For the sake of testing everything in the same way, I didn’t make any adjustments based on which link I was testing on.

Here’s how I benchmarked the throughput:

  1. Mapped a drive in Windows to the share on the interface that was being tested.
  2. IOMeter
    1. Set up 2 workers per CPU core. On each worker I set the Maximum Disk Size number of sectors to a number that’d be 2.5 times as big as my total amount of RAM (~512 bytes per sector) and also picked the drive letter of the mapped drive as the Target
    2. Under Access Specifications, I created four different Global Access Specifications all with a 512KB block size.
      1. Sequential Read: 100% Read and 100% Sequential
      2. Sequential Write: 100% Write and 100% Sequential
      3. Random Read: 100% Read and 100% Random
      4. Random Write: 100% Write and 100% Random
    3. I quadruple check each IOMeter worker because I almost always forget to update one when repeating these steps.
  3. I execute each of my four different tests (described above) in IOMeter for each of the IP addresses assigned to the different NICs for a duration of 10 minutes per test.

Overall, I was impressed with the throughput of the DIY NAS: 2017 Edition, but not overwhelmed. In buying the Supermicro X10SDV-TLN4F-O, I paid quite the premium for the dual onboard 10GbE RJ45 interfaces. But what I discovered is that my inexpensive 10Gb network cobbled together out of parts I found on eBay performs nearly as well and at a fraction of the cost. Where the DIY NAS: 2017 Edition shone brightest was in my sequential write speeds, in fact it showed up my personal NAS by so much I re-re-re-tested both to make sure the results were accurate.

I attempted to use link aggregation using LACP to team the two 10GbE NICs together on NAS and my PC. But in each of the throughput tests, the aggregated connection actually performed slower than one of the single 10GbE links. I assume that there’s something that I’m missing here, so I’ve omitted those results. When (or if) I get to the point where I have confidence in this configuration, I’ll rerun my throughput tests and publish an update.


The DIY NAS: 2017 Edition is way, way, way beyond “just a file server.” It has an incredible amount of extra potential that my prior years’ DIY NAS builds have lacked. The processing power of the Xeon D-1541 nearly triples last year’s NAS, the 64 GB of RAM doubles the previous build, and the 2x10GbE and 2x1GbE network interfaces dwarf the throughput of the 2016 build. Moreover, there’s even room for future growth in RAM, additional hard drives, and a free PCI-e slot for whatever tickles your fancy.

If I were you, I wouldn’t be too discouraged by the fact that I couldn’t get the link aggregation working to the point that it was faster than a single 10GbE link. 10GbE switches are still priced well beyond what I think is reasonable for a home user. I think you’re far better off using the Supermicro X10SDV-TLN4F-O’s two 10GbE interfaces to connect directly to two other PCs and build a couple small point-to-point 10GbE networks in the process. I’ve found that a 10GbE link between my computer and my NAS is quite ridiculous.

My biggest disappointment in this build is its astronomical cost. Don’t get me wrong, I think if someone emulates this build on their own then they’re definitely going to get what they pay for, they’re just going to wind up getting (and paying!) a lot in order to do it. I always attempt to compare my latest DIY NAS build to equivalent off-the-shelf machines, but this year that was difficult. For starters, this is a 6-bay NAS. There is certainly room in the SilverStone DS380B for eight hard drives, but there are no available SATA ports on the motherboard.

In order to make the comparison a bit easier, I’m adding the cost of a FreeBSD-compatible SATA controller card to the DIY NAS: 2017 Edition, which means that a diskless 8 bay version of the DIY NAS: 2017 Edition_ would cost around $1,800. How does it compare? Unfortunately, due to my motherboard choice. It’s not really an apples-to-apples comparison any longer.

The closest equivalent off-the-shelf-NAS that I could find was the QNAP TVS-871-i7-16G-US, which features an Intel Core i7-4790S, 16GB of DDR3 RAM, and 4x1GB NICs and sells for $2,177 dollars. When you do a side-by-side comparison of the DIY NAS: 2017 Edition and the QNAP TVS-871-i7-16G-US, the DIY NAS: 2017 Edition wins nearly every comparison except for maybe the GPUs’ capabilities. Other 8-bay NAS systems like the Synology DiskStation DS1815+ and QNAP TS-831X-8G-US both have price tags that compare favorably to the price tag on the DIY NAS: 2017 Edition, but beyond each having 8 bays, the comparisons really end there. The amount of computing power, memory, and throughput that exists in the DIY NAS: 2017 Edition simply can’t be matched by the consumer grade 8-bay NAS devices from Synology, QNAP, Drobo, and others.

Ultimately what I wound up building out this year was way, way, way beyond just a NAS. The DIY NAS: 2017 Edition really has more in common with my homelab server build than it does with my prior NAS builds. Calling this build a NAS is akin to calling the Ferrari LaFerrari a car, the Mona Lisa a painting, or the Pyramids of Giza a few buildings. Hyperbole notwithstanding, the DIY NAS: 2017 Edition really is pushing the boundaries of good sense. There’s no doubt about it, it’s a remarkable machine that carries an equally remarkable price tag. However it compares very favorably to its closest off-the-shelf competitor, the QNAP TVS-871-i7-16G-US. It easily surpasses the QNAP processing power, available memory, and throughput while remaining around $400 cheaper.

But Brian, I don’t want to spend over that much building a NAS, even if it is a super NAS!

I don’t blame you, not one bit! I’ve definitely overdone it with the DIY NAS: 2017 Edition. Please keep in mind, this is just a suggestion of what you could do; there are certainly other ways you can build a NAS. My number-one suggestion to any potential DIY NAS builder is always:

Understand your requirements and choose your hardware based on your requirements, not some yahoo blogger on the Internet! (aka me)

At $900, the Supermicro X10SDV-TLN4F-O is in rarefied air—it’s an incredibly expensive motherboard thanks to the Xeon D-1541 CPU and the dual onboard 10Gb Ethernet NICs. During my shopping, I discovered that the Supermicro X10SDV-4C+-TLN4F-O is a very comparable motherboard with a slower CPU and missing the 2x10GbE network controllers that still carries a hefty price tag around $525, but that price tag is nearly $400 cheaper than what I used in this year’s NAS build.

Another area ripe for massive savings is the storage drives. The 5x8TB HDDs in this year’s build wound up accounting for nearly $1,500—opting for very expensive drives yielded a nice price-per-terabyte but it still cost a pretty penny. However, in choosing large drives, 16TB of space was dedicated to redundancy. The total net storage is 24TB. A similar configuration of 4TB drives at around $145-150 per drive (8x4TB HDDs RAID-Z2) would wind up costing around $300 less, although some of that savings would need to go to adding a SATA controller card like the oft-recommended IBM Serveraid M1015 for around $139 or a more budget-friendly SATA controller card for just under $30.00.

Changing the drive configuration, picking a less expensive motherboard, and adding a SATA card would bring the price down from $3200 down to around $2500. Re-building the DIY NAS: 2016 Edition using today’s prices would cost around $2200, which is actually more than what it cost to build a year ago. All things considered, this alternative build is very tempting. I very nearly picked out the Supermicro X10SDV-4C+-TLN4F-O and a 8x4TB HDD configuration for the DIY NAS: 2017 Edition. Ultimately, I wound up being convinced that the Xeon D-1541 CPU and the dual 10GbE were worth the added expense. I wouldn’t fault anyone for disagreeing and picking the alternative configuration—I debated this myself for quite some time before making my decision!

One final note on saving a few dollars—shop around! In the couple months that I’ve been working on this blog, I’ve been keeping an eye on the prices. Due to Amazon’s wonky pricing, I’ve seen the total price as low $2,750 and as high as $3,400. The prices have been especially chaotic on the RAM and hard drives. The Amazon prices were cheapest or at least competitive when I purchased my parts, but that hasn’t held true since my original purchases.


Not only is the DIY NAS: 2017 Edition completely over the top so is the #FreeNASGiveaway! I’ve tweaked the giveaway a bit and given everybody four entries in the #FreeNASGiveaway. Everybody who completes all four entries will earn a fifth bonus entry! Please see the FreeNAS Giveaway page for additional details.

Brian's DIY NAS: 2017 Edition #FreeNASGiveaway

Begin Laser Ignition! A Review of the NEJE DK-8-KZ Laser Engraver

| Comments

A few months back, the folks at contacted me and asked if I’d be willing to review things they sent me from time to time. The first item they suggested appealed directly to a childhood fascination that’s stuck with me all the way into my so-called adulthood: LASERS! I’m pretty certain that five-year-old Brian would’ve eagerly gobbled down his broccoli if his mother had convinced him that the accursed vegetable was the secret behind obtaining his own laser weaponry. Chief among the things that excited me about our fledgling Plano-area makerspace,, was the possibility of making things with a laser cutter for some of my DIY projects. If you’d told five-year-old Brian that one day he’d be using lasers to complete projects, he would’ve demanded to borrow your time machine and see this fantastical future.

NEJE DK-8-KZ Laser Engraver

GearBest wound up shipping me a NEJE DK-8-KZ Laser Engraver. It’s definitely a little guy, something that you could sit right on your desk without taking up much more room than a giant cup of coffee. It measures out to be 6” x 6” x 7.5”. The laser on the engraver is a 1000mW and it’s powered by two different USB ports (Standard and Mini) connectors. Additionally, the Mini USB serves as the data connection for hooking up to your PC to control the engraver. The actual workable surface of the engraver measures around 3” x 3.5”. A MicroSD card is shipped with the printer, which contains the drivers, software, and a bunch of different images (512 x 512) that the engraver is capable of handling.

Based on the specifications, I harbored no delusions of being able to use the NEJE DK-8-KZ Laser Engraver to do any of the tasks I’d been hoping we’d eventually be able to do at our nearby makerspace. In fact, I completely abandoned any concepts of actually cutting anything thicker than your ordinary office paper. Perhaps the tiny laser is capable of cutting thin enough materials, but I just couldn’t fathom the value of those cuts. But what could I wind up doing with the NEJE DK-8-KZ Laser Engraver? I had a few ideas:

  1. Engrave my face into things… All the things!
  2. Subvert the balance of Scrabble by adding my own tiles.
  3. Make a very unique business card.
  4. Convince to buy one or simply find room in the garage for my very own.

Of these four reasons, I really think last one resonates with me as the best reason to recommend the NEJE DK-8-KZ Laser Engraver. It’s inexpensive, it’s small, and it’s easy to use. After a few engraving jobs, you get the idea of the amount of work, patience, and tinkering it takes to be successful. The NEJE DK-8-KZ Laser Engraver is something I’d recommend to anyone who wants to do some serious laser cutting, but doesn’t know where to start.

Considering that the NEJE DK-8-KZ Laser Engraver was a significant contributing factor in my commission of a work of art, it only made sense that my face would need to be the first thing I attempted to engrave on anything. I scrounged around the house and found some retail packaging in our recycle bin. I loaded up the engraver’s device drivers and application, and in the immortal words of Frau Farbissina, I screamed “Begin laser ignition!!!!!!!!!!” at the top of my lungs and then hit the application’s Start button.

Note: If you’re impatient and don’t want to sit through the entire 18-minute video then check out this time-lapse video.

I went through about two or three attempts before I was successfully engraving my face into the scrap pieces of paper retail packaging. Much to my chagrin, figuring out how to use the NEJE DK-8-KZ Laser Engraver took fewer attempts than it took me to get a decent video recorded of the process. Overall, I found the engraver and its software to be very easy to use. Once I had it working, it only required a matter of trial and error in order to get the laser focused and to set the duration to the right amount for burning my face into the material.


Before contacted me and asked me if I wanted to review the NEJE DK-8-KZ Laser Engraver, I wasn’t even aware that small laser-engraving tools like this existed. If I had been aware of their existence, I would’ve bought one in a heartbeat just because I’m curious about laser cutters, but I’m not willing to spend hundreds (thousands) of dollars to buy my own. About the only complaint that I have is that the NEJE DK-8-KZ Laser Engraver is tiny. Small enough that it’d be pretty tricky to engrave anything much larger than a business card. Not impossible, but tricky. If you’re considering buying a laser engraver, it might be wise to determine the size of the things you’d want to engrave and make sure your laser engraver can accommodate them.

Here’s hoping that after showing it to our makerspace’s leadership team, they’ll get their acts together and float a laser cutter towards the top of the priority list. If not, I might just have to wind up buying my own to keep out in my garage!

Components Safety First Safety First Engraver Only Closeup on the 1000mW Laser Engraving Brian’s Face Sample #1 Engraver in Action Sample #2

Are you interested in the NEJE DK-8-KZ Laser Engraver? GearBest has created a coupon code specifically for my readers. Enter ‘NEJE16’ get your NEJE DK-8-KZ Laser Engraver for $69.99! Are you looking for something a bit bigger? Here’s a couple other laser engravers of different sizes and wattages that might be more your style:

If you had the ability, what sorts of things would you use the NEJE DK-8-KZ Laser Engraver to engrave? What sorts of things would you engrave with a bigger engraver? Please share your experiences and ideas in the comments!

How Cool is This?!

| Comments

For the longest time, I’ve been using a cropped souvenir photo as my website’s favorite icon and my blog’s various social media profile picture. The photo was taken at the Space Needle while on vacation to Seattle a few years ago and I told myself then (and on a regular basis since) that it’d be temporary until I could manage to find something better. But when you’ve got a face as goofy-looking as mine is, “finding something better” is easier said than done.

Ultimately, I decided that I needed the help of a professional. No, not that kind of professional! I contacted an artist, Gilly Hathaway, and asked her if she could apply her creative wizardy to my face and come up with a creative, yet simple, replacement for my old avatar. And this is what she came up with:

Gilly knocked it out of the park, I think she did a fantastic job. If you are in the market for something similar, I can’t recommend her enough. Check out Gilly’s Comissions Page for more details.

As far as my new image goes, I’ve got it updated across my blog’s social media profiles and I’ve changed the site’s favorite icon to use it. In the future, I’ll probably incorporate it into some of my various home automation blogs using something I just ordered from Amazon. I’m a bit excited to see how it turns out!

Sonoff TH and Sonoff Pow – Something Great Just Got a Bit Better

| Comments

I am a budding home-automation geek. The lamp that sits behind my desk is fully-automated; I use Tasker, IFTTT, and a Wemo Switch to turn the light on (or off) based on whether my phone is near my WiFi access point, at sunrise/sunset, and based on the time of the day. While I’m pleased with the functionality of the Wemo Switch, I’m not exactly thrilled with the price. Which is why I was pretty excited when the Sonoff (specs)came to my attention. To me, it met all the same requirements that I had but at a fraction of the price of the Wemo Switch.

I wound up reviewing the Sonoff RF Switch and the Slampher and had positive impressions of both products. After my review and using the Sonoff RF Switch for almost a year, my only concerns with the Sonoff-products were that they’d all require you cutting up the electrical cords of the products you wanted to automate and the fact that it wouldn’t work quite that well with any product that contained the third wire for the common ground.

Sonoff TH 10 and 16

In the latest version of the Sonoff product, the Sonoff TH 10/16 (specs) accounts for the third-wire common ground, which opens it up for use with a great number of other kinds of devices. However, the feature that I wound up being most excited about was the fact that the Sonoff TH 10/16 included support for a variety of different temperature sensors. Sensors like the AM2301, DS18B20, and DHT11 are all supported by the Sonoff TH products.

In addition to the third-wire ground, I was also excited to see that the Sonoff TH 10/16 and Sonoff Pow have both achieved the CE certification (source) as well as the RoHS certification (source).

If you’re a first-time reader of my blog, you won’t already know that I home brew my own beer and built a “keezer” (a beer-dispensing freezer) to serve the fruits of my labor. Once I saw that the Sonoff TH products supported the DS18B20, I knew exactly where I’d be using my first Sonoff TH. Up until now, I’d been using a project box that Pat designed and 3D-printed to house a Lerway 110V All-Purpose Temperature Controller and Sensor. Despite the fact it has worked out perfectly so far, I am simply unable to resist the temptation of adding my keezer to the Internet of Things—but not today, that’ll be a topic for the future!

Instead, I thought I’d set up a similar basic test of the Sonoff TH. I gathered up a few parts: my Bonavita Electric Kettle, a coffee mug, the Sonoff TH, the DS18B20 sensor, a 3-foot power extension cord, and my awesome novelty police light. I cut the 3-foot power extension in half and wired the severed ends into the Sonoff TH 16—I prefer this approach to what I did in my first Sonoff blog because it’s much more reusable and it doesn’t involve modifying any actual appliances. After that, I plugged in the DS18B20 temperature sensor from ITead, filled up one of my beer glasses with some room-temperature water and lowered the temperature probe in the beer glass. After some quick setting of temperature thresholds via the eWeLink app I used the hot water from my kettle and some ice water to alter the temperature in the beer glass enough to cause the Sonoff TH 16 to automatically turn the novelty light on and off.

The Sonoff TH will likely wind up being a superior solution for keeping my beers ice cold. It’s got a smaller footprint and it’s part of the Internet-of-Things which means I’ll be able to check the temperature from anywhere. Moreover, with some luck I can tinker with the Sonoff TH to the point where I could incorporate other automation like temperature-based alerts or the automation and scheduling of changing the temperatures during the fermentation stages of future beers.

Sonoff Pow

But wait, there’s more! This generation of Sonoff products also includes the Sonoff Pow (specs) which includes all the same WiFi remote control and home automation that the Sonoff TH features but also includes power-consumption features. If you’ve read some of my other blogs on computer builds, especially the DIY NAS builds, then you know one of the things I do with each new computer build is to hook it up to a Kill-a-Watt and see how much power it uses.

I like the Kill-a-Watt plenty, but it’s expensive enough that I wouldn’t buy multiples. It’s also inconvenient enough to use that I wouldn’t just permanently plug it in somewhere. ITEAD Studios is selling the Sonoff Pow (when they’re in stock) at just $10-11. That’s an incredibly reasonable price just for a WiFi switch. Being able to control an appliance remotely, plus also monitor and keep track of that appliance’s power consumption makes the Sonoff Pow a very compelling potential replacement for the Kill-a-Watt.

eWeLink: Devices Screen w/ Power Consumption eWeLink: Pow Device Screen w/ Current Power Consumption eWeLink: Tracking total Power Consumption since 11/30/16 eWeLink: Daily Power Consumption eWeLink: Time-based On and Off Rules

Hopefully there’s aftermarket firmware available for the Sonoff Pow which allow for incorporating power consumption into your home automation. Right off the top of my head, I think it’d be a neat option for allowances on electricity. On power-hungry appliances, you could define a daily budget and once that budget is used up, the power is cut to the appliance. In the same vein, some sort of “allowance” for children. You could award them with kilowatt-hours as they do chores, complete their homework, etc… That allowance could be used to power their gaming consoles and phone charges.


I was (and still am) pretty excited about the first generation of Sonoff devices. This new generation has simply furthered that excitement. I’m especially excited that the Sonoff TH can be applied so quickly to one of my other hobbies—beer brewing. I’m also pretty stoked that the Sonoff Pow is a potential Kill-a-Watt replacement that can help you remotely control an appliance and remotely monitor its power consumption.

I’m also excited that the Sonoff products are beginning to start being signed off on by different regulatory bodies like CE and RoHS. I continue to be excited that the Sonoff products are built around the ESP8266 solely because of clever people’s ability to build their own software to enhance the feature set of the Sonoff products.

About the only thing I found disappointing was that the physical footprint of the Sonoff TH/Pow has increased a little bit. But considering all the new features I found compelling, I think it’s beyond an acceptable trade-off. The third wire ground by itself justifies the bigger footprint. Especially when you consider that the Sonoff TH and Sonoff Pow are still smaller than things like the Wemo Wifi Switch.

The Sonoff TH 10 and TH 16 and the Sonoff Pow are both feature-laden and inexpensive WiFi switches. The Sonoff TH and Sonoff Pow are ideally suited to be in the hands of the burgeoning home-automation enthusiast. I’m really looking forward to replacing my temperature control on my keezer, plus I’m really interested in automating the temperatures of my fermentation station aka “The Brewterus”. What other sorts of home-automation tasks would you build around the Sonoff TH and Sonoff Pow? Share your ideas in the comments!

DIY NAS: EconoNAS 2016

| Comments

Giveaway Update (11/21/16): If you can forgive a Thanksgiving pun, it looks like @chrisgonyea has a little bit more to be thankful for in 2016—due to winning this edition of the #FreeNASGiveaway! Chris won in an unconventional fashion, the original winner failed to respond to my numerous attempts after the first drawing. Undaunted and determined to give this EconoNAS away to a reader, I picked another number from the hat out of the 450-something entrants into the #FreeNASGiveaway and pulled Chris’ number and thankfully I had no issues at all contacting him! I appreciate everyone’s interest and participation, while you may not have won this particular giveaway, your ensures there’ll be EconoNAS giveaway in 2017 too!

Have a happy Thanksgiving, everybody!

Quite a few years ago, I decided I wanted to build my own DIY NAS, primarily for the purpose of backing up my Windows PCs. But Google let me down—I wasn’t able to find a good build blog to get me started. So I decided to set out and build my own NAS and blog about it along the way. Much to my surprise, I quickly found there were a number of other people asking Google the same kinds of questions, and my DIY NAS category of blogs has seen the bulk of my traffic over the years.

In an attempt to defend my turf at (or near) the top of the Google search results related to building your DIY NAS, I’ve been publishing new NAS builds every year. As I’ve gotten more interested in one-upping myself, I quickly found that I was spending and suggesting parts that far exceeded the budget of what my original NAS wound up being. Consequently, I’ve been publishing two very different NAS builds every year: a large, powerful, and expensive DIY NAS and something more budget-friendly, which I coined “the EconoNAS.” Of the two, the EconoNAS is what most closely resembled my very first DIY NAS, a machine built from some inexpensive parts that I could find in an effort to add as much redundant storage that my limited budget could offer. Each year, I do my best to set a budget of around $500 and then ultimately go over it. The 2015 EconoNAS missed that mark quite badly, so this year I doubled down my efforts and tried really hard to both exceed the specifications of last year’s version but to also bring the price down considerably closer to my goal.

CPU & Motherboard

As you might expect, the component that I find to be the most important is the motherboard. Ideally, it’d be inexpensive (under $100), a small form factor, have 6 or more SATA ports on it, onboard Gigabit network controller, and have some sort of onboard video. Most years, I wind up having to compromise on some of the bits of criteria. Typically the compromise has always been made on the size of the motherboard. The smaller the motherboard is, the more expensive it tends to be, especially when it has a sufficient number of SATA ports to be used in a NAS.

You can imagine my delight when I found that the ASUS B150M-K D3 (specs) was in my price range. The smallish MicroATX motherboard supports CPUs from the Intel Skylake CPU family and features the Intel B150 chipset. The B150M-K D3 has six SATA III (6.0 Gbps) ports. If additional storage were needed, the board includes one PCIe (x16) expansion slot and a pair of PCIe (x1) expansion slots. To cap it off, the motherboard also features a built-in Realtek RTL8111H Gigabit LAN. Normally when shopping for DIY NAS components, I agonize over the motherboard and pour over options for what seems like an eternity, but when I saw the list of features and the price tag on this motherboard, I immediately purchased the motherboard.

My budget ultimately made my CPU choice for me. I picked the Intel Celeron G3920 CPU (specs) largely because it was the least expensive CPU that I could find that was supported by the ASUS B150M-K D3. However, while the G3920 might not have the performance and sex appeal of its bigger siblings, it is a very capable CPU. Last year’s EconoNAS featured the Intel Pentium G3220 and in comparison the G3920 scores quite a bit higher on the PassMark benchmarks. The icing on the cake of that comparison is that the G3920 also is more power efficient. More computing ability and a lower power consumption is a significant upgrade over the 2015 EconoNAS.


Because I intend to use FreeNAS, the most controversial part of this build will be the RAM. The controversy being that I’m an advocate of using Non-ECC RAM with FreeNAS/ZFS, especially on cost-conscious builds like this EconoNAS. Many, especially a vocal majority of the FreeNAS forum, don’t agree with this sentiment and think that ECC RAM is an absolute requirement for use with ZFS. Considering that cost is a driving factor in the EconoNAS, non-ECC RAM is an ideal option. Furthermore, my selection of the ASUS B150M-K D3 motherboard eliminated ECC RAM from contention. All that being said, RAM is important, especially with the ZFS file system. The 2015 EconoNAS featured 8GB of RAM, so for this year’s build I decided to up it to 16GB by purchasing the Crucial 16GB Kit (2 x 8GB) DDR3L-1600 (specs). The kit features two 8GB DDR3 DIMMs running at a 1600MHz clock speed. Doubling the amount of ram found on 2015’s EconoNAS is a very nice upgrade for the current build.


10/15/2016: If it sounds too good to be true, it usually is. The motherboard mentioned below does indeed support (I use this term very loosely) ECC RAM, but only if you’re willing to run it as non-ECC RAM. In other words, the RAM fits, the machine will run, but it’ll never do any kind of error checking and correction—you’ll never get the benefit of the ECC feature.

02/11/2017: A reader pointed out that 1.5v RAM is out-of-specification for the Intel Celeron G3920 CPU. Choosing to err on the side of caution, I updated the blog to point at memory that is within the Skylake specification; 1.35v DDR3L.

But What if You Want ECC RAM? It’s going to cost you!

Typically, buying ECC RAM meant buying a whole different grade of motherboard to support it—and economical was not a word you’d use to describe the prices of those motherboards. However, thanks to @comfreak from Twitter, I learned that’s not the case with the Skylake-generation of Intel CPUs. Buying a MSI B150M Pro-VDH (specs) motherboard and pair of Kingston Technology 8GB DDR4-2133MHz Unbuffered ECC DIMMs (KTH-PL421E/8G) would cost roughly an additional $25 (4-5%). The option of being able to add ECC RAM to this build for an additional $25 is a reasonable value, and I certainly wouldn’t fault anyone for choosing that route. Having learned this I’d be tempted to go the ECC route, but still think that I would end up choosing my non-ECC approach for this EconoNAS build and most likely others like it in the future.

Case, Power Supply, and Cables

For my regular DIY NAS builds, I spare no expense on the cases and typically purchase the best NAS case that I can find: something small, compact, loaded with easy-access drive bays (preferably hot-swappable), and ultimately rather expensive. The EconoNAS budget doesn’t allow for such an extravagance. Regardless, I’m pretty excited about the case I chose. The Cooler Master Elite 342 (specs) includes a 400watt power supply, mini tower MicroATX case. The included power supply made the case an absolute bargain at around $55. Out of the box, there are enough drive bays to fit six 3.5” drives (five internal and one external), and depending on what 5.25” to 3.5” adapter you buy, there’s room for 2-3 more drives in the two external 5.25” bays. In terms of drive capacity, the Cooler Master Elite 342 meets or exceeds my favorite DIY NAS case so far, the U-NAS NSC-800. My favorite unexpected feature of this case is the removable drive “cage” (more like a bracket) which contains four of the internal 3.5” drive bays.

The ASUS B150M-K D3 may have six SATA ports, but as is standard these days, only included 2 SATA cables with the motherboard. What’s even worse is that one of the cables has the aggravating 90-degree bend that I absolutely hate. I had to dig into my surplus SATA cables to hook up all the drives; if you don’t have any extras of your own, a pack of 5 Mudder 18” SATA III cables is probably a good idea. The included power supply has 4 SATA power cables necessitating an additional 1 or 2 cables to adapt a standard molex connector and split it into two SATA power connectors, which my supply of excess parts was also able to provide me with.


FreeNAS Flash Drive

Of all the parts and pieces in my DIY NAS builds, this is where there’s been the least amount of variation. I have been extremely loyal to the SanDisk Cruzer Fit, using the 8GB and 16GB versions in every single one of my DIY NAS builds except my very first one. If you’re doing your shopping on Amazon, the 16GB version is currently one of their “Add-On” items that you can get added to a qualified order for free. From a budget perspective, it’s still perfect. For this year’s EconoNAS, I ultimately went with the Cruzer Fit’s bigger brother, the SanDisk Ultra Fit 16GB.

Why the change? It’s priced competitively, at about $0.50 more than the Cruzer Fit, and it’s USB 3.0. For a long time FreeNAS had not yet adopted USB 3.0 support, and ever since they included USB 3.0 support I have pondered an upgrade to a USB 3.0 flash drive. That being said, I doubt that the improvement in USB 3.0’s faster throughput is going to have much (if any) impact on day-to-day operations of the NAS itself. Ultimately, the upgrade to the SanDisk Ultra Fit 16GB has to do with the eventuality that I just won’t be able to find the prior generation at competitive prices.

NAS Hard Disk Drives

Ahhh, the meat and potatoes of every single NAS build. When building a budget-based NAS, my recommendation is to buy as many small drives as your budget allows—that is assuming that their price per terabyte is at least in the same neighborhood as larger drives. Bigger drives almost always have a cheaper price per terabyte, but one detriment of bigger drives is the net storage lost due to your redundancy requirements. If you’re trying to build an economical NAS, instead of using the raw storage to calculate your price per terabyte, add everything up together, factor in storage used for redundancy, and figure out your price per terabyte on the overall net storage. Here’s an example, using some Western Digital Red Hard Drives of varying size to build a 12TB NAS with 2 drives worth of redundancy:

HDD HDDs Needed
for 12TB
Price Per
Price Per
Total Cost
for HDDs
Price per
Net TB
WD Red 1TB
$60.99 $60.99 $731.88
10 TB
WD Red 2TB
$89.99 $45.00 $539.54
8 TB
WD Red 3TB
$109.00 $36.33 $436.00
6 TB
WD Red 4TB
$147.83 $36.96 $443.49
4 TB

Across the Western Digital Red Hard Drives, when building a 12TB NAS, you’re going to get the most net storage using 1TB HDDs, but get the second-worst net price per terabyte due to the fact that 1TB drives have gotten so expensive. Old drives get expensive when they’re scarce because people still need them for their like-for-like replacements. Of all the drives, the 3TB drive has the best price per terabyte, but that doesn’t carry through to the best price per net terabyte across all the drives due to using 6TB for the redundancy. In the end, the 2TB drive winds up being the best deal despite having almost the worst price per terabyte for each drive. When building an economical NAS, use your budget, redundancy requirements, and capacity requirements to calculate out the net price per terabyte of all options. Then pick the configuration which meets your needs the best.

An added benefit of building the biggest array possible out of smaller drives is that it’s a simpler upgrade path when using FreeNAS—especially for small NAS builds like the ones I do. For the DIYer, adding a drive to an existing zpool is not impossible, but it’s very difficult and it takes planning in advance. For a NAS of this size, it is much easier to simply swap out each drive with bigger ones as they fail or go on really good sales; once all of the drives have been upgraded, ZFS will automatically use as much of the added space as is available on each of the drives.

I debated back and forth between 2TB and 3TB HDDs for quite some time and ultimately arrived at the decision to continue using 2TB hard drives for this year’s EconoNAS. And I found a good deal on the 2TB HGST Deskstar 2TB hard drive at $48.50—I generally budget around $60 per drive for the EconoNAS. Because the 2015 EconoNAS featured 5x2TB drives in total storage, I decided to surpass it by adding a sixth drive to this year’s EconoNAS. Had I found a motherboard with capacity for a 7th or 8th SATA drive, I would’ve been tempted to add an additional drive or two. Typically in my DIY NAS builds, I like to avoid buying all of the same drive, especially all from the same vendors. Typically I do that to avoid issues with a particular model of a hard drive, or even a bad batch of hard drives. However, Backblaze’s ongoing hard drive reliability reports indicate that this particular drive has a very low failure rate: 1.57% of the 4,264 drives have failed in over 3 years. That low failure rate emboldened me to capitalize on the inexpensive 2TB HGST Deskstar 2TB hard drives.

All of the Boxed Parts ASUS B150M-K D3 Motherboard Intel CPU BX80662G3920 Celeron G3920 2.90Ghz Crucial Ballistix Sport 16GB Kit 1600MHz DDR3 Cooler Master Elite 342 – Case and Accesories Cooler Master Elite 342 – Inside the Case 6 x HGST Deskstar 3.5-Inch 2TB 7200RPM SanDisk Ultra Fit 16GB Motherboard, CPU, CPU Heatsink & Fan and RAM All parts ready for assembly

Final Parts List

Component Part Name Count Cost
Motherboard ASUS B150M-K D3 specs 1 $85.94
CPU Intel Celeron G3920 specs 1 $51.90
Memory Crucial Ballistix Sport 16GB Kit DDR3 PC3-12800 specs 1 $108.60
Case and Power Supply Cooler Master Elite 342 specs 1 $63.65
SATA Cables Mudder 18 Inch SATA III Cable (Pkg of 5)” N/A 1 $7.99
Power Splitter LP4 to 2x SATA Power Y-Cable N/A 1 $3.59
OS Drive SanDisk Ultra Fit 16GB specs 1 $5.99
Storage HDD HGST Deskstar 2TB 7200RPM HDD (0F10311) specs 6 $59.95
TOTAL: $687.36

Hardware Assembly, Configuration, and Burn-In


If you’ve seen the time-lapse video of me putting together the DIY NAS: 2016 Edition then you know it was a challenge to assemble the DIY NAS: 2016 Edition. The U-NAS NSC-800 fits a ton of features into a very small case, which was a pain to work inside. Comparatively, assembling this year’s EconoNAS was a breeze. Even though MicroATX is considered a smaller form factor, working inside the Coolermaster Elite 342 was much roomier than the other two machines that I put together this year.

Even though I didn’t have to work too hard, I did run into a couple wrinkles. Firstly, half of the brass standoffs included with the case were for wider screws than are used for mounting motherboards. The screws included (and screws from my excess-parts stash) wouldn’t bite and would pull right back out of the standoffs. Thankfully, I have a number of extras that I was able to raid and replace the defective standoffs with. The second wrinkle was the thumbscrew provided to help mount the drive “cage” inside the case. At the bottom of the case, the drive cage had 4 standard case screws that fastened it to the bottom of the case, and at the top of the cage was a single thumbscrew that attached it to the part of the case the holds the sixth internal 3.5” drive bay and one external 3.5” drive bay. The thumbscrew provided was just a bit too tall, and I wound up having clearance issues trying to get a hard drive installed in there. It’s possible that I wouldn’t have had these clearance issues if I’d installed the drives before the motherboard, but I’m skeptical. Thankfully I was able to use one of the extra case screws and a small stubby screwdriver to replace the problematic thumbscrew.

Lastly, I discovered that the 18-inch SATA cables were probably longer than I necessarily needed. 12-inch cables would’ve probably been good enough. As a result, there was quite a bit of excess slack in the cables to try and manage. Back when I worked on or fixed friends’ computers more often, I hated finding lots of zip ties inside computers. Much to my chagrin, I used nearly all of the zip ties that came with the Coolermaster Elite 342 to bundle up the extra slack in the SATA cables.

All things considered, it was an incredibly simple assembly, especially when you compare it to with what I went through when I assembled both the DIY NAS: 2016 Edition and my own NAS this year. I was actually a bit disappointed that it worked out so well: I was hoping to have to design an object to print with my 3D printer to include as a component in this year’s EconoNAS.

Hardware Configuration

Back when I built my first NAS, there were all sorts of machinations that you had to do in the BIOS in order to get it working just right—or at least it felt that way. Now? It’s just a matter of making sure that the USB devices are the only devices the machine is allowed to boot from. While I was tinkering around the BIOS and looking at the motherboard’s support page, I learned I was on the original BIOS and that there’d been a few stability and performance updates in subsequent BIOS releases. So for no particular reason at all, I went ahead and updated the ASUS B150M-K D3 to the latest available BIOS.


I typically burn-in my NAS focusing primarily on the motherboard, CPU, and RAM. Of all the components that go into a NAS, these are the most difficult to get replaced, so they get the bulk of my attention. If I have a bad motherboard, CPU, or RAM, then I want to know about it right away, not down the road.

Quite a few people have asked in the past why I don’t do any kind of burn-in on the drives, but I’m not too concerned about the bad drives for a couple reasons. Firstly, the Backblaze drive quality reports typically have me pretty confident in whichever drives I’ve selected for the NAS. Secondly, the hard drives are the only components that have some redundancy. Thirdly, the hard drives are much, much easier to replace. For these reasons I typically choose not to do any kind of burn-in on the HDDs.

For burning in the memory, I run Memtest86+. If there are no errors found after three passes, then you’re typically in good shape. But usually in my tests, I’ve gone way, way past 3 passes. That’s usually because I get busy working on the blog while I do the various burn-in tests. Between blogging, my day job, and sleep, I’ve been known to let Memtest86+ run continuously for several days! But those first 3 passes are the only ones I ever care about.

I’ll also use some sort of load tests, like the ones found on the StressLinux, Ultimate Boot CD, and Hiren’s BootCD. Particularly, what I want to do is to put the system under heavy load for a few minutes and keep an eye on temperatures and such. If everything goes well, then I repeat the tests and leave it running for around an hour, and finally running a third test and leave it running for a duration of a few hours (3-4). Assuming there’s no random lockups or reboots during any of those tests, then I consider the hardware sufficiently burned in.

FreeNAS Configuration

In setting up FreeNAS for the purposes of these blogs, I usually take a pretty short path towards getting it functional. On your first login, you’re asked to set the root account’s password and then you’re put into the Initial Wizard, which is quite handy and will help you set things up from scratch, but I always exit out of it and manually set up everything I need.

When manually setting everything up, I first update the hostname (EconoNAS) and domain (lan) to match the rest of my computers. After doing this, I like to reboot and then log back in using the new hostname to make sure it worked. Then I enable the services I’m going to need: CIFS (for Windows file sharing), SSH (for remote access) and S.M.A.R.T. (for drive monitoring). Then I work through each service and configure them:

  • CIFS: I update the NetBIOS Name, Workgroup, and Description to match what I picked for the hostname and domain name.
  • SSH: I use the suggested default settings.
  • S.M.A.R.T.: I update the Email to report field and set it to my email address.

Using the Volume Manager, I then go create the volume (ZFS pool) named Storage. I added all 6 of the 2TB HGST Drives to the pool and pick RaidZ2 (the ZFS equivalent of RAID 6), which will result in my two drives’ worth of redundant data. Once I’ve created my volume, I add a dataset to that volume, I name that dataset share, and accept the remaining default values. Then I set permissions on the dataset, changing the owner to the user, nobody (more on this below), and making sure that the owner has Read/Write/Execute permissions to the dataset.

At that point, I drill into sharing and create a CIFS share pointed at the new dataset that I just created. For this year’s EconoNAS, I set up the permissions to be wide open by allowing guest access. No password is then required to access the share, and the privileges of the guest account (“nobody” from above) are used when accessing the share. At this point, I pull the share up from another machine and ensure I’m able to read, write, and delete files on the share.

Initial Login Exiting the Initial Wizard Update Hostname and Domain Enable Services Configure CIFS Service Configure SSH Service Configure S.M.A.R.T. Service Create FreeNAS Volume Create FreeNAS Dataset Set Dataset Permissions Create CIFS Share Testing newly created CIFS Share

Please keep in mind this is a very basic and very wide-open setup for the purposes of keeping things brief in this blog. I have a list of a few other tips that you might want to delve deeper into if you’re following along:

  1. Create users whose credentials match the credentials used on your network’s PCs. Tighten down the share(s) so that only those users have access.
  2. Set up a monthly scrub of the Volume (aka ZFS Pool)
  3. Set up some periodic S.M.A.R.T. tests of the hard drives (long and short tests)
  4. Others: Leave your tips in the comments below!


Power Consumption

One of the sneaky costs of a NAS is power consumption, so when building a NAS, I’ll typically have it plugged into a Kill-a-Watt to see how much power it is consuming at any given moment. Usually, I use the numbers to come up with a best-case and worst-case scenario for power consumption, then use my most recent power bill to try and figure out my monthly costs to keep it running. I tend to take a look at the power being consumed at first boot, when the machine is in an idle state, during my CPU burn-in tests, and lastly during a write speed throughput test.

Boot Idle CPU
175 watts
73.9 watts
96.6 watts
85.2 watts


For the DIY NAS builder, the most likely bottleneck for you to hit is the speed of your network. In building the EconoNAS, my goal is to hit that bottleneck. I won’t begin to predict what the most common network speed is for DIY NAS builders, but I’m going to guess it’s Gigabit. My preferred throughput-testing tool is IOMeter. I was able to saturate my desktop computer’s Gigabit interface easily with a sequential read test. And to my surprise, a sequential write test was in the same ballpark but a few MB/sec slower. I’m rather pleased that the EconoNAS can pretty much monopolize a Gigabit network connection in both read tests and write tests.

Sequential Write Throughput Sequential Write Results Sequential Read Throughput Sequential Read Results


When last year’s EconoNAS was first published the, price tag was roughly $675. My biggest regret in last year’s EconoNAS was missing my budget so badly—it was 35% over budget. I’m really excited to say this is a regret that I’ve rectified this year. At around $620, I’ve exceeded the budgetary goal by only 10%. This is way more worthy of the EconoNAS label than last year’s attempt. If you were to buy and build the 2015 EconoNAS right now using current prices, it’d still cost you in the neighborhood of $530. Building the 2016 EconoNAS costs an additional $90, but gets you the following upgrades:

  • A more powerful CPU
  • Twice the RAM
  • Improved power efficiency
  • An additional 2TB of storage.

All of that for an additional $90? I’m sold! The extra 2TB of HDD space is $50 by itself. It’s a bit unfair comparing last year’s NAS against this year’s NAS, but that’s not even the most outrageous comparison that I was able to come up with. I took the key attributes of a NAS machine (number of available drive bays, CPU, RAM, and network interface speed) and did some searching online to compare the 2016 EconoNAS with other popular NAS solutions and even compared it to the DIY NAS: 2016 Edition. Here’s what I found:

NAS Price # of Bays CPU Passmark
RAM Network
2016 EconoNAS $264.81
Intel Celeron G3920 3760 16 1xGigabit
Seagate WSS STEE100 $449.99
??? ??? ??? 1xGigabit
NETGEAR ReadyNAS 316 $599.00
Intel Atom D2700 844 2 1xGigabit
Synology DS1515+ $699.00
Intel Atom C2538 ~2329 2 4xGigabit
Brian’s 2016 DIY NAS $768.46
Intel Atom C2750 3831 16 2xGigabit
QNAP TS653A $939.00
Intel Celeron N3150 1706 8 4xGigabit

In comparing the most important features of each NAS, it’s my opinion that the 2016 EconoNAS is a tremendous value. It compares favorably to every single one of the off-the-shelf NAS systems, and I picked the ones that were the most price-competitive. In my opinion, the 2016 EconoNAS even compares favorably to the two other NAS machines that I built this year: DIY NAS 2016: Edition and my own NAS upgrade.

That being said, these other NAS systems do have their own unique advantages: they’re all smaller, they all have nice purpose-designed NAS cases with easy access to the hard drives, they almost all have CPUs which are more power-efficient, and for the most part they all have support teams standing behind them. These features carry a pretty hefty price tag, but I wouldn’t fault anyone for thinking that they were a better option. If you’re willing to put it together and support it yourself, there are considerable savings to be had in building your own DIY NAS. If you can live without the really nice NAS cases and easy drive access, you can build the EconoNAS and get even more considerable savings!


Like with the DIY NAS: 2014 Econonas, the DIY NAS: 2015 Edition, the DIY NAS: 2015 EconoNAS, and the DIY NAS: 2016 Edition, I will be giving the DIY NAS: 2016 EconoNAS away to a lucky reader. Here’s how this giveaway works:

  1. You follow my blog and myself on Twitter, the blog’s Facebook page, and the blog’s Google+ page.
  2. You retweet or share the promotional posts from these social networks (links below) with your own friends and followers. (Note: Make sure that your share is public, otherwise I won’t be able to see it and give you credit!)
  3. Your name gets entered up to three times (once per social network) in a drawing.
  4. After a month or so, I’ll pick a winner at random and announce it.

Here’s a link to the best posts to promote for each social network:

If there are any questions, please go read the #FreeNASGiveaway rules page, I explain it in additional detail there. Please keep in mind, it’s more about the “spirit” of these rules, rather than the letter of the law. If you go to the trouble of helping promote my blog, I’ll do whatever I can to make sure you get an entry into the giveaway. But the best way to make sure you get your entry is to follow the steps above.

I Bought a 3D Printer Too!

| Comments

For the past three to four years, Pat and I have been talking about 3D printers. For a long time, we mostly just discussed them and eventually arrived at reasons for why we weren’t buying the 3D printers… yet. Each time, the tone of the conversations was the same: 3D printers were incredibly neat and opened an entire new realm of possibilities, but we couldn’t quite come up with the justification to make the purchase. Over the years we’ve tossed out quite a few reasons for not being ready to buy a 3D printer, but they all essentially boiled down to these three reasons:

  1. 3D printers are expensive.
  2. We couldn’t think of problems that we could solve with 3D printers.
  3. The utter lack of the creative skill needed to work with 3D-modeling software

For the longest time, we used these three reasons as excuses to not buy a 3D printer. But then Pat abandoned our ideology and bought a 3D Printer, and not too long afterward he convinced our local makerspace,, into buying two of their own 3D printers. For a few months, I lived vicariously through Pat’s adventures at home and in watching as he helped members at our makerspace start designing and printing their own 3D models.

Every once in awhile, I would identify problems that I encountered and we’d come up with a solution for the problem that involved designing and printing something. Most famously, my last couple DIY NAS server builds featured a 3D-printed bracket to add support to the power supply. A variation of that object was designed for my own NAS to include a couple of brackets to hold a pair of SSDs that I couldn’t quite cram into a tight space. Pat wound up selling those brackets in his Tindie Store to other DIY NAS builders who used my build as their own DIY NAS blueprint.

Each time that I thought of a problem that could be solved with a self-designed and printed object, it became clearer and clearer that my prior reasoning was invalid. It was nice that Pat was willing and able to design objects and then print them to solve my problems, but in observing the process he was going through, I began to realize that I was missing out on some challenging fun that could provide hours of enjoyment.

About a month ago, Pat told me that he was shopping for a new 3D printer because he was considering upgrading his own 3D-printing capabilities. He eventually sent me a link to a printer that he’d seen on Craigslist that he thought was a good deal, but was a bit of a sideways upgrade for him. The price of that printer had eliminated my last remaining excuse—I was going to buy a 3D Printer.

New vs. Used

Any time I plan to buy something that I consider expensive, I almost always begin my search looking for a deal on a used one. Since I also had a little bit of insider knowledge and knew that 3D printing is a bit more difficult than most people assume it is, I felt that I could find a printer that someone perhaps got frustrated with and was willing to cut their losses and hopefully save me a few bucks in the long run.

The printers at our makerspace,, are both Flash Forge Creator Pros. They are dual-extruder MakerBot clones with a nice full metal enclosure. Pat has labored for the last year fine-tuning the printers and training the makerspace’s members interested in their use. Our familiarity with these printers lead me to search pretty exclusively for similar MakerBot clones.

Ultimately, I wound up buying the same used QIDI Tech printer that Pat had found on Craigslist. It’s also a MakerBot Replicator Dual Extruder clone, extremely similar to the Flash Forge Creator Pro printer. I wound up picking up the printer for about $450.

But What About New Printers?

The good news is that new printers are not expensive enough to change my opinion on getting into 3D printing. New versions of the same printer that I bought can be found starting around $650. The question I wound up asking myself was: “What does that extra $200 buy me?” The answer to that question was: all the bonuses that come from a new product, like support and warranties; newer firmware on the printer; and, in the case of my specific printer, a newer generation of hardware for the printer.

I had budgeted around $750 to buy a 3D printer, so the new versions were well within my budget. But I wound up deciding to go with the used printer, forgo the benefits of buying a brand-new product, and use the remaining budget ($300) in order to upgrade the printer hardware further. Specifically, I’m interested in upgrading the build surface to something larger and swapping in improved hot ends for the two extruders.

I think there’s value in spending that extra $200 to buy the brand-new printer; I just happen to value the upgrades a bit more. However, I certainly wouldn’t have any objections if someone had the opposite view—3D printing is complicated enough that there’s a lot of value in being able to get support from the manufacturer.

My First Few 3D Prints

A common suggestion for your first few prints is to print things to supplement the printer itself. Thingiverse is literally full of objects that people have designed, shared, and tweaked for their own printers. Many of these objects greatly improve the function and the usability of the 3D printers.

Magnetic Door Latch

The first difference that I noticed between my QIDI Technology Dual Extruder Desktop 3D Printer and the FlashForge Creator Pros that we use at is that the FlashForge printers’ doors have a magnetic latch to hold the door shut. On the QIDI Tech printer, the door hung loose without any kind of latch and oftentimes swung inside the printer, much to my chagrin. While surfing Thingiverse, I found an object, the QIDI Tech 1 – magnetic doorstop , which I modified to fit my own smaller magnets. My magnetic door latch does a fantastic job of preventing the door from swinging inside the printer, and the neodymium magnets that I used hold the door firmly shut.

Filament-Alignment Bracket

In addition, I decided to add an alignment bracket for the filament to the printer. The bracket restricts much of the travel of the two filaments and acts as a guide for the filament as it goes up through the tubing towards the extruders. The bracket ends up reducing the likelihood of tangled filaments during a print. At, we had a couple occasions where the filaments became entangled because of how far they traveled throughout the various print jobs. On at least one occasion the result was a failed print. We haven’t had any similar failures since using the alignment bracket.

Glass Build Surface Retention Clips and Knobs

The best upgrade that I decided to pursue required a pair of objects. Rather than printing to the build surface of the printer, I wanted to be able to print on inexpensive picture-frame glass that I picked up at Lowe’s. The advantage of printing to glass is better adhesion of the filament to the heated surface, especially once aided by some Garnier Fructis Style Full Control Non-Aerosol Hairspray. I printed Pat’s Knobs for M3 Brass Standoffs (for FlashForge Creator Glass Clips) and the FlashForge Creator Pro – Corner Glass Clips +3mm that he designed for use with’s two printers. The clips and knobs have done an excellent job at holding my glass in place atop of the heated build plate.

3D Design: Not Exactly my Strong Suit

My biggest concern in 3D Printing was my absolute lack of ability with anything creative. I don’t have an ounce of artistic or creative ability in my body. It’s just not something that I’m skilled at doing. Truly creative people are creating fantastically detailed, amazing 3D models and printing them on a daily basis. Before I decided to buy the 3D printer, I knew I’d never be able to do that.

Thanks to Thingiverse, that’s a bit of a moot point. For all the objects that I know I’d never be able to model on my own, somebody’s created and shared their 3D model of the same thing. Considering how many objects are available on Thingiverse, I think it’d be very likely that I would be able to find that someone else has already designed the object or figurine that I’m searching for to print.

Even better news—I learned that I could actually build 3D models of my own. OpenSCAD calls itself “The programmers’ 3D Modeler.” While I don’t really consider myself much of a computer programmer, OpenSCAD introduces elements of coding and uses that code to render your 3D models. I found that using logic, equations, variables, functions, etc. to build an object to be right up my alley.

Magnetic Webcam Mount

I designed a magnetic webcam mount so that I could attach a Logitech C270 near the print surface for the purpose of monitoring my prints and hopefully capturing some time-lapse video. Using the same neodymium magnets that I used in the printer’s door latch, I built a two-piece object whose base attached to the bottom of the frame that the heated build plate was mounted to. The second piece was an arm that fit into that base that the Logitech C270 mounted to just above the build surface. Ultimately, it didn’t work out because the webcam needed to be much further away from the print surface in order to get decent images of the entire build surface, but as far as being able to design an object with a specific purpose in mind, it was a rousing success for my first try.

Bottle-Drying Rack Shelf Support

My second attempt at designing a 3D part to solve a problem was both fruitful and successful. We have a pair of adjustable bottle drying racks that we use to dry out the numerous bottles we’ve been hand-washing daily for our five-month-old son. What we’ve found is that the upper shelf collapses down to the lower shelf under the weight of all the things that we were trying to load on top of it. Rather than load fewer things, I designed a Shelf Support for the Munchkin High-Capacity Drying Rack. The object slides down over the center spindle and holds up the top shelf at exactly the height we were wanting.

What’s Next?

I bought a printer and I’ve managed to even 3D model some of my own designs, so what’s next? LOTS of 3D printing, of course! But don’t let that rather obvious and simple answer distract you from the fact that I managed to save roughly $300 of my budgeted dollars on my printer. Do I apply that $300 to a different project, like the 2016 EconoNAS, or do I upgrade the 3D printer? Ultimately, I’ll wind up doing both, but I’ll spend that extra $300 working on upgrading the printer. Here are the upgrades I’m most likely to do:

  1. Upgrade to a current version of the Sailfish Firmware: The firmware that came with my 3D printer is one of the very early Makerbot Creator firmwares. There is a laundry list of new features available in the latest Sailfish firmware that should improve the function of the 3D printer.
  2. Micro Swiss MK10 All Metal-Hotend Kit with .4mm Nozzle: Upgrading the hot end of the printer should help out the consistency of the prints. The current extruders include some plastic tubing. The plastic tubing results in some variation in the temperature of the filament as it works through the extruder. Worst of all, this plastic tubing tends to get clogged up with filament. I’ve got one extruder which I think is partially clogged with this exact problem. Most importantly, the net effect of the all-metal hot ends are that print speed can be increased. At, we’ve been able to increase print speed by 50% via this same upgrade.
  3. Removable Heated Build Plate Upgrade: The upgrade that I want the most is to increase the amount of print surface inside my printer. The stock build plate on the printer is 9” x 6”. Equivalent printers with larger print surfaces are the ones that tend to become quite expensive. The build plate upgrade measures at 11” x 6”. Those added two inches increase the printable area from 324 cu/in to 396 cu/in, which is a gain of right around 22% .

Between now and when I upgrade, I’m quite content to continue both working on my own 3D Models and printing things that I like off Thingiverse. If you’re interested in what I’ve been up to, feel free to follow me over on Thingiverse. I imagine I’ll be pretty social with the things that I’m printing. For now, I’m going to start wrestling with putting together a few more copies of the Velociraptor Business Card which I printed over the course of last weekend. What about you guys? What kinds of projects would you use a 3D printer for?

Nextion Enhanced HMI Touch Display (NX4024K032) Review

| Comments

Earlier this year, I published a blog reviewing the Nextion HMI Display from ITEAD and I was really excited by the product. So naturally when ITEAD released the next iteration, the Nextion Enhanced HMI Display, I wanted to get my hands on one and think about building a project around it.

I wound up coming up with an idea for a project that would wind up tying a few blog topics together, including some yet-to-be written blogs about my “new” 3D Printer. A very early and rudimentary prototype of this project to help me review the capabilities of the 3.2” Nextion Enhanced HMI Display.

Nextion Enhanced HMI Display

I received the NX4024K032 from ITEAD. It’s key features are:

  • A 3.2” TFT display w/ a resolution of 400 x 240
  • Battery powered real time clock (RTC)
  • 16MB Flash Storage space
  • 1024 Byte EEPROM
  • 3584 byte RAM

The Nextion Enhanced HMI Displays appear to be similar enough to the earlier Nextion HMI Displays. The resolutions seem to be mostly the same. The most exciting feature that I found on the Nextion HMI Enhanced Display was the fact that it had 16 MB of flash storage for storing the interfaces that you built inside the Nextion Editor. This is a quadruple the amount of flash that was on the earlier model.


Also, there appears to be some sort of additional connector on the Nextion HMI Enhanced Display that wasn’t on the prior models at all. Its pins are labeled Ground, IO_0 through IO_7, and +5V. I’m assuming this is some sort of interface that could potentially be used with other hardware, like the expansion board for the Nextion Enhanced Display — I/O Extended

Nextion Editor

The Nextion Editor continues to be available as a free download for building the interfaces uploaded to the flash storage on the Nextion Enhanced HMI Display. It’s possible to transfer the interface via serial directly to the device, or via the on board MicroSD card reader. The Nextion Editor apparently has also experienced some progress and revisions since the end of last year. Please keep in mind that I haven’t been a prodigious user of the editor the past year, but the newer version is much easier to use than I remember the older version.

Brian’s Server Monitor Project Prototype

As you may know, I’ve blogged about building my own DIY NAS server as well as building my own homelab server. The idea I came up with for my Nextion Enhanced HMI Display project was a simple little server monitor. I decided I wanted to pull together a number of different blogs all into one project: my ESP8266, my DIY NAS, my homelab server, and my 3D Printer (blogs coming soon!). What I decided to do was build a little “server monitor” that sits here on my desktop by my computer whose purpose was to keep an eye on my NAS, my homelab machine, and my website.

For my prototype, I decided that I’d start off simple and develop some code for the ESP8266 that would ping the server. Based on the responses for each server, it’d display a page on the Nextion HMI Enhanced Display that indicates which servers are up and which servers are down. And to cap things off, I’d design and 3D print some sort of case to retain all the hardware and prop up the project.

At this point, the prototype is more of a proof of concept than anything else. It’s a long ways off from being a finished product, and there’s a laundry list of features that I’d like to incorporate into it. However, for the sake of demonstrating the 3.2” Nextion Enhanced HMI Display, I mocked up a few screens and loaded them up.

All told, it took me maybe a couple of hours to create the screens and get them loaded onto the Nextion Enhanced HMI Display. And to be honest, most of that time was spent staring at images and getting them resized to all fit the way that I wanted to on the display.


I was pretty excited about the Nextion HMI Displays at the beginning of this year. Nothing about the new Nextion Enhanced HMI Displays has tempered that excitement. The displays are both low-cost and easy to develop solutions on. They are capable enough to run standalone code displays that you create in the Nextion Editor. But what really has me excited is the ability to incorporate other SoC hardware like the Arduino and RaspberryPi in order to create more complicated devices.

Regardless of your expertise level and interest level, the Nextion Enhanced HMI Displays offers something for most tinkerers. You could build a little device like a smart picture frame or a touchscreen menu using only the display and the Nextion Editor. Or if you wanted to get more complicated, you could easily add an interface to your Arduino and RaspberryPi projects.

Working inside the Nextion Editor was pretty simple. It was quite easy to throw together a few screens full of images, buttons, text, gauges, etc. The Nextion Editor “compiled” the entire thing into a single file that I copied to a MicroSD card, then plunked it into the Nextion Enhanced NX4024K032 display, and powered the unit back up. Once it booted up, it copied down the new file. At that point, all that was left was to power off the display and remove the card. The next time it boots up, it was running the new interface!

I said nice things about the Nextion HMI Display at the beginning of the year and that is also the case for the newest Nextion Enhanced HMI Displays. I’m especially pleased with the progress that ITEAD Studio has made in developing the Nextion Editor, which I found much easier to use this time around. I’m also pretty excited that the new enhanced displays tout more flash storage. I’m pretty intrigued about this new possible input/output interface and hoping I can find some additional documentation or examples of how to put it to use. But above all else, I’m really jazzed at how affordable this product is. The exact unit that I’m reviewing is currently listed for $24.50 on the ITEAD Studio website. The other displays range from 2.4” all the way up to 7.0” and the price range on those products is about $18 to $82. For what you can do, they all seem to be priced very competitively.

I’m also pretty jazzed about my little “server monitor” project that’ll feature this Nextion Enhanced HMI Display — NX4024K032. It’s going to be a fun little project to touch on a few of my blog topics. I’ll be using my 3D printer to design a case to hold one of my ESP8266, perhaps a movement sensor, hopefully an LED, and also this Nextion Enhanced HMI Display. With some luck, I’ll write an Arduino application that can monitor both the web interfaces as well as the ping responses from my blog out on the Internet, my homelab server, and finally my DIY NAS system. I love when half a dozen or so blog topics all converge into another topic! What kinds of things would you use the Nextion HMI Enhanced Display for?

Building a Homelab Server

| Comments

A few years back, I built my first NAS, and just this past spring, I upgraded my NAS to bring it up-to-date. In between building those two machines, I started a habit of building a new NAS every 6 months (or so) because I continue to find it to be an interesting project to keep repeating and is also rewarding to write about.

One of the things I always lamented about my NAS machines is that I wasn’t really thoroughly utilizing them. There’s plenty of free storage space that’s slowly being nibbled away by my backups of my Windows machines, but I don’t really have any dramatic need for storage beyond backups of a few PCs. No staggeringly large collections of media, or games, or of anything else that I imagine starts to take up quite a bit of space. In discussing this unused storage space, Pat convinced me that I should get off my butt and build a homelab server like he did ages ago, but in my case leverage my FreeNAS box for storage.

What’s a Homelab Server for, Anyways?

I’m probably not the best guy to ask to define what a homelab server is, but I’ll still take a stab at it. Nearly twenty years ago, I remember being envious of a friend’s home office. He had quite the collection of second hand computers from his office fulfilling a variety of purposes. He even had all of his networking equipment set up in something very similar to a Lack Rack. What’d he do with these computers? God only knows! If I recall correctly, he was working on numerous different certifications, and he used all of that hardware to practice and prepare for his tests.

Fast-forward to today, and we have the computing power to do all that on a single machine thanks to virtualization, and this purpose is at the core of what a homelab server is. Effectively, what people are doing is using a single machine to emulate all those secondhand servers that my friend had in his spare bedroom.

Technically my DIY NAS machine could be used as a homelab server; the latest version of FreeNAS is running atop FreeBSD 10, which features the bhyve hypervisor for hosting virtual machines. Right up until I upgraded my NAS this year, I was quite interested in the possibility of running my various virtual machines along-side FreeNAS. Ultimately, Pat wound up convincing me that separate hardware was the better direction for me to go in.

Important Features and Functionality

So, what exactly did I need a homelab server for in the first place? My initial reason is pretty silly—I wanted to show off by using my NAS as the primary storage of other machines! I built a series of three two-node 10Gbe networks here at the house which interconnect my primary desktop PC, my NAS, and now my homelab server. Just for the sake of doing it, I’ve wanted to host a machine’s (virtual or otherwise) primary storage on my NAS and then get faster performance than your typical platter hard-disk drive. The fact that I can do that affordably at my house is a bit mind blowing, and I really wanted to see it in action.

On top of that, I had some practical uses that I want want to dedicate virtual machines to:

  • Dedicated OctoPrint machine for my “new” 3D printer (a future blog topic)
  • A better test web server for working on my blog
  • A multimedia server that pushes content to my different FireTV and Chromecast
  • Home Automation using openHAB

I’m not unfamiliar with virtual machines. I’ve personally tinkered with a number of different virtualization packages over the years: VMWare, VirtualBox, Kernel Virtual Machine, etc. And professionally, it’s been over a decade since I worked directly with machines that weren’t being virtualized.

I cobbled together a few key requirements that I wanted my homelab server to have.

  • Free or Open Source: Seems pretty straightforward. Who doesn’t like free things?
  • Manageable via some Web Front-end: FreeNAS spoiled me by mostly making it unnecessary to spend effort at the command-line. I’d really like to be able to manage my Virtual Machines much like my NAS, via some sort of web front end.
  • Enterprise-quality Hardware: I mostly wanted this for bragging rights, but I’d also like the platform to be rock-solid stable.
  • Intelligent Platform Management Interface (IPMI): This goes hand-in-hand with the above requirement but it’s way more practical. I’ve enjoyed being able to manage my NAS via the IPMI interface on the ASRock C2550d4i motherboard and I think an IPMI interface is also a must-have for my homelab machine.



For the CPU, I picked out a pair of Intel® Xeon® Processor E5-2670 CPUs (specs). The inspiration for this selection came from an article I’d read recently: Building a 32-Thread Xeon Monster PC for Less Than the Price of a Haswell-E Core i7. In this article, I learned that the market is flooded with inexpensive used Intel® Xeon® Processor E5-2670 CPUs. The premise of the article is that you could build a very robust primary workstation of the Xeon E5-2670, but after researching the CPU prices on eBay, I knew I’d found the right CPU for my homelab machine—it made “two” (Haha! Dual-CPU pun!) much sense to build a dual-Xeon machine. Having 16 cores, capable of running up to 32 threads up at 3.3GHz for around $100, it was an incredible value and perfectly suited for my homelab server. To cool each of the Xeon E5-2670 CPUs, I picked out a Cooler Master Hyper 212 EVO (specs). It’s a CPU cooling solution that I’ve been happily using now for quite some time which also had my utmost confidence for this build.


The CPU might have been extremely affordable, but dual-CPU motherboards that accepted it are still quite expensive. I tinkered around eBay, hoping that I could find a good source for inexpensive motherboards that’d run the CPUs I picked, but I didn’t have much luck. Instead, I opted for a new motherboard. Using the criteria above, I eventually decided on the Supermicro X9DRL-IF (specs). Aside from the dual LGA-2011 sockets and support for my inexpensive Xeon CPUs, I was also pretty excited about the fact that there were 8 total DIMM slots supporting up to 512GB of memory, numerous PCI-e slots, 10 total SATA ports, and dual Intel Gigabit network onboard.


Memory wound up being my second largest expense, coming in just over $200. I wound up picking 4 Crucial 8GB DDR3-1600 ECC RDIMMs. I’m guessing that 32GB is a pretty good starting-off point for my adventures with different virtual machines. There are an additional 4 slots empty on the Supermicro X9DRL-IF motherboard, so adding additional RAM in the future would be quite easy. Hopefully some day the market will be flooded with inexpensive DDR3-1600 ECC DIMMs like it was with Xeon E5-2670s. If that happens, I’ll look to push my total amount of RAM towards the maximum supported by the Supermicro X9DRL-IF motherboard and CPU.


I planned my homelab server, my NAS upgrade, and my inexpensive 10Gb Ethernet network all simultaneously. In addition to the two onboard Intel Gigabit connections on the Supermicro X9DRL-IF, I also wound up buying a dual-port Chelsio S320e (specs) network card. I talk about it in quite a bit more detail in my cost-conscious faster than Gigabit network blog, but each of the ports on the card are plugged into my NAS or my primary desktop computer.


The bulk of my storage is ultimately going to come from my FreeNAS machine, but for the sake of simplicity and a bit of a performance boost, I decided to put a pair of Samsung SSD 850 EVO 120GB SSDs (specs) into the machine and placed them in a RAID-1 mirror.

Case, Power Supply, and Adapters

As I have many times when being frugal in the past, I decided to use the NZXT Source 210 (specs) for my case. The Source 210 is getting harder and harder to find at the great prices I’ve grown accustomed to finding it at, but I was able to find it at a reasonable price for this build. It’s inexpensive, well made, fits all of the components, and has lots of empty room for future expansion.

Of all the praises that I heap on the NZXT Source 210, I discovered it had one shortcoming that I didn’t account for—it lacked 2.5” drive mounting solutions. I was briefly tempted to break out my black duct tape and tape my two Samsung SSD 850 EVO 120GB SSDs inside the case, but I eventually decided to just pick up a 2.5” to 3.5” adapter tray that could hold both SSDs instead. Perhaps if I’d been willing to spend a few more dollars on a case, I would have found something that had some built-in 2.5” drive mounts for my SSDs, but I’m still quite happy with the Source 210.

Choosing a power supply was an interesting decision. My gut said I’d need a humongous power supply to power the two Intel® Xeon® Processor E5-2670 CPUs. But at 115W TDP for each CPU and hardly any other components inside the homelab server, I began to reconsider. Based on some guesswork and a little bit of elementary-school-level arithmetic, I was expecting to be using no more than 250-275 watts of power. Ultimately, I wound up deciding that the Antec EarthWatts EA-380D Green (specs) would be able to provide more than enough power for my homelab server.

The one flaw in my selection of the Antec EarthWatts EA-380D Green is that it lacked the dual 8-Pin 12-volt power connectors required by the Supermicro X9DRL-IF motherboard. When shopping for power supplies, I couldn’t find a reasonably priced or reasonably sized power supply which came with two of the 8-pin 12-volt connectors. Instead of paying too much money for a grossly over-sized power supply, I wound up buying a power cable that adapted the 6-pin PCI Express connector to the additional 8-pin connector that I needed. The existence of this cable is ultimately what allowed me to save quite a few dollars on my power supply by going with the Antec EarthWatts EA-380D Green.

Final Parts List

Component Part Name         Count Price
CPUs Intel® Xeon® Processor E5-2670 specs 2 $99.98
Motherboard Supermicro X9DRL-IF specs 1 $341.55
Memory Crucial 8GB DDR3 ECC specs 4 $211.96
Network Card Chelsio S320E specs 1 $29.99
Case NZXT Source 210 specs 1 $41.46
OS Drives Samsung 850 EVO 120GB SSD specs 2 $135.98
Power Supply Antec EarthWatts EA-380D Green specs 1 $43.85
CPU Cooling Cooler Master Hyper 212 EVO specs 2 $58.98
GPU to Motherboard Power Adapter Cable PCI Express 6-pin (male) to EPS ATX 12V 8-pin (4+4-pin) female N/A 1 $7.49
SSD Mounting Adapter 2.5” to 3.5” Drive Adapter N/A 1 $3.98
Total: $975.22


Operating System

For my homelab machine’s operating system, I wound up choosing the server distribution of Ubuntu 16.04 (aka Xenial Xerus). I chose this version largely because it includes the ZFS file-system among its many features. The inclusion of ZFS interests me because I’d like to start using ZFS snapshots and ZFS Send in order to act as a backup for my NAS. I’m always keeping an eye on hard drive prices, so the next time I see a good deal on some large drives, I may add three or four of them to my homelab server for this purpose.

Virtual Machine Management


My experience managing virtual machines is pretty limited. In the past, I’ve used Virtual Box and VMWare on Windows machines to host virtual machines mostly out of curiosity. In my various professional positions, I’ve used plenty of virtual machines, but I’ve never been on the teams that have to support and maintain them.

When it came time to pick what I’d be running on my homelab server, I deferred to Pat’s endless wisdom from his own homelab experience and I wound up electing to use KVM (Kernel Virtual Machine). I thoroughly appreciate that it is open source, that it has the ability to make use of either the Intel VT or AMD-V CPU instruction sets, and that’s it capable of running both Linux and Windows virtual machines. But ultimately, I wound up picking KVM because I have easy access to plenty of subject-matter expertise—as long as I can bribe him with coffee and/or pizza.

Virtual Machine Manager

Because I’m enamored with the ability to do almost all of my management of my NAS via the FreeNAS web-interface, I was really hoping that I could find something similar to act as a front-end to KVM. My expectation is that I’d be able to complete a significant percentage of the tasks required for managing the virtual machines through a browser from any of my computers. And for anything else, I intend to have a Linux virtual machine running that I can remote into and use Virtual Machine Manager to do anything that I can’t do easily through the web interface.

Ultimately, I wound up deciding to give Kimchi a try. Initially, I was pretty excited, since Kimchi was available within Ubuntu’s Advanced Package Tool. However, what I found for the first time ever was that it didn’t “just work” like every other apt package I’d installed before. In fact, it took Pat and I quite some time to get Kimchi up and running using the apt package. And once it was actually running, we found it to be quite slow. Finally, I was a bit bummed that the version in the apt package was decidedly older (version 1.5) than what was out on the Kimchi page (2.10) for download. Instead, I wound up following the directions on the Kimchi download page to install it manually, and to my surprise I was able to pull up the Kimchi interface in a browser and do some management of the virtual machines.

I found the Kimchi web interface to be handy for some basic virtual-machine configuration and remote-access to the virtual machines. However, tricky configuration, like passing a USB device—my 3D printer—through to a virtual-machine just couldn’t be done via the Kimchi interface. For that kind of virtual machine management, I am planning to use something like MobaXterm on my Windows desktop to access an Ubuntu Desktop virtual machine that has virt-manager on it. It’s a tiny bit more complicated than I would’ve liked, but I’m still pretty happy with the amount of functionality that Kimchi provides via the web-interface.


I’m a big fan of DHCP servers, primarily because I’m lazy and dislike manually configuring static IP addresses. I already had to manually configure six different network interfaces in building out my inexpensive 10Gb ethernet network, and I wasn’t really looking forward to having to continue doing that for each and every new virtual machine. Setting up a DHCP server to listen on my 10Gbe links between my homelab server would make it a bit easier on me when spinning up new virtual machines.


At the beginning of the year, I really wanted to have a single server at my house to take care of both my NAS and homelab needs. But as I thought about it more, I found that concept to have some constraints I found less than ideal. I’m still very pleased with FreeNAS, but ultimately, I thought there were more options available so that I wasn’t constrained to using a hypervisor that ran on FreeBSD. Furthermore, I’m a big fan of having the ability to do maintenance on one set of hardware without simultaneously impacting both my NAS and my hosted virtual machines.

For just under $1,000, I wound up building a homelab server featuring dual-Xeon E5-2670 CPUs (2.6GHz, octo-core), 32GB of RAM, two dedicated 10Gb links (to my NAS and desktop PC), and a mirrored SSD for the host’s operating system. As it stands right now, this machine is probably overkill for what I need. Pat’s inexpensive and low-power homelab machine is probably more in tune with my actual needs, but I relished the chance to build a cost-effective dual-Xeon machine.

What’s Next?

I need to finish putting together my OctoPrint virtual machine and get working on designing and printing things in the third dimension, which is surely to be a source for many upcoming blogs. After the OctoPrint virtual machine is sorted out, I am going to tackle some sort of media-streaming virtual machine. In the future, I’d like to leverage the fact that Ubuntu 16.04 is now shipping with the ZFS file system. I wouldn’t mind buying a few large HDDs and begin using my homelab hardware as a destination for snapshots from my NAS. If you had 16 cores at your disposal in a homelab server, what other purposes would you have for it? What great idea am I currently overlooking?

Building a Cost-Conscious, Faster-Than-Gigabit Network

| Comments

When we first moved into my house, my first project was to enlist Pat’s help and wire up nearly every room with CAT5e cable so that I had Gigabit throughout my house. At the time we were both quite confident that Gigabit exceeded my needs. Then I built my first do-it-yourself NAS and I remember being a tiny bit disappointed when my new NAS couldn’t fully saturate my Gigabit link on my desktop without opening many, many file copies. At the time, I hadn’t yet learned that I was bottlenecked by the NAS’s CPU, the AMD E-350 APU. But I began thinking about bottlenecks and quickly came to the conclusion that the network is the most probable first bottleneck. After building my first NAS, I began regularly building other DIY NAS machines and thanks to Moore’s Law I was building NAS machines capable of saturating the gigabit link before it even dawned on me that my first NAS’s biggest deficiency was its CPU. Earlier this year, I upgraded my NAS and expectedly arrived at the point where my Gigabit network was my actual bottleneck.

Is a faster-than-Gigabit network really necessary?

Calling my Gigabit network a “bottleneck” is accurate but also a bit disingenuous. The term bottleneck has a negative connotation that implies some sort of deficiency. The Bugatti Veyron is the world’s fastest production car but it has some sort of bottleneck that limits its top speed at 268 miles per hour, but nobody in their right mind would describe 268 mph as slow. I was perfectly happy with file copies across my network that were measuring 105+ MB/sec. In the time that I’ve been using my NAS, I’ve moved all of my pictures and video to the NAS and I’ve never felt that it has lacked the speed to do what I’m wanting.

This begs the question: Why am I even interested in a faster-than-Gigabit network? For a long time, I’ve wanted some hardware here at the house that can house some virtual machines. I’d like to build out a few little virtual servers for interests that have come up in the past, like media streaming, home automation, and a test server for working on my blog. My original plan was to run those VMs on the same hardware that my NAS is running on, but I ultimately wound up deciding that I didn’t want tinkering with my virtual machines to impact the availability of my NAS, especially since I’d started using my NAS for the primary storage of important stuff.

I was lamenting to Pat one day that I had tons of space available on my NAS, but I felt that the 105 MB/sec throughput was not fast enough for being the primary storage of my virtual machines. Furthermore, I didn’t want a bunch of disk activity from my virtual machines to possibly monopolize my network and impact my other uses of the NAS. Pat pointed out that the theoretical limits of a 10Gb network (1250 MB/sec) were well beyond the local max throughput of the ZFS array in my NAS (~580 MB/sec on a sequential read). With a 10Gbe (or faster) network, I’d have enough bandwidth available to use my NAS as the storage for my virtual machines.

Consequently, a seed had been sown; a faster-than-Gigabit network at home would enable me to build my homelab server and use my NAS as the primary storage for my virtual machines. I arbitrarily decided that if my NAS could exceed the read and write speeds of an enterprise hard-disk drive, that it’d be more than adequate for my purposes.


I immediately set out and started researching different faster-than-Gigabit networking hardware and reached a conclusion quickly; The majority of this stuff is prohibitively expensive, which makes sense. None of it is really intended for the home office or consumers. It’s intended for connecting much larger networks consisting of far more traffic than takes place on my little network at home. All things considered, I think we’re still a long ways away from seeing people using anything faster-than-Gigabit in their everyday computing. The end result of that is that the price of the equipment is likely to be out of the range of your average consumer’s budget.

What I wound up considering and choosing

Right out of the gates, I was thinking about re-cabling my entire house using CAT6 or running a few extra drops of CAT6 to the computers that needed it. But then I researched the price of both network cards and switches that would do 10Gb over twisted pair copper and quickly concluded that I wasn’t ready to spend hundreds, if not thousands, of dollars to supplement or upgrade my existing Gigabit network.

In talking to Pat, I immediately set off on the path of InfiniBand network hardware. In fact, our ruminating on this topic inspired Pat to build his own faster-than-Gigabit network using InfiniBand. When digging around eBay, there’s no shortage of inexpensive InfiniBand gear. Most shocking to me was routinely finding dual-port 40Gb InfiniBand cards under $20! I was very interested in InfiniBand until I did some research on the FreeNAS forums. Apparently, not many people have had luck getting InfiniBand to work with FreeNAS and my understanding of InfiniBand’s performance in FreeBSD is that it was also a bit disappointing. Without rebuilding my NAS to run on another OS (something I strongly considered) InfiniBand was not going to be the best choice for me.

What ultimately proved to be the best value was 10Gb Ethernet over SFP+ Direct Attach Copper (10GBSFP+Cu). SFP+ Direct Attach Copper works for distances up to 10 meters, and my network cupboard is conveniently located on the other side of the wall that my desk currently sits next to. 10-meter cables would easily reach from my desk to the network cupboard. However, running cables up into my network cupboard wound up being unnecessary due to the expense of switches and my desire to be frugal. There just wasn’t going to be room in my budget for a switch that had enough SFP+ ports to build my 10Gbe network.

Because I decided to forgo a switch, that meant that each computer I wanted a 10Gb link between would need to have a dedicated connection to each and every one of the other computers in my 10Gb network. Thankfully, my 10Gb network is small and only contains 3 computers: my primary desktop PC, my NAS, and my homelab server. Each computer would be connecting to two other computers, so I’d need a total of six 10Gbe network interfaces and 3 SFP+ Direct Attach Copper cables.

What I Bought

For my desktop PC, I wound up buying a pair of Mellanox MNPA19-XTR ConnectX-2 NICs for just under $30 on eBay. I chose the Mellanox MNPA19-XTR on the recommendation from a friend who had used them in building his own 10Gbe network and said that they worked well under Windows 10. Throughout the writing of this blog, I routinely found dozens of these cards listed on eBay with many of those listings being under twenty dollars, and I was also able to find the MNPA19-XTR on Amazon at roughly the same price.

I wound up choosing a different network card for my NAS for a couple of different reasons. For starters, room is an issue inside the NAS; there’s a bunch of hardware crammed into a little tiny space, and because of that, there’s only room in the case for one PCI-e card. I couldn’t go with the inexpensive single-port Mellanox MNPA19-XTR ConnectX-2 cards which seem to be abundant on eBay. Additionally, my research (Google-fu) on popular 10Gb SFP+ cards for use in FreeNAS wound up pointing me to a particular family of cards: the Chelsio T3. Other intrepid FreeNAS fans have had good experiences with cards from that family, so I decided to start looking for affordable network cards in that family. In particular, I wound up buying a lot of 3 dual-port Chelsio S320E cards for around $90. At the time I bought mine, I could get the lot of three for roughly the same price as buying two individually. Having a spare here at the house without spending any additional money seemed to make sense.

Finally, I sought out the SFP+ cables that I needed to interconnect the three different computers. Both my FreeNAS box and my homelab server are sitting in the same place, so I was able to use a short 1-meter SFP+ cable to connect between them. My desktop computer isn’t that far away but my cable management adds a bit of extra distance, so I picked up a pair of 3-meter SFP+ cables to connect my desktop to the FreeNAS machine and to the homelab server. Both lengths of cable, one and three meters, seem to be priced regularly at around $10 on eBay.

In total, I spent about $120 to connect my three computers: $90 on network cards ($15 each for two Mellanox MNPA19-XTR ConnectX-2 and $30 each for the two Chelsio S320Es) and $30 on the SFP+ cables needed to connect the computers together. This is hundreds of dollars cheaper than if I had gone with CAT6 unshielded twisted pair. By my calculations, I would’ve spent anywhere around $750 to $1300 more trying to build out a comparable CAT6 10Gbe network.

Assembly and Configuration

Because I’d decided to go without buying a switch and interconnecting each of the three machines with 10Gb SFP+ cables, I needed to be what I consider a bit crafty. Saving hundreds to thousands of dollars still did have an opportunity cost associated to it. I’m a network neophyte and what I had to do completely blew my simple little mind even though it wound up being a relatively simple task.

My first challenge wound up being that each cable had to plug into the appropriate 10Gbe network interface on each machine. For each end of every cable, there was only one correct network interface (out of 5 others) to plug the cable into. I solved this problem with my label machine. I labeled each network interface on each of the computers and then labeled each cable on each end, identifying the machine name and the interface it needed to be plugged in to.

In configuring the 10Gb links, it was only important to me that each machine could talk to the other two machines over a dedicated 10Gb link. Each of those machines already had existing connectivity to my Gigabit network that went out to the Internet via our FiOS service. Each time Pat made suggestions on how this would work, I scratched my head and stared at him in a quizzical fashion. I am not ashamed to admit that I didn’t have enough of a background in networking to comprehend what Pat was describing. He patiently described the same thing over and over while I continued to stare at him blankly and ask ridiculously stupid questions. As he usually does when I’m not following along, Pat drew a picture on his huge DIY whiteboards, snapped a photo of it, and sent it to me. As the light-bulb above my head began to brighten from “off” to “dim”, I crudely edited that photo to come up with this:

Essentially, each of the 3 different 10Gb links would be its own separate network. There’d be no connectivity back to the DHCP server on my FiOS router, so I’d have to manually assign each of the network cards IP addresses manually. I opted to be lazy and used the entire private network for my all of my home networking. I assigned a Class C subnet for use on my gigabit and WiFi network, and I assigned additional unique Class C subnets to each of my three 10Gbe connections. Because I’m lazy and I hate memorizing IP addresses and I didn’t want to come up with unique names for each of the three machines’ numerous different network interfaces, I edited the hosts file on each machine so that the server name resolved back to the appropriate IP address of the 10Gb interface.

At the end of my efforts, I put together this basic diagram outlining my entire network here at home:


The entire impetus for this project was in order to see my NAS out-perform a server grade (15,000 rpm) hard-disk drive over the network while using Samba. In a recent article on Tom’s Hardware benchmarking various Enterprise Hard-Disk Drives, the highest average sequential read speed for any of the HDDs was 223.4 MB/sec. That number was attained by a relatively small hard drive, only 600GB. This isn’t surprising, since hard-drive speeds are impacted by the size of the platter and smaller drives tend to have smaller platters. Nonetheless, I set 223.4 MB/sec as my goal.

First off, I wanted to see some raw throughput numbers for the network itself. Because FreeNAS includes iperf, I decided to go ahead and grab the Windows binaries for the matching iperf version (2.08b) and fired up the iperf server on my NAS and tinkered with the client from my desktop. In a 2-minute span, iperf was able to push 74.5 Gigabytes across my network, which measured in at 5.34 Gb/sec or roughly 53% of my total throughput.

Having a crude understanding of how iperf worked, I wanted to see the 10Gbe link saturated. I wound up launching numerous command windows and running iperf concurrently in each, something I learned I could’ve easily done from a single command-line had I bothered to do a little more reading. I lost count of the exact number of iperf sessions I had running at once, but in somewhere around 8 to 10 simultaneous iperf tests I was seeing 95-98% utilization on the appropriate Mellanox MNPA19-XTR ConnectX-2 network interface on my desktop computer. I must admit that, seeing that hit 9.6Gbps was pretty exciting, and I started to look forward to my next steps.

Nearly full utilization via iperf was great, but it’s nowhere near a real-world test. The hardware in my NAS is very similar to the FreeNAS Mini. Out of curiosity, I dug into quite a few reviews of the FreeNAS Mini to compare the Mini’s Samba performance to my own. Surprisingly, I’d found that their results were quite faster than my own (250MB/sec to 70MB/sec), which led me to discover that there are some issues with how I’ve been benchmarking my NAS performance to date, a topic I’m sure to tackle in a future blog so that I can remember how to test it better.

First off, I went ahead and used IOMeter to try and capture the fastest possible throughput. This is the equivalent of running downhill with a brisk wind behind you. I performed a sequential read test using a block-size of 512KB. In that dream scenario, I was able to sustain 300MB/sec for the entire duration of the IOMeter test. I was really excited about this result, as it had surpassed my original goal by 34%.

Sequential reads are a great way to find out maximum throughput of a drive, but like most benchmarks, it’s not much of an actual real-world test. Due to the fact that my NAS was able to surpass my original goal by such a large margin, I began to get hopeful that I would beat that throughput in both directions: reading a file from my NAS and then writing a file to the NAS. For my test, I decided to use an Ubuntu ISO as my test file and started off by moving it from my ISOs folder (on my NAS) to a temporary folder on my desktop. According to the Windows file copy dialog, the speed it measured on the file copy ranged between 260MB/sec and 294MB/sec. Afterwards, I moved that file back from my desktop’s temporary folder and into the ISOs folder on my NAS. In these file copies, I saw speeds between 220MB/sec and 260MB/sec.

In an actual real-world scenario, the NAS outperformed the enterprise HDD in both read operations as well as write operations, which was a pleasant surprise. Before the test, I would’ve guessed that the write speed would’ve been a bit slower, since there’s more work for the NAS to do on a write.


I’m having a hard time deciding what I’m more excited about, the fact that I was able to build this 10Gb Ethernet network between 3 computers for roughly $120, or the fact that my NAS now outperforms a 15,000 rpm drive over a Samba file share. Now that it’s all said and done, I think it’s the fact that the throughput to my NAS across my network is fast enough to beat an enterprise hard-disk drive. In the near term, this means that I can confidently use my NAS as the primary storage for the virtual machines that I’ll be hosting on my homelab machine. Furthermore, it also means that I could mount an iSCI drive on one of my desktop computers and it’d work as a more-than-adequate replacement for local storage—this is an interesting alternative in the event of a catastrophic failure on one of our computers if we can’t wait for replacement hardware to show up.

But don’t let my preference diminish the other startling discovery from this little project. I think what might be even more exciting to the general public is that a 10Gb Ethernet network can be built for under $40 and connect two computers together. In my case, it cost an additional $80 to add a third computer. A fourth computer would be even more expensive (8 total network interfaces, 6 total cables), so at this point it probably starts to make more sense to consider getting a switch.

When it was all said and done, I was pretty pleased with myself. I was able to easily exceed my performance goals, and the icing on the cake is that it only cost me about $120 in order to build 10Gb Ethernet links between each of the most important machines in my household.

Nitrogenated Cold-Brew Coffee

| Comments

The first time I attended’s monthly home brewing group, I just observed and sampled the prior month’s creations— from that point on, I was hooked. Based on the group’s suggestions, I decided to build a keezer for serving my beer from and a fermentation refrigerator, aka “The Brewterus”. Among my criteria for the keezer was my ability to use both carbon dioxide and nitrogen in order to serve beers. Most beers are carbonated, but a few beers (particularly Guinness) are nitrogenated. Nitrogenated beers tend to have what is described as a creamier and smoother feeling in your mouth as well as a less bitter taste, since carbon dioxide is acidic.

Because I planned to serve nitrogenated brews from time to time, Pat suggested that when I don’t have a home-brewed nitrogen beer around, I should consider nitrogenating a cold-brew coffee and serve it on tap. As an experiment, we brewed a small one-gallon batch of cold-brew coffee and tried it out of the keezer and it was delicious! In fact, it was so delicious that I further modified the keezer so that I could add a dedicated cold-brew coffee tap.

What is Cold-Brew Coffee?

Essentially, a cold brew coffee is coffee brewed using water that’s at room temperature or cooler over a longer period of time, usually at least 12 hours. What’s the big deal in that? To me, the biggest difference is the fact that the cold-brew coffee is less acidic than traditional coffee. I personally find cold brew-coffee quite a bit easier and more enjoyable to drink. Without pretending to have a doctorate in food chemistry, it appears that coffee’s fatty acids are much more water-soluble at higher temperatures.

Cold-brew coffee should not be confused with iced coffee. Iced coffee is brewed hot and then poured over ice to crash-cool it. Depending on the amount of coffee brewed and the amount of ice in the cup, this could also result in a drink that’s a bit watered down. But the same acidic taste that hot coffee has would also be present in iced coffee.

Beans from Craft Coffee

Pat is my local coffee expert, and a few years ago for Christmas, we bought him a subscription to Craft Coffee. Not really knowing anything about coffee, we were a bit concerned that the gift would miss its mark, but we’ve been pleasantly surprised to find that Pat’s continued his coffee subscription all this time. The beauty of Craft Coffee is that you answer a questionnaire about what kinds of coffee you like to drink and their properties, and then have a variety of options which include shipping you small bags of different coffees that align to your preferences monthly (or on some other duration of your choosing). In Pat’s various blogs about coffee he’s always spoken highly of the coffees, he has received as a result of his Craft Coffee subscription.

Based on their options, I wound up going with the Single Origin – Roaster’s Choice coffee. The advantage of a single-origin coffee is that all of the beans come from the same source instead of a blend of different beans as selected by the roaster. It’s my understanding that the geographic subtleties of a particular coffee bean are more pronounced with single-origin coffees. Single-origin beans tend to be roasted lightly, which also suit a personal preference of mine.

Our first shipment arrived on a Friday; in the box we found 72 ounces of coffee divvied up in six different twelve-ounce bags. Opening the box set free quite a bit of coffee-laced aroma, filling our kitchen with its pleasant smell. The Craft Coffee bags have a small hole that allow you to smell the coffee after a gentle squeeze on the bag. I smelled the bag first and tried to pick out the different subtle scents I could identify. I’ve always been a sucker for the way coffee smells, but this was quite a bit better. Firstly, it smelled quite fresh, which shouldn’t be surprising to me as I’ve probably almost always had stale coffee. The coffee also smelled a bit sweet with an undertone of something tangy. I couldn’t quite put my finger on what the scents reminded me of, but it definitely smelled fruity and quite citrus-like.

Craft Coffee, Brooklyn, NY
ProducerBebes washing station
OriginObura Wanonara, Papua New Guinea
VarietyTypica, Bourbon Caturra
Elevation1,500-1,700 meters above sealevel
Sweet, fruited and floral with notes of apricot, allspice, green tea, mild currant and lemon curd with grapefruit-like acidity.

Want to give Craft Coffee a try? I certainly recommend it! Using the code of ‘brian1544’ will get you 15% off of your order! Even better? It might even help supplement my own cold-brew coffee addiction!

Materials Used

  1. 52 ounces of Craft Coffee
  2. 6 gallons of Crystal Geyser spring water
  3. 6-gallon Glass Carboy
  4. Cornelius Keg
  5. Auto-Siphon
  6. Cheesecloth
  7. 3-piece airlock


Ultimately, what we decided to do was to use 52 ounces of the coffee to go with 5 gallons of water. Because I’m impatient and didn’t want to spend the afternoon dispensing water from our refrigerator, I went ahead and bought 6 gallons of Crystal Geyser Spring water which was on sale at our local grocery store for $0.89 a gallon. Spring water was the choice because it seems that it’s the superior choice for coffee brewing due to its mineral content.

First we dumped all of the coffee grounds into the glass carboy and filled it up with 4 gallons of the spring water and capped the carboy off with a threepiece airlock, although I think the use of the airlock was probably overkill on our part. Most cold-brew coffee recipes simply refer to covering the concoction while it rests. I hoisted the carboy into the Brewterus, which I had set at 52 degrees Fahrenheit. The Brewterus was set at that temperature for the final stages of fermentation of Das DoppelGanger, my most recent home-brewed beer. My understanding of cold-brewing coffee is that the brewing happens at any temperature which isn’t as hot as the ideal temperature of 205 degrees Fahrenheit. Most cold-brew recipes indicate that room temperature is a satisfactory temperature, which is what led me to believe that the 52 degrees in the Brewterus would be quite fine.

Roughly a day and a half later, I used my siphon to begin transferring the cold-brew syrup into the Cornelius Keg. I used the cheesecloth to strain out any of the coffee grounds that got sucked up by the siphon. I was a bit surprised when I was only able to siphon 3 gallons’ worth of cold-brew coffee syrup out of the carboy. I was prepared for the fact that a large amount of water would be retained forever by the coffee grounds, but I was a bit startled when those 52 ounces of coffee grounds wound up retaining a quarter of the water we added to the carboy.

This is where I’d worried that I made a pretty sizable mistake. Rather than taste the syrup and then dilute it down to my preference, I simply emptied my two remaining gallons of spring water into the keg. It wasn’t until just after the water drained from the last bottle that I thought to myself; I wonder if that’s too much water to add? My concern at this point was that I’d overly diluted my cold-brew syrup with the spring water. In the future, I plan to taste test more frequently as I add water to the syrup.

During the cold-brew process, Pat had used his French press and brewed us a couple cups of the month’s Craft Coffee. Prior to nitrogenating the cold-brew coffee syrup, I used a ladle to scoop up a glass of the cold-brew coffee. In my clear glass, my cold brew coffee appeared to be a bit more opaque than what had been in the French press but in drinking the two, I found that they tasted quite different but that difference in taste could be expected due to the difference in the brewing method. I decided that I’d go ahead and hook it up to the nitrogen gas and do a taste test again in a few days.

After giving Pat a sneak preview a day or two later, most of my fears were assuaged when Pat said that he found the cold-brew coffee itself to be every bit as drinkable as the cups of French press coffee we’d drank while preparing the cold-brew concoction. This is especially exciting because Pat had not been very keen on neither of our earlier cold brew experiments.

All the cold brew ingredients and supplies Coffee grounds poured into the carboy #1 Coffee grounds poured into the carboy #2 Coffee grounds poured into the carboy #3 Coffee grounds poured into the carboy #4 Coffee and water added to Carboy #1 Coffee and water added to Carboy #2 Coffee and water added to Carboy #3

First Impression

Why wait for that final taste test until later on? It takes a while for the pressure of the Nitrogen gas to be absorbed into the contents of the keg. Normally for my beers, I crank up the pressure and wait a couple days, and that has typically involved using carbon dioxide, which is much more soluble in liquids than nitrogen is. I keep my nitrogen at a much higher pressure (~50psi) in part to try and account for that solubility and to increase the amount of gas in the coffee when dispensing. At any rate, it takes a few days under pressure for the nitrogen to infiltrate the coffee and create that awesome cascading effect and wonderful mouthfeel.

My first conclusion? This coffee from Craft Coffee is every bit as delicious as Pat told me it’d be and that he’s been writing about in his blogs. The entire time I’ve been considering cold-brewing coffee and serving it out of my keezer, Pat’s been encouraging me to get my own subscription from Craft Coffee, and boy am I glad for that recommendation! I’ve tried this month’s coffee through a plain old drip coffee pot, brewed via a French press, and in cold-brew form. In every single form, no matter how badly I might’ve accidentally made it, I’ve enjoyed the coffee. I’m not sure how quickly I can drink five gallons of cold-brew coffee, but once it’s gone I’ll certainly be excited for whatever Craft Coffee sends my way next. My favorite feature of the Craft Coffee subscription is the variety of beans they’re capable of sending out and that every month will be different. I’m excited to see what comes next month. Want to give Craft Coffee a shot? Use my code brian1544 and get 15% off!

My most import conclusion from my first impression? Cold brew coffee is tasty and different! Because of the colder brew temperature, the final product is very much different than either hot coffee or iced coffee. It’s quite a bit smoother and tastes less bitter or acidic. Brewing a gallon of your own cold-brew coffee would be pretty easy. Buy a gallon of spring water and pour off some room for the grounds (save the poured-off water). Then put 10.4 ounces of coarsely ground coffee beans into your gallon of water and fill it back up to the top. Let the grounds and water set between 24 and 36 hours in the fridge. Finally, use some cheesecloth and another pitcher and carefully pour your cold-brew syrup out of the container through the cheesecloth to filter out the grounds. Get as much syrup out of the gallon of water as possible and then taste your brew—add additional water to taste in case it is too strong. Voila! Your own concoction of cold-brew coffee! It should keep in your fridge for roughly two weeks without problems.

Final Thoughts

In addition to everything I said above, nitrogenating the cold-brew coffee puts the whole thing over the top; it was enjoyable by itself, but once it was finished being nitrogenated, it became delicious! Watching the nitrogen cascade up the glass to build the frothy head is mesmerizing. Secondly, the crema from that head and the nitrogen that’s infiltrated the cold brew creates a very cream-like texture and mouthfeel that is quite similar to the crema formed by milk in an espresso. It’s pretty awesome that it takes me about 20 seconds in the morning to pour myself a cold-brew coffee before I begin my adventures.

Depending on how quickly we can drink the cold-brew coffee, I expect to turn this into a running series of blogs. For each new coffee that Craft Coffee sends me, I intend to whip up a keg of cold brew coffee out of what they provide. Considering that the warmest months are sneaking up on us, it’ll be a nice treat to have on hand!