It has been nearly 6 months since I published the first revision of Android Thermostat. After a lot of work and several setbacks I’m very glad to finally be able to announce revision B of the hardware and version 0.50 of the software. My main two goals with this revision were to make it much more simple for others to reproduce while keeping the cost as low as possible. It took a lot of work, but I feel I’ve been able to achieve those two goals and several others. I’d like to walk you through some of the new features in this hardware revision as well as the software changes since the initial release.
All New Circuit Board
The changes to the circuit board have been drastic. With Revision A of the hardware you needed access to a laser cutter and drill press to create your circuit board and had to use a corrosive etching solution. With this revision the you can now order a print of your circuit board from any shop you wish. It costs around $20 for 3 copies of the board, or you can use this thread to buy individual boards from others. This was a big barrier to entry for many people and I’m very glad to be moving to a professional board layout that will open this project to a wider audience and greatly reduce assembly time.
Although the professional board adds up to $20 to the cost, I’ve worked hard to find less expensive components for the rest of the board to bring the total cost down to $12 below the Revision A cost. Several of the new components provide for more reliable temperature readings and an overall more robust system. The new board has also shrunk by two square inches from 3″x2″ to 2″x2″, and gained labeling so you know exactly where to place the components and screw terminals for more reliable wiring connections.
The case for Revision A of this project was the first 3d printed object I ever designed. Although I was really proud of how it turned out, it had a few flaws that I’ve addressed in this version. The first is the waffle design isn’t as great for air flow as I had expected and depending on the mounting conditions it was necessary for some people to enter high offsets in the temperature calibration in the app to compensate for heat being trapped in the case. This has largely been addressed with this new case. Instead of the waffle design, I went with a chimney layout with just two holes to funnel the hot air upward and pull in cool air near the bottom where the temperature sensor is. The new design also allows the temperature sensor to rest slightly outside of the case to be expose to room temperature air.
The original case had no means of holding the phone, so the instructions were to attach a piece of Velcro to hold your phone on. This has been addressed with the new case by adding a rack and pinion system to grip the phone at the sides and keep it centered on the case while the weight of the phone rests on a lip attached to the bottom of the case. The cable is now concealed within one of the arms of this system and the with majority of it stored inside the case instead of sticking out to the side of the case with Revision A. The new recommended color of black also helps it blend into the phone, resulting in a much nicer look.
Although a 3d printer is still necessary for this step and may be a barrier for some people, there are a number of 3d printing shops showing up online where you can order from, and I’ve also set up a thread for people to buy and sell the cases they’ve made. This new case uses 28% less material to print than the original, which is especially important for those having to buy a print from a place that charges by the material.
The main concerns I heard after publishing revision A were around safety. Although the thermostat just sends requests to the furnace which is ultimately in control of the truly dangerous components, many furnaces will happily obey commands from the thermostat to make the house really hot or really cold. With an open source thermostat that has many features, changes frequently and doesn’t go through anywhere near the same level of testing as retail thermostats, a bug that causes this may be rare, but is very possible. While this may just be a temporary annoyance when you’re home, it could have devastating effects on your pipes or pets if this was to happen while you’re away.
To add another layer of protection against this, there is now firmware available for the IOIO-OTG board that triggers the relays for your furnace. Whenever the temperature is detected as being outside a safe range of 45-95F, the firmware code is designed to ignore all requests from the Android device and either turn off the heater and on the AC or turn off the AC and on the heater until the temperature is brought back to a safe range. While this isn’t foolproof, having this backup code that rarely changes should significantly reduce the odds of a major failure.
- Improved Performance – The original software was very resource intensive and used 100% of the CPU on most older phones. This has been improved drastically and is down to below 20% CPU on most phones
- All New Screen Design – The original interface was lacking any real design elements. All of the screens used the basic Froyo controls with very little thought given to the user experience. With a lot of help from Patrick, this has all changed now. Every screen has been redesigned from scratch.
- International Support – Thanks to several requests for this, the software now supports non-US postal codes works with both Fahrenheit and Celsius.
- Web Interface – Before you could control your thermostat remotely with another Android device, but it now offers a fully functional web interface that you can control from a computer or non-Android phone. (You can also use the native Android interface on your GoogleTV now).
- “Auto” Mode – In addition to setting your thermostat to heat or cool, you can now set it to auto mode to maintain a temperature range. This is very useful in the spring and fall months in many areas where you have to use the air conditioner in the day and heater at night.
- Password Protection – Before there was no security on the API so you couldn’t expose it to the Internet. You can now add a password and control your thermostat from anywhere.
- Auto Away – You can now use your phone to let your thermostat know when you are home and when you’re not to save money on your utility bills. Here’s a video showing how.
When I originally published revision A it was just a video and a blog post with some pictures and PDF and STL file. The project has become much more structured now. All of the code and design files have been moved to Github. I’ve set up a subreddit for support and announcements. The circuit board design is now available as a proper eagle schematic and board file instead of a PDF. The case is now an OpenSCAD model with methods for drawing each component and parameters that make it easier to re-size.
A lot has changed in the past 6 months and I couldn’t have done it without the help of many of the people that I’ve met at Fab Lab Tulsa (and the lab itself). I also greatly appreciate the help from many of the blogs like Hack A Day, Phandroid and Lifehacker who helped to get the word out about this project. I’m hoping with this new revision will come a renewed interest in the project and added participation to help make this an amazing open source thermostat. Head over to the subreddit to see ways you can help.