XBee Series 2.5 Home Automation -- is there a future?

I am building and expanding home automation system based on XBee Series 2.5 hardware (currently running old ZDNet firmware). It consists of a mixed arduinos (pro-minis are my favorite, while I’m also using Fio and some big regular and pro arduinos) connected to various devices at my home. While it was not initially as smooth as with Series 1 (where you can can program your Arduinos over-the-wire out-of-the-box), I’ve created my own source code branch of avrdude that supports over-the-wire flashing via XBee Series 2.5 running in API mode. So, I run XBees in all my devices in transparent AT mode and use Sparkfun XBee USB dongle with an API-firmware XBee to reflash any device in my house using its easy-to-remember node identifier string.

It all works perfectly (especially the way in which Sparkfun’s arduinos mate with XBee Regulated Explorer boards – thank you guys!), and my only real complain was that Sparkfun’s mating between XBee and Arduino does not connect CTS pin from XBee to MCU. Without CTS you cannot reliably send big chunks of data (XBee TX buffer is small), so I have to use jumper-wire for CTS connections or resort to timing tricks (e.g send 64 bytes and wait 300 ms) which are kludgy.

Now, I was about to order my next batch of pro-minis and XBees to start hacking my AC units, and found out that XBee Series 2.5 is mostly retired now. What should I do? Shall I reflash XBee Series 2.5 modules to ZB firmware and start using newer ZB modules from Digi? Will Sparkfun carry those? Shall I continue my work on XBee-enabled avrdude and publish it, or this whole, 2.4Ghz mesh-networking ZDNet/ZB world is dying? Shall I switch to completely different RF transceivers? I do actually need mesh networking for a reliable communication between all devices in the house, so my choices are kind of limited. Can anybody suggest something or share some insider insights about the future?

In the US, the home area power management industry is growing rapidly. Appliances are starting to have means to connect directly or via a mesh to a radio in the home’s AC utility meter. That in turn bridges to a different wireless medium back to the mean old power company.

The ZigBee alliance missed the time window for ZigBee to be adopted for consumer remote controls of home lighting, etc. Z-Wave (Zensys) took that market, such as it is, with their proprietary licensed scheme for 900MHz (US) and 868MHz (EU). Small market. Enthusiasts for Z-Ware are on the forum at homeseer.com. This is a costly successor to X10. See

http://board.homeseer.com/forumdisplay.php?f=624

So then ZigBee’s alliance focused on this smart grid movement. Many utility companies didn’t resist a proprietary wireless means pushed by the meter vendors. Many simply didn’t know. Then well into it, many utility companies saw the light: my gosh, we’ve screwed up by going proprietary to vendor X’s meters/wireless. So ZigBee has belatedly begun to capture some market share. But overall, I think it’s another greed-driven debacle.

Meanwhile industrial wireless sensors are keen on 802.15.4 and a non-ZigBee network layer, this being either something sensors-dependent and proprietary, or the immature ISA 100.11 standard as the industrial controls world’s counter to ZigBee.

The Nice Thing About Standards Is: There’s So Many From Which To Choose.

The 802.15.4 MAC and PHY is the common denominator to a lot of this, and those chip and OEM module vendors are selling high volumes while staying agnostic as the network layer. Some of these are Digi with Freescale or Ember, Jennic now owned by NXP, TI, OKI, Panasonic and, invisibly, Atmel/Meshnetics and Microchip, among others.

Ember, used in the XBee series 2, is in the ZigBee camp. XBee series 1 is agnostic, 802.15.4 plus whatever.

So if you want a commercial product that works for your DIY home automation, it’s Z-Wave and the end item vendors that use it. A fully DIY device for mains powered devices, like mating an XBee to a relay or triac, opens issues of fire insurance invalidation, and cost.

I don’t mind using multiple standards. My conundrum now, is to pick an easy-to-use RF module for my own projects, as a replacement for XBee Series 2.5 ZDNet. These modules I’m planning to use with my own code with my own arduino-based hardware. I don’t really care what RF standard my utility company or my remote-controlled lamp is going to use. I’ll bridge to them, not a bid deal. Moreover, I’m not really in the green camp. I’m solving my real-life home-automation problems. I’m looking to make my life more convenient, not necessarily cheaper or greener. I just want to be sure that the modules I pick now will be available and supported for 3+ years, because I’ll have to support and maintain my own projects, and it’s better done if they run on a supported products.

I think digi is going to support both xbee series 1 and xbee series 2 for a long long time. They have a ton of resources dug into it and it wasn’t that long ago that they spent a lot of money purchasing MaxStream, which used to own the xbee chips.

elizarov:
I don’t mind using multiple standards. My conundrum now, is to pick an easy-to-use RF module for my own projects, as a replacement for XBee Series 2.5 ZDNet. These modules I’m planning to use with my own code with my own arduino-based hardware. I don’t really care what RF standard my utility company or my remote-controlled lamp is going to use. I’ll bridge to them, not a bid deal. Moreover, I’m not really in the green camp. I’m solving my real-life home-automation problems. I’m looking to make my life more convenient, not necessarily cheaper or greener. I just want to be sure that the modules I pick now will be available and supported for 3+ years, because I’ll have to support and maintain my own projects, and it’s better done if they run on a supported products.

I'd use XBee series 1 with 802.15.4 and do your own static mesh, if you will. In home automation, the nodes don't move. So a node can be installed at place x and told the preferential order of neighbor nodes. If some node must relay to reach a root node (one with network egress to a main controller), then it would use one of the given neighbor nodes. These are ID'd by their unique MAC address (64 bit). No use of network addresses. No use of PAN coordinator. Each node sends frames to a selected neighbor node. Your protocol contents tell the receiving node what to do with the packet: forward to root, take action, etc.

This concept is akin to 802.11’s ad hoc mode, where every node has a priori knowledge of other nodes’ addresses.

An alternative to Digi XBee series one is Jennic’s modules. Somewhat cheaper.

Failing that, you can just buy/use a Z-Wave based product, as mentioned above.

Or a proprietary module such as those from Nordic Semiconductor or Hope RF. The latter may be a good choice.

stevech:
I’d use XBee series 1 with 802.15.4 and do your own static mesh, if you will. In home automation, the nodes don’t move.

Is there any ready-to-use mesh stack on top of 802.15.4? I mean, I don’t want to redo something that was already done elsewhere. Moreover, even though devices my devices do not move, I would like to have an easy setup for new nodes (without messing with routing tables by hand), so some kind of dynamic mesh is still my preference (dynamic in the sense, that it has to be able to establish routes automatically).

I don’t really like ZNet 2.5 and ZigBee mesh networking concepts (particularly, I don’t like a requirement to have a coordinator, because if it fails, the whole network falls apart – single point of failure in my home network), but it works out of the box, letting me concentrate on solving my higher-level problems.

The funny thing is, that on application level I just broadcast all packets. There are application-specific destination and source tags in the packets themselves (just one-character mnemonic codes, like ‘B’ for “boiler”). That way I can sit with my notebook with a plugged in XBee USB dongle anywhere and listen to everything that is going on. So, bare-bones 802.15.4 looks like a good fit. However, I still feel that I need routed network, because ultimately I’m not sure that there will be a reliable direct RF communication between all devices (especially on 2.4 GHz band, which is more easily blocked that say 433 MHz, for example, IMHO).

stevech:
Or a proprietary module such as those from Nordic Semiconductor or Hope RF. The latter may be a good choice.

How do those behave under interference with other wireless products, like cordless phones, etc? For me, the original choice of XBee was partly motivated by their use of spread-spectrum. While they might loose packets, too, they are less likely to catastrophically suffer. I’m using WiFi (which is also 2.4 GHz) and can still upload sketches to my arduinos over-the-air at a reasonably high speed (~1 KB/sec). So far, I’m using standard bootloader (which is not particularly designed for OTA), but I thinking about forking optiboot, to make it better suited for OTA (while keeping it backwards compatible). I’m curious if anybody else had already done that?

So far, I’m inclined to try XBee ZigBee modules. It is a pity that Sparkfun does not sell them (I would have combined them with my latest order; any plans to?), but Digi sells them on their web-site. I’ll buy a couple and if they work for me, I’ll try to convert one of my Ember-based XBee Series 2.5 modules to ZigBee (Digi has ZNet 2.5 to ZB conversion kit) and see if they all work together properly.

Do you NEED a mesh? Self-forming?

ZigBee is a mesh protocol layer atop 802.15.4.

Like Bluetooth, ZigBee has use case profiles. Or you can write your own profile that calls the ZigBee primitives (API).

That’s quite complicated. To understate. These are XBee series 2. Series 1 are 802.15.4 or Digi’s proprietary mesh.

Most apps don’t need a mesh. Just know a priori the MAC addresses of the nearby radio nodes (802.15.4 MAC addresses). Then use the 802.15.4 basics, such as in Digi’s XBee binary API, to address frames to specific neighbor nodes. Broadcast packets (sent to the all ones address) have the disadvantage of having no receipt-ACK. So they’re unreliable datagrams. As in other packet networks such as 802.3 Ethernet with or without IP.

2.4GHz interference is not an issue in 802.15.4 because a '15.4 frame is less than a millisecond and 802.11 uses no where near 100% of the air time. And 802.15.4 is a 2MHz signal whereas 802.11 is 20MHz. There are 16 non-overlapping '15.4 channels in 2.4GHz, some of which are in between the 3 non-overlapping 802.11 channels.

Thanks for insights into 802.15.14. I don’t really need a mesh, but I don’t want to imbue my nodes with an a priori knowledge of other nodes’ MAC addresses. I have multiple data-gathering and device-control nodes, and multiple gateways to the outside world (couple of ethernet gateways are operational and working on SMS gateway). Of course, I can just broadcast everything (and that is what I do most of the time), but I also need point-to-point for over-the-air firmware updates. And its cumbersome to keep a track of MAC addresses for firmware updates. Mnemonic names are much easier to remember, and that is why I’d like to have some routing infrastructure that can, at least, find a node by its mnemonic name and then establish point-to-point connection.

elizarov:
Thanks for insights into 802.15.14. I don’t really need a mesh, but I don’t want to imbue my nodes with an a priori knowledge of other nodes’ MAC addresses. I have multiple data-gathering and device-control nodes, and multiple gateways to the outside world (couple of ethernet gateways are operational and working on SMS gateway). Of course, I can just broadcast everything (and that is what I do most of the time), but I also need point-to-point for over-the-air firmware updates. And its cumbersome to keep a track of MAC addresses for firmware updates. Mnemonic names are much easier to remember, and that is why I’d like to have some routing infrastructure that can, at least, find a node by its mnemonic name and then establish point-to-point connection.

you can have each node transmit a frame every now and then to the broadcast address. Other nodes can receive these and note the MAC address of the senders, thereby discovering which are in range. This is without need of a PAN coordinator nor the association process.

Over the air firmware upgrades to your micro are easy if you use an appropriate protocol, and one which either does not use, or virtualizes the means to reset the target microprocessor.

stevech:
Over the air firmware upgrades to your micro are easy if you use an appropriate protocol, and one which either does not use, or virtualizes the means to reset the target microprocessor.

Yes, I thought about that. However, ability to hardware-reset MC is a must-have (IMHO), in case my code is stuck or previous upload failed in the middle. XBees are great, because they have DIO pins that can be used to reset MC, combined the fact that Sparkfun Regulated Explorer ties DIO3 to Reset line by default. With XBee you can also use default Arduino bootloader. I don’t have resources at the moment to reinvent my own infrastructure (RF boards, bootloaders, etc) even if the end-result will be better, so I’m kind of stuck with XBees (I don’t see anything comparable that can be used out of the box). I’m also stuck with Ember-based hardware, because I have quite a lot of older ZNet 2.5 XBees, which is a pity, because there does not seem to be a way to run plain broadcast or point-to-point network on top of those (you always need a coordinator). Having coordinator is not really a big deal from the maintenance stand-point (I’m using one of my ethernet gateways as coordinator), but it does become a single point of failure in the whole network, which is scary.

I mean, take HopeRF modules like RF22, for example. They are great, but they are SPI (not UART). You’ll need a lot of additional pieces to use them. Because it’s SPI, you cannot just connect it to Arduio Pro/Pro Mini FTDI connection, so you’ll need either to design your own boards (like JeeNodes) or create a breakout board with SPI-UART converter for RF22. It can all be done (and even reset circuity can be included), but I do not have resources to pull it off myself (I can help, though).

The new XBee ZB modules have the same hardware as the Series 2.5 just different firmware. Basically this means that you can buy the new module and install the Series 2.5 firmware and they should fit into your existing network just fine (or you can upgrade them all).

SFE-TS-Michelle:
The new XBee ZB modules have the same hardware as the Series 2.5 just different firmware. Basically this means that you can buy the new module and install the Series 2.5 firmware and they should fit into your existing network just fine (or you can upgrade them all).

That's nice if you WANT ZigBee which is the focus of the XBee 2 (Ember) modules as compared to the XBee series 1 (Freescale) modules which don't force ZigBee upon you.

If you are willing to bridge your existing network with a new network, I would suggest Synapse Wireless RF Engines.

The radios have 20 GPIOs, 2 UART, some ADCs, I2C, SPI, and probably some more…

They run on 802.15.4, then add their proprietary layer on top. The radio units themselves are programmable over the air. I have replaces a couple of arduino/xbee units with a RF Engine. Since the RF Engine was programmable. I don’t know what type of range (distance and price) you are looking for. Either way, I think the RF Engine will more than satisfy you.

[Synapse Wireless Product Page

[RF200 Series 2 Mbps 2.4 GHz RPSMA Antenna Connector Amplified RF Engine 3 mile line of sight. Of course it will work without line of sight, just shortens the distance. $33.50

If $33.50 sounds like a lot compared to an xbee, then you are comparing this module to the wrong xbee.

  • - [XBee Pro 50mW RPSMA - Series 2 (ZB) $44.95
  • - [[XBee Pro 50mW Chip Antenna - Series 2 (ZB)](http://www.sparkfun.com/products/10418) $40.95
  • - [[XBee Pro 900 RPSMA](http://www.sparkfun.com/products/9099) $54.95
  • [/list]

    BTW, if you need 900 MHz, Synapse offers that too: [RF300PD1 Series 250 kbps 900 MHz External Antenna SYNAPSE RF Engine $33.50

    If nothing else they are worth checking out. Ok, with that part out of the way. You will need a Breakout Board or something to put your RF Engine on. If you want a BARE Breakout board with no parts, I will sell you breakout boards for $2.50 each +shipping. If you want a Breakout Board Assembled, $12 + shipping. [Break out Boards

    Honestly, if someone would have provided a breakout board around $10, I never would have had to make my own. Making the Breakout Board has led to some other PCBs for me [BASE Board. There were some solar charging lipo boards in the middle, but if this is something that interest you, please let me know.

    The RF Engine has complicated a couple of projects, but it has helped more in the auto mesh. There is a PC/Mac/Linux Program called Portal that lets you see your nodes. Talk to them. Program them over the air. Call functions on nodes. Nodes can call functions on other nodes. I just uses a SF 3.3v FTDI Breakout with one of my Breakout Boards to connect to Portal. Then portal can talk to all the nodes, and all the nodes can talk to portal. I wish more hobbyist knew about and would try the RF Engines from Synapse Wireless. I really think they would enjoy them much more than the XBee.

    If this is something you are serious about, get some RF Engines. Then you can get some boards. You dont even have to buy them from me. I’ll post the eagle files and you can modify them and have them made where ever you want.](https://www.jcwoltz.com/2011/03/synapse-users-of-rfes-why-re-invent-the-wheel/)](https://www.jcwoltz.com/2011/02/synapse-breakout-boards-updated/)](http://www.futureelectronics.com/en/technologies/semiconductors/wireless-rf/rf-modules-solutions/802154-zigbee/Pages/2313732-RF300PD1.aspx)](http://www.sparkfun.com/products/9099)](http://www.sparkfun.com/products/10418)](http://www.sparkfun.com/products/10419)](http://www.futureelectronics.com/en/technologies/semiconductors/wireless-rf/rf-modules-solutions/802154-zigbee/Pages/6469811-RF200PD1.aspx)](http://www.synapse-wireless.com/index.php?mainID=3&subID=3&type=product&prodID=3)

    http://www.synapse-wireless.com/index.p … pe=default

    a quick demo video from synapse. FWIW, I dont own the usb device or protoboard.

    XBee 2.4GHz with high gain antennas on each end and clear line of sight and elevation can get to 3 miles. As can any 2.4GHz device. It’s governed by the laws of physics, transmitter power, antenna gain, both ends, and the signal bandwidth (2MHz in the case of 802.15.4 and XBees, unlike 802.11 which is 20MHz)

    stevech:
    XBee 2.4GHz with high gain antennas on each end and clear line of sight and elevation can get to 3 miles. As can any 2.4GHz device. It’s governed by the laws of physics, transmitter power, antenna gain, both ends, and the signal bandwidth (2MHz in the case of 802.15.4 and XBees, unlike 802.11 which is 20MHz)

    Ok, I was trying to tell him about something he may not know about, but like.