Introduction
I want to share some details on a project that I have been working on: A ZigBee Development Board, which enables me to build devices that fully integrate with SmartThings. Think about this as essentially an Arduino combined with a ThingShield squeezed into small, low-cost package. I tentatively dubbed this thing ZBoard. I may come up with something more creative in the future
Here is what my current prototype looks like:
Motivation
There are a variety of Z-Wave and ZigBee devices out there, most of which are already fully compatible with SmartThings. However, sometimes I find that there simply isn’t an off-the-shelve solution to make specific aspects of my home smarter. Other times existing solutions just aren’t satisfactory: Door bells, in-wall scene controllers, remotes, specific lighting solutions that don’t require another hub, or simply making existing devices SmartThings compatible.
In those cases, an Arduino (or Arduino clone) coupled with the ThingShield is a fantastic way of making your own solution. However, the hardware can be bulky, tricky to run off batteries for prolonged periods of time, and too expensive to permanently deploy in the field.
Requirements
To solve the problems with the Arduino + ThingShield, I set out to build a complete development board with the following set of requirements:
- Full integration with SmartThings
- Low-cost (ideally less than ThingShield)
- Ability to run off 2xAA batteries (or similar) for months
- Small form factor
- Ease of use (along the lines of Arduino)
I am pretty excited that my current prototype pretty much covers all, except for #5. Here is a brief video that demonstrates the most basic functionality: http://youtu.be/q6EpQRoWURg I apologize for the utterly crappy quality of the video.
Future
My next step on this project is to address #5 on the list of requirements. As part of that effort I am exploring the option of updating the firmware via an over-the-air update method, where the Arduino IDE would interface with the ZBoard Connect SmartApp to wirelessly deploy new firmware to devices in the field. Currently, the only way of working with this thing is to physically attach a programmer / debugger. In order to save cost and complexity, I am not planning on having USB on-board.
The antenna and RF circuit also need tuning as range is currently poor (around 25 feet). The hardware is capable of much better range. This is just me not knowing what I am doing I need to make friends with someone who has access to a Network Analzyer and RF know-how.
Specifics
I don’t want to bore you with the specifics here, although I am happy to answer any questions. However, I thought it might be helpful to mention that the MCU I am using is an ATmega256RFR2, which is an Atmel 8-bit micro controller with integrated 802.15.4 radio.
You are also invited to follow me on twitter @mpflorianz, if you are interested in updates on this project.
Shoutout to @urman for helping me figure out how to talk to ZigBee devices from a SmartThings device handler! Thank you!!!