Category Archives: Microcontrollers

How do I get started in Home Automation development?

TL;DR: Here is a listing of Zigbee and Z-wave dev kits and IDEs with costs and LINKS!

I enrolled in a paid research position at school for the summer term.  Turns out that the research is very much related to the industry in which I work: Home Automation.  We aren’t actually researching home automation, but we’re using home automation systems to collect data.  The reasoning is that the systems are readily available, robust, and infinitely customizable.  The customization I’m talking about is on the back end.  Many sensors and things are available off the shelf and can be integrated into any network using the same protocol.  So, on the back end we can develop a system that operates on the collected data in whatever way we please.

The two primary communication protocols discussed here are Zigbee and Z-wave, the two most popular commercially available systems at the time of this writing.  The reason for focusing on these systems is threefold:

1. Cost.  The widespread acceptance of these standards helps to drive down costs.

2. Support.  The development kits, documentation, and expert support are all readily available.

3. Existing components.  Many off-the-shelf components already collect the data we want, and are integrable with any compliant network.

Network Topologies and Radios

Zigbee and Z-wave are actually standards that define network protocols, and companies simply build microprocessors and radios which meet these standards.  Before Zigbee and Z-wave really caught on, many companies were developing their own proprietary systems and radios.  Some of these proprietary systems were network based, others were very simple control schemes.  Generally, the radios used were around 900Mhz sending data at low baud rates (<=9600bps) for FFC compliance reasons.  The flavor of Zigbee that caught on commercially operates at 2.4Ghz and up to 250kps (depending on the implementation.)  The 2.4Ghz band is significant because it’s globally accepted.  WiFi uses the same band, so it’s rather crowded.

Zigbee creates a star network, where a central “coordinator” routes network traffic through the various network “nodes”.  A node is simply a device that has the ability to pass instructions back and forth from “end devices” to the coordinator.  End devices are really only intended to receive commands and report.  The creator/installer of these systems is generally required to identify the type of each device: coordinator, node, or end device.  The network ultimately resembles a star fish, or perhaps a snow flake (for very large networks).  As mentioned before, the most popular Zigbee flavor communicates via 2.4Ghz, but a ~900Mhz flavor also exists.  Zigbee’s radio uses Phase Shift Keying.  Phase Shift Keying encodes digital signals over the air by reversing the phase of the radio carrier wave.  Depending on the phase of the signal received, the receiver knows whether it is seeing a “1” or a “0”.

Z-wave uses a mesh network, meaning that every device can route messages through any other device within range.  This allows for many routes for data to take around the network.  All the data is still passed up to a coordinating device.  Furthermore, Z-wave implements a sort of mesh healing, wherein lost nodes can be routed around by discovering a new path through other nodes.  This all happens over RF in the 900Mhz range (depending on region) using Frequency Shift Keying. Frequency Shift Keying is a way of encoding digital signals over the air.  The transmitter sends signals on one of two frequencies to send either a “1” or a “0” to the receiver.

So, which radio is better?  Neither.  They both have pros and cons.  Z-wave’s radio is arguably better for indoor use, as the lower frequency is better able to penetrate building materials.  It is also on a relatively quiet band, where the only other traffic is coming from things like weather stations and garage door openers.  Zigbee operates in the same band as WiFi, which raises the noise floor for the carrier waves.

The latest Z-wave chip is only capable of 100kbps over the air, while Zigbee’s radio is capable of 250kbps over the air (at 2.4Ghz).  Does that really matter?  I guess it depends on how fast you need your data to travel.  For very large networks, the transfer rate could be very important.  For your typical 2000 square foot home, this is a non-issue.  Also, the radio performance is greatly influenced by the antenna geometry and load matching.  If you’re developing a product that requires RF communication, you need an RF engineer to design a proper antenna to get the best performing radio.  Luckily for low-budget developers, most dev kits for both systems come with antennas already matched to the dev kit circuits.

Which network is better?  Neither.  They both have pros and cons.  The Z-wave mesh is self-healing, and it routes messages whichever way it can.  The problem is that re-routing a message through an unintended path requires that a node be acting as a repeater, which requires it to listen at all times.  This means more power drain on such a device, which basically means that such a device cannot be battery powered.  The Zigbee star network can be undermined by dying nodes (in the case of battery operation).  Either way, the networks will transfer data back to the coordinator.

In my research I have found that Zigbee end-users complain of some Zigbee compliant devices not working with others.  One goal of both standards is to maintain consistent compatibility between devices, brands, developers, versions, etc.  The problem with Zigbee is that they do not require device certification before it is released to market.  The problem with Z-wave is that they require device certification before it is released to market.  And, it costs money!  Furthermore, Z-wave compliance ensures backward compatibility of new devices with the old, but not forward compatibility of old devices with new.  In short, as new features become available in the Z-wave protocol, older controllers (hubs, gateways, coordinators) may not support newer device features.

Which one costs less?  This is the hardest question to answer.  I have been requesting quotes and searching for development kits.  Zigbee is by far the easiest to find.  The price of Zigbee dev kits ranges between $1,000-$5,500.  The Zigbee code has various names, depending on the dev kit vendor.  But, whatever “stack” you end up with, you will need IAR Workbench to compile it.  IAR Workbench is an IDE, and a license for it costs between $2,500 and $3,500, depending on type.  There are situations where you will not need to modify the Zigbee stack.  However, experienced users told me that they were told the same thing, and found they had to do it, anyway.  Finally, Zigbee would really like it if you had your product certified.  The cost of this certification is rather elusive, until it’s time to have it done.

Getting started with Zigbee will cost you $3,500-$9,000, depending on which dev kit you choose and the license type of IAR Workbench.

Z-wave was a bit harder to find.  Z-wave is proprietary: only one company makes the SoC’s, defines the standard, certifies devices, etc.  That company is Sigma Designs.  The way I see it, Sigma is taking the “Apple approach” to the Home Automation Network Protocol game.  An all-inclusive dev kit costs about $3000.  This kit is actually two parts: The main developer’s kit full of dev boards with SoCs.  The second part is a regional radio kit.  In short, the Z-wave radio for US products won’t work with Z-wave radios for products intended for other markets around the globe.  Furthermore, the Z-wave protocol also requires a specific IDE: Keil’s PK51 for 8051 chips.  The only quote I have on this IDE so far is for $1,320.  Finally, Z-wave requires certification before your device can be marketed.  Certification costs between $1,000 and $3,000, depending on product complexity.

Getting started with Z-wave will cost $4,320.

BUT WAIT!  There’s more!  Atmel has released several eval boards for Zigbee that are peculiarly cheap compared to the competition.  Furthermore, Atmel’s free Atmel Studio 6 is purportedly able to compile Atmel’s proprietary Zigbee Stack (called BitCloud).  I read through the data sheets, the user manuals, etc. and it all just seems too good to be true.  I’m not sure if their offering is on the same level as the more expensive dev kits, or if it’s more on the level of XBee (a standalone Zigbee chip intended for use by hobbyists.)  Still, I am intrigued.

Here is a listing of the dev kits I researched.  There are actually more Zigbee kits available.  But, by the time I hit Freescale’s offering I was suffering from analysis paralysis and decided to stop my search.  Personally, I’m leaning toward the TI kit, but I’m biased.


I’m enrolled in Microprocessor Applications this term.  The MC68HC11 is what we are using to learn on.  It’s an old chip.  Very old.  Motorola released it in 1985.  That was the year I was born.  As of this publication, I am 29 years old, nearly 30.  Most of the people in my class weren’t even born when this chip hit the market.  Ouch.

20150109_204136The HC11 was originally intended to be used in mobile applications!  When I say ‘mobile’, I mean ‘cars’.  It’s actually pretty feature-packed.  It has 38 GPIOs (16 bi-directional, 11 input-only, and 11 output-only).  Onboard RAM, ROM, and the ability to access external ROM up to 64kb.  You read that right: 64kb.  It’s an 8-bit processor, and the crystal on the dev board is 8Mhz.  For comparison, Intel released the i386 32bit, 12Mhz processor in 1985 as well.  The i386 was top-of-the-line at the time.  Meanwhile, the HC11 was being implemented in engine control units.

In so many words, my professor told us that we should “crawl before we can walk.”  Thus, we begin our journey into microprocessor programming with the HC11.  Meanwhile, as I mentioned in an earlier post, I have an MSP430 that I bought LAST YEAR around this time.  (Winter break has always been a mad rush of ideas and project starts.  And, then all of that goes out the window when school starts again.)  The MSP430 is a Texas Instruments product.  You can get a starter dev board for about $10 here.  It comes with everything you need to begin learning.  But, the $10 version gets you a fairly featureless chip.  Meanwhile, the HC11 dev board costs $112.  And, the book for the class costs about $350 new.

TI has a proprietary IDE that lets you program in C.  They also have an Arduino-style IDE that lets you program in psuedo-C.  If you’ve never done any serious programming before, learn the psuedo-C and plan on transitioning to C later.  But, if you’ve got some experience and/or you want to learn the nitty-gritty of what you’re doing, use C.  For our Microprocessor Applications class, we’re learning to program in Assembly.

I anticipate it will be difficult, but not impossible.  We’ll see.