Simple 3D Printed Upgrades For Your FlashForge Creator Pro

| Comments

When I bought my own 3D printer, some of the first things I printed were small 3D-printer upgrades. I find the idea of using a machine to create parts to upgrade itself fascinating. When we bought a pair of FlashForge Creator Pro 3D printers at, I knew it wouldn’t be long before we’d find a need for some simple and necessary upgrades.

The 3D Printers at in Plano, TX

Filament alignment bracket

A better filament guide was definitely a requirement for one of our printers. No matter what adjustments we made, the left extruder’s filament would loop behind the spool and get caught up on the spool holder. This was less of a problem on the second printer, but it did happen at least once there. Fortunately, it was easy to fix.

Makersome Filament Guide Makersome Filament Guide

There are quite a few filament-guide parts on Thingiverse, but most of them require support material. I do my best to avoid support material.

Makersome’s filament guide does a great job, and it prints without any supports. In fact, it prints very well without supports. On our printers, the filament-guide tubes are fit loosely in the Makersome filament guide, and they end up moving around during the print. This was easily fixed with some small zip ties.

Filament spool holders

The spool holders that ship with the FlashForge Creator Pro are designed to precisely fit the huge diameter holes in the spools of the filament sold by FlashForge. My favorite spool holder on Thingiverse so far is the Shaxon Spool Holder. Just like the awesome spool holders for my own 3D printer, these print on their sides and require no supports.

Shaxon Spool Holder

Totally by coincidence, the first spool of filament we bought from Fry’s was Shaxon brand filament, and it did fit the holder perfectly. This spool holder is small enough to fit all but one of our spools. That spool is from Hatchbox, and it very nearly fits.

The spool holders I use at home are ridiculously thin compared to the models available to fit the FlashForge, but they are sturdy enough to hold two spools without any trouble. One of these days, I’ll design an even more universal spool holder for our FlashForge printers.

A glass print surface and printable glass clips

The FlashForge Creator Pro ships with a BuildTak sheet installed. When it works, it works surprisingly well. BuildTak seems to work better at higher temperatures, but those high bed temperatures would make our 0.1mm prints warp around the edges.

Try as we might, we just couldn’t get any of our white ABS filament to stick to the BuildTak. It was just too problematic.

Glass clips and knobs

I’ve been printing on glass at home for two years, so I figured we should give it a try over at I stopped by the Lowes in Plano, TX, and I had them cut some cheap 2mm glass into 9” by 6” sheets for me. I was able to get six of those and a pair of fresh 8” x 8” sheets for my printer at home for about $15.

ABS sticks beautifully to glass with a bit of hairspray, and the hairspray wipes off quickly after soaking it in water. We don’t actually clean the glass very often—usually only if you need a perfectly smooth finish on the bottom of your print. Most of the glass plates have been in use for two months now, and most of them have never been cleaned.

Next time, I am going to spend a little more on the glass. We have to be careful of the rough, sharp edges. The prints pop right off the glass after a few minutes in the freezer, but at least one member at has gotten impatient. They pried a large print off while it was still warm and pulled a chunk right out of the middle of the glass.

With the BuildTak, we had to wait for things to cool down before removing a print. With the glass, you can take your print out of the printer immediately. That means the next person in line doesn’t have to wait as long to start their print!

A webcam mount

This one is definitely not a necessity. My own printer’s Logitech C270 camera has been at ever since we unboxed the first FlashForge Creator Pro back in December. I certainly haven’t missed it, but cameras are much more useful at a public space.

Logitech C270 Mount Logitech C270 Mount

The camera brackets I designed aren’t perfect, but they’re a big upgrades over the IKEA arm mount we were using up until now. The arm mount is awesome—I use two at home, but they’re not well suited to the setup we have at They take up a lot of room, and they’re too easy to bump out of alignment. They also see a lot of glare if you point them through the acrylic covers on the printers.

The new camera mount corrects most of these problems, but the angle isn’t perfect yet. They aim at the print jobs, and they’re almost parallel to the glass print surface, so they pick up a lot of glare from the glass print surface during the first few inches of your print job. This isn’t ideal.

I think mounting the cameras on the printer’s handles is a good idea, but I think I can improve the execution quite a bit. Stay tuned for updates!

Control Multiple 3D Printers Using A Single Raspberry Pi and Octoprint

| Comments

When they asked me to run the 3D-printing department over at makerspace, I knew right away that we had to use OctoPrint. I’ve been using OctoPrint to run my MakerFarm Prusa i3 printer at home, and I have been very pleased with it. OctoPrint presents itself as a web interface, which is a fantastic fit for an open community space like

The 3D Printers at in Plano, TX

OctoPrint’s web interface is handy enough around the house—keeping an eye on my 3D printer from the living room is nice. It is even more useful at, where you can keep an eye on your print job from Marinara Pizza!

Do I really need a Raspberry Pi for each printer?

So far, we have two 3D printers at the—a pair of FlashForge Creator Pro 3D Printers. There is an OctoPrint distribution for the Raspberry Pi called OctoPi. OctoPi is awesome. Just about everything you need to get started is configured out of the box—even the webcam!

Raspberry Pis are cheap, and so are MicroSD cards. It wouldn’t be a big deal to buy two of them. I’m looking into the future, though. I don’t want to have to buy a new Raspberry Pi each time we buy a 3D printer. I also don’t want to have to configure another Raspberry Pi, or add another network drop. I’ve spent most of my career building and maintaining servers. I’d much rather maintain one Raspberry Pi.

OctoPrint Consuming Very Little Resources on the Raspberry Pi

OctoPrint isn’t very resource intensive, but it isn’t built to control multiple printers. However, it wasn’t difficult to run multiple instances of OctoPrint on different ports on the same Raspberry Pi. This isn’t surprising, because all it needs to do is send gcode over a serial port.

Running a 3D print simultaneously on both printers while OctoPrint broadcasts a pair of 480p video feeds doesn’t even use 20% of the CPU power of our Raspberry Pi 2.

Configuring additional OctoPrint instances

You need to run a separate instance of OctoPrint for each 3D printer. OctoPrint defaults to running on port 5000, so I just incremented the port for the second instance and told it to use a different directory to store its configuration. At, we call our printers badger1 and badger2, so we set up those hostnames in DNS. Since the OctoPi distribution hides OctoPrint and mjpeg-streamer behind HAProxy, all I had to do was add those hostnames to the HAProxy configuration and point them to the correct ports.

Badger1 - A 3D Printer At in Plano, TX

You can share some of the directories that live inside each OctoPrint instance’s configuration using symlinks. Since our printers are identical, sharing the uploads directory makes a lot of sense—it’s nice to be able to come back a couple days later and print another copy on the other printer. We’re also sharing the timelapse directory.

OctoPrint Serial Port Settings

There’s nothing preventing either instance of OctoPrint from connecting to either printer’s serial port. I’ve gotten around this by creating some udev rules to assign unique names to the printers based on their serial numbers. Badger1 is set to use /dev/ttyBadger1, and badger2 is set to use /dev/ttyBadger2. This prevents people at from accidentally connecting to the wrong printer.

~/oprint/bin/python ~/OctoPrint/run --daemon start --port 5001 --pid /tmp/octoprint2 --basedir ~/.octoprint2

Configuring additional mjpeg-streamer instances

I don’t know much about mjpeg-streamer. It looks like you should be able to stream multiple cameras from a single mjpeg-streamer process, but I wasn’t able to make it work. Instead, I ran a second copy of mjpeg-streamer on the Raspberry Pi—just like I did with OctoPrint.

# badger1
./mjpg_streamer -i "./ -d /dev/video0" -o "./ -w ./www"

# badger2 mjpg_streamer
./mjpg_streamer -i "./ -d /dev/video1" -o "./ -p 8081 -w ./www"

I need to tweak udev to assign each camera a unique device name, but I haven’t gotten around to that yet.

What’s next?

I thought about writing this blog post as a step-by-step guide, but I’d like to eventually automate the creation of new OctoPrint instances on our OctoPi server. I want to be able to run a single command to set up a new instance of OctoPrint and mjpeg-streamer, set up HAProxy to point at those new instances, and configure OctoPrint to point at the new camera.

I’m planning to work on this next month, but we’ll see. At the very least, I better have it working before needs to purchase a third 3D printer!

The Maker Modem from M2M Circuits

| Comments

I was talking to my friend Don from M2M Circuits last week, and he was telling me about his Maker Modem project. I told him it sounded interesting, and I wanted to try it out. He got me together with Jesse, the other brain behind M2M Circuits, a few days later.

Maker Modem

They explained how the Maker Modem works, what makes it different from other existing solutions, and they handed me one of their prototypes. I am a little late to the party here, so I had to use one of the first-generation prototypes. The new prototypes use a different power connector, and they have more indicator LEDs. For my purposes, they’re identical to the newer prototypes.

Why did M2M Circuits choose Verizon?

Jesse from M2M Circuits explained the problem that started the journey towards their Maker Modem. His father spends hours driving around his farm taking measurements from wells. Jesse accompanied him on one of these trips, and he immediately realized that he could save his father a bunch of time and effort if they automated this process.

He tried the cheap 3G modems you can get from China, but he just couldn’t get a signal out on the farm—even with a giant antenna. Verizon is the only game in town in very rural places, and Verizon doesn’t allow these devices on their network.

I was more than a little skeptical about the idea of a modem designed specifically to be used with Verizon, but Jesse’s story convinced me that there is a very real need for an easy-to-use 3G or 4G modem with Verizon’s seal of approval. If you need to get your “Internet of Things” way out into the middle of nowhere, there’s no better solution than the Maker Modem.

What is M2M?

The guys at M2M Circuits explained to me that “M2M” stands for “Machine to Machine,” and they told me a bit about Verizon’s “M2M” pricing. I thought it sounded outrageous, so I looked up the pricing myself.

Verizon’s pricing starts at $9 for ONE MEGABYTE. Holy potatoes, that’s expensive!

With the Maker Modem, it is extremely easy to send and receive SMS messages. This will be a huge savings on your M2M data plan, and simple text messages will work great for tasks like periodic sensor logging or two-way communication of your remote micro-controller.

I sent SMS messages using an Arduino!

It is ridiculously simple to talk to the Maker Modem from an Arduino. You can connect the Maker Modem to your computer using the USB port, and this worked great for manually testing the device. The modem also has TTL serial pins, which makes it easy to connect it to an Arduino.

Maker Modem

All I had to do was connect ground, transmit, and receive to my Arduino Nano, and I was up and running! From here, it was a simple matter to send the appropriate AT commands to the Maker Modem to send myself a text message.

void setup() {


void loop() {
  Serial.println("Test message from Arduino Nano via Maker Modem from!");


Receiving text messages didn’t look much more complicated, and M2M Circuits has an Arduino library for the Maker Modem to abstract all of this away from the end user. I didn’t have a lot of spare time to dig much deeper, though.

Maker Modem test SMS

The Maker Modem is on Kickstarter!

M2M Circuits just launched a Kickstarter campaign to bring their Maker Modem project to fruition. Getting their Maker Modem certified for use on Verizon’s network is very costly, so they will need your help.

Should I Buy A Used DSLR?

| Comments

Last year, I decided my blog needed a camera upgrade. I’ve been using my smartphone to take pictures for the blog for a long time, and my most recent phone upgrade was actually a huge downgrade as far as the camera was concerned. I wanted a camera with big glass and a big sensor, so a DSLR was the obvious choice.

My Canon Rebel XSi and Lenses

Photo by Andy Michaels

I didn’t know how committed to photography I was going to be, so I decided it would be prudent to purchase an older model DSLR. I am quite pleased with this plan. I was able to buy a used 2008 model Canon XSi DSLR and a camera bag chock-full of goodies for less than the cost of either a Canon EOS Rebel t5i DSLR or the Canon EOS Rebel t6i DSLR.

Pat's Camera Bag

Photo by Andy Michaels

The Canon t5i and Canon t6i have a lot of features that are missing on my older Canon XSi, but I’d be rather surprised if I could manage to take better photographs with either of the newest models. I just don’t have the skills, abilities, or knowledge.

What did I buy?

Here’s what I currently have in my camera bag:

Total cost: $527

NOTE: I already had an unbranded 60” tripod. It isn’t the AmazonBasics tripod, but it is very similar.

As I’m writing this blog, the Canon Rebel t5i costs about $650 at Amazon. That puts me over $100 below the price of a brand-new Canon Rebel t5i. I’m sure the price of the Canon t5i will drop. I’ve seen it on sale as low as $450.

UPDATE: I don’t own the Sigma 18-250mm EF Lens, but I wish I knew about it before I bought my gear. It covers the entire range of the Canon kit lens, and it doesn’t look all that much bigger, either. Even so, it is still able to cover the range of my telephoto lens. I understand this is far from a perfect lens, but at about $350, it looks like a good compromise.

I probably should have bought a DSLR body and the Sigma lens. My camera bag would be lighter, and it would make my lens choice easier when I’m leaving the bag at home!

Why the Canon Rebel XSi?

The Canon XSi (a.k.a. 450D) is the first “Upper-Entry” level Canon DSLR to use an SD card—the earlier models use Compact Flash. I have tons of SD and MicroSD cards around the house, and the XSi didn’t cost much more than the older models. That made the XSi a good starting point.

The next model released after the XSi is the Canon t1i. When I was shopping a few months ago, the used Canon t1i DSLRs cost quite a bit more than than the Rebel XSi. However, as I’m writing this, there are several used Canon t1i cameras on Amazon that are only $10 or $20 more than the XSi models. My Canon XSi can’t record video, while the t1i can. I’d definitely be willing to pay a few extra dollars for a Canon t1i.

Shallow depth of field is awesome

I knew I made the right choice just minutes after unpacking my “new” camera. I popped the battery in, turned on the camera, and took off the lens cap. As I was doing this, one of our cats was on my desk watching me. So I did what any good cat owner would do—I snapped his picture a few times.

My First DSLR Photos My First DSLR Photos

I opened the photo on the computer, and I was simply amazed by what I’d already done. His face was in focus, his body was starting to get blurry, and my monitors were completely out of focus. Aside from all the clutter in the shot, that was one of the most professional photos I had ever taken, and all I did was point and shoot!

Forget about megapixels…

Any camera can take decent photos in sunlight. I wanted to be able to take great pictures in my dimly lit home office. That means I needed a big sensor and big pieces of glass—the tiny lens on a camera phone just doesn’t compare at all. You’ll be able to take much better photos with a 6-megapixel, 1” wide APS-C sensor than a 30-megapixel camera phone.

…It’s all about the lens

The 18-55mm zoom lens that came with my camera is versatile. I’m able to use it right here at my desk to photograph the projects I’m working on, and it was quite usable when taking pictures of trebuchets at SlingFest. It may be good enough for either use, but it isn’t ideal.

I recently read a blog post titled “A Quick Guide to Understanding Your Canon Digital Rebel XTi.” One of the things the author wrote about at length was Canon’s 50mm “Prime” lens. The lens sounded interesting, and it is inexpensive. I asked my friend Andy what he thought about it, and he didn’t have to say very much at all to convince me that this was exactly the lens I needed.

The stock 18-55mm lens has an F-stop of f/3.5-5.6. The Canon 50mm fixed lens goes all the way to f/1.8. That means the camera can open the aperture much wider. This allows more light to get in, and it lets you capture an even shallower depth of field.

Shallow Depth of Field With 50mm lens Shallow Depth of Field With 50mm lens

This EF lens is meant to be used with a full-frame DSLR, so the effective field of view with the APS-C sensor in my Rebel XSi is equivalent to an 80mm lens. Since I can’t adjust the zoom with this lens, my feet now provide the zoom function. I usually have to back away from my desk to take a picture of my projects now, but that shallow depth of field makes the inconvenience totally worthwhile!

I haven’t had my Canon 55-250mm telephoto lens long. I do most of my photography indoors, but I realized very quickly how useful a telephoto lens would have been at SlingFest last year.

18mm Stock Lens 55mm Stock or Telephoto 250mm Telephoto Lens

These pictures of my Space Invaders are pretty boring. I’m going to attempt to plan an outing to put my telephoto lens to good use. That way I can report back here with some better photos!

The external remote flash is handy

If you follow me on Twitter, you already know I can be quite boring. There’s a very high probability I will snap a few photos of my morning latte and tweet one of the better shots. These photos may be boring and repetitive, but I’ve been learning a lot in my attemps to improve them.

One of my biggest problems has always been lighting. No matter what I do to my office lighting, I have a very hard time composing a photo where the brown-and-white foam of the latte isn’t washed out or over-exposed.

Testing My Altura External Flash Testing My Altura External Flash

The remotely controlled flash from Altura was an easy fix for this problem. I plugged the flash-control unit into the hotshoe of my Rebel XSi, and I set the flash down on my desk and pointed it directly away from the delicious coffee. This lit up the mug without casting too much light on top.

I couldn’t do anything like this with the built-in flash, and I’m absolutely certain I’ll find more cool uses for the remote controlled flash as time goes on.

Tripods are awesome

We’ve been working on a mirrored infinity cube over at makerspace in Plano. It is a large acrylic cube with lights inside. Each side of the cube is a one-way mirror.

The Mirrored Infinity Cube at

The cube is a difficult subject for my limited photography skills. With a wide open aperture, the various internal reflections are completely out of focus. I knew setting the camera to a high f/stop could bring everything into focus, but there was no way I could hold the camera steady enough.

I happened to be carrying my tripod that night, so I decided to try putting it to good use. I took quite a few pictures with higher f/stop settings and longer exposures. The final shot was taken at f/8.0 with a 15-second exposure. I can’t wait to take some similar shots of the completed project!

Used vs. New

I’m pleased with my decision to purchase a used Canon DSLR. It was a no-brainer when my plans only involved buying the camera—the Canon t5i would have cost me three times as much. After buying a camera bag and filling it with lenses, though, that gap narrows quite a bit. Even so, I’d still prefer to save that money and buy even more lenses!

If I decide to upgrade in a few years, every single item in my camera bag will work with my new camera—as long as it is another Canon with an APS-C sensor, of course. Who knows, maybe I’ll end up with a used Canon t6i in a few years!

3D Printing At in Plano

| Comments

We decided it was time to buy some 3D printers at makerspace in Plano. They asked me which printer to order, and I ended up recommending the FlashForge Creator Pro. I’m still a huge fan of the MakerFarm Prusa i3 I have at home, but an open 3D printer with exposed electronics just isn’t a good choice for a community printer at a makerspace.

I’m quite pleased with our pair of FlashForge Creator Pros so far. We had the first one unboxed and printing in less than half an hour, and our initial prints were quite nice. Much nicer than anything I managed to print with my MakerFarm printer in my first few weeks.'s FlashForge Creator Pro 3D Printers

It didn’t take long to get OctoPrint up and running on a Raspberry Pi, and it wasn’t too difficult firing up a second instance of OctoPrint on the same Pi to control the other printer. OctoPrint doesn’t use up all that much CPU on the Raspberry Pi, even when broadcasting a live video feed and saving images to create a timelapse. I bet we can run at least six or eight 3D printers using a single Raspberry Pi!

Printing on glass is the way to go

The FlashForge Creator Pro comes with a BuildTak printing surface, and we used that for a couple of weeks. It works fairly well, but neither spool of white ABS filament that shipped with our printers would adhere to it very well. Also, I’ve read that the BuildTak is only good for 50 to 100 hours of 3D printing. That would be a lot of sticker changing at!

I’ve been printing on glass at home for years, so I eventually broke down and had half a dozen 9” x 6” sheets of 2.5mm glass cut at our local Lowe’s. All our ABS filament sticks to glass and hairspray quite nicely, and the glass has improved the efficiency of our 3D-printing workflow at With the BuildTak, we had to wait for our prints to cool and remove them from the printer before the next person in line could start their print. Now we just pull the glass out as soon as our print is done, and the next person in line can jump right in and get started.

My favorite part about 3D printing with ABS on glass is how easy it is to remove your print. We just pop the glass in the freezer, and most parts pop right off in about two minutes.

I’m not the only one using the 3D printers at!

Our new friend j5mc stopped at our makerspace on his journey. He’s traveling around the country visiting as many makerspaces as he can. He is blogging about his journey, and he plans on compiling his data into a makerspace guidebook.

It was a lot of fun having him at, and he was kind enough to leave something behind for us. He designed and 3D printed an “Open / Nope” sign for us, and we display it proudly on our window. I affectionately refer to it as our “Nopen” sign.

You should go read about j5mc’s makerspace travels on his blog!

j5mc's Open / Nope Sign j5mc's Open / Nope Sign

William has been 3D printing almost nonstop since I showed him how to operate the machines. He’s printed a working crescent wrench, a tiny green TARDIS, and a really cool Storm Trooper Buddha. I can’t wait to see what he prints next, and I hope he prints another Buddha now that we’ve got the 0.1mm settings tuned in on the FlashForge printers!

William's Buddha Trooper William's Crescent Wrench William's Crescent Wrench William's TARDIS

Andy has been making good use of the printers as well. He’s been working hard to modify an existing Makedo hinge from Thingiverse to be more compatible with existing Makedo pieces. The hinge is neat because it prints as a single piece, but it can still pivot at the joint.

Andy also designed a bracket to help attach an IKEA lamp to an IKEA bed using OpenSCAD. His bracket is one of our tallest 3D prints at so far!

Andy's Minecraft pig Andy's Makedo Compatible Hinge Andy's IKEA Lamp Bracket Andy's IKEA Lamp Bracket

Shortly after the 3D printers arrived at, I began looking for something quick, easy, and useful we could print to give away to visitors. The best thing I found was the KeyStand at Thingiverse. Unfortunately, the KeyStand wasn’t capable of holding up my 6” clown phone.

I recreated the design using OpenSCAD. I changed some of the angles to move the kickstand behind the phone, and I added “” to the side of the key. This is the first part we managed to print using both extruders. Keystand in two colors

I am teaching classes on operating the 3D printers at

I’ve been giving some one-on-one instruction here and there, but I just completed our first semi-official 3D printing class at last night. I gave very little notice that the class was going to happen—less than 24 hours’ notice. I figured that would keep the attendance down, and give me an opportunity to figure out exactly what people need to know.

Even on such short notice, nine people attended the class. We managed to take four or five people from the point of zero 3D-printing experience to successfully printing their first object. In my humble opinion, I’d say the first class was a huge success.

I’ll definitely be scheduling these classes at regular intervals, and I’d like to teach some classes on using OpenSCAD, too.

If you’re a member of makerspace in Plano, and you’d like to learn how to use our 3D printers, please stop by one of the classes! If you’re not a member, but you’d like to learn how to operate a 3D printer, you’re still welcome to attend one of our classes! We’d be happy to show you around the space and tell you all about the projects we’re working on.

Gift Ideas For Geeks - 2015 Edition

| Comments

It has been almost a year since I wrote my last “gift ideas” post, and Christmas is almost upon us once again. During this time of year, you might be looking to find a gift for a family member, friend, or a coworker. I’m not usually very good at coming up with ideas for gifts, so I’m compiling a short list of things a person in my own demographic would enjoy receiving.

Some fun and useful items from previous years’ lists are making an appearance again, along with some new items. I’ve done my best to keep this list as general as possible. I don’t want you to have to worry about whether the recipient has an Xbox One or Playstation 4, or an Android phone or an iPhone.

I own and regularly use almost every single thing on this list. There are a few items that are no longer available, so I listed a comparable item in those cases.

Rechargeable USB Battery Pack ($7 and up)

Rechargeable battery packs have always been at the top of this list, but they are starting to become far more ubiquitous and much less geeky. I thought I was going to drop them from the list this year, but I still keep finding people that don’t have one of these ridiculously useful items.

Swift Gear 2600mAh battery pack charging my Nexus 7

USB battery packs come in all sorts of different sizes and capacities, and they come in handy all the time. My first battery pack was a small lipstick-sized charger with a flashlight, very much like this PowerBot 3000 mAh battery charger at Amazon.

My small 3000mAh battery pack is light enough that I don’t notice it is in my pocket, and it has enough juice to restore about 60% of my phone’s charge. That little guy has been more than enough to get me through several long airport layovers. The flashlight is a handy little bonus, too!

We also have a giant 20,000 mAh battery pack from Kmashi. That giant Kmashi can charge two devices at once, and it can fill up my tablet and phone more than once without needing a recharge. However, I can’t recommend the 20,000 mAh model—it is just too big and heavy. Kmashi also has 10,000 and 15,000 mAh models. The 10,000 mAh model only weighs about half as much as the 20,000 mAh model, but it still has more capacity than most people would ever need.

Arduino Starter Kit ($55 to $130)

The Arduino is a nifty little hardware prototyping platform, and it is a great way to dip your toe into the world of hardware development. An Arduino board all by itself isn’t very useful. When my first Arduino board arrived, the first thing I did was program it to blink an SOS on its built-in LED.

This isn’t very exciting at all. You need other electronic components if you want to do something interesting. You need parts like LEDs, resistors, buttons, motors, and buzzers. The easiest way to get going is to buy an Arduino starter kit.

I pieced together my own starter kit, but that wouldn’t make a very good gift. The Official Arduino Starter Kit and the Sparkfun Inventor’s Kit are both good choices, and they both come with a similar array of parts. The official kit seems to come with a larger printed guide, while the kit from Sparkfun comes with a nice storage case.

Of the two, I think Sparkfun’s Inventor’s Kit is a better gift and a better value. Sparkfun’s carrying case is a nice touch, and their holder for the Arduino and breadboard looks pretty convenient.

If you’d like to save money, you can go with a more generic kit. This Arduino Uno Ultimate Starter Kit is about half the price of the other two kits. It may have fewer components than the other two kits, but it definitely provides a better “bang for the buck.”

The Swiss Army CyberTool 34 ($80)

My Swiss Army CyberTool is easily the most useful tool I’ve ever owned. This tool was given to me as a gift sometime near the end of the last millenium, and I’ve probably used or misused my CyberTool at least once every month since then.

The CyberTool has all the tools you’d expect to find on a Swiss Army Knife, like knives, scissors, and a corkscrew. It also has additional geeky tools that I find invaluable. The CyberTool has an excellent bit driver with four double-sided bits, and they’re exactly the bits you’re likely to need when working on a computer. In fact, the bit driver is exactly the right size for tightening brass motherboard stand-offs.

Victorinox Swiss Army CyberTool 34

I use my CyberTool 34 along with my 3D printer quite a bit these days. The precision scissors easily remove adhesion pads from the corners of prints, and the awl comes in handy when a hole in the print comes out a bit too small for a screw. I can quickly and carefully make those holes just big enough for the screw to fit.

Many people seem to prefer Leatherman-style multitools—tools based around a full-sized pair of pliers. These are very useful tools, and I carry a Gerber multitool in my laptop bag. I just don’t have a lot of use for a big pair of pliers. If you’re buying a gift for someone like myself that is always taking apart computers or working on electronics projects, then the Victorinox CyberTool 34 is definitely the better choice.

A 3D Printer ($500 to $1200)

There are hundreds of great-looking 3D printers and 3D printer kits available these days, but I’m only going to talk about two printers here. Aside from the two printers I’m going to talk about, there are quite a few kits in the $300 range. A friend of mine bought one of the printers, and while these printers are a viable option, I don’t think these cheap 3D printers would make a very good gift.

My MakerFarm Prusa i3

If you are buying a 3D printer for someone that likes to tinker and build things, then you can’t go wrong with a Prusa i3 printer from MakerFarm. I have had my MakerFarm 8” Prusa i3 3D printer for more than a year now, and it is one of the best things I ever bought. If I were buying another 3D printer today, it would most definitely be the 12” MakerFarm Prusa i3. The MakerFarm printers are well made, and their wood frame is quite rigid. MakerFarm has an 8” model for about $500, a 10” model for around $600, and a their 12” model is closer to $700.

I do realize that a kit might not make the best gift, but I would tend to recommend going that route anyway. Assembling a 3D printer is a great learning experience, and it is useful to understand just what your printer is doing as it is moving around.

If you don’t want to go with a kit, I’d have to recommend the FlashForge Creator Pro. It is a Makerbot Replicator clone that arrives fully assembled and ready to print. The FlashForge Creator’s build volume is comparable to the 8” MakerFarm kit, but the FlashForge Creator costs about twice as much at around $1,200.

We just ordered a FlashForge Creator Pro at makerspace, and I got it up and running a few days ago. Even with a crowd of people looking over my shoulder the entire time, I had the machine assembled and printing in less than thirty minutes, and I’m impressed with the quality right out of the box.

The FlashForge Creator Pro arrives almost completely assembled. I just had to use two screws to attach the print head, snaps some filament guides in place, and it was ready to print. I was worried when we opened the box, but most of the fasteners were for assembling the acrylic door and lid.

Bodum Double Wall Mugs ($27)

I use my double wall cups from Bodum every single day. They not only look great, but they’re also extremely functional. I use my espresso machine to make an awful lot of lattes, and espresso is a pretty fragile thing. If you pour your tiny shot of espresso into a cold ceramic mug, you will almost immediately bring it down to room temperature and ruin the flavor.

That means I have to warm up my mug first. The double wall cups from Bodum are not only insulated, but the inner layer of glass has very little thermal mass. That means I don’t have to warm up my mugs, and I can start drinking sooner.

My laboratory beaker mug made the list two years ago, and it is probably made out of the same sort of glass as the Bodum cups. The biggest difference would be the lack of a second layer of glass. I used my beaker mug for several years, and I cleaned it in the dishwasher once or twice a week. A few months ago, I found it broken in the dishwasher. To be honest, I didn’t think the dishwasher was the best way to wash the beaker mug, but it did weather the storm of the dishwasher better that I had anticipated!

The beaker is definitely the geekier of the two options, but I still prefer the Bodum cups. They’re just more practical. I prefer the 12-oz size Bodum glasses without handles, but they come in an assortment of different sizes and shapes. They even have them in the right size and shape to keep your beer cold and your hand warm!

A Coffee Subscription ($9 to $25 per month)

Plenty of the geeks I know drink a lot of coffee, including myself. If you know someone that is drinking terrible coffee from the supermarket or even from Starbucks, a coffee subscription is an easy and inexpensive way to upgrade their coffee-drinking experience.

I’ve been enjoying my subscription to Craft Coffee for nearly two years now. My first shipment from Craft Coffee included an Ethiopian Yirgachiffe from Slate Coffee Roasters. The notes on the bag read, “Light, pillowy and clean, with flavors of dried strawberries, confectioner’s sugar, and breakfast cereal.” I thought this sounded like a bunch of hogwash, but boy was I wrong! It really did smell and taste like breakfast cereal—like Frankenberry cereal.

If you do place an order with Craft Coffee, you can use my referral code “pat1245” when you place your order. You’ll receive a 15% discount, and they’ll give me a free month of coffee. People have been using my referral code more often than I would expect, and no one has come back here to complain. I’m assuming that means they also feel that Craft Coffee is an excellent value.

Angel's Cup Shipment

I was lucky enough to be shipped a Black Box from Angels’ Cup last month, and every sample in the box was amazing. The first bag we opened was a delicious natural process Ethiopian coffee. I always enjoy Ethiopian Yirgacheffe beans, and this was without a doubt the best Yirgacheffe I’ve had all year. One of the samples was aged in bourbon barrels before roasting, and it was the most unique coffee I’ve ever brewed.

The only label on each bag of Angels’ Cup coffee is a number and a roasting date, and they have a smartphone app. You punch in the number on the bag, and you tell it what you think of the beans. You tell it how dark they are, what they smell like, and what sort of flavors you can pick out. The app tells you how accurate you were and tells you more about the coffee.

It was fun, and my wife enjoyed figuring out what was in each bag. She was very excited when she was correct about that first bag of Ethiopian Yirgacheffe coffee.

You can use the coupon code “patshead25” at Angels’ Cup, and you’ll save 25% on your first delivery in a new subscription. Unfortunately, this coupon code does not currently work on gifts.

Beginning My Home Automation Journey With The ESP8266 And The ESP210

| Comments

I’ve been contemplating the idea of implementing some home automation for a very long time. The benefits just hadn’t been exciting enough to encourage me to get started. Turning lights on and off didn’t seem all that interesting to me.

A number of small things came together recently that gave me just enough encouragement to start implementing some automation. Every day when I wake up, I make a delicious latte for myself using my Rancilio Silva. It is an excellent machine, but it takes 20 or 30 minutes to get warmed up enough to pull a good shot of espresso.

My home office is upstairs, and my espresso machine is downstairs. I often forget to run downstairs before heading to the office. When I do forget, that means I walk downstairs to a cold espresso machine, and I have to wait at least 20 minutes for my coffee.

Radio Controller Power Outlets

There happened to be a sale on Etekcity RF-controlled power outlets at Amazon one day. I found an article on explaining how to control these AC outlets using an Arduino. I had already been messing around with ESP-01 WiFi dev boards for a while, and I knew how easy it was to load Arduino sketches on them.

Three Etekcity Remote-Control Power Outlets

I immediately ordered a 3-pack of Etekcity remote-controlled power outlets. Building a little WiFi to 433 MHz RF bridge seemed like a good idea, and the 3-pack of Etekcity outlets was about half the price of a single Belkin WeMo outlet. How could I beat that?

Reading the RF codes with an Arduino

I found a write-up over at about controlling these Etekcity power outlets using an Arduino. He is using the RCSwitch Arduino library to communicate with his Etekcity power outlets, and it turns out the RCSwitch library is very simple to use.

RCSwitch ships with an example sketch named ReceiveDemo_Advanced. All you have to do is wire up an inexpensive RF 433 MHz receiver to your Arduino, and upload this sketch. Then you just start hitting buttons on your Etekcity remote control, and the remote control codes will be printed on the Arduino’s serial port.

I completed this part of the project before any of my ESP8266 boards arrived. I just plugged an RF receiver into on of my Arduino boards, hit all the buttons on my Etekcity remote control, and made a note of the codes.

Transmitting the RF codes with an Arduino

Testing the codes and RF transmitter was even easier than reading the codes from the remote. The RCSwitch library also comes with a sketch named SendDemo. I just added codes corresponding to my own Etekcity power outlets to the demo.

I wired the RF transmitter to the Arduino and uploaded the sketch, and I plugged my IKEA floor lamp into one of the Etekcity outlets. When the Arduino booted back up, the power outlet began turning on and back off once every couple seconds.

This was pretty exciting for me. That lamp was the biggest real-world device I’ve ever controlled with an Arduino!

The Node.IT ESP210 is awesome

I started this project with an ESP-12 on a cheap breakout board adapter. The ESP-12 boards work great, and they are ridiculously inexpensive. Unfortunately, they’re a real pain in the neck during development. I hate having to connect four or five wires to my USB FTDI every time I need to upload new code. Those big, cheap breakout boards for the ESP-12 are kind of a nuisance, too. They’re just too wide to be used conveniently with a breadboard!

Prototype ESP210 RF433 Web Server

The fine folks at Electronic Sweet Peas were kind enough to send me a couple of preproduction models of their wonderful little ESP210 boards. The ESP210 is an ESP8266-based dev board with an integrated USB to serial chip and a voltage regulator. I don’t know how they did it, but they managed to squeeze those two major upgrades and all the pins of an ESP-12 onto a board nearly as tiny as the ESP-01!

It was a piece of cake to pull the ESP-12 out of my prototype and swap in the ESP210 in its place. I was able to upload the code without making any changes, and it worked perfectly!

The ESP210 isn’t just another ESP8266 development board. It is part of the Node.IT family of tiny, modular add-on boards called “+One” modules that plug into the ESP210 board. There are +One modules that offer things like a real-time clock, additional analog or digital GPIO pins, and even humidity sensors or Micro SD card slots.

How far did this get me?

Pretty far! It was simple enough to control the outlets from the command line using curl, or with browser bookmarks on my phone. Before long, I had the lamp in my office turning off every time Steam launched a game. I was also able to use Tasker on my Android phone to turn on my espresso machine as soon as I unplugged my phone in the morning.

This was a good start, and it gave me some idea of how useful home automation can be. Unfortunately, controlling multiple switches from multiple computers won’t scale very well.

Controlling the ESP8266 to RF bridge with OpenHAB

I’ve since set up an OpenHAB server that lives on my power-efficient virtual machine server. It is doing a great job of controlling my devices and keeping track of what I’m doing.

Creating OpenHAB rules for my Etekcity power outlets was easy. OpenHAB has a sendHttpGetRequest function. I just have to call that function with the correct URL whenever a switch is toggled.

rule "Turn Office Lamp off"
  Item Light_SF_Office_Lamp changed to OFF

rule "Turn Office Lamp on"
  Item Light_SF_Office_Lamp changed to ON

I could easily write several thousands words about the things I’ve done so far using OpenHAB. I’ll leave that for future blog posts.

You can find the code for my ESP8266 RF Bridge at Github!

I uploaded a copy of my ESP8266 Wi-Fi to RF433 bridge repository to GitHub. The README file really needs some attention, but other than that, it should be good to go. Just plug the data pin of your RF433 transmitter into GPIO 2, then replace the ssid and password variables with the correct values for your network, upload the sketch to an ESP8266, and you should be ready to go!

Building a Low-Power, High-Performance Server to Host Virtual Machines

| Comments

Back in the late nineties, I had two desks with three CRTs, two permanent desktop computers, and a laptop. My desk at the office didn’t look much different. At the time, you needed to have several computers around if you needed to run different operating systems, or even different versions of the same operating system.

Then VMware showed up, and I was hooked on the concept of virtualization immediately. It was the best thing since sliced bread. I no longer needed to keep several computers running at my desk. All I had to do was load one machine up with as much RAM as possible. That’s what I did, and that’s what I’ve been doing for the last 15 years or more.

Virt-manager Machines

My needs have shifted quite a bit in that time, though. At some point, I replaced VMware with VirtualBox, and then I replaced VirtualBox with KVM. In recent years, I haven’t been booting up virtual machines as often as I used to. In the last few months, though, I’ve been running more software that needs to be highly available. Not in the “five nines” availability sense, mind you. I just don’t want things like my home automation to stop working while I reboot my desktop computer for a kernel upgrade or a gaming-related problem with the Nvidia driver.

My requirements

I wanted to build something energy efficient. My current needs don’t require much CPU at all, so I don’t need a 16-core, 32-thread monster homelab machine like my friend Brian, but I’d like to squeeze in as much CPU power as I can. I don’t need a lot of disk space, but I’ve been wanting to play around with Linux’s new dm-cache module, so I planned on buying more disk than I actually needed.

This new server currently only needs to be able to perform two important duties. It needs to be able to run my 3D printer, and it needs to be able to run my home automation software: openHAB. A single Raspberry Pi with an SD card could easily manage both these tasks, but I want to make sure I have enough horsepower for other tasks that I might want to offload from my desktop in the future.

tl;dr: My parts list

Total price: $746.59

Budget-friendly alternative parts list

Less memory, no solid-state drives.

Total price: $517.63

UPDATE: This blog post is getting old, and the parts I used are becoming harder to find. The AMD 5370 processor is a straight upgrade over my AMD 5350 processor. It is a little easier to find, but it is still getting pretty old. I’m going to have to revisit low-power KVM server build later this year.

Choosing a motherboard and CPU

My first plan was to use an Intel Celeron J1900 CPU. The motherboards with four SATA ports and an integrated J1900 cost about $80, they sip power, and they’d easily surpass my minumum requirements. It almost seemed like a no-brainer.

However, I am glad I did a little more research. I ended up buying an AMD 5350 processor and a matching motherboard. My research told me that the 5350 is 15 to 20 percent faster than the J1900, and it should only use 3 watts more at idle. Also, the Intel J1900 boards all used laptop DIMMs. The AMD 5350 motherboard and CPU ended up costing a few dollars more, but I probably saved that money when I was able to buy less expensive RAM.

The Motherboard and CPU

I prefer to use AMD processors whenever it makes sense. There are fewer situations where this makes sense every day, but this does happen to be one of them. Intel divides up their market by not offering certain features on different processors in their line-up. There have been plenty of times when newer, more expensive Intel processors are missing features that their older processors had. I’ve been bitten by this before when I replaced a Core Duo laptop with a Core 2 Duo, and the Core 2 Duo didn’t have VT extensions.

This isn’t something I’ve experienced with AMD processors. With AMD, I expect to find newer, better, faster processors to have all the features of the previous generation of processors.

Also, the AMD 5350 has a huge advantage over the J1900—the 5350 is nearly 20 times faster when it comes to AES encryption. Using all four cores, the Intel Celeron J1900 wouldn’t even be able to keep up with a single SSD. The AMD 5350 should have no trouble keeping pace with the full throughput of a pair of SSDs using only a single core. This is very important for me, because I intend to encrypt my disks.

All the comparable AMD and Intel motherboards I looked at top out at four SATA ports. It would be nice to have more, but I can always add a SATA PCIe expansion card.

How much RAM? As much as possible.

I learned two or three things very quickly when I started using VMware over 15 years ago. Unless you’re trying to crunch lots of numbers, CPU is probably not going to be your bottleneck when trying to shoehorn more virtual machines onto the same server. You’re going to run out of memory first.

Memtest86+ Running On The Power Efficient Server

That said, you can almost always shoehorn one more virtual machine onto a server. On more than one occasion in the early VMware days, I reduced the memory of all the virtual machines on my desktop by 10% or so just to make room for one more machine.

Memory is cheap and plentiful now, so there was no reason to not max out the memory in this little server. That’s only 16 GB—half as much as my desktop. It’s also much more than I expect this virtual machine host to ever need.

Choosing storage

The choice of storage hardware depends very heavily on the software being hosted inside your virtual machines. For my use cases, I don’t need a lot of storage. I could get away with using a pair of small solid-state drives in a mirror. They’d be nice and quiet, and would barely use any power.

However, I want to experiment with dm-cache. dm-cache allows you to use a fast storage device like an SSD as a read/write cache for slower devices. My hope is that dm-cache will allow the noisy, power-hungry spinning platter hard drives to spin down most of the time. I need both SSDs and conventional hard drives in order to test dm-cache.

I chose to mirror a pair of Samsung 850 EVO SSDs to use as the boot device and dm-cache device. The Samsung EVO 840 drives have done extremely well in the SSD Endurance Experiment, so I thought Samsung’s newer models were worth trying. They’re fast, durable, and reasonably-priced. That’s a good combination.

I also bought a pair of 4 TB Toshiba 7200 RPM disks. I was planning to buy 5 TB Toshiba drives, because they are a better value, but they were on backorder when I was building this server. Backblaze seems to have nice things to say about the 4 and 5 TB Toshiba hard drives, and I’m still a little unhappy with Seagate. The Toshiba drives were also priced a little better than the other drives I liked.

I set up the drives using Linux’s software RAID 10 implementation. Most people don’t know that Linux lets you create a RAID 10 with only two drives. This is handy, because it makes it extremely easy to add drives to the RAID later on. Also, Linux’s RAID 10 implementation allows you to use odd numbers of drives in the array. That means I can add a third 4 TB drive later on for an extra 2 TB of usable space.

Even if dm-cache ends up being terrible, I’ll still end up with a versatile server. I can always store most of my virtual machines on the SSDs, and use the 4 TB drives as a NAS.

Choosing a case

This is usually the easy part. I’m pretty easy to please when it comes to cases. If it were still easy to find beige cases, I’d probably still be buying them today. Since I can’t do that, a simple black case is usually my preference.

Since I was already planning on using a mini-ITX motherboard, I started out focusing on small cases. The Cooler Master Elite 130 and Cooler Master Elite 110 were both at the top of my list. They’ve both small, reasonably priced cases with just enough room for all the components I was using. They’re also big enough to fit a standard ATX power supply, and that makes shopping a little easier.

This would have been a fine way to go, but I decided it would be best to have room to add more hard drives later. My friend Brian has used the SilverStone DS380B case in at least one of his do-it-yourself NAS builds. It is an awesome case, but I decided to be a cheapskate and use a simpler case. I ended up buying the Antec One.

All Part Installed In The Antec One ATX Case

I’m very pleased with the Antec One case. Much more pleased than I had expected. It has five 3.5” drive bays, so I can easily add three more drives. If that’s not enough, I can always 3D print some adapters to mount hard drives in the three 5.25” drive bays. I doubt it would ever come to that.

The tool-less 3.5” drive bays are mounted transversely, so you don’t have to worry about bumping into other components when removing or inserting drives. This was one of the features I always wished my desktop computer’s NZXT Source 210 case had.

The Antec One case also has a pair of 2.5” drive bays. The second 2.5” drive bay is my only complaint about this case. Instead of being a normal drive bay that you slide the drive into, it is instead a set of four screw holes on the floor of the case. I was able to connect the cables to the second SSD in that “bay,” but I don’t like the way the cables press on the floor of the case.

Choosing a power supply

Generally speaking, larger power supplies tend to be less efficient when operating at a small percentage of their maximum capacity. There are also different levels of “80 Plus” certification that define how efficient a power supply is while operating at different percentages of its maximum load.

The difference between the lowest and highest “80 Plus” certifications is between 10 and 14 percent depending on load. The components in this build don’t consume much power, so I don’t think it is worth investing in a more efficient power supply. That extra 10 percent efficiency will only save about three watts. That’s only only 1 kWh every two weeks.

I ended up buying the Corsair CX430 power supply. It is a good value, reasonably quiet, and I could fill the Antec One case with hard drives and still have plenty of power to spare.

Notes on dm-cache

I made some poor choices in my initial setup in regards to dm-cache. Some dm-cache automation has been integrated into newer releases of the LVM toolset, but I’m running Ubuntu 14.04 LTS on my new server, and its LVM tools are too old for this. Also, it sounds like the LVM dm-cache automation requires that both the cached device and the cache reside in the same volume group. That isn’t how I wanted to set up my volumes.

I seemingly managed to get dm-cache configured, but it didn’t seem to be working correctly. I set up cache and metadata devices, and I created and mounted a dm-cache device. It worked in the sense that I was able to mount the new cached block device, and I was able to run benchmarks against it.

Unfortunately, it never generated any reads or writes on the SSD. The underlying RAID device was also constantly writing at about 1 MB per second all night.

UPDATE: I upgraded the operating system on my virtual machine host to Ubuntu 16.04 since writing this blog post. I’ve done more testing with dm-cache, and I am very pleased with the performance upgrade!


One of the first things I do when choosing a CPU is browse the results over at It is a pretty good CPU benchmark, and the test results are broken down quite well, so you can see if your chosen CPU will meet your needs. This is how I knew that the J1900’s AES performance wouldn’t be at all suitable for my needs.

The results at Geekbench tend to vary quite a bit. There are a lot of reasons why benchmark results may vary. Some people’s machines may be overclocked, or they may have faster memory installed. I always assume that my own machine will end up with a benchmark score somewhere around the average.

64-bit benchmark

I’m very pleased to say that my Geekbench scores for my AMD 5350 are good enough to land on the first page of results, and most of the faster results are running at a higher clock speed. This is better than I hoped for, and quite a bit better than most of the Intel J1900 results.

The disk benchmarks are less interesting. They usually perform as expected. It was a fun benchmark, though, because this is the first time that I’m running a mirrored pair of solid-state drives at home.

According to Bonnie++, the Samsung 850 EVO SSDs in a RAID 1 are getting 291 MB/s sequential write speeds and 575 MB/s sequential read speeds. That roughly matches the write speeds of the Crucial M500 in my desktop computer, while reaching almost double the speed of the single M500 on reads. That’s about what I was expecting to see, because the mirror allows data to be read independently from each drive.

Version  1.97            ------Sequential Output-------  --Sequential Input-- --Random-
Concurrency   1          -Per Chr-  --Block-- -Rewrite-  -Per Chr- --Block--- --Seeks--
Machine             Size K/sec %CP  K/sec %CP K/sec %CP  K/sec %CP  K/sec %CP  /sec %CP
SSD Mirror        31776M   317  99 298671  60 184190  36  1924  98 588349  60 +++++ +++
7200 RPM Mirror   31776M   320  99 143929  28 104534  17  1981  95 398087  30 561.6  29

The results for the Toshiba 7200 RPM drives were predictable as well. The speed of a spinning drive is proportional to the disk’s rate of rotation and the density of the data. A 7200 RPM disk is going to read about 33 percent faster than a 5400 RPM disk. A single platter that holds 1 TB is going to read faster than a similar platter than holds 500 GB, because more data passes under the heads on each rotation.

The two Toshiba 4 TB disks in the RAID 10 array are getting about 140 MB/s sequential write speeds and 388 MB/s sequential read speeds. Spinning drives usually read faster than they write, and when you combine that with the read speed boost of the RAID 10, you end up with read speeds almost three times as fast as the write speeds.

That doesn’t tell the whole story, though. The Bonnie++ benchmark shows that the Toshiba RAID can only manage 560 seeks per second. These old school Toshiba disks can’t even come close to competing with the Samsung EVO SSDs on seeks per second. In fact, poor old Bonnie++ won’t even display the seek times for the Samsung EVO drives—the number is just too high. It ought to be in the tens of thousands per second range, though.

Power consumption

I am very happy with the numbers I’ve seen on my Kill-A-Watt meter. At idle, with a few virtual machines booted up, the new server consumes about 34 watts. The workload in the virtual machines has enough slow, steady writes that the 3.5” hard drives will never get to spin down. That pair of disks account for about 9 watts—that’s about 25% of the idle power consumption.

If you choose to build this server with only solid-state drives, then your power consumption would be quite a bit better than mine! I’m hoping that dm-cache will be able to cache some of that disk access that’s keeping the spinning media busy.

Power usage under load isn’t bad, either. The server stays just below 50 watts most of the time while running disk and CPU benchmarks concurrently, but with a few spikes up to 52 watts. For reference, my desktop computer uses over 120 watts at idle.

This is close enough to the J1900 at idle, and I feel that the 15 to 20 percent better performance of the AMD 5350 is worth the extra consumption under full load.

Moving these virtual machines from my desktop computer to my new power-efficient server means I can now turn off my power-hungry desktop while I’m asleep or out of the house. That would be a direct savings of over $30 per year. With the weather here in Texas, I’d probably save almost as much in air conditioning costs as well, with the ancillary benefit of having a cooler home office.

The conclusion

I’m very pleased with this energy-efficient server I put together. It easily met my energy consumption goals, and it has more than surpassed my CPU and storage needs. The AMD 5350 is a good little processor that doesn’t even break a sweat keeping up with full disk encryption on the fast Samsung 850 EVO solid-state drives.

I’m hopeful that dm-cache will work well. The server has been up and running for almost three weeks now, but I’ve been too busy with other projects to spend time playing with dm-cache. I’d like to write more about dm-cache and other topics related to this virtual machine server in the near future.

Do you have a server at home to host your virtual machines? It is relatively quiet and power efficient like this one, or is it a loud rack mount server with Xeon processors and ECC RAM like the one this blog lives on?

3D Printed Breadboard Spring Vise

| Comments

My friend Brian and I have been messing around with breadboards, Arduinos, and ESP8266 boards quite a bit during the past several months. We learned pretty quickly that it is difficult to keep the various boards you’re working with from flopping all over your desk, and it is even harder to line things up to take a decent photograph.

There are a lot of brackets on Thingiverse designed to hold a breadboard and an Arduino in place. I didn’t think it would be difficult to adapt one of those designs to also hold a tiny ESP-01 WiFi board in place as well.

Then I saw the awesome-looking Stickvise over at The Stickvise is quite versatile, but it is primarily used for holding circuit boards in place. The springs hold your part securely in the Stickvise while still allowing for parts to be swapped in and out quickly.

This gave me the idea of adding some spring-loaded vise jaws to a breadboard. I didn’t use springs, though. I used simple rubber bands.

Skipping to the completed breadboard “spring” vise

Here’s the final iteration of the breadboard spring vise. It works even better than I expected. I can load it up with Arduinos or other circuit boards and shake it around quite vigorously, and all the boards stay in place. I never thought it would be this sturdy, and still takes almost very little time and effort to insert or remove something from the jaws.

Breadboard Spring Vise with Various Boards

The entire breadboard vise assembly consumed less than 75 grams of ABS plastic. That is only about $1.25 worth of material.

Let’s go through some of the design process.

Offset rails

I wanted to be able to attach two vise jaws along each side of the breadboard. That means the rails that the jaws ride on can’t be directly across from each other. One solution to this problem would be to use different rail spacing on each side of the vise. I didn’t like this solution. I wanted to be able to print a single part that would work in any location around the breadboard.

I ended up offsetting the rails to one side. That way the rails wouldn’t touch when you spin the clamp around 180 degrees. I wanted to have a pair of jaws along each side of the breadboard, so I divided the length of each jaw into five sections. Each section can have a rail, a post for a rubber band, or nothing at all. The center section always gets a rubber band post. That way the posts are always directly across from each other.

Breadboard Spring Vise Showing Offset Rails

They say a picture is worth a thousand words.

Why are the rails shaped like triangles?!

Round rails were the first thought that came to my mind, but they wouldn’t print very well if they’re laying down flat on the print surface. Printing them standing on end wasn’t a good idea, either, because they’d be weakest in the direction where they needed to be strongest!

Square rails would print just fine. Unfortunately, the slots they’d be inserted into would have a bridge on top. That bridge might sag, and the rails wouldn’t fit well if they did.

Triangles have neither problem. They’ll print just fine laying down, because they’re flat on the bottom. They don’t have the bridging problem, because the sides are 60-degree angle.

Three-sided cylinders are problematic

I thought using a three-sided cylinder for the rails was a smart idea—it wasn’t. It would have been easier to work with the triangle if I knew the length of the sides or the height of the triangle. Instead, I knew the diameter of a cylinder. The diameter of a weird, three-sided cylinder. That meant I was often just guessing at dimensions until things looked right. I really hated doing that in OpenSCAD.

Spacing the rails

At first, I was barking up the wrong tree, and I was making things more complicated than they needed to be. I was trying to space up to five rails out equally along each jaw. That means I would need 10 slots in the base piece in order to mount two jaws on each side.

I had a lot of trouble getting the math to look right. When I finally did, I realized that it would be difficult to transfer this logic over to the base of the vise in order to carve out the slots. It would have required transferring the spacing from two sets of jaws over to the base, and that seemed too convoluted.

Breadboard Spring Vise

Instead, I did the math to evenly space 10 slots along the base piece of the vise. From there, it was easy to reapply that same math to the jaws.

Rails Vs. Slots!

On my first iteration of the vise, the rails were way too flimsy, and the slots were way too small. I really wanted to know how viable this design was, though, so I spent five minutes with some sandpaper to force everything to fit together.

The vise was able to do its job, but the rails were quite flexible. I only had to adjust one variable to make the rails and slots bigger, but they still weren’t going to fit.

I bumped up the width of the rails from 5mm to 8mm. That increased the cross sectional area by over 2.5 times, and it was definitely beefy enough now. I increased the size of the slots by an additional 10%.

I should mention something here. The triangular slots only have a ceiling near the outer edges. I did this to save on print time and materials. I just had to make sure the the walls were high enough to hold the outside edges of the rails in place.

In part due to my measurement guesswork regarding the “diameter” of the 3-sided cylinders, I forgot to increase the height to compensate for the taller rails. They weren’t held in place at all, so they were just flopping around in there.

I chopped out a small corner of the breadboard vise, and I printed some test parts are various sizes. I zeroed in on a good size on my second test.

Always test a small section

The breadboard spring vise has 10 rails that need to fit into 10 slots. I should have carved out a single rail and a single slot piece right from the beginning. It is easy to do, and it would have saved me quite a few hours of printing time.

Download my Breadboard Spring Vise

The OpenSCAD source for my breadboard spring vise along with STL files are available for download at Thingiverse and Github.

If you can’t print your own, you can buy a Breadboard Spring Vise at!

Would I Still Buy a QNIX QX2710 in 2015?

| Comments

I woke up last week, sat down at my computer, and one of my QNIX QX2710 monitors wouldn’t wake up. It was yet another in a series of small, unlucky happenings that have been occurring here for the last month or so. Fortunately, I know exactly what to do when a monitor dies—replace it!

My QNIX Monitors at My Desk

I almost immediately placed an order for another QX2710, but I decided to investigate the market first. It has been almost two years since I bought these monitors, and I’ve known the 27” QNIX to be a great value for a lot longer than that. I haven’t been paying as much attention lately, but 4K monitors have gotten quite affordable. Maybe there’s something now that fits my needs better than the QX2710.

Is it time to move up to 4K (UHD)?

It isn’t time for me to move up to 4K yet. The first problem is all of the reasonably-priced 4K monitors are using TN panels. I don’t ever want to go back to TN. I prefer the vibrant colors and large viewing angles of my QNIX’s PLS panels.

Also, all of the currently available 4K monitors are limited to a refresh rate of 60 Hz. After gaming for so long at 120 Hz, there’s just no going back. First-person shooters just look so much smoother at 120 Hz!

QNIX QX2710 at 120 Hz

Even if I could tolerate downgrading to 60 Hz for gaming, I’m not convinced that my gaming machine has enough horsepower to maintain 60 frames per second at 3840x2160. My machine struggles to maintain a constant 120 frames per second in Team Fortress 2 at 2560x1440. When things get busy, it drops down almost all the way to 60 frames per second.

Borderlands 2 and Borderlands: The Pre-Sequel spend as much time under 60 frames per second as they do above. I don’t think either game would run very smoothly at 3840x2160.

These concerns of mine shouldn’t worry you if you’re not as interested in gaming as I am!

Samsung 28” 4K U28D590D

One of the first monitors I looked at was the Samsung U28D590D. It is a 28” monitor with a 3840x2160 TN LCD panel. They’re available at Amazon for under $500 and at eBay for under $400. That’s only about $100 more than a QNIX QX2710, and that buys you a name brand and more than double the pixels.

I only game on a single monitor, so I could have replaced my dead QX2710 with a 28” Samsung 4K. The biggest problem there would be the huge differences in DPI between the two monitors. The Samsung has a DPI of around 150, while the QNIX has a DPI of around 108. That means that a window moved from the Samsung to the QNIX would look almost 40% larger.

I’ve used a 15” laptop plugged into a 24” monitor. I’d have the same problem with a 4K monitor and a 1440p monitor. I’d end up doing work on the 4K and playing games on the 1440p. That’s not appealing to me.

The pixel density upgrade of the 28” UHD monitor would be nice, but my monitors sit just out of an arm’s reach, so my 27” QHD monitors should almost qualify as “retina” by Steve Jobs’s definition.

Crossover 40” 4K 404K

The Crossover was a tempting and interesting surprise. It is a 40” monitor with a 3840x2160 TN LCD panel. At around $700, the big Crossover monitor costs a lot more than the QNIX, but it would allow me to scale down to a single monitor AND increase my pixel count at the same time. The Crossover 404K was the only monitor that truly made me question whether I should buy another QX2710.

I was worried about the physical size. The Crossover is 12” wider than a 27” monitor. This is pretty close to ideal, because that’s about the limit of my viewing area without having to turn my head.

The part that I’m less excited about is that the Crossover is 6” taller than a 27” QX2710. As far as I’m concerned, my QNIX monitors are pushing the limits of comfort on the vertical axis. The Crossover would end up sitting just a few inches off the desk, and I’m not so sure I’d be happy with that.

I also had some concerns about using this monitor for gaming. Just like with the Samsung 4K, I’d be unhappy about downgrading to a 60 Hz TN panel, but I might be willing giving up my 120 Hz gaming to finally have a single, huge display!

The Crossover 40” has roughly the same pixel density as my QNIX 27”. That means all my terminal and text editor fonts would look nearly identical on either monitor from the same viewing distance. The difference is that the Crossover would give me over 8 million pixels on a single monitor vs. 7.2 million pixels across TWO QNIX QX2710 monitors.

If I didn’t know or care about high refresh rate gaming, this would definitely be the monitor to buy. I could fit miles and miles of terminals, text editors, and web browsers on this thing!

Asus 27” MG MG279Q

There were no QHD IPS or PLS monitors with 120 Hz refresh rates available when I bought my first QNIX monitors. This is no longer the case. The ASUS MG279Q is the same size and resolution as the QNIX QX2710, but the ASUS comes from the factory supporting a 144 Hz refresh rate!

If you are looking for a trusted, name-brand monitor for gaming, I don’t think you can do any better than the ASUS MG279Q. High refresh rates are simply amazing when playing first-person shooters, and all games look great on an IPS panel.

The ASUS MG279Q wasn’t a good choice for me. I can buy two QNIX QX2710 monitors for less than the price of the MG279Q. That means I’d want to buy two 27” QHD monitors instead of one!

I don’t want to pay more than double for a 20% higher refresh rate, and I’d prefer to have a pair of identical monitors on my desk. Even if it means I’ll have to debezel a new QX2710 shortly after it arrives.

LG 34” 34UM95C 21:9 Ultrawide

I really like the idea of ultrawide monitors, and the 34” LG 3440x1440 monitor seems like it would be the ideal size. The 34” LG ultrawide is about the same height as a 27” 2560x1440 monitor, but it is an extra 880 pixels wide. That happens to be about how much of my two monitors I can use without having to turn my head.

Unfortunately, I think the LG 34UM95C costs too much. At over $800, it costs more than either the 40” Crossover monitor or three QNIX QX2710 monitors. That’s just too much of a premium for 880 more horizontal pixels.

LG has smaller 21:9 monitors, but I don’t find them very interesting. Their 29” 2560x1080 monitor is the same width as a 27” 2560x1440 monitor, but with 360 pixels missing from the bottom. You end up paying extra for less monitor with the LG 29” ultrawide!

QNIX 27” (QX2710)

I may have thought about buying the Crossover 40” 4K, but I didn’t think about it for very long. I ended up ordering another glossy QX2710 from Amazon. I bought the last two through eBay, and they arrived from overseas very quickly, but not Amazon Prime quickly. It cost me a little more this way, but I was in a hurry!

Why did the QX2710 fail?

One of the unlucky things that happened to us last month was our air conditioning died. It took much, much longer to get the problem resolved than I would have liked, and my home office was up over 95° for several days. It is normally around 72° in here.

I don’t know that I can blame the failure on the additional heat, but I do have a reason for bringing it up. On one of the hottest days, I noticed a line of flickering green pixels down the center of that monitor when visiting a dark gray website. The first thing I thought was that overclocking that monitor to 120 Hz must be pushing this monitor right to the limit if the extra heat is pushing it too far.

I clocked that monitor down to 110 Hz, and the problem went away. I hadn’t thought about it again. It was nice and cool in my office the morning after the air conditioning was finally repaired, and that’s also the morning that the monitor stopped working.

I’m not sure if there is a correlation between the monitor failing and the heat, but I don’t trust coincidences. One of these days I’ll crack the dead monitor open to check for simple things like bad capacitors. The control board is now sealed in with JB Weld, so I’ll have to cut my way in. I’m not in a hurry to do that!

Why would you buy another one after this trouble?

Even with a failed monitor, I’m confident that I made the right choice when I bought these monitors. The first two monitors cost me $651. A pair of the least expensive name-brand 27” 1440p monitors would have cost me around $1100 at the time. Even after spending almost $300 on a replacement this week, I am still ahead by $150.

I still feel that the QNIX QX2710 is still one of the best values out there. There are other comparable name-brand monitors available today, and they don’t cost three times as much now. The 27” ASUS PB278Q is only about $150 more than the QNIX QX2710, and the ACER K272HUL is less than $100 more.

Update: A Problem With The New QX2710!

They’ve redesigned the QX2710. I finally got a chance to take apart my new QX2710 to remove the bezel, and I was pretty disappointed when I got inside. The QX2710 no longer uses the same metal frame around the LCD panel, and there is a new circuit board extending almost an inch below the screen.

I think debezeling would work as well as before, but it won’t work well in my case. I wanted to have two matching, debezeled monitors again, and the new monitor looks nothing like my old one. I removed the last remaining piece of the monitor’s stock stand, and I put it back together for now.

There are some other changes as well. The panel is different, and the color output doesn’t quite match the old models. I was able to fiddle around with ICC color profiles, and they look close enough for me now.

I’ve been reading rumors that the new QX2710 glossy monitors can no longer be overclocked. They say if you do overclock them that they will just skip frames. My new monitor made it to 110 Hz. I do not have a good enough camera to verify that there is no frame skipping, but I’m quite confident that there isn’t any.

The simple act of quickly dragging a window around the screen looks much smoother at 120 Hz than it does at 60 Hz. I monkeyed around with the refresh rates on both monitors, and I dragged windows around all over the place. I’m pretty confident that neither screen is skipping frames. One of these days, I’ll end up buying a DSLR, and I’ll be able to confirm this!

Old, better model QX2710 at 120 Hz New model QX2710 at 102 Hz

I finally bought a DSLR, and I was able to test both of these monitors for “frame skipping” and “frame doubling.” I am happy to report that they’re both able to overclock flawlessly. When I set the shutter speed to 1/400 or faster, the camera shows a single white bar. This shows that there is no “frame doubling.”

The pictures above were taken with a shutter speed of 1/60. At that speed, you can see some light from the next and previous bars. This shows that there is no “frame skipping.”

I have yet to decide what to do about this situation. The new monitor is just fine, but my desk looked so much nicer with a pair of matching, debezeled monitors!

Update: ICC color profiles for differing QX2710 monitors

Aside from my bezels no longer matching, the biggest problem with running an old QX2710 right next to a new QX2710 is the big difference in their color output. I think both monitors look just fine on their own, but the differences were driving me crazy.

I downloaded just every ICC profile from the QNIX Monitor Owner Club forum post, and I tried them using them in all sorts of combinations. I just couldn’t tune in any combination I was happy with. The new monitor was limited to about 110 Hz at best, and that was just so much brighter than the old monitor at 120 Hz. I was more than a little tempted to buy a color calibration device.

I’ve come to a compromise that is close enough for me. I found a pair of color profiles that were close, but my old QX2710 was still too bright. I tried adjusting the brightness with the controls on the monitors, but that didn’t get me far enough.

I am now running the old monitor at 102 Hz and the new monitor at 96 Hz. They’re definitely not identical, but they’re pretty close. Close enough that I stopped noticing the difference. At least until I started writing this update!

These are the ICC color profiles I’m using.