Figuring out the ESP8266

| Comments

For those of you following me on Twitter, you know that I’ve been on an Internet of Things binge lately. It started off when I finally did something with my Arduino Leonardo after having it for almost a year. My original plan was to find a decent WiFi shield for the Arduino Leonardo but there’s been a recent development of a very interesting, inexpensive products that both has WiFi capabilities and Arduino Sketches can be loaded on it, the ESP8266. And by inexpensive, I mean only $2-3 on eBay. If you’re impatient and want faster shipping they can be found on Amazon for a few dollars more!

Unfortunately for me, I’m a novice. The biggest problem with being inexperienced is that your problem-solving toolbox starts off pretty empty. Thankfully solving those problems begins to fill up that toolbox, but those first few problems wind up being really difficult to move past. I’m writing this mostly to help move people past the problems that I encountered.

Obstacles

I wound up running into a few different obstacles:

  1. My own cheeky and fun shenanigans.
  2. I couldn’t get my ESP8266 ESP-01 to talk to my Arduino Leonardo.
  3. My DROK LM2596 Adjustable Power Supply cooked a couple ESP8266 ESP-01s.
  4. Nothing but garbage back via my USB-to-Serial adapter.

Shenanigans

My own shenanigans are a minor, yet ever-present challenge whenever I am learning something new. None of my self-inflicted problems are ever incredibly serious, but when you inject one of those into a sequence where you’re unfamiliar it can have very maddening results. Here are a few of those self-inflicted problems that I ran into:

  • Forgetting to swap the transmit (TX) and receive (RX) pins between devices: Your ESP8266 can’t talk directly to your computer, so you need to use something like the Arduino or some sort of USB-to-Serial device in order to be able to talk to the ESP8266. Each device has its own transmit and receive pins, which means the ESP8266’s transmit pin needs to be hooked to the other device’s receive pin and the other device’s transmit pin needs to be hooked to the ESP8266’s receive pin. It sounds simple, but when you’re frequently changing things around, it’s easy to get this backwards.
  • Neglecting to run power to the CH_PID pin on the ESP8266 ESP-01: Because I bought several ESP8266s ESP-01s, I wound up swapping them in/out frequently, wondering if one device was bad or not. I’d unhook everything and then hook it back up, but I’d very frequently forget to run power to the CH_PID pin and then be dumbfounded as to why it wasn’t powering up.
  • A common ground for all devices: At one point, I was using my KEDSUM CP2102 USB-to-Serial adapter and for some reason, I grounded it out on the opposite side of the breadboard as where the ESP8266 and power supply were grounded and the devices just wouldn’t cooperate.

Ultimately, I wound up solving most of these shenanigans by using a breadboard and a breadboard adapter for the ESP-01 along with my ESP8266 ESP-01. Once I had that, I didn’t have any more self-inflicted problems of not hooking the appropriate cables up.


Failure to Communicate

My initial ESP8266 plan was to use the ESP8266 ESP-01, my Arduino Leonardo, and a PIR Sensor to make a little device that I could put by the back door to detect when one of our dogs is by the door wanting to be let out. My first step of that was to get the Arduino Leonardo and ESP8266 ESP-01 conversing with each other. I wrote crude Arduino sketch to run some AT commands and write the response so the Arduino IDE’s serial monitor would display their result. But for some reason, nothing I tried seem to work. The closest I ever got was an “ERROR” response to the basic command “AT”. None of the other ESP8266 AT Commands seemed to be working at all.

I wound up having to decide if it was my Arduino Sketch, the Leonoardo, or the ESP8266 which was defective. My typical approach is to assume that I’m the most likely source of problems, so I assumed it was the sketch that wasn’t working. I decided to instead of use the Leonardo, I’d just use the KEDSUM CP2102 USB-to-Serial and send AT commands at the ESP8266 manually to see if I got a different result.

ESP8266 Barbecue

Previously, I’d been using the Arduino Leonardo to power the ESP8266 ESP-01, but since I was bypassing that, I’d need to find another power source. I couldn’t use the power available on the KEDSUM CP2102 USB-to-Serial because its default is 5V which, is too much for the ESP8266 ESP-01 which only needs 3.3v of power. Changing the CP2012’s output power was possible, but it was going to require soldering some pins and I didn’t want to do that yet unless I really had to.

Thankfully, I had purchased a DROK LM2596 Adjustable power supply which could be easily adjusted down to 3.3v. I immediately hooked it up to power the ESP8266 ESP-01 and used the CP2012 adapter to transmit data between my computer and the ESP-01, but for some reason I wasn’t getting any response. The activity LED on ESP-01 never made any indication that data was being transmitted, despite a plethora of AT commands being sent.

At one point, I touched the ESP-01 and found it to be really hot. I asked my friend Pat if that was unusual and his response was “Yeah, they get pretty warm. Even at 3.3 volts!” The next day we planned to nerd out in my kitchen and solve all my ESP8266 problems once and for all. After Pat also failed, to get any kind of response to AT commands he reached down to pick up the ESP-01 and immediately yanked his hand back like he’d been bit. Apparently, my ESP-01 was running a bit warmer than normal!

We used a cheap multimeter to check the output voltage from the DROK LM2596 Adjustable power supply to make sure it was operating at the expected voltage and it was. Assuming the ESP-01 was just defective, we swapped it out for another one. When we powered everything back on, I noticed something peculiar on the DROK LM2596’s display and captured a video of it. The display on the LM2596 is a little hard to read, so I left the multimeter hooked up too:

After powering on the DROK LM2596 Adjustable power supply, the output display fell from the voltage of the adapter (12v) down to the voltage the DROK LM2596 was set at (3.3v). Initially, we hoped that this was just a display error, but the multimeter confirmed what we suspected. We found that the initial output voltage was as high as 12v in those first few moments and likely frying the ESP8266 ESP-01! I’m glad we caught that after two ESP-01s!

Garbledy-gook

After solving the combustible ESP8266 ESP-01 problem, we still couldn’t get the ESP-01 to respond to the AT commands. Pat’s experience with the ESP-01 was that they communicated either at two different baud rates: 115200 or 57600. Some Googling confirmed Pat’s experience and assumption, but for some reason we’d get garbled output back from the KEDSUM CP2102 USB-to-Serial when we used it to send AT commands. That’s when we decided to try every supported baud rate in the Arduino IDE’s serial monitor. We started at 115200 and worked our way down, eventually landing at 9600 when we got the expected “OK” back from the plain old AT command.

Even then, we weren’t in the clear. We kept trying to run the the AT+CWLAP command, which should list the WiFi access points that the ESP8266 ESP-01 can see, but we kept getting the ERROR response to that command. Ultimately, what we found is that my ESP-01s were all in the Access Point mode and apparently the AT+CWLAP command doesn’t work when it’s in that mode. Sending a AT+CWMODE=1 changed the mode and finally I was getting somewhere with the ESP8266!


All Problems Conquered!

Now that I finally had achieved my goal of having luck with AT commands, I was pretty confident I could use one of the sketches that came with the ESP8266 Arduino IDE add-on package (File > Examples > ESP8266WiFi > WiFiWebServer from inside the Arduino IDE) which toggles the LED based off of hitting a URL being served up by the ESP-01. However, I did run into a momentary wrinkle uploading the sketch; in order to upload a sketch, you have to set the GPIO0 pin to low as it boots up. The ESP-01 firmware uses this to put the ESP-01 into its download mode.

Once I was finished uploading the sketch, I added a resistor and a green LED to run off of GPIO2 on my breadboard. After I powered it on, I was then able to pull up the two URLs (it’s documented in the sketch’s comments) in a browser that turn the LED on and off.

Suggestions

So, here are a few suggestions that I’ve come up with based on what’s gone well and what hasn’t gone so well for me.

  1. Download Arduino IDE 1.6.4 or later: They improved the IDE to make the management of boards like the various ESP8266s easier in version 1.6.4.
  2. Follow the Installing with Boards Manager directions at the ESP8266 Arduino Github page: These steps will install everything that you need in order to start developing sketches for the ESP8266.
  3. Purchase some extra ESP8266 ESP-01s, especially if you buy at the $2-3 price point: They’re cheap enough to buy a handful of them and have some spares in case something bad happens. It’s a luxury to have some extra lying around when you need to troubleshoot why something is not working the way it should.
  4. Buy some breadboard adapters for your ESP8266 ESP-01: I can’t recommend these enough, they really helped cut out some of my self-inflicted nonsense.
  5. Use your USB-to-Serial adapter and run some AT commands first to validate that you’ve got the hardware wired up correctly:
  6. Build a “download station” using a mini-breadboard, an ESP8266 ESP01 breadboard adapter, your USB-to-Serial adapter, and a 3.3v power source: There aren’t very many GPIO pins on the ESP-01. If you want to do something more complicated than light up a single LED, then you’ll need to use the GPIO0 pin, TX pin and RX pin, but all of those are used in the transmission of sketches. Having a download station like this will save you some frustration of constantly re-wiring your device before/after each sketch download.

Do you have experience with any of the ESP8266 boards? What other tips am I overlooking that would help a newbie like myself get started? Please share your tips in the blog’s comments and I’ll keep this list up-to-date with the best tips.

What’s Next?

I tweeted about this the other day, but my first thought for a little ESP-01 device is pretty simple. I’d like to make something that monitors my blog. Every few minutes it’ll do an HTTP GET of something that’s up on my blog. If the result is positive, it’ll light up a green LED. If the result is negative, it’ll light up a red LED. After that little device is done, hopefully I’m going to start using the ESP8266 boards and Arduino sketches to start building out some interesting home automation tools.

Tagg: The Pet Tracker

| Comments

On at least two occasions our dog, Crockett, has gotten loose and scared us. A few months back, I’d done some yard work during the day but failed to completely latch the gate to the back yard. My wife, Julia, decided that afternoon to take our dogs outside to play in the backyard. At one point, a squirrel scampered up the fence near the house, ran along the fence and then jumped onto a tree branch that hangs down near the fence at the back of our property. Naturally, the dogs were terribly excited at the prospect of a close encounter of the rodent kind and began sprinting along the fence leaping with all their might at the fence. Nearing the end of the fence, Crockett flung himself at the gate like it was a tackling dummy and to everyone’s surprise, the gate opened!

Julia frantically yelled for help and we gave chase, but by the time we turned the corner they were a good block away from us. They’d run behind the house, exited our street’s alley and were now running away from our house along the street behind our house. I shouted the dogs’ names and Zoe stopped on a dime and sprinted to me, nearly taking me out as she crashed into my legs. Apparently, the taste of freedom was not to her liking; she looked bewildered and terrified. Crockett on the other hand was happier than a pig in slop, sprinting and sniffing whatever he could. That day it took us almost two hours to catch Crockett. I took the approach of jogging and stalking Crockett waiting for him to get bored. But after a good 20-30 or so minutes of this approach, I ran out of endurance and he got out of my line of sight. Thankfully, Crockett has undying love for Julia and at some point after getting away from me, he ran to her when she was a block or two away in paralleling of my pursuit.

As I jogged, huffed and puffed through our neighborhood and nearby park, I wondered to myself, “Why don’t they have anything like my Tile tracking device for pets?” Later that night, Julia and I discussed the possibility of buying a Tile to track each of the dogs. But I felt it’s not quite the right tool for the job. Tile uses Bluetooth on your phone (or anyone’s phone with the Tile app on it) to communicate with the Tile tracker, but Bluetooth’s max theoretical range is roughly 330 feet. In order for the Tile to be useful in tracking your pet, you’d have to be within 330 feet and most likely much closer than that. As I was catching up on social media that night, a review of an interesting pet tracking device caught my attention.

The Tagg Pet Tracker from Whistle is a bit similar to the Tile, but it uses GPS and cellular data capabilities instead of Blueooth, which allows for tracking without having to be in close proximity to your smartphone. Considering Crockett’s previous escapades, I wanted to be able to be proactive in finding him for when he got loose again. I immediately went to Amazon and looked for the Tagg Pet Tracker to buy it right away. At the time, they were not quite ready for sale, and we wound up pre-ordering trackers for both of our dogs.

Towards the end of May we received updates that our Tagg Pet Trackers would be shipping and they showed up the first week of June. When they showed up, they immediately got my attention—it is an interesting product that touched on at least two passions of mine: geeky gadgets and dogs.

Unboxing and Initial Impressions

The Tagg Pet Tracker comprises of two pieces: a base station and the tracker. The base station does double duty as both a charger for the pet tracker and then also as a communications device. I assume that as long as the base station remains in contact with the pet trackers, it handles the tracking of the pets. The cellular data and GPS on the tracker are used in the event that the base station loses connectivity with the tracker. At that point, the tracker begins to communicate directly with the Tagg servers. When using multiple Tagg trackers like we do, they all communicate with the same base station. I assume that the primary reason behind this configuration is that while near your base station, battery usage is diminished since it’s not having to use the cellular data. Similarly, it probably helps Whistle save some money on their cellular bills, which they’re passing along to Tagg subscribers starting at $6.95 per month for monitoring.

Retail boxes for Tracker+Base Station & Extra Tracker All the Pet Tracker Components Tracker -- Front Side Tracker -- Front Side Tracker -- Back Side Tracker on Base Station -- Front Side Tracker on Base Station -- Back Side


Setup

Using the Tagg Pet Tracking website you’re able to create a profile for your pet, associating the tracker with that pet and defining where their home base is located. If the tracker shows up outside of that home base, notifications can be sent via e-mail, text message, or push notifications to your phones/tablets via the Tagg Android app or Tagg iOS App. In addition of location tracking, the Tagg Pettracker also can provide temperature-based alerts and also functions as an activity monitor much like fitness trackers like the Fitbit Flex or other fitness trackers.

The first weekend after they arrived, I took out all the trackers, created an account on the Tagg website and created profiles for both Crockett and Zoe. After that, I attempted to associate each of the trackers with the dogs’ profiles by activating them. The activation itself seemed simple enough; using their website you pick which pet the tracker is being associated to and provide an ID code from the back of the pet tracker before placing the tracker on the base station. After sitting on the base station for a little while, the tracker is then activated and ready to be put on a dog. This went very smoothly for the first tracker.


However, the second tracker was more problematic. It was failing after punching in the ID. I checked numerous times and tried to re-enter it, but nothing I tried would help and the error message I got back was very non-specific. Much to my chagrin, I wound up having to call in and speak to their customer service team. After waiting on hold for nearly 25 minutes, a helpful team member worked through a few things with me. Based on our conversation, I made an assumption that for some reason the ID of this device wasn’t in their system. The case was escalated to their technical team and I was told I’d get a call back in up to 48 business hours.

Roughly a week later without hearing anything back, I just tried to register Crockett’s tracker again out of curiosity. Thankfully, it didn’t give me any problems whatsoever and it activated. I was tempted to call back into their support line to let them know it fixed itself on its own, but I thought it would wind up being a hassle so I didn’t bother. Someone eventually emailed me almost two weeks later to let me know that they were happy the second tracker was activated.

My experience with their customer support was pretty disappointing; hopefully that’s just a byproduct of how new the product is and they’ll improve over time.

Tagg on Dogs

When we were pre-ordering the Tagg Pet Tracker, my initial concern was the size of the device. Based on a few Google Images searches, I was a bit concerned the device would be as big as 90’s-style pager strapped to the dogs’ necks. I was pleasantly surprised to find out they were quite a bit smaller, about the size of a smart watch with a little extra material to make it more rugged and waterproof. The tracker slides and clips into a bracket that is wrapped around your dog’s collar. At one point as a puppy, Zoe had decided to entertain herself by chewing on and licking her dog tags, which completely rendered them indecipherable. Even though she’s older and hasn’t chewed her newest tags up, I was still worried that she’d start chewing on her Tagg tracker, but so far after a few weeks, both Zoe and Crockett haven’t paid them any mind.


Pet Tracker charging on Base Station -- Front Side Pet Tracker charging on Base Station -- Top Tracker clipped to Zoe's Collar Tracker clipped to Zoe's Collar Tracker on Zoe #1 Tracker on Zoe #2 Tracker on Zoe #3


Tagg Website and Apps

The Tagg Pet Tracker website, Android app and iOS app all worked very well. I didn’t find any features that were present in the iOS app that weren’t in the Android app (or vice versa), and the only feature that I found on the website that wasn’t available on the mobile apps was the ability to perform the initial activation. When I first set up my notifications, I had signed up for both the text and email alerts. By the time I installed the smartphone and tablet apps, I was getting the same notification in different forms in about 6 different places, which seemed a bit excessive. Depending on your preference, I’d suggest using a single notification method, although I would suggest to Whistle that they consider allowing you to manage what kind(s) of alerts you get of each type. For example, if Crockett wanders outside of his home base I wouldn’t mind getting a text message, email, and push notification on all of my devices.

One thing to note is that there doesn’t appear to be a tablet version of the iOS app. I found that using the phone app on my iPad Air to be a bit clunky and didn’t work too well. I had a very hard time with the username/password entry using the on-screen keyboard. Thankfully some copying/pasting allowed me to work around that issue. Once I was logged into the app, I didn’t encounter any additional issues. Hopefully in the future versions of the iOS app will support the phone and tablet layouts equally.


Pet Tracker charging on Base Station -- Front Side Pet Tracker charging on Base Station -- Top Tracker clipped to Zoe's Collar Tracker clipped to Zoe's Collar Tracker on Zoe #1 Tracker on Zoe #2 Tracker on Zoe #3


We “Lost” Zoe

The day after getting the Tagg Pet Tracker, Zoe cut her paw running around outside. It looked like a big, nasty paper cut, which after some doggy first-aid and a couple hours’ worth of time hadn’t stopped bleeding. We decided to take Zoe to our vet and within 5 minutes of leaving the house both Julia and I received this notification simultaneously on our smartphones:


From within the application, it gave us last known approximate locations and the option to track the location as well as options to give you directions to that location. We were in the car at the time, so it was pretty apparent that the GPS data wasn’t quite in real-time, but it was recent. By the time we’d gotten to the vet’s office and into an examination room, her location had updated to the vet’s office. It was informative to see the Tagg Pet Tracker in action without having to actually lose one of our dogs.


Anrdoid notification Tagg Tracker Status showing Zoe's status Zoe's last location and our current location Zoe's last location and our current location


Battery Life

Among the things I wanted to include in this review was my thoughts on the battery life. Based on my initial research on the product, I was expecting to charge the unit on a weekly basis. However, what I’ve found instead is that as long as the pet spends most of its time near the base station, the battery life is excellent. I’ve had the Tagg Pet Tracker now for over 3 weeks and both batteries seem to be near half full. Initially, I wanted to run the batteries all the way down to empty and include how long that took as part of this review, but considering how long they’ve lasted so far, I was a little worried I’d not get to publish this review for a few more weeks!

Naturally with battery life, your actual mileage is probably going to vary a bit. The components on the Tagg Pet Tracker which eat the most battery are going to be the GPS and mobile data hardware within the tracker. If you spend a lot of time away from your home with your dog or if your dog escapes, I expect that the battery would drain much quicker. Despite the long battery life, my suggestion would be to not let the Tagg Pet Tracker’s battery get too low because you can’t predict when a dog might get loose. My plan moving forward is to charge them when I see that they’re around half full.

Conclusion

It’s been nearly a month and I think that the Tagg Pet Tracker is a nifty little product. Despite mobile data and GPS hardware within it, it is still small enough that it doesn’t bother the dogs to the point they try and get it off. Zoe and Crockett have been wearing their trackers for a combined total of 40-50 days so far without any issues. We’ve had unusually rainy weather which has kept us confined more than usual, so we’ve been nice and close to the base station, which is part of the reason why we’ve had so little battery use. But we’ve made trips to the vet, the pet store, agility lessons and our group obedience classes too. We’ve spent more than a few hours away from the base station and it didn’t result in a dramatic drain on the battery.

The activity-tracking component of the Tagg Pet Tracker is interesting. It’s fun to see which dog is more hyper than the other (Zoe, by far) and I can see how the activity tracker would be helpful in helping maintain a healthy amount of activity if your vet has recommended that Fido be a bit more active.

Most importantly, I feel a bit better equipped to handle the next escapade that the dogs might lead us on. If either dog gets out of our sight, I feel a bit better that with the help of friends, family, and neighbors we’d be able to corral the little bugger much faster.

For Sale: HRE 547 Wheels

| Comments

Update (6/15/15): A few people had responded to my blog/forum posts/Craigslist ad and I was lucky enough to find a buyer for the wheels and tires today. The buyer is putting them on his own C5 Corvette after getting them touched up and into showroom condition. I hope he shares a few pics with me, so that I can update this blog down the road!

I recently upgraded the wheels and bought new tires for my 2002 Corvette Z06 and I’ve had the old wheels and tires sitting in my garage for a couple weeks, so I thought I’d try and sell them. I’m writing this blog, posting them in a couple area Corvette forums, and listing them on Craigslist this weekend. I decided that I’d buy new tires this spring and while I was shopping for tires I got the urge to get my car looking closer to stock by putting a set of the original wheels on my car.

Wheels

The wheels are HRE 547s with the standard step lip, it’s an old model from HRE Wheels which apparently are no longer listed on their website. When I bought the car, they could be found under the “Past Collections” section, but as of the writing of this blog I’m not able to find them there anymore. If you’d like to see the HRE 547s from another source, there are usually a few sets listed on eBay for sale.

I don’t know much about the wheels. They were on the car when I bought it from Carmax three years ago and they had the typical amount of wear & tear on them. I’m sure in the three years I’ve owned the Z06, I’ve probably added a bit of wear myself. The wheels are all the stock size for the C5 Z06: 17x9.5” up front and 18x10.5” in the back.


#1 #2


Tires

The tires are also the stock sizes for the C5 Z06: 265/40/17 for the front and 295/35/18 in the rear. They’re Continental Extreme Contact DW Tuned. I wound up replacing the tires mostly because I wanted to have some fun on some brand-new tires but also secondarily because the rear tires were getting close to needing replacement. I decided to include the tires just in case someone was upgrading the wheels on their Corvette and didn’t have new tires to put on them.

Price

Considering the condition of the wheels and the prices I’ve found on similar wheels across the Internet, I think $1000 for all four wheels and tires is a fair price.

I’d like to avoid the hassle of shipping & handling, so at the moment I’m only considering offers from buyers in the Dallas/Ft. Worth area here in Texas.

If you have any questions, please feel free to use the comments below and I’ll answer them as quickly as I can. If you prefer anonymity, please feel free to send me an e-mail.

I think the price is pretty competitive but I’m also willing to consider offers. However, I’m not really willing to consider low-ball offers. Any offer below 90% of the price above is going to be rejected and probably ignored. If it turns out my price is unrealistic, I’ll lower the price. Please hold on to your offer until it’s within 90% of the price.

Pictures

This weekend I took the wheels out of the garage and detailed them (I’m not a very good detailer) so that I could take some pictures. The pictures haven’t been altered at all for this blog. If you’d like, here’s a ZIP file containing all the pictures (39 pictures, 76MB) that you can download and look at on your own. Where there’s wear and tear on the wheels, I tried to take close-up pictures so you can see the condition the wheels are in. The resolution of the pictures is 3648 X 2048, so don’t forget to zoom in!

All Wheels


#1 #2 #4 #4 #5


Front – Driver Side


#1 #2 #3 #4 #5 Wear & Tear #1 Wear & Tear #2 Wear & Tear #3 Remaining Tread


Front – Passenger Side


#1 #2 #3 Wear & Tear #1 Remaining Tread


Rear – Driver Side


#1 #2 #3 #4 Wear & Tear #1 Wear & Tear #2 Wear & Tear #3 Remaining Tread


Rear – Passenger Side


#1 #2 #3 #4 Wear & Tear #1 Wear & Tear #2 Remaining Tread


DIY NAS: EconoNAS 2015

| Comments

Giveaway Update (07/01/15): Congratulations to Charles Moye for being the lucky contestant (out of 350-something) for winning the 2015 EconoNAS. I’m very pleased, this is a 50% increase over the number of entries in the 2014 EconoNAS! I’ll set it back to default settings, get it boxed up and ship it either this weekend or early next week. If you have any questions, please feel free to reach out to me directly and we’ll get this moving along. The rest of you, it’s time to start building your own EconoNAS and share it here! Alternatively, you can wait for the next giveaway, probably early next year. Thanks to everybody who participated, you may not have won this NAS but you’ve all but guaranteed that I’ll do another giveaway next time around!

Ever since building and blogging about my own NAS back in early 2012, I’ve been carrying on the tradition every six months or so by building out a new NAS. This year has been no different—at the beginning of the year, I built the DIY NAS: 2015 Edition which featured a maximum capacity of 24TB at around $1,600. But in my opinion, that’s not a very budget-friendly price tag.

As an answer to that blog, each year I also put together an additional NAS build but with a different focus: minimizing costs and get every last drop out of each dollar spent as I possibly can. I named these builds the EconoNAS. This year I took some calculated risks and did things a little bit differently. I bought parts much earlier in the year so that I could start a series of blogs evaluating different NAS packages. I essentially wound up gambling that the prices of parts I bought would fall down to an acceptable level for the newest EconoNAS build.

Here’s my set of goals for the EconoNAS build this year:

  • Total price below $750 (extra bonus for keeping it around $500).
  • At least two drives of parity data.
  • More total storage than the 8TB in the 2014 EconoNAS.
  • Some room for future upgrades.

The last two goals are probably the hardest to achieve. Firstly, hard drive prices seem to be pretty stagnant. I like to keep each NAS build blog up-to-date for at least 6-12 months; in those months the hard drive prices barely move at all. Considering that hard drives typically account for the majority of expense in NAS builds, this makes adding more storage for the same price (or less!) pretty difficult. Additionally, wanting to leave room in the case and on the motherboard for future upgrades typically ends up in having to scratch most of the extremely economical motherboards off the list.

If I have my own NAS that I’m perfectly happy with and I’m still building and blogging about new ones at the rate of two a year, that begs the question: What am I doing with all these extra NAS machines? I raffle them off for one of my readers to win! The details of the giveaway can be found at the bottom of this blog.

CPU & Motherboard

For every NAS that I’ve built, this is the component that I put the most effort into selecting. I’ve got a set of criteria that I like to use when shopping for a motherboard for a NAS, and there just aren’t that many motherboards that meet that criteria. When they do meet that criteria they tend to be a bit expensive, which is a concern for the economical NAS build. Here’s the criteria that I considered when searching for this year’s EconoNAS motherboard:

  • Relatively inexpensive (<$100)
  • At least 6 SATA ports.
  • Onboard Gigabit
  • Basic integrated Video
  • Room for Upgrades:
    • Free DIMM slots for memory upgrades in the future.
    • Additional SATA Ports or PCI-E expansion slots to handle additional hard drives.
    • Room in the case for additional HDDs down the road.
    • Support for faster CPUs.

The motherboard that I wound up selecting is the ASRock H97 Pro4 (specs) which, to my surprise, met or exceeded each of my criteria. The LGA 1150 motherboard supports a wide range of CPUs, which allowed me to select the inexpensive Intel Pentium Processor G3220 (specs). Other important features of the motherboard included: 4xDDR-3 DIMM slots for up to 32GB of RAM, 6xSATA3 6.0GB/s, onboard Intel gigabit network controller, and a smorgasbord of different PCI slots. In my opinion the ASRock H97 Pro4 is an ideal motherboard to use as the foundation of an inexpensive NAS.

Running Total: $165.44

RAM

Depending on which NAS distribution you pick, you can go just about any direction with memory. You can spend a little (and get a little) or you can spend a bunch (and get a bit more). Many NAS zealots will point out that ECC RAM is the best option for the sanctity of your data, a point I have no squabble with. However, I think the risks of using non-ECC RAM are acceptable and manageable. Since budget is a driving force behind this NAS, I’d rather save the money on the RAM and motherboard and go with non-ECC memory. This led to me buying two sticks of Kingston Value RAM 4GB 1600MHz PC3-12800 DDR3 (specs), which also happened to be a slight upgrade from last year’s 1333MHz RAM. As far as I’m aware, 8GB of RAM meets or exceeds the minimum requirements of the most popular NAS distributions.

Running Total: $217.32

Case

The case and power supply I picked out signify what I think is both the best and worst of my decision making for this build. I picked out the NZXT Source 220 Mid-Tower Case (specs), which is a feature-laden and budget-friendly mid-tower case. It is the big brother of the case I purchased when I last upgraded my PC, as well as the same case I picked out for the 2013 and 2014 editions of the EconoNAS. I really like this line of cases, and this newest version is no different. It’s easy to work inside, it has room for many hard drives (up to 11), and has an interesting tool-less drive-mounting system. About the only thing I didn’t like was the amount of vibration I could hear using the tool-less drive-mounting system, especially when you have a bunch of drives in there all spinning at the same time. This noise caused me to dig up some screws and mount the hard drives in a more typical fashion. Despite that one complaint, I love the NZXT Source 220 Mid-Tower Case, which has lots of features at a very reasonable price.

Now the bad: I wound up looking for the best deal I could possibly find on a power supply and I wound up carelessly selecting the Rosewill ATX 350W PS (specs). It was very inexpensive and well-reviewed, so I thought it’d work great with what I’d picked out. Unfortunately I found out two things: it didn’t have enough SATA power connectors and its 4-pin 12v ATX cable was too short to reach from the bottom of the case to the top of the motherboard. To take care of these, I had to buy 3 Molex-to-SATA Power adapters and an extension for 4-pin ATX 12V CPU power cable. Rather than repeat my mistake, I’d suggest spend a few dollars more ($7-12) on a power supply with those features already built in.

Running Total: $314.50

Storage

NAS OS USB Drive

In the past, I’ve focused on NAS distributions which are lightweight enough to run on a USB flash drive. The beauty of running the OS from a flash drive is that your physical HDDs can be used solely for storage of your data. Additionally, USB drives are inexpensive enough that it’s easy to keep 2-3 around for backups and use when upgrading your NAS to the latest distribution. As with recent blogs, I picked the SanDisk Cruzer Fit 8GB (specs). I’ve used these for almost every NAS that I’ve built and I’ve had nothing but good experiences. Furthermore, its slim profile allows it to be installed in the USB ports on the back of the machine without obtrusively sticking out.

NAS Hard Disk Drives

This is where I encourage everybody to seriously consider veering from my build. Hard drives typically account for at least 50% of the cost of a NAS, and when building an economical NAS you should expect that percentage to creep up higher. You may need more storage or you may need less, so when building your NAS build it to suit your needs.

I’m taking a little bit more risk in my hard drive selection. Readers of my past NAS builds should note that I usually encourage users to buy similarly sized drives but from different makers to reduce the likelihood of buying drives that could all originate from the same batch. That way if a batch of drives is plagued with a manufacturing defect, you don’t wind up having to worry that every drive in your array may have come from that batch.

I found a good deal on the HGST Deskstar 2TB (specs) which I felt was too good to pass up, especially after reading Backblaze’s recent updates to their drive reliability report. In the report the HGST drives, especially the 2TB model, seem to be particularly reliable. After reading this report, I felt comfortable with buying 5 of the HGST 2TB drives for a maximum total of 10TB of potential storage.

Unfortunately, if you’re following the comments on the blog, you’ll see that at least one person has had a hard time finding this great hard drive at a comparable price (see my update at the bottom for full details). I expect to run into problems like this with each EconoNAS blog but to experience it within the first day of the blog being published is a first! So, in the event that you’re trying to build exactly this configuration and can’t find the same drive, I think that the HGST Deskstar 2TB (0F10311) is also an excellent drive spoken very highly of in Backblaze’s drive quality report. The good news about this drive is that it appears to be a better deal ($5-10) cheaper, so I’ve gone ahead and updated this blog to reflect its new price.

Final Price: $680.49


ASRock H97 Pro4 Intel Pentium G3220 Kingston Value RAM 4GB 1600MHz PC3-12800 DDR3 NZXT Source 220 Midtower Case Rosewill 350W ATX Power Supply Molex to SATA Power Adapter 4-pin ATX Power Extension HGST 2TB Hard Drive SanDisk 8GB USB Flash Drive


Hardware Final Thoughts

Overall, I’m pretty pleased with the hardware I picked out. I’m especially pleased at how much it has dropped in price since I originally shopped for of the parts. For a while there I was pretty worried that my “econo”-NAS wasn’t going to wind up being much cheaper than the DIY NAS: 2015 Edition. In a perfect world, the EconoNAS would be closer to $500 than it wound up being this year. But all things considered, it has wound up being a nice upgrade when compared to the prior year’s EconoNAS. Especially the fact that when similarly configured, this year’s NAS has 50% more usable storage (roughly 6TB vs 4TB) than last year’s EconoNAS.

Hardware Assembly, Burn-In, and Configuration

Assembly

It’s been a couple months between when I built the machine and wrote this blog, so my memory’s a bit fuzzy. But from what I recall, the actual assembly went pretty smoothly. I didn’t run into any issues putting things together. Aside from what I previously mentioned: I discovered that the power supply I picked had an inadequate number of SATA power connectors that had to be remedied by a few molex-to-SATA power adapters and it also needed an extension cable for the 4-pin 12V to reach from the bottom of the case to the top of the motherboard.

There’s a likely chance that there’s not enough SATA cables to hook up all 5 of the HGST Deskstar 2TB hard drives included with the motherboard. After only having 2 SATA cables packaged with the motherboard on my first and second NAS builds, I bought a bulk bag of SATA cables so that I’d always have extra in case I needed them. The cables that came with the ASRock H97 Pro4 were black and there were only four of them, so I replaced all four with red ones from my collection. I really liked that the NZXT Source 220 had the motherboard punched out so that I could run some of the extra SATA cable length behind the motherboard.


All components, ready to go ASRock H97 Pro4 ASRock H97 Pro4 w/ Intel Pentium G3220 NZXT Source 220 NZXT Source 220 - Hard Drive Mounting Tray #1 NZXT Source 220 - Hard Drive Mounting Tray #2 NZXT Source 220 Preparing NZXT Source 220 for Motherboard install ASRock H97 Installed #1 ASRock H97 Installed #2 HGST 2TB HDDs installed using mounting tray #1 HGST 2TB HDDs installed using mounting tray #2 HGST 2TB HDDs installed using screws #1 HGST 2TB HDDs installed using screws #2 4-pin 12V ATX 8 Fully Assembled Fully Assembled interior front Fully Assembled interior rear


Burn-In

The 2015 EconoNAS got the same burn-in as the prior NAS builds. Firstly, a couple days’ worth of Memtest86+ to validate and put the memory through its paces. Anything more than 3-4 passes in Memtest86+ is excessive; my test only went on that long because I got busy and neglected it. On top of that, I ran roughly 24 hours of stresslinux to put some strain on the system. Both of these tests came back positive without any errors or instability occurring during the tests. Furthermore, I used this system extensively when working on the initial NAS Roundup blog. I tinkered with several NAS distributions on this hardware and didn’t experience any issues during that testing. Finally, the machine has been running with FreeNAS on it nonstop for a couple of months.

Configuration

The biggest challenge in getting this configured was picking which of the NAS distributions I’d evaluated so far that I wanted to go on the NAS. In the past, I’d exclusively configured my NAS builds to use FreeNAS. However, having recently evaluated both NAS4Free and OpenMediaVault, I was tempted to run OpenMediaVault on this year’s EconoNAS build. But ultimately the ZFS file system and my experience with my three prior NAS builds left FreeNAS as the most appropriate choice in my eyes.

FreeNAS Installation and General Configuration

Installing FreeNAS is simple. You boot a machine using their installer ISO and tell it which device you want FreeNAS installed to, in this case the SanDisk Cruzer Fit 8GB. The next significant step in the installation process is to provide the root user’s password. The installation concludes when you’re prompted to remove the installer ISO and boot from your FreeNAS drive. Once it’s booted from the FreeNAS USB drive, the remainder of the work can be done from within the FreeNAS web user interface.

When you initially log in to the FreeNAS web interface, you’re prompted to use an installation wizard which walks you through enough setup to get your NAS functional. I think that initial wizard is pretty handy; however, there’s a configuration step or two that I also like to do not covered by the wizard, so I skipped the wizard. The first thing that I did was to change the hostname to “EconoNAS.” Mostly, I did this because my own FreeNAS box is still running the default hostname, and having two machines with the same hostname tends to be problematic. After that was changed, I updated the timezone information in the General settings. Followed by that, I configured the Email punching in my SMTP server details, updated the Root user’s email address to my own and sent a test email. In the network setup, I specified the default gateway and DNS addresses to what’s appropriate for my home network here.

FreeNAS Services Configuration

From the Services screen, I turned on the following services: CIFS, iSCSI, S.M.A.R.T., SNMP, and SSH. Depending on your environment and what you want to play with, you may want to enable more of the services. For the most part, I left each service using its default values except for CIFS and S.M.A.R.T. Within the CIFS configuration, I updated the NetBIOS name to read “EconoNAS” and within the S.M.A.R.T. configuration, I entered my email address so that the S.M.A.R.T. errors would wind up in my inbox.

FreeNAS Volume and Share Configuration

Setting up the volume, dataset, and share is the heart of your NAS configuration. As part of this I created a new Group called “ShareUsers” and a new user whose username and password matched the credentials that I use on my primary PC. That user was added into the ShareUser group. The user and the group would be assigned the appropriate file and share permissions once they were created.

Then I launched into getting a new FreeNAS volume created. For its configuration, I added all five of the 2TB drives to the volume and chose Raid-Z2, which provides the two drives’ worth of parity data. Once the ZFS Volume was created, I went ahead and modified the scrub schedule to run every 14 days instead of the default value. The scrub is responsible for detecting and fixing some problems and corruption. Scrubbing more frequently was a best-practices suggestion that was made to me on the FreeNAS forums because I decided to use consumer-level hard drives and Non-ECC RAM in my own NAS, much like in this EconoNAS.

Once the ZFS volume was created, I added a new ZFS dataset to that volume. I named that ZFS dataset “share” and set the share type to Windows. After the Share dataset was created, I tinkered with the permissions; setting user FreeNAS account as the owner, changing the owning group to the “ShareUsers” group and making sure that both owners (group & user) had Read, Write, and Execute permissions on the dataset.

I then created a CIFS share named “share” (I’m so creative!) and pointed it at the /mnt/volume1/share path. Finally, I opened a Windows File Explorer and browsed to the appropriate share path. My local credentials were used to authenticate to FreeNAS and the share path opened right up. For grins, I created a new text file to make sure that all of the permissions that I was expecting were in place and as expected I didn’t have any issues creating or updating a simple text file.


Selecting to Boot the FreeNAS Installer FreeNAS Installer Booting Up Picking the Desintation drive for FreeNAS Picking the Desintation drive for FreeNAS Picking the Fresh Install Option Confirming Installtion Details Picking the Root User Password FreeNAS Installation Complete FreeNAS Booted up for First Time Initial Login to FreeNAS UI Updating the FreeNAS Hostname Picking Appropriate Time Zone SMTP Settings Updating Root User's Email Test Email Received Network Configuration Enabling FreeNAS Services Configuring CIFS Configuring S.M.A.R.T. Creating the ShareUsers Group Creating a user for Brian Setting up the FreeNAS Volume FreeNAS Volume Details Post-Volume Creation Updating Scrub scheduling Creating a dataset for the Share Configuring permissions to the Share Dataset Creating Windows Share Validating Share creation and functionality


Giveaway

In a tradition that I started with the 2014 EconoNAS and continued this year with the DIY NAS: 2015 Edition, I am going to raffle this NAS off to one of the blog’s supporters. Here’s essentially how the 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.

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 a bit more 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. The best way to make sure you get your entry is to follow the steps above.

Updates

05/29/15: Well it certainly didn’t take long for the first update. The HGST Deskstar 2TB (0F12117) is apparently out of stock on Amazon as brand-new drives at reasonable prices. I poked around a few of my favorite computer-parts websites and the only ones I found had been marked up to well over $100 (way to gouge people looking for an exact replacement, shameless retailers!). I’ve crudely updated this blog with an equivalent drive which seems to be in stock on Amazon. This is one of the dangers I’ve found in the EconoNAS builds, great prices don’t last long so we’ll see how long it lasts!

07/01/15: Announced Charles Moye as the winner of the 2015 EconoNAS. Congratulations, Charles!

I Finally Tinker with my Arduino

| Comments

I have had an Arduino Leonardo clone for months (years?!) but I’ve never gotten around to playing with it. In fact the Arduino has been around so long that I originally thought that my tinkering and experimentation was going to be old news to most people. However, I got enough enjoyment out of my first couple “projects” that I decided to publish a blog in the hopes that there are a few people out there like me who’ve been curious but haven’t quite gotten started yet.

Arduino is an open-source electronics platform based on easy-to-use hardware and software. It’s intended for anyone making interactive projects. Each Arduino has a series of inputs and outputs, into which you can plug a whole host of different sensors, LEDs, LCD displays, actuators, motors, relays, etc… etc… Behind the hardware, Arduino has an open source integrated development environment (IDE) where you can write code and upload it to the Arduino to put that hardware to use.

Part of my hesitation was based largely on ignorance. Over the years, I’ve skimmed over many Arduino-related blogs where people do some pretty neat stuff with their Arduinos. Based on that light reading, I made the incorrect assumption that it’d be complicated to work with the hardware and software in order emulate these examples and create a project on my own. My own understanding of electronics is crude at best and while I occasionally enjoy tinkering with programming, I usually find it to be a bit fr,ustrating. I was very pleased to find out that my assumption was pretty poor. My ignorance or lack of ability in the realms of electronics components and software development didn’t wind up being significant obstacles at all. I was able to install the Arduino IDE, hook up my Arduino Leonardo-clone, and load a sketch to the Arduino that made the onboard LED flash in minutes.

In order to get started, I looked around for some sort of collection of electronics to match up with my Arduino Leonardo. I found the Sunfounder Project Super Starter Kit on Amazon.com which fit the bill. The kit mentions the Arduino UNO R3 in its description but all of the components should work just fine with the Leonardo. The kit contained a variety of components, including: a bundle of LEDs, resistors, push buttons, switches, LCD display, a motor, a breadboard, male-to-male jumper wires, female-to-male jumper wires, and many other things that I’m not mentioning. The kit also contained a CD and manual with a bunch of different examples that you could follow in order to get started. I skimmed through the manual; there are a few things in there I’d like to try just to see how I can use these different components.

Similarly, we’ve had a bunch of luck finding individual components from eBay, where they can be found at much lower prices. For example, we found Pyroelectic Infrared (PIR) Motion Sensors for as low as $.82 where we’ve found them as high as $9.99 a piece from different Arduino-themed vendors. The biggest drawback of ordering from eBay is that many of the inexpensive components are going to get shipped to you directly from China. I am not a patient guy, which is why I went with the Sunfounder Project Super Starter Kit and Amazon Prime had it on my doorstep 2 days after ordering it.

A breadboard was included in the Sunfounder Project Super Starter Kit and from the various Arduino How-Tos that I’d skimmed across, I comprehended its purpose but not exactly how it worked. Thankfully I got a crash course in its purpose from a friend and then found this How to use a Breadboard guide which cemented the material we covered in my crash course. After that, I was off to the races.

S.O.S

I started off with the Arduino Getting Started guide for Windows and had the onboard LED blinking on my Arduino Leonardo in minutes. Applying what I learned from the tutorial, I expanded it to create an ever-so-slightly more complicated version of my own, that blinks S.O.S.:

Arduino S.O.S. Sketch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

int FlashLED(int pin, int duration, int qty, int postflashdelay){
  for (int signal = 1; signal <= qty; signal++){
    digitalWrite(pin, HIGH);
    delay(duration);
    digitalWrite(pin, LOW);
    delay(duration);
  }
  delay(postflashdelay);
}

void loop() {
  // Pause for 3 seconds at the beginning/between loops
  delay(3000);
  // DOT DOT DOT
   FlashLED(13, 500, 3, 750);
  // DASH DASH DASH
   FlashLED(13, 1500, 3, 750);
  // DOT DOT DOT
   FlashLED(13, 500, 3, 750);
}

And here’s that sketch in action:

For Loops and Knight Rider

That tiny little taste for the Arduino and its IDE had me wanting more. I was excited to play with some of the actual electronic components from my starter kit. In doing some Googling to use as a reference when writing the S.O.S. sketch, I came across something on the Arduino website that I knew was exactly what I wanted to take a look at next. The Arduino For Loop tutorial had my fullest attention at the mention of Knight Rider. Using the excellent diagram provided, I used the breadboard, LEDs, resistors and cabling to replicate that diagram and loaded the tutorial’s code onto my Arduino.


Arduino Starter Kit All Parts for ForLoop Tutorial Blue connector cables Orange connector cables 220ohm Resistors Red LEDs Breadboard Arduino Leonardo LEDs mounted on breadboard Transistors mounted on breadboard Ground wires connected to Arduino and each LED Signal wires connected from Arduino to LEDs Power is supplied, it works!


I experienced a couple little hiccups — I had the polarity wrong on the LEDs (the shorter leg is the ground!) and I had wired up one resistor incorrectly. But once I tackled those, the Arduino came to life replicating K.I.T.T.’s iconic Larson scanner, much to my delight:

What’s Next?

I tinkered a little bit; I wrote my own sketch and I built something from scratch using somebody else’s design. Moving forward, I expect to start building things of my own design and coding them to do something a little bit more complicated than light up a few LEDs. Before I got started with my Arduino, I was a little intimidated by both, but now that I’ve gotten these two tiny projects behind me, I’m excited about all the uses I can dream up for an Arduino to fill.

I’m especially enthused now that I’ve been bitten by the home automation bug. I think that the sky is the limit for the uses I could get out of the Arduino and the very similar ESP8266. I’ve already brainstormed a few things I could do with an Arduino. My most unique idea so far is to find a way to tap into the door sensor that’s already on my back door, a PIR motion sensor, and automate a method to send a notification to my Nexus 6 so that I know when one of our dogs is wanting to be let outside. This is why I’m most excited about the Arduino: nobody’s going to make exactly the home automation devices that I’m wanting the most, so instead why not make them myself?

For those of you more experienced with the Arduino, what kind(s) of things have you used yours for? Please share your experiences in the comments below!

Warning

From this blog, you can see that I’m using an Arduino Leonardo from Borderless Electronics. Please do not think that my use is any kind of endorsement for this company. In fact, STAY AWAY!!! I’ve since supported another crowdsourced effort of Borderless Electronics, the BE MAKER! KIT plus FREE lessons on electronics, from Zero to Internet of Things and it has not gone well. The organizer, Harold Timmis, appears to be incompetent, a crook, or most likely both. The campaign has drawn out for years instead of the months originally promised, and better equipment is available at a much better price now. Harold claims that this is the fault of his supplier, but he’s also failed to provide the lessons or other materials that were part of the crowd-funded project that were his alleged specialty. I highly doubt that any of us (4,299 funders for $248,116) will ever see the perks that we paid for or a refund of our money, but at the very least I thought I’d warn you.

I love the Arduino Leonardo, but if you want to buy your own it’s best to find another seller other than Borderless Electronics or smARtMAKER, Inc.. Do you have a recommendation on where to find an inexpensive Arduino? Please share it in the comments below.

Organizing my Toolbox

| Comments

Upon embarking on my Garage Makeover project after buying our first home, I realized what a sad state of affairs my set of tools was. Most of my tools were stuff I’d used in upgrading my computer or building a DIY NAS server and pretty purpose-specific. I’d also collected a ragtag collection of cheap wrenches and sockets but I didn’t really have anything that was very complete, and because of that I was almost always looking for a socket or wrench that I didn’t have. I decided to quit being so cheap and to buy an actual tool set which would cover the majority of what I think I’d need it for and I picked a Craftsman 154 piece Mechanic’s Tool Set.

The new tool set led to me having an abundance (and many redundant) set of tools which caused a second problem: I had nowhere to keep them. To rectify that I wound up picking out a Craftsman top chest and bottom chest to house my miscellaneous tools.

What I soon found out was that my sockets and wrenches were a complete and total mess inside my new toolbox. Even though I had them in a nice tool chest, the drawers themselves were utter chaos and impossible to locate the tools that I needed. In fact, for the longest time my new tool set simply sat on the garage floor because it was a superior choice when compared to the insane drawers in my tool chests.

I started digging around the Internet for some clever ways to organize your tool chest, specifically focused on managing my dearth of sockets. A couple of the DIY socket organizers intrigued me, especially since I have a good friend with a 3D printer. I found A Better Socket Organizer over on Instrucables and gave it (and others like it) some serious consideration. But I was so exasperated with the state of my tool box chaos that I decided I’d start looking on Amazon so that I could find a quick fix.

Hansen Global 92000 SAE & Metric Socket Storage Trays

I’d seen and used the socket organizing trays before at a friend’s garage and I liked them enough. But ultimately, I wound up finding the Hansen Global 92000 SAE & Metric Socket Storage Trays and immediately was very excited about them. I especially liked the fact that it organized things by socket type, height, and socket size. And upon receiving them I quickly put them to use. This is when I found some things out:

  1. I have MANY duplicate sockets and there’s naturally only one spot for each size on the trays.
  2. My tool set might have 154 pieces, but not every socket size on the tray was accounted for.

Neither of these is a big problem, but I did have a bunch of leftover sockets that still need to be stored somewhere. And each empty peg on the socket tray was a bit of wasted space. The easiest fixes for these challenges would be to ditch my duplicated sockets and buy more sockets to fill the empty tray. But I wasn’t too thrilled with that “solution” because I figured that some of those more common sockets would come in handy, especially if you’re working with a helper. It’s also not like I’m a shade-tree mechanic or constantly tinkering on something, so I probably wouldn’t get much value out of having nearly every possible socket.


Socket trays in Metric Drawer Socket tray in Metric Drawer Closeup Socket trays in SAE Drawer Socket tray in SAE Drawer Closeup


I was pretty excited with the Hansen Global 92000 SAE & Metric Socket Storage Trays. I was finally able to get my sockets and wrenches in my toolbox into a somewhat organized and sane fashion. I had a dedicated SAE drawer and a dedicated metric drawer and wrenches scattered between them both. And then, something terrible happened — I found something better!

FreeZone® Storage System

The minute I had my toolbox all situated, Pat showed me the FreeZone® Storage System from Lee Valley & Vertias which he found out on the Garage Journal. It’s comprised of two kinds of pieces: a grid-like “toolboard” which can be laid down in a tool box or hung from a wall or pegboard, and then there’s a variety of pegs that snap and twist into the toolboard. Amongst those pegs are socket adapters for ¼”, 3/8” and ½” sockets as well as pegs that can be used as a grip for your other tools. How you decide to arrange your sockets and tools is completely custom to your preferences. I immediately preferred the FreeZone® Storage System over the Hansen Global 92000 SAE & Metric Socket Storage Trays because I was going to be able to eliminate those empty spots and because it offered me the option to pack things in more densely together. And finally, because of my 3D-printing friend it might even be possible to model and invent our own kinds of pegs to go into the toolboard.

However, there are areas in which the Hansen Global 92000 SAE & Metric Socket Storage Trays is superior to the FreeZone® Storage System:

  • The labeling on the socket storage trays makes it easy to grab exactly the socket you’re looking for, especially if you have a hard time eyeballing their size like I do.
  • The sockets are uniformly distributed across the width of the storage tray. With the FreeZone® Storage System’s grid, it’s going to be difficult to uniformly space things since the width of the sockets varies.

Toolgrid, socket pegs and tool pegs Socket pegs installed on toolgrid Tool pegs installed on toolgrid Socket pegs inserted into sockets #1 Socket pegs inserted into sockets #2 Socket pegs inserted into sockets #3 Tool pegs installed and holding a tool. Sockets & Tools on the FreeZone Storage System #1 Sockets & Tools on the FreeZone Storage System #2


I wouldn’t quibble with anyone’s selection of either of these socket organizers. I’ve tried them both and think they’re equally adept at helping your organize your toolbox, especially when it comes to organizing sockets. Now that I’ve tried both, my choice is the FreeZone® Storage System because of its additional flexibility and its uses with other tools. On top of that, I’m pretty excited that we can cook up some of our own ideas for pegs and to use Pat’s 3D printer to print up our ideas.

Show me your Messy Toolbox!

Right now I have an unused set of Hansen Global 92000 SAE & Metric Socket Storage Trays sitting in my garage. They’re only ever-so-slightly used, having held my sockets for maybe a day or two before Pat found me something I wound up liking better. There’s not really much that I can do with this redundant set of trays. If you’re a frequent follower of my blog then you won’t be surprised at all that I’ve decided to give the Hansen Global 92000 socket trays away. The giveaway will be a raffle of sorts, here’s how you can enter:

  1. Take a picture of your messy toolbox.
  2. Follow me on Twitter: @briancmoses
  3. Tweet that picture for the world to see, make sure to tag me (@briancmoses) and include the hashtag #messytoolbox

I’ll take everyone’s entries and then pick someone at random as a winner. Depending on the number of entries, I may also keep your photos and add a gallery of the messy toolboxes to the end of this blog once a winner is announced.

DIY NAS Software Roundup

| Comments

The DIY NAS blogs are by far my most popular series of articles. In those articles’ comments, the question always comes up: How come you didn’t try insert-NAS-here instead of FreeNAS? and my answer is always the same: in the process of building my own NAS, I tried FreeNAS and it worked so well for me that I never considered anything else. Unfortunately for its competitors, FreeNAS never gave me a reason to look at them.

All that being said, FreeNAS has quite a bit of worthy competition. And on top of that, any modern operating system has some sort of functionality that can be leveraged to turn any machine into some kind of network attached storage. Considering the amount of traffic my DIY NAS pages see, I thought it made sense that when I built another NAS I gave a few of the other products a spin and share my thoughts and opinions on them. That’s why a little while back, I posed the question to the blog’s readers: Which DIY Network Attached Storage solution(s) would you like to see featured in a roundup blog?.

What is this Roundup?

Inspired by the television show, Top Gear, I’d really like to maintain my own “Big Board” of NAS software where I rank them against each other. In the lull between my DIY NAS: 2015 Edition and the next EconoNAS build I figured that I would use the upcoming EconoNAS hardware to test and evaluate a few different NAS software packages, write my thoughts about each, and rank the different NAS packages on my own NAS Leaderboard.

NAS Leaderboard

Because this hardware is going to be the foundation of the next EconoNAS build, I’m not going to go heavy into the details of the actual hardware itself. However, here are some basic details on the hardware I used to evaluate the NAS packages in this blog:

  • Intel Core i3-family CPU
  • 8GB RAM
  • 5x2TB HDDs

In the future, I’ll continue to evaluate other NAS software packages in their own blog and update my rankings with each new review that I add. If I happen to be building a new NAS around that time then I will leverage that new hardware to write that blog. Otherwise, I’ll probably use something like VMWare or VirtualBox to build and evaluate NAS software packages within a virtual machine.

What is a NAS?

First and foremost, let’s get a definition out of the way. A NAS can be any form of storage hardware accessible via a network. With a few clicks of a mouse, any modern computer can technically be turned into a NAS. I find this definition to be a bit broad. I thought I’d try and come up with a list of important criteria that I think the ideal NAS software would meet. Here’s that key criteria:

  • Redundancy: Capable of surviving at least two simultaneous drive failures without losing any data.
  • Appliance-like: When managing the device it should feel like a purpose-built appliance.
  • Remotely Managed: Configuration and maintenance should be possible remotely to avoid having to purchase an additional monitor, keyboard and mouse.
  • Actively maintained: In the realm of software development, especially with “free” software, authors can reach the point where they feel their project is good enough and leave it sit. While I don’t disagree with the approach (especially with free software), it makes a far better project when there’s a set of active developers maintaining and continually improving it.
  • Cost: Since I’m a DIYer, cost is a very important factor. Free would be optimal, but because of a NAS’s importance and purpose, I’d be willing to consider paying for the software.
  • Runs on Older/Cheaper Hardware: Because cost is important (see above), it would be ideal if you could take old hardware from your last (or next) PC upgrade and use that as the foundation of the NAS.
  • Other Functionality: Lots of people have needs beyond redundant network attached storage. They also need a machine capable of filling other roles like media streaming, virtualization, personal cloud storage, and more. Ideally, each NAS package would have these features either built in already or a plug-in system which allows a user to extend the functionality of the NAS to cover these other needs.

Some of this criteria is more important than others; there are items on this list that are clearly requirements that no NAS should be without and there are other items that I would be willing to sacrifice in my own NAS devices. And the Other Functionality category is so subjective and specific to your own needs that I’m not even going to try and weigh in on that category. But is there any other criteria that I’m overlooking? Please use the comments and leave your feedback and I’ll keep that in mind for future additions to the NAS roundup.

Roundup

NAS4Free

I’ve often been asked why I didn’t choose NAS4Free when I built my NAS or any of my subsequent DIY NAS blogs. When I built that machine a couple years ago, I knew that it came from the same family tree and “split” from the same source as FreeNAS back when iXsystems officially acquired FreeNAS. NAS4Free was my “Plan B” and I just never needed to use it. Because FreeNAS and NAS4Free have so much ancestry in common, my expectation leading up to installing it was that it was going to feel pretty similar.

The biggest selling point to me of NAS4Free is the ZFS file system. ZFS is a poweful checksum-based file system which helps prevent against corruption that other file systems can be susceptible to. ZFS also includes some interesting features like a gamut of redundancy options, deduplication, encryption and snapshots which I believe makes it ideal for use in a DIY NAS.

The NAS4Free hardware requirements are pretty lightweight: a minimum of 256MB of RAM that increases to a minimum of 1GB of RAM if using ZFS, and no documented minimum requirements with regards to processing power. Because reusing old hardware is the best way to contain costs, hardware requirements like these are enticing to DIYers like myself. Unfortunately, NAS4Free wound up not supporting the built-on network chipset on the motherboard that I picked out, the Intel I218V, which is really disappointing, since I picked out that motherboard specifically because of the Intel-based network chipset under the assumption that it’d be more likely to be supported within FreeBSD. I just happened to have a couple D-Link DGE-530T network cards laying around which the FreeBSD release hardware notes for 9.3 indicates is supported. Because NAS4Free was running on top of FreeBSD 9.3, I was confident that this network card would fill in nicely.

Working within NAS4Free was eerily similar and reminded me much of my own FreeNAS machine, which I suspect is due to their common ancestry. Naturally, there are a number of differences which are found in the NAS4Free interface, but my familiarity with FreeNAS came in very handy in configuring the NAS. Because NAS4Free includes ZFS, I went ahead and worked through the steps of adding my hard drives, creating a ZFS pool using RAID-Z2 (double parity) across all five of the drives. Once I was finished with that, I enabled Samba, created a share, and lastly created a user for myself.

Once the share was created, I ran a real simple script that would create a 1GB text file and copy it to the share using a unique filename; the script iterates through this 100 times. I use this script to very roughly benchmark the throughput of the NAS. This file copy averaged right around 500Mbps and completed moving all 100GB of the data in roughly 28 minutes.


System Page Disk Info ZFS Management ZFS Virtual Device Configuration Samba Configuration Shares Network Performance: File Copy from 1 PC Network Performance: File Copy from 2 PCs

NAS4Free is pretty impressive. My favorite feature is the ZFS file system is included. I also appreciate its relatively lightweight hardware requirements. However, I was a bit disappointed when the motherboard’s built-on network card was not supported, requiring me to dig up a supported card to use instead. If I were building a system on a budget, I’d want to spend that money on more storage, CPU or RAM instead. That being said, an additional network card is not a tremendously expensive option, and if I’d done a little more research ahead of buying the hardware, I could’ve picked hardware that I knew would work with NAS4Free without any issues.

OpenMediaVault

Of all the questions that the DIY NAS blogs have generated, “Why didn’t you try OpenMediaVault?” is by far the most frequently asked question. At the time, my excuse was a combination of having my mind already made up on FreeNAS and a bit of ignorance on my part. Considering the number of comments and emails suggesting that I check out OpenMediaVault I’ve received, I knew that it must be included in this roundup.

One of my favorite “features” of OpenMediaVault is that it has incredibly lightweight hardware requirements: i486 or amd64 platform, 1 GB RAM, and 2GB HDD. Naturally, these are bare minimum requirements but the hardware I’d picked out exceeded these hardware requirements. These light requirements also increases the likelihood that OpenMediaVault will work on the hardware left over from your last (or next) computer upgrade. I happen to think it’s an ideal time to build a new NAS out of parts remaining from a computer upgrade and appreciate that OpenMediaVault helps make that possibility.

With the help of the latest ISO image from the OpenMediaVault downloads page and UNetbootin I was able to create a bootable USB drive for installing OpenMediaVault. Installation of OpenMediaVault was insanely painless and went very smoothly, although there was one surprise. Because I hadn’t read much about OpenMediaVault prior to installing it, I was a bit startled to learn that OpenMediaVault required installation on something other than a USB drive. In doing some additional reading, I learned that it was discouraged to use flash memory to hold OpenMediaVault. The best suggestion that I found was to buy a small and inexpensive SSD like the Kingston Digital 60GB SSDNow V300 to store OpenMediaVault. This is a much better suggestion than what I did: use one of the 2TB HDDs that I had originally intended to use as a storage drive. Unfortunately, it is not possible to use the OpenMediaVault drive as part of your storage, so in my case I wound up losing up to 20% of the maximum storage because one of the drives wound up being monopolized by OpenMediaVault.

Once installed, I got busy to tinkering around inside OpenMediaVault. The first thing I did was look and see what RAID options were available, and thankfully RAID6 was among the allowed options. This was good news, since one of my NAS criteria was that it should be able to withstand 2 drive failures. It took quite a while for it to build the RAID, long enough that I stopped watching it and did something else for a few hours. Once the RAID was built, I added a file system on top of it and gave it all of the available space (~4TB). Lastly, I enabled SMB/CIFS and created a share to browse to from my Windows computers. When I ran my little test script to copy the 100GB of data across to the NAS, I was able to sustain speeds above 700 Mbps and completed copying the 100GB of data in roughly 20 minutes. That’s pretty much monopolizing the capacity of the NAS’s gigabit network controller card, which was impressive on a single file copy.


About Page System Info RAID Configuration RAID Creation File System Info Creating a SMB Share Network Traffic after 100GB worth of file copies


Overall, I’m impressed with OpenMediaVault. Getting it installed and functional on the hardware was a snap with the web administration interface being very nice to work with. About the only thing I didn’t care for was having to dedicate a drive to the operating system. I’m not sure if it’s an option with OpenMediaVault, but if the operating system needs to be loaded on an actual disk drive it’d be nice if you could create the array and then load the OS on the array as well. However, adding an inexpensive SSD is not a tremendous expense.

FreeNAS

I’ve been using FreeNAS for years now in my own personal NAS and I’ve been very pleased with it. It has performed admirably as being the primary destination for the backup of my Windows machines. I’ve appreciated FreeNAS enough that it’s been the centerpiece of each of my recommended build blogs for a DIY NAS to date. Again, my favorite feature of FreeNAS is the ZFS file system. I have a hard time thinking of any tasks that weren’t easily accomplished via the FreeNAS web interface, which has a very nice appliance-like feel to it.

The FreeNAS hardware requirements are a bit more stringent than NAS4Free and OpenMediaVault: a multi-core 64-bit CPU, 8GB of RAM and an 8GB boot drive are the bare minimum requirements. The beefier hardware required reduces the likelihood that you’d be able to build a NAS solely out of leftover parts from previous upgrades, but I think they’re still pretty reasonable. However, if you visit the FreeNAS forums, you’ll find that a great many people encourage you to use ECC RAM and many of those people will even insist that ECC is some sort of requirement for running FreeNAS (specifically, ZFS). Most of my suggested NAS Builds do not use ECC RAM, and in another blog I explain why I chose to use non-ECC RAM in my own NAS.

Using the FreeNAS installation and upgrade directions, I created a bootable USB drive out of the FreeNAS ISO, then booted the FreeNAS machine off that USB drive and via the FreeNAS installer. Ultimately, FreeNAS was installed on a different USB drive. After all of this was finished, I booted from the second of those two USB drives (the one FreeNAS was installed onto) and worked through the set-up process.

During the installation and configuration of FreeNAS, I encountered a couple different nice surprises:

  1. The on board NIC which hadn’t been recognized by NAS4Free was recognized by FreeNAS: the FreeBSD version that FreeNAS is built on top of must be a bit newer or has additional hardware support.
  2. The ZFS Pool created in my tinkering with NAS4Free was detected and imported wihtout any issues during the FreeNAS initial setup.

After the setup was complete, I went ahead and deleted the FreeNAS volume (zpool) that was imported during the initial setup. A brand new FreeNAS volume (zpool) was created from scratch, all 5 of the 2TB drives were added to it, and I selected RAID-Z2. I created a group called “cifs”, a user (that matched my local credentials), added my new user to the cifs group, changed the file permissions so that the cifs group could make changes, and then created a CIFS share to point at the root of the FreeNAS volume.

Once I’d created my share and confirmed that I could read and write to it, I ran through the same set of tests to test its throughput. Throughput to the NAS was very similar to NAS4Free; a single file copy from my machine seemed to hover around 550Mbps and all 100GB of data got moved in roughly 25 minutes. Slightly faster than NAS4Free but not quite as fast as OpenMediaVault. In the past, I’ve been able to get FreeNAS to fully saturate gigabit by running instances of the script on an additional machine.


About Page Disk Info Volume Creation Post-Volume Creation CIFS Share Setup CIFS Share post-Setup File Transfer Throughput


The last two or three years, I’ve been incredibly impressed with FreeNAS. Each time I’ve given away the NAS built for the blog articles, I’ve been supremely confident that the winner will also be pleased with the NAS as well. About the only negative thing that I can say about my experience with FreeNAS is the FreeNAS community’s response to people who use non-ECC RAM. They have good intentions and ultimately ECC is the superior choice (assuming your budget allows it), but I believe it’s not anywhere near the “must-have” that it is made out to be within the forums.

Conclusion

After careful consideration, my initial NAS leaderboard is ultimately going to look like this:

  1. FreeNAS
  2. OpenMediaVault
  3. NAS4Free

OpenMediaVault’s most compelling feature seemed to be that it offered higher throughput than either FreeNAS or NAS4Free in my simple configuration. However, I’m wondering if I were willing to wade a little bit deeper into the configuration, if I could achieve that same throughput in either FreeNAS or NAS4Free (an idea for a future blog, perhaps). Ultimately, the ZFS file system is the feature that put FreeNAS in first place. Both OpenMediaVault and NAS4Free got weighed down a bit by the fact that there were some hardware issues with the equipment that I had picked out. However, those hardware issues were easy and inexpensive to work around, especially if you do your research prior to buying the hardware.

It was a pretty tight race, and depending on your use-case scenarion, I wouldn’t fault you at all for picking OpenMediaVault instead of FreeNAS. Especially if what you were interested in was a more multi purpose machine, instead of a dedicated NAS. If you’re interested in building a media streaming machine that also serves double-duty as a NAS, then I’d encourage you to go ahead and give OpenMediaVault some serious consideration. Despite finishing in second place, OpenMediaVault will remain a strong candidate for future EconoNAS build blogs.

There are other NAS packages out there and I plan to spend some time evaluating them in the very near feature. XPenology is probably the next one that I’ll be taking a look at. I’ve received a few suggestions of other NAS packages to evaluate. Do you have any suggestions? If so, please use the comments below or check out my DIY NAS roundup poll to make a suggestion.

Dipping My Big Toe in the Waters of Home Automation

| Comments

Home automation has been an interesting topic to me for quite some time, but to be honest I’ve found it to be a little too expensive and too proprietary the past 5-10 years. Primarily my interest was originally piqued by X10 and more recently with technologies like Z-wave, Insteon, and others. But I’ve always had the same complaint; these standards seem closed off and the equipment has been too expensive for my tastes. In looking at a comparison of the popular home automation protocols, one of my early worries is still valid; even today it seems to be a very closed off and segmented set of products out there.

I recently extended my house’s WiFi with a new AP and in the comments about that topic on the blog’s Facebook page a reader asked about the ability to remote power-cycle my new access point, which I can’t. It wasn’t necessarily a feature that I cared for much or that I needed, but I was intrigued about the possibility and wondering how much it’d cost to add on. While I didn’t need it to power-cycle my network equipment, I did have a use for controlling at least one or two outlets in the house.

We recently switched out a failing ceiling fan in the office (our den), which had incandescent sockets and really bright CFL bulbs in it. All of our CFL bulbs in the house have a color temperature 6500k, a very bright white. Our new ceiling fan that we wound up replacing it with only had small halogen bulbs, which were very yellow and didn’t match our other lighting at all. I decided that I’d buy a new floor lamp and a bright 150w equivalent CFL bulb to use in instead of the light on the new fan. Because the plan was to tuck this new lamp behind the far corner of my desk, I knew I was going to have problems reaching the switch. If I couldn’t reach the lamp, how would I turn it on? With home automation, of course!

Requirements

After some thought on the matter, I considered what my needs were. So far, I’d only thought of the one really beneficial home automation task. I certainly had lots of other potential ideas for home automation, but only this one idea seemed to provide immediate and demonstrable benefits. Because of that, I decided I’d stick my proverbial toe in the waters and see what home automation was like. In this particular case, a “smart” outlet of some sort would be all that I needed. In evaluating different products, here’s what I used as my criteria.

  1. Easy to be manipulated with Tasker from my Android devices: Tasker is by far my favorite Android application, it’s fantastic and it’s ideally suited for exactly this kind of Home Automation. Whatever product I picked must have a way to be manipulated via Tasker.
  2. Work on a schedule: I wanted the light to turn on in the morning at an appropriate time and then turn off at night also at an appropriate time.
  3. Turn the light on/off from my phone/tablet/computer: Because we won’t be able to easily reach the lamp’s switch, I wanted to be able to control the lamp from as many of our devices as possible.
  4. Simplicity: Having read a few how-tos, I know that the complexity of home automation systems can increase pretty rapidly. Because this was just a proof-of-concept for me, I decided the simplest product was probably the best in the short term.

Product Selection and Setup

Ultimately, what I wound up deciding on is the WeMo switch from Belkin. In my research, I found two products on the Google Play store which would act as Tasker plug-ins: WeMo Way and WeMoManager. In addition to working with Tasker, both of these apps had the ability to control the WeMo Switch from within the app, or I could use the Belkin WeMo app to control the switch. The switch was self-contained, meaning there wasn’t any other devices/controllers that I needed to purchase. And from the user manual the setup seemed incredibly easy.

For demonstration purposes, I grabbed a small table and my beloved beer-stein lamp and set it up somewhere easier to photograph. I started off simple: I downloaded the Belkin WeMo app on my phone, plugged in the WeMo Switch and plugged the lamp into the switch. To set the device up, you connect your phone to its WiFi and then use the app to connect the WeMo Switch to your WiFi network. Within the app from Belkin there are some options for the different kind of rules that you can use to do automation with the various WeMo devices. However, I had other things in mind when it came to the actual automation.

Automation

Early on, my plan was to fully automate the operation of this light using only Tasker and the WeMo switch’s built-in functionality. But because of some issues (mostly on my end) with how I have Tasker configured and after some additional consideration, I decided this wasn’t the best approach. While my Nexus 6 is practically always nearby, I’m guessing there are going to be times when it’s not handy or not functional enough to handle this automation. You can call me lazy, but a goal of mine is to never have to manually flip any switch for this lamp.

After doing some research, I decided I’d use IFTTT’s (If This Then That) service for my automation; I’ve been a fan of IFTTT for quite a long time, I started using it quite a while ago to automate other functions and I really liked how it’s set up and easy to understand. Plus, it’s very encouraging that manufacturers like Belkin have added channels within IFTTT in order to manipulate their devices. My hope is that IFTTT, or something similar, can bridge the gap between all the different home automation standards and will allow me to have a hodge podge of equipment automated at the house. It’s worth pointing out that IFTTT is useful well beyond home automation. I highly suggest signing up and checking it out.

Here’s how I wanted to automate the lamp:

  1. Turn On around when I wake up.
  2. Turn Off around bedtime.
  3. Turn On around sunset.
  4. Turn On when my Home’s WiFi is nearby.
  5. Turn Off when my Home’s WiFi is no longer nearby.

I accomplished each of these tasks using IFTTT and combining it with Tasker. The first three tasks were very easy on IFTTT, naturally they had time-based triggers that you can use. Additionally, they have a set of Weather-related channels, one of which is sunset. I combined each of these with the appropriate actions to turn on/off my WeMo switch. In Tasker I have a “Home” profile which gets triggered when my WiFi network is detected. When that network is detected a number of steps happen, so my new WeMo step was going to get included in the Entry and Exit steps of this profile. IFTTT has an SMS event, you’re assigned a phone number and IFTTT recipes can be executed based off text messages to that unique number from your configured phone number. I use Google Voice and Google Hangouts, the combo of which can support sending SMS messages. Using a Tasker/Locale plug-in, Locale GV SMS Plugin, I created entry and exit tasks to send a text message to the IFTTT phone number with certain content and then created recipes looking for that content to both turn the light on and turn the light off. This means I can manipulate the light from anywhere that I can send an SMS from my Google Voice number, regardless if my phone is nearby.

There are a couple drawbacks with this approach:

  1. The lamp can only be operated manually at the WeMo Switch since it controls whether the lamp is getting power or not. The WeMo Switch is hidden behind all of my cable management and isn’t especially accessible.
  2. I’m very dependent upon IFTTT.
  3. If my wife (or someone) else is home and I’m not, then chances are that the light will be off.

I’m not worried about IFTTT disappearing, but I do have a tiny amount of concern regarding whether their service will always be free like it is now. Similarly, I’d be worried that the hardware manufacturers like Belkin might have a squabble and pull their functionality from the site. The third concern is a bit of a bigger one and I’m hoping that I’ve taken a workable approach. My wife, Julia, isn’t as picky as the office being as bright as I am, so I’m betting she’s never going to mind that it’s off. I put Belkin’s WeMo app on her phone and cofirmed she has the ability to manipulate the WeMo switch from the app. If that is too inconvenient of a solution then I can look at getting her set up with her own IFTTT account, a copy of Tasker, and set up some similar automation as what’s on my phone.

Addressing the last drawback brought up just about the only aspect of the WeMo switch that I’m not a fan of; security. Essentially, anyone who has joined my WiFi network at home (either with or without my permission) has the option of downloading the WeMo app and taking over any of the WeMo devices within my WiFi’s reach. This too me, feels like a security hole that Belkin should be interested in closing. I can’t really understand why someone would want to hack my lamp and if they did, I imagine that the novelty would wear off pretty quickly. Because of that, I’m not really all that concerned with the possibility but it’ll definitely be something I consider before adding any more WeMo switches at the house.

Conclusion

First of all, I really like the WeMo switch; it was exactly what I needed to figure out how I felt about a deeper dive into Home Automation. I especially appreciated the simplicity of setting up and automating the WeMo switch; it literally took me about 15-20 minutes to have it all working. However, given the price of their products, depending on how much home automation I’d want to do, it’d start to get expensive quickly if I wanted to be completely WeMo-loyal.

I’m still on the fence about home automation. I’m tempted to start buying additional hardware like light switches, motion sensors, and other doodads and completely automate a number of functions in my home. But I’m a little fuzzy what my next automation project would even be. It’s a bit hard thinking of a task that would provide as much benefit as this one. In my mind, I can think of maybe 1-2 more outlets I wouldn’t mind being automated. Perhaps my greatest need would be a way to manage my WiFi thermostat, but I don’t think there’s an automation feature within the thermostat itself so I’d have to build my own from scratch. Based off of where I’m at right now, my next decision would be to pick a home automation standard and start looking for a good package deal to buy a few pieces of hardware. That being said, I’ll probably never stop using this WeMo switch. If all you want to do is automate a single outlet or two, I think it’s a great product.


Plugged into Wall Plugged into Beer-stein Lamp and Off Plugged into Beer-stein Lamp and On Plugged in at Desk and Off Plugged in at Desk and On My IFTTT Recipes


Pockethernet: the Network Administrator’s Swiss Army Knife

| Comments

Just over a year ago, I finished up a project where I cabled a network across my entire house and within the last month I extended the network’s WiFi reach with a PoE Access Point. Early on in the My Network Cupboard project, we had a few little issues between getting the first few cable drops functional. Nothing tremendously serious, but it usually involved one of us having to repeat steps we’d already taken like re-punching down the cable on the patch panel or one of the CAT5e keystones an additional time. At one point I wondered out loud if we needed to buy some sort of network cable tester. Because my network is relatively simple, it was an easy process of elimination to figure out exactly what we’d done wrong and as we completed the dozen or so different drops, we got a bit more proficient. But in the process, we could’ve saved a few hours if we had a testing tool of some sort.

Right around the time we completed the project, I stumbled across a crowd-funded project on Indiegogo called Pockethernet. Pockethernet is a pocket-sized adapter which works over Bluetooth and an app on your phone (Android or iOS) while providing a litany of network testing functionality, most of which I didn’t understand at the time and probably still don’t! The best part of all? It was comparatively inexpensive to the other testers which provide the same functionality.

In reading the specifications, I knew that the following Pockethernet features would’ve helped us with each of the issues we encountered during the MyNetworkCupboard project:

  1. Wiremap including shield: Test if you punched the pins in the correct order on the RJ45 jacks. Pockethernet also tests the shield for continuity.
  2. Bit error rate test (10/100/1000): Real-world cable quality measurement at gigabit speeds. Stop finger-pointing with measurement data.
  3. Port blinker: Let Pockethernet toggle the Link LED on switches and routers, so you know which cable you are looking for.
  4. Link establishment test (10/100/1000): Check if a link can be established at different speeds. Make sure the wiring is up to date for gigabit.

I decided to contribute to the Pockethernet campaign on Indiegogo to receive a Pockethernet as soon as they were manufactured. I figured this would be helpful for future cabling endeavors at my house and an excellent candidate to carry around in my backpack. It paid dividends when we added a new Access Point to my network: we initially had issues when we punched down to the new drop on the patch panel. On top of that, we used the Pockethernet to validate each point of failure as we cabled up the access point’s proprietary power-over-Ethernet injector. Pockethernet even was able to detect and measure the voltage of that proprietary PoE injector.

In total, it took about a year for the Pockethernet team to deliver their first batch of products. I’m quickly learning through a number of crowd-funded endeavors that it can require a bit of patience before delivery. But waiting roughly a year for the Pockethernet was fine by me because it showed up exactly when I needed it again and it was everything that they described.


Kit Contents From one Side From the other Side Plugged into PoE AP to measure voltage. Plugged into PoE AP to measure voltage. Plugged into Network


I especially liked that the Pockethernet is a Bluetooth device. In the times that I’ve used it, it’s been very convenient to hook it up where it needs to go then grab your phone to look at the Pockethernet app (Android/iOS). Especially if you have to rummage around behind something: it’s very nice to hook it up, retreat to somewhere more comfortable nearby, and then look at your phone/tablet.


Plugged into Network Successfully Ping Test inside & outside of Network Checking voltage to PoE AP Gigabit Bit Error Rate Test


How To

About my only “complaint” about the Pockethernet is that it seems to be designed for people who already know how to use similar tools. There was very little documentation that came with the Pockethernet and none of it really contained instructions on how to put it to use or described how to use all of the Pockethernet’s features. I thought I’d quickly write up how I used it in my project, just in case it helped a fellow neophyte!

Wiremap & Volts

I used this test to validate segments (and the totality) of cables that I punched down for my new acesss point. Because of how we cabled it up, there were many potential points of failure from the beginning to the end. And I also wanted to see if the Pockethernet would read the voltage of the proprietary power injector it used.

  1. Connected the Pockethernet to the beginning of the cable run on the patch panel.
  2. Connected the Wiremap adapter to the end of the cable run (wherever that was)
  3. Powered on the Pockethernet
  4. Clicked Connect (or Refresh if you’re already Connected) and selected the Pockethernet
  5. From the Pockethernet app select Wiremap & Volts (on the Test page in the app)

The wiremap test allowed us to validate the potential physical errors of the installation. It helped us determine that we’d punched everything down and crimped the cables correctly. It also allowed us to determine that there was power at the remote end of the cable for the access point.

BER Test

We used the Bit Error Rate (BER) test to make sure the cable was good and capable of doing gigabit. In the process of wiring up the new Access Point I also used the BER test to help determine if a problematic network cable was good or not.

  1. Connected the Pockethernet to the beginning of the cable run on the patch panel.
  2. Connected the Loopback adapter to the end of the cable run (wherever that was)
  3. Powered on the Pockethernet
  4. Clicked Connect (or Refresh if you’re already Connected) and selected the Pockethernet
  5. From the Pockethernet app selected the Off-Line tab in the app
  6. In the BER section, set the speed to 1000Mbps
  7. Click Ok

I ran a few different iterations of the BER tests tinkering with the Packet Size and Payload options to make sure that all combinations of the 1000Mbps test came back with a 0% error rate.

Connected to Network

There’s a couple things that I also re-validated by plugging the Pockethernet into the network. When plugged into the network, you can use the Pockethernet to determine the link, provide DHCP information, and ping a few devices on your network.

  1. I validated the Link and DHCP information from the Test page.
  2. From the on-line page in the app, I punched in a server name and an IP address internal to my network and one IP address external to my network and ran a ping test.

Conclusion

For what I was needing, Pockethernet was perfect. In fact, it’s probably too useful for my simple needs. But it’s a luxury to have such a nice piece of equipment for any kind of potential issues with my network at home. It was handy enough when wiring up my new access point that I certainly wished that I had found it and that it was available before I began my network project! It’s my understanding right now that you can’t buy your own Pockethernet yet, but it’s in the works. If you’re interested in buying one, there’s a Pockethernet newsletter that you can sign up for.

My Network Cupboard: Extending the WiFi

| Comments

It’s been a little over two years since we built a Network Cupboard for my house, wiring up every room except the dining room with CAT5e, and using Gigabit switches/routers behind my Verizon FiOS. At the time, I was a relatively new home owner and I was excited to put my geeky mark on the property. The project started out simple: I wanted a dedicated drop in the living room so that I didn’t have to use slower WiFi on my Playstation 3, but it quickly escalated from there.

Having one DIY project under my belt emboldened me to start taking on others, which included a makeover of my garage which has been moving along in spurts. When I recently painted the garage, including the ceiling, I was trying to stream music from my cell phone and using a bluetooth speaker. As I moved around the garage, it caused me to realize that my WiFi coverage was very spotty in most parts of the garage. I wound up using WiFi Analyzer on my phone to find the best spot and parked my phone there while I worked on painting.

This started me thinking about how many other places on our property had poor WiFi coverage. The bathroom of our master bedroom had very little coverage and the backyard was pretty spotty as well. It was important to me that I find a way to improve coverage in at least two of those areas, if not all three. However, considering that the garage and master bathroom were essentially on opposite ends of the house, I assumed that it was probably going to be a bit difficult to get coverage to both without spending some really significant dollars.

My first idea was to buy a WiFi Access Point and mount it to a wall in the garage, close to the ceiling. But Pat pointed something out to me; there wasn’t going to be any convenient power up at the top of the wall that I was considering. This got my brain working and immediately thinking about extension cables and how I didn’t want to muck up the walls I’d just spent the time and energy into painting. In order to save the walls, I decided that I’d put the access point up in the attic, towards the back of the house and closest to the backyard as possible. To solve the problem of getting power to wherever we mounted the access point, I decided that instead of using extension cables or hiring an electrician to install an outlet, I’d play with something I’d only read about so far, power over Ethernet (PoE).

EnGenius ENS202EXT Review

For my access point, I decided on purchasing the EnGenius ENS202EXT (specs) which ticked off most of my important criteria:

  • Relatively inexpensive: Preferably under $100
  • Rated for Outdoor use: Since it was going up in the attic, I wanted it to be durable.
  • Power over Ethernet: The PoE used in the EnGenius ENS202EXT is proprietary, which is a bit disappointing. I wish I’d been a bit more careful in my shopping and picked something that used established standards. This may have been a disappointment, but it was far from any kind of deal breaker for me.

The EnGenius ENS202EXT provides its power by using a proprietary power injector. You connect your network into the LAN side, hook the power adapter up to the injector, and then connect the other end of the injector (labeled: PoE) into the access point. Because of its price and my experience with consumer-level networking equipment, I assumed I’d need to power cycle it occasionally. So we wound up wiring it directly into the patch panel, that way a power cycle was never further away than disconnecting/reconnecting the right cable on the patch panel instead of digging around looking for the power adapter behind the patch panel.

All of the cabling went pretty well. We continued the same cabling convention on the front of my patch panel; purple cables were the drops for the workstations, red cables were used for the network gear (FiOS router, OpenWRT router, switches, and EnGenius ENS202EXT) and finally a green cable was used for the proprietary PoE injector. The color convention will hopefully help me avoid plugging the hot side of that injector back into my other network equipment and potentially frying a switch or router.

It was a little astonishing to me, but the actual act of cabling and installing the router was a snap. I had to do a little bit of traversing the rafters in the attic, but it wasn’t too much effort. All told, I was up in the attic no more than 30 minutes.

The frustrating and time-consuming part came when setting up the EnGenius ENS202EXT. We were astonished when we discovered that its default settings uses a static IP address. In my mind, the default setting on a piece of equipment like this would be to use DHCP. Just about every use-case scenario that I can think of it would be added to an existing network where the default static IP (192.168.1.1) would likely already be in use by another device. Which is exactly what happened on my network; the minute we plugged in the EnGenius ENS202EXT we had all sorts of problems because both it and my FiOS router had grabbed the same IP address. In my opinion, the way the configuration interface is laid out is pretty poor too. I found using it to be pretty counter-intuitive and early on and wound up losing a bunch of changes only because they did not get committed. By the time I sorted out the problems with the static IP and the poor interface, I’d spent more time configuring the device from my chair than we spent physically installing it, which also included having to push my Corvette out of the garage due to a dead battery. I’d assumed that we’d spend way more time on the physical labor, boy was I wrong!

In the end, I wound up naming the access point the same as my other WiFi, which I call “silentbob” (Thanks, Kevin Smith). I configured the access point with all the same security settings. However, I moved it down a channel so there’s very little (if any) overlap with my other access point. The “new” silentbob wound up on channel 7 and the legacy silentbob stayed on channel 11.


ENS202EXT boxed ENS202EXT unboxed ENS202EXT parts ENS202EXT 'PoE' parts ENS202EXT 'PoE' injector CAT5e drop for the ENS202EXT ENS202EXT mounted in attic #1 ENS202EXT mounted in attic #2 Pockethernet Tester indicates good cabling Pockethernet Tester reflects ENS202EXT successfully added to the patch panel


Conclusion

I’m a little surprised and a little aggravated that the hardest part of this project was the software on the not-so-“EnGenius” Access Point. Had that been a little bit more well thought out, this project would’ve been a snap. Using the Wifi Analyzer, I walked around the troublesome spots that I had hoped to add coverage to: the garage, backyard and the master bedroom’s bathroom. Here are the results:

Garage (Red & Blue)
Backyard (Red & Blue)
Bathroom (Blue & Cyan)


In the garage and the backyard, WiFi coverage from the new access point is dramatically better than on the legacy access point. Coverage in the bathroom is more or less exactly the same, but I’m pretty impressed since it’s going through the garage’s exterior, across the backyard, and then into the master bedroom. It’s as strong in there as my other access point, which is just down the hall towards the center of the house in the living room.

Overall, I’m pretty pleased with the results. I’m especially pleased what a great opportunity this project was to play with my new Pockethernet for validation of the cabling. My only significant disappointment is realizing how full my switches and hubs have become already. The next time I need to add network hardware, I may actually have to buy a bigger switch! Have you guys done anything similar to extend your WiFi coverage? Please share your solutions and experiences down in the comments below!