Some time in 2015, Arduino will be launching a new board known as the Tre. Thanks to Michael Shiloh at Arduino, I got my hands on an early development version of the board, and got to participate in Arduino’s official Tre Beta testing. The Tre has some promising applications for home automation, which I’ll get into below.
As I’ve explained in previous posts, prototyping boards like Arduinos and Raspberry Pis are fantastic for home automation. You can hook up a Raspberry Pi to everything from your alarm system to your sprinklers, and do tons of neat things with these systems.
In the past, though, these board designs had a flaw. The Raspberry Pi, with its graphical Linux operating system, USB peripheral support, etc. is wonderful for higher-level computing, where you need to be able to do networking, write stuff in Python, etc. Arduino boards, in contrast, are great for when you want to interface directly with low-level electronics (with Arduino’s built in ADCs, power conversion circuitry, etc.), but you don’t care so much about flashy GUIs or the other fancy things a Linux OS brings to the table.
For most projects, it’s an easy choice. Want to build a $50 streaming media server, or perhaps some kind of fancy video installation? Go with Raspberry Pi. Want to drive motors on a robot or tamper with your Roomba? Choose Arduino. Home automation, though, kind of throws a wrench in things. People doing diy home automation projects generally want the best of both worlds; we want to be able to interface with low-level systems (think a temperature sensor or door switch), but then we want to use the data from those systems to do high level things (like send an email, give an X10 command, etc).
Raspberry Pi generally fails at the first task, and Arduino fails at the second. As a result, home automation people often end up mashing the two together. See, for example, this project which uses a Netduino and a Raspberry Pi.
With the Tre, Arduino (working closely with Beagle) has done the mashing for you. The Tre is basically two boards in one. It has both a high speed Sitara processor running a full Linux distro (a la Beaglebone), and a separate Arduino Leonardo with all the fixings–separate Atmega chip, headers, USB, even a fancy outline on the PCB with the same footprint as a normal Leonardo. You can even use it with existing Leonardo shields. If you’re impatient or want to skip to pretty pictures of the board, here’s a little hands-on video of my Tre:
At first, this mashing up seems like kind of a kludge. Surely, there must be a more elegant way to solve the high level/low level problem than mashing two unrelated boards together. Arduino, though, have taken some fantastic steps to make sure the two halves of the Tre’s split personality genuinely work together and complement each other.
Firstly, they have created a new version of Arduino’s IDE which can be accessed completely over the web. The Tre uses its beefy Sitara processor and Linux networking to run and serve the IDE, but since the two parts of the board are electrically connected, you can use the IDE to load standard Arduino code directly onto the onboard Atmega processor, even over the web. The upshot is that you can plug this board into your home network, call up a browser on another computer, point it at the Tre, and have a full Arduino development environment right there in Chrome. This eliminates the normal hassle of installing a million USB drivers on each computer you want to use with your Arduino, and also makes it super easy to access the Arduino even once you’ve embedded it in a project.
Secondly, when you do upload code, you have the option to run it on the Atmega, or to have the Sitara processor run the code, pretending to be an Arduino. The advantage of the second option is that you get much faster processing speeds, but you can still write your code in the familiar Arduino format.
Finally, because the Sitara chip runs a full Linux distro, and it’s electrically connected to the Leonardo part of the Tre, you can run high level scripts on the Linux part of the board, and have them talk directly to low-level electronics through the Arduino. Because of this capability, the Tre will make a fantastic board for home automation. You can do low level stuff til the cows come home using the embedded Leonardo–read sensors, send out PWM signals, take in analog values from your thermostat, etc.–but also have all the network, scripting and graphical capabilities you need to act on the data, all one a single board.
Currently, I’m using the Tre on a project which will grab info on my minute-to-minute electrical use from Bidgely (using a Python script on the Sitara) and then change the color of a glowing dome (via an RGB LED connected to the Tre’s onboard Leonardo) depending on my current usage (more on this project later). The Beta team is still ironing out some kinks, but overall the board has performed extremely well, and Arduino has been very responsive to questions from their testers.
Arduino haven’t said how much the Tre will cost, but when it does come to the market, make sure to check it out.