1. Z-Wave Introduction

Z-Wave is a wireless communications protocol used primarily for home automation. It is a mesh network using low-energy radio waves to communicate from appliance to appliance,[1] allowing for wireless control of residential appliances and other devices, such as lighting control, security systems, thermostats, windows, locks, swimming pools and garage door openers.[2][3] Like other protocols and systems aimed at the home and office automation market, a Z-Wave system can be controlled via the Internet from a smart phone, tablet or computer, and locally through a smart speaker, wireless keyfob, or wall-mounted panel with a Z-Wave gateway or central control device serving as both the hub controller and portal to the outside.[2][4] Z-Wave provides the application layer interoperability between home control systems of different manufacturers that are a part of its alliance. There are a growing number of interoperable Z-Wave products; over 1,700 in 2017,[5] and over 2,600 by 2019.[6]

Sigma Designs acquired Z-Wave  in December 2008.[9][13] Following the acquisition, Z-Wave’s US headquarters in Fremont, California were merged with Sigma’s headquarters in Milpitas, California.[9][14] As part of the changes, the trademark interests in Z-Wave were retained in the United States by Sigma Designs and acquired by a subsidiary of Aeotec Group in Europe.[15][16] On January 23, 2018, Sigma announced it planned to sell the Z-Wave technology and business assets to Silicon Labs for $240 million,[17] and the sale was completed on April 18, 2018.[18]

In 2005, there were six products on the market that used Z-Wave technology. By 2012, as smart home technology was becoming increasingly popular, there were approximately 600 products using Z-Wave technology available in the US.[8] As of January 2019, there are over 2,600 Z-Wave certified interoperable products.[6]

2. Z-Wave switch an sensor project

2.1 Schematic

  • It’s a very simple schematic design, since all the hard jobs had been handled by Sigma Design, we just prepare power for the ZM5202 module and use its  GPIOs to drive the relay.
  • The sensor module will read digital input from 3 pins, we can have some real sensors output to these pins
zwave switch schematic
Switch
zwave_sensor_schematic
Sensor

2.2 Layout

  • The hardest job in this task is antenna design since  I have no knowledge about RF signals.
  • The good news is we have examples of designs that ready to use, I just copied them.
zwave switch layout
zwave switch 3D layout

2.3 Board bring up

  • That is an amazing task, it will test our patience and perseverance.
zwave switch board
Switch
zwave sensor board
Sensor

2.4 Firmware

  • The Zwave SDK support both IDE and Makefile to build the firmware, we need the C51 toolchain in order to build the source code.
  • On this project, I had used KeilC IDE for development.
zwave_switch_firmware

2.5 Video demo

2.5.1 Description

  • We will use the benefit of Mesh network that the Z-Wave protocol provides, my test scenario will likely as below:
zwave_work_flow
  • Think about the case you have 3 buttons in your bedroom and you want to turn on/off the lights in the backyard, the garage, or the garden that far away from your buttons.
  • In the picture above, the sensor can reach switch1 directly but can’t reach switch2 and switch3.
  • with MESH network, switch1, switch2 will retransmit the packet from other nodes if it was not a destination of the packet. So, with this feature, we can extend the device reachable scope.

2.5.2 Setup

  • In this demo, I used 3 modules as 3 binary switches.
  • The module on the kit worked as the binary sensor (used buttons on carrier board).
  • The Zwave USB was used as a static controller.
  • We have some extra steps with the software on the host machine to:
    • Request the controller node to create a Z-Wave network.
    • Allow 3 switches and 1 sensor to join the network.
    • The sensor module has 3 inputs (represent 3 control sources), so we need to associate each input with a specific switch.
  • In the video below, I had done those steps, so when I press the button on the sensor module (buttons on carrier board), the led on the associated switch will on/off accordingly.

Source code