If you have access to the right equipment (a 3d printer and a laser cutter, both optional), the assembly process should be very simple and only take a few hours. You will need to solder a handful of components to the board, but is all very simple through-hole soldering, no surface mounts.
Here are the parts you will need for this project and their price at the time these instructions were published.
1x – IOIO for Android – $39.95
3x – Solid State Relay – $14.85
1x – Bridge Rectifier – $2.69
1x – 100uf/50v Capacitor – $1.00 (Radioshack)
1x – 10uf/25v Capacitor – $0.45
1x – 15v Switching Regulator - $13.34
2x – 3 pin Spring Terminal – $3.00
1x – Break Away Male Headers – $2.95
1x – Break Away Female Headers – $3.95
3x – 220ohm Resistor – $1.19
1x – TMP36 Temperature Sensor – $1.50
1x – 3×2 Protoboard – $4.50 (or etched circuit)
Total Component Cost – $89.37
You will also need an Android 2.2+ device. If you don’t already have one, you can usually find a used LG Optimus or similar phone on Ebay for $40, making the total cost roughly $140 if you have access to a 3d printer.
Step 1 – Solder Female Headers to IOIO
Solder the female header pins to the ports 7,10,12,46, VIN, 3.3v out and Ground as show in the following picture. If you use the break-away headers your connections should look a bit nicer than in the ones in the photo. You may also wish to cover the power LED with a piece of electrical tape if you don’t want a red glow coming from the thermostat.
Step 2 – Etch Your Circuit Board
If you have access to a laser cutter, mini mill or another means of etching a circuit board, I recommend you use the Protoboard_Negative.pdf to cut and/or etch it. The etched copper will be on the back side of the circuit board, so the PDF contains a mirror image. Once etched, drill out all of the pad holes with a #60 drill bit (0.04″), with the exception of the ones for the rectifier; you will need to make those slightly larger with a #56 drill bit. You should end up with a board that looks like this.
If you do not have a means of etching a circuit board, you can manually make these connections with wires or by solder the leads together after connecting the components.
Step 3 – Connect the components
Next you need to solder the components to the front (non-copper) side of the board according to the Protoboard_Print.pdf diagram. You should end up with a circuit board that looks something like this.
In the remaining holes you will need to solder male header pins so that they stick up on the back (copper) side of the board. These will be what join the circuit board to the IOIO. The size of the holes drill precisely matches the header pin size so they will stand in place by themselves while you solder them.
Step 4 – Attach the IOIO to the Circuit Board
Place the IOIO on a table with the female header pins facing upward and gently lower the circuit board on to it so that the male header pins slide into the female connectors. It’s easiest if you start with pin 46 and start aligning them one at a time, using a pair of needle-nose pliers if necessary.
Using a 3D Printer, print both the case and lid with the following STL files. The lid as a tongue that slides into a grove in the base to make an enclosed, mountable unit once the components have been added.
Step 6 – Mount the Case to Your Wall
Turn off the power to your furnace and remove your existing thermostat. Feed the thermostat wires through the back of the case. Using the screw holes printed in the case, screw the thermostat case to the wall so that the USB port hole is on the right side of the case.
Step 7 – Insert the IOIO and Circuit Board and Connect Your Thermostat Wires
Slide the IOIO and circuit into the right half of the case with the back side of the IOIO facing the wall so that the USB port lines up with the rectangle hole on the side of the case. Using the spring terminals in the top left corner of the circuit board, connect your thermostat wires in the following order from top down:
C (cyan) – Auxillary Power
RH (red) – Heater Power
RC (red) – Cool Power
Y (yellow) – Cool Relay
G (green) – Fan Relay
W (white) – Heat Relay
Many homes only have a single red wire that provides the power for both heat and cool. You will need to jumper RH to RC with a short wire if this is the case.
Step 9 – Connect Your Android Device
Slide the case lid onto the case and adhere your Android device to it using an adhesive such as Velcro or 3m strips. Connect the Android device to the IOIO via a short USB cable. Once it is connected, turn the power back on to your furnace and turn on the phone
Step 10 – Install the Android Thermostat Apps
You will need to install both the Server and Client applications on the device. Once you’ve installed these applications, launch the server, press home and then launch the client. In the client, click anywhere on the screen to load the menu and choose Select Server. Click the Scan button and select the server that shows up. You should be able to use your thermostat now.
NOTE: There are some risks involved in building your own thermostat. Safety has been a big concern of mine while building this and there are several safety measures taken such as using relays that fail open, limiting the allowable temperature range and the need for a cyan power line restricting availability to modern furnaces with built in safeguards. I have no formal training in this area though. BUILD AND USE AT YOUR OWN RISK.
A mechanical fail safe will be added to the next revision of this design to maintain a safe temperature in the event of the application crash or lock up. Having multiple furnaces may provide some protection against this possibility. If your house has a single furnace, I recommend you add this fail safe yourself or wait for the next revision.