October 19, 2013

Wireless HVAC Sensors (temperature and humidity)

As I've been working to transition control of my HVAC systems over to my Raspberry Pi there has always been one big hurdle to overcome: how to I get the temperature reading from the room I'm interested in to the Raspberry Pi in the basement?

August 24, 2013

IR Remote Repeater

Last year I installed my TV on the wall. I really liked how it turned out, but I didn't like the look of cables running up the wall from my DVD player. So I put a recessed box behind the TV, routed the A/V cables through the wall and stowed the equipment in a nearby closet. It cleaned up the look of the room a lot, but there was a hurdle to overcome: how to I control the A/V equipment with a remote? I needed an infrared (IR) repeater to pick up the signal near the TV and repeat it in the closet where the media equipment is. I know there's commercial solutions to this problem, but I figured it would be easy enough to build my own.

August 20, 2013

Building a 3D Printer

I've decided to do it. I'm going to join the ranks of those who have a 3D printer in their homes. While having the ability to print custom parts for future projects will be a definite benefit, I must say that the lion's share of the fun will be in the making of it.

Now, I know there is no shortage of plans and designs available for DIY 3D printers contributed to by a community of makers, hackers, hobbyists, etc., I've decided not to go with an existing design. My schooling focused on robotic kinematics and control as well as mechanical design. It seems a shame not to put that learning to good use. Perhaps I'll blaze some new trails in the process.

June 23, 2013

24V AC Solid State Relay Board

My post on the hardware connections between my Raspberry Pi and HVAC wires has become one of my higher traffic posts so far. Apparently people are searching for ways to connect Raspberry Pi's to thermostats (or Arduino or any other microcontroller for that matter). So I decided to design a circuit board to fill that space.

May 12, 2013

Sous Vide Part 3: Advanced Development

In part 1 I introduced the concept of sous vide and why you should be interested in it. Part 2 covered a basic and low cost way to get your feet wet with sous vide. Today, part 3 will detail the more advanced stand alone controller I designed.

April 29, 2013

Thermostat Software


EDIT: I don't profess to be a programmer, even though I can make my way through a few different languages. The code I present here works fine, but it's not very pretty or efficient. I think it's still useful from an educational standpoint and has a few ideas in there that are worth looking at and it's easy to get up and running. But I will soon be ditching this software in favor for some written by Wyatt Winters for his Rubustat (though I'll try to find a way to re-implement the checking of outdoor temperature to determine heating/cooling).


In this post I explained that I tasked my Raspberry Pi with controlling the furnace and air conditioner in my house. Here I describe the software that went into it.

The requirements I wanted were simple enough:
  1. Behave similarly to a commercial thermostat
  2. Schedule temperature set points
  3. Automatic switching between heating and cooling based on outdoor temperature

April 14, 2013

Sous Vide Part 2: The Early Version

In part 1 of this post I talked about what sous vide is and a little about how it can transform foods. I'm not going to delve into the world of opinions on how fantastic it is, unlocking unheard of flavors, tenderness beyond belief, etc etc. I assume that if you've come this far on the internet you've already read a lot about all that, so I don't need to convince you. Instead, I'll lay out my experience tinkering with my homemade controller, how I did it, and how you can do it, too.

April 13, 2013

Raspberry Pi Thermostat Hookups

I recently replaced my thermostat with my Raspberry Pi. In this post I explain how to make the hardware connections between the Raspberry Pi and the house wiring. Check out the Makeatronics Store if you want a PCB that does the connections for you.

In my house (and the vast majority of others) the thermostat wiring runs at 24V AC. There's a live wire (or two, depending on the setup) coming into the thermostat, and several others leaving to control the different components of the HVAC system. The thermostat's job is to close the circuit between the live wire and the appropriate control wire based on the temperature. A relay is an easy way to do it, but I find relay's cumbersome with their (usually) breadboard unfriendly pin layout and larger-than-can-be-supplied-by-gpio switching current requirements.

March 14, 2013

Little Wire SMD

I came across the Little Wire a few months back. I thought it was a pretty cool idea to have a few GPIO's accessible over USB. More than that, it also offers several serial protocols (I2C, SPI, etc), dual channel ADC, and even works as an AVR programmer, all in a neat little package! To make it even littler, I designed an SMD version of it.

I especially liked it for using a software implementation of the USB protocol on an attiny, which means I should be able to use an attiny in place of the much larger (and more expensive) FTDI chip.

March 3, 2013

(Mostly) Organized Resistors in 20ish Drawers

Organizing electronic components is important if you want to spend more time building prototypes than looking for the right resistor. The problem is, there's just way too many to organize without spending a ridiculous amount of money and space on a billion little drawers....

February 24, 2013

Sous Vide Part 1: What and Why?

I was introduced to the concept of sous-vide cooking one day while listening to Science Friday. In a nutshell, sous-vide cooking involves vacuum packing your food (usually meats) and placing them into a temperature controlled water bath at lower-than-normal cooking temperatures for longer-than-normal cooking times.

February 10, 2013

Efficiently Reading Quadrature With Interrupts

Once you start wanting to control the position of a motor through feedback control, you will likely end up using a rotary encoder as the feedback device. Encoders can be broadly categorized as:
  • Absolute position
  • Incremental position
Absolute position encoders will tell you what the angular position is all the time, even between power cycles. Most use "grey code" (a modified form of binary) with several "tracks" (bits) to read position.

Incremental position encoders will tell you what the angular position is, but only relative to where it was when you started paying attention (usually on power-up). Two common types of incremental outputs are:
  • Incremental (clever name)
  • Quadrature
Incremental is rather useless for position control because it doesn't give you any information about what direction you are turning, just that you are turning. Quadrature encoders give you direction as well as incremental position. This article deals with efficiently reading quadrature output on an Arduino by utilizing external interrupts and some AVR bare-bones code.

January 5, 2013

Why another blog on the blogosphere?

I like to build stuff. I find joy in spending countless hours tinkering on various projects to do things that I think are cool, even if they are already commercially available. There's something about knowing how and why something works, and recreating it myself. Plus, I think the cranial exercise is good for me.

I'm a recent graduate from the University of Utah Mechanical Engineering department. There I was introduced to the field of Mechatronics which quickly captivated my heart. I decided to do the extra coursework and projects to earn a mechatronics certificate along side my bachelors degree. Now, as a "real" adult, when I come home from work I spend a fair amount of my free time delving into various projects--partly to do things I find useful, and partly to expand my knowledge of the subject.

I've decided to create this blog as a way of making available the information I learn while working on these projects. The hope is that I'll provide enough detail for others to recreate what I've done, plus a healthy dose of theory where applicable.

While I intend for non-material things to be freely available (knowledge, plans, code, etc.), there are material objects, some of which I have custom made (i.e. circuit boards with a minimum quantity to order), that I will make available to purchase. I don't plan to get rich off of anything I post here, and the things I do sell will be just enough to cover manufacturing costs and maybe a little extra to fund additional projects.

Welcome, I hope you like it here.