I hope you enjoy this repository of my various projects and ideas. Thanks for looking, Joe.





Core i7 Skylake PC Build

It's been 4 and a half years since I built my Sandybridge based workstation and it while it isn't a terrible performer, I do more video and photo editing than I did in the past and wanted a machine with more power. Since Intel finally came out with the Skylake line of processors and the next upgrade won't come out for a while I decided to do a new build now. In order to keep costs down I reused the case, power supply, storage devices and video card from my previous workstation. This limited my costs to $520 for a new motherboard, processor, and RAM.

Parts List

This build is essentially a motherboard, CPU, and RAM swap from the previous system.  Since this case is old enough to not support USB 3.0 I decided to add a USB 3.0 expansion panel to one of the front drive bays for convenient access. I also stuck with the stock CPU cooler for this build since they are actually pretty quiet and this CPU generates considerably less heat then the Sandybridge it replaces.


Windows 10 installed perfectly and runs great on this machine, as expected.

Power Usage

  • Idle - 42W
  • 1080i MPEG2 to 720p MP4 H.264 Compression (Freemake Video Converter) - 85W
  • Bluray Ripping (MakeMKV) - 54W
  • MKV Bluray Rip to MKV 1080p Compression (Freemake Video Converter) - 95W
  • Adobe Lightroom RAW to JPG Conversion - 94W

Gaming PC Build

After playing around with streaming PC games to my TV from my main workstation to my HTPC with limited success, I decided to make use of some of the spare components I had lying around and make a dedicated gaming PC connected directly to my home theater setup. After reusing the case and power supply from a previous HTPC build along with RAM and storage from other PC builds the only parts I had to buy were the motherboard, CPU, and video card. Reusing this many components limited my costs to $470.

Parts List
  • Case - Antec Mini P180 (reused)
  • Power Supply - Corsair 430W Modular (reused)
  • Motherboard - Gigabyte GA-H81M-HD3
  • Processor - Intel Core i5-4590 (3.3 GHz, Quad-Core, 84W)
  • RAM - 8GB GSkill DDR3 1600 (reused)
  • SSD - 120GB Intel 520 (reused)
  • Hard Drive - 1TB Western Digital Black (reused)
  • Video Card - EVGA GeForce GTX 960 2GB

This was a pretty standard PC build. The only modification I made was to add a coaxial SPDIF connector. Due to the way I have my entertainment system setup, I wanted to run the PC video straight to my TV, but I still wanted to get digital audio into my AV receiver for surround sound. The motherboard has an optical SPDIF out, however, the only free SPDIF connector on my receiver is coaxial, so I made my own SPDIF header. I am also really glad I was able to find a good use for this PC case. I used it for years as my HTPC until about 2 years ago. It is a very well made, great looking case with excellent ventillation and a lot of internal space for large video cards despite not being a full tower.

Overall I have been very pleased with the performance of this PC. I wanted to hit the sweet spot between cost and performance and this combination of CPU and GPU really hit that mark. I haven't run any new games on this rig, but I can run the Batman Arkham games, Bioshock Infinite, and Formula 1 2015 at max quality at good frame rates. We'll see how well this system holds up to some of the new games coming up that I am looking forward to, primarily Just Cause 3, Rise of the Tomb Raider, and maybe Fallout 4. 


  • Windows 8.1
  • Steam (configured to launch on startup in Big Picture Mode)

Power Usage

  • Idle - 50W
  • Idle (with Steam Big Picture Mode running) - 59W
  • Gaming (Batman Arkham Asylum) - 135W
  • Gaming (Formula 1 2015) - 185W
  • Gaming (Bioshock Infinite) - 140W

Mini Home Theater PC

In order to fill my need to endlessly tinker and upgrade my HTPC, I decided to build a new system using one of Intel's Haswell CPUs. These are not only faster and more power efficient than past models, they also feature much improved graphics capability. I also decided to switch to external hard drive storage since USB 3.0 is not only well supported in Linux, it also performs nearly as well as internal hard drives. This allows me to more easily swap or add drives while keeping the size and noise of the HTPC to a minimum.

Parts List

The key to this build is the effectiveness of the USB 3.0 external hard drives. By moving to external storage I can use a much smaller case with an external power supply, all of which reduces the cooling requirements and consequently the noise of the PC. The only internal drive is the SSD which generates no noise and little heat. The only sound from this configuration comes from the CPU cooler which is somewhat oversized for the 35W CPU and therefore never runs at a high speed. The result is a versatile, snappy, power efficient, and very quiet HTPC.


For this build I decided to go with Linux Mint as I have grown progressively tired with Ubuntu's UI tinkering. Otherwise my software choices are similar to past builds.

Network Sharing

For network sharing I use the Samba utility (repository package:  system-config-samba) which makes it easy to setup and manage shares with other computers on my network. 


For backups I use the Scheduled Tasks utility (repository package:  gnome-schedule). With this I run various RSYNC scripts every night which synchronize my local hard drives with my FreeNAS server.

Media Playback

  • VLC - media player
  • XBMC - media player and streamer (using plug-ins)
  • PLEX - media transcoder (works great through its Roku channel)


  • Deluge - my favorite torrent client


Here's an informal comparison between this build (bold) and my old HTPC (in parenthesis):

  • Time to import 227MB, 128kbps MP3 into Audacity - 0:53 (2:16)
  • Time to re-compress 227MB, 128kbps MP3 at 64kbps with Audacity - 6:40 (10:08)

While this is a sizable improvement these numbers don't show how much snappier the system is in general, especially when multitasking.

Power Usage

While I anticipated a significant power consumption drop due to the lack of a video card, I was pleasantly surprised at how much of a drop I actually measured. 

  • Old HTPC - 43W
  • Current Configuration (including external hard drives) - 30W

That's quite a significant drop. From past experience I believe the video card used about 10W of power, therefore the Haswell CPU uses 3W less power on average than the Sandybridge model I was using previously.


This was another area of significant improvement. The combination of reducing the number of fans from 4 to 1 and swapping the stock cooler for a more efficient one results in this build being nearly silent.


FreeNAS Server

After two hard drives in my Home Theater PC failed this summer, almost resulting in some significant data loss, I decided to move toward a better local backup solution. My previous backup strategy involved syncing hard drives on my HTPC. Although this was a simple and effective solution, it wasn't the most efficient use of my hard drive space and it doesn't provide much redundancy. After looking at my options I decided that a FreeNAS Server was the way to go.

Parts List


For my server build I not only wanted to keep the cost down, I also wanted it to be as quiet and power efficient as possible. I chose the case because of its noise reduction features in addition to its build quality and 6 hard drive bays. The motherboard offers 8 SATA ports and 4 RAM slots for future expansion. I was planning on using an Intel Celeron processor, but the Pentium G630T is more efficient, generates less heat, and doesn't cost much more. I considered reusing some of my 2TB Western Digital Green drives from my HTPC, but in the end I decided to get 3TB Red Drives instead. Besides their larger capacity, they are specifically designed for this application as well as offering a better warranty and support from the manufacturer.


FreeNAS has a lot of useful documentation, but I found Engadget's tutorial to be a better starting point for basic setup. This got me started with basic CIFS sharing that I can access with both my Windows & Linux PCs. I set up my 4 hard drives as a RAID Z2 array which should be able to survive one hard drive failure without affecting performance and two hard drive failures without data loss. After creating the array, I ended up with about 5.5TB of space available for storage. This should be more than enough for the forseeable future, but I can aways get two more hard drives and recreate the array to increase my storage capacity. Another key part of this setup is the recognition that my server will be used for backups only, never as the sole repository of data. 

I ran into some issues, however, when I tried to RSYNC from my HTPC to the FreeNAS box. Using a scheduled RSYNC every night is how I plan to backup my media files and is critical to my local backup strategy. After a lot of Googling and experimenting I discovered how to properly setup the permissions on both the FreeNAS server and my HTPC in order to be able to RSYNC properly. 

For my purposes I only have a Guest account on the FreeNAS server. This account does not require a password and has full access to all of the files in the share. On the HTPC side I setup Ubuntu to mount the remote share every time it boots by modifying the "/etc/fstab" file with the following line:

//     /mnt/Server cifs guest,uid=joe,gid=joe 0 0

In this application is the IP Address of the server as perminently assigned by my router. "Archive" is the name of the CIFS share I created on the FreeNAS server. The directory "/mnt/Server" is the local directory on my HTPC that I created to mount the server's share to. CIFS (Common Internet File System) is the file sharing standard. The next three additions are key to getting the permissions correct:  "guest" is the user ID on the FreeNAS server, "uid=joe" designates my user ID on my HTPC, and "gid=joe" designates my group ID on my HTPC. When the server's share is properly mounted I then had to make sure that the files I planned to share gave full read/write access to both my user and group. 

With these set properly I can now RSYNC my media files from my HTPC to the server with the following command:

rsync -avru --delete --progress /local_directory/ /mnt/Server/remote_directory


Now that I have my permissions and RSYNC issues resolved, I am very pleased with my FreeNAS server. With the fan speeds set low it is very quiet and over a week of use it had an average power usage of 48 Watts. File transfer speeds are also pretty good over my newly installed Gigabit network. FreeNAS is a versatile platform and I look forward to learning more about it in the future. 


Solar Chargeable Portable Battery Pack

There are a lot of rechargeable lithium battery packs available. Some have a lot of capacity and others can be used with solar panels, however, I could never find one that fits my requirements. The solar models that I've seen generally don't have much capacity and use such small solar panels that they don't charge very fast. Then I came across Adafruit's USB/Solar Lithium Ion Charger board and it solves all of my problems. This board has a lot of cool features: it can charge a battery via a solar panel or any other 5V input and it can deliver power to the MintyBoost from both the input and the battery simultaneously. In this way you could charge a device on a not so sunny day by drawing some power from the solar panel and the rest from the battery.

My main goal for this project is to have a versatile power pack for use when I go camping/backpacking. I have a fair amount of devices that I typically bring with me that can be charged via USB: camera, headlamp, UV water purifier, cell phone, mp3 player, etc. The 6600mAh battery can charge any of these devices multiple times, providing many days of capacity before needing to be recharged. On sunny days the 3.4W solar panel can recharge the battery if I am away from power for a long period of time. At full power the solar panel will take about 12 hours to fully charge the battery. While this is a long time, for my use case this should be fine as I will most likely be topping off the battery with the solar panel not charging it from zero. I like this solar panel for its combination of size and capacity. A larger panel could charge the battery faster, but would be a lot less portable.

Parts List

Adafruit has a detailed tutorial that explains how the charger board works and shows how to wire it to the other components. Basically the charger board is connected to both the battery and the MintyBoost and uses either a USB or solar panel input to provide input power when you want to charge the battery. The charger also has the option to output the charging status (charging, charging complete) to external LEDs.

For this project I used a red LED to indicate that the unit was charging and a green LED to indicate that the battery was fully charged. I also isolated the battery from the remainder of the system using a power switch. This prevents the small self drain inherent to the MintyBoost from discharging the battery when I am not using the unit. You just have to remember to turn it on when you want to charge the battery. In addition I used a coaxial power jack for the power input and modified both the solar panel and a USB cable with matching coaxial power plugs of the same size. The final piece was using a scavenged panel mount usb port for the MintyBoost's output. 

I have to say that I really like this setup. I can charge all of my devices and when placed in the sun, the solar panel started charging the battery with no problem.