Category Archives: Z-Wave Slaves

ZWP500 Z-Wave Module Programmer and Tester

Merrimack, NH February 26, 2018 – Express Controls LLC announces the release of the ZWP500 Z-Wave 500 series programmer and tester. The ZWP500 is specifically designed to efficiently program the 500 series Z-Wave modules and chips from Sigma Designs. “The ZWP500 is the first 500 series programmer with full support for printing of the SmartStart QRcode which is now required for all Z-Wave certified devices” said Z-Wave expert and Express Controls CEO Eric Ryherd.  Utilizing the popular and powerful Raspberry Pi single board computer means the full capabilities of a high performance processor and an open platform can be utilized for programming and testing Z-Wave based products. The feature rich Raspian Linux operating system means the ZWP500 can be programmed in any popular language such as C, C++ or Python. The system is an open platform easily customized by the user or the experts at Express Controls can quickly develop a solution that exactly meets the needs of your product.



  • Sigma Designs 500 Series FLASH Programmer
    • Standard Sigma 12 pin programming header
      • SPI interface for programming
      • UART interface for debug
    • NVR and external NVM programming & test
    • 1ppm Crystal RF Calibration
    • SmartStart QRCode generation & printingqrPack
    • Fanless protective enclosure
  • Production Test Platform
    • Customizable Python interface
    • Scanner interface for serial number or DSK
    • Label printer interface for SmartStart DSK
    • Camera interface for LCD screen testing
    • Z-Wave ZM5202 Module onboard
    • Programmable RF Attenuator with SMA
  • Python API
    • Customizable Programming API or GUI
    • Sample test scripts for production testing
  • Programmable Power Supply
    • +2.0V to +4.5V 300mA
  • Raspberry Pi based controller
    • 1.2GHz Quad ARM CPU running Linux
    • 1GB RAM – 8+GB FLASH microSD
    • Ethernet, WiFi, HDMI and USB connectivity
    • Control locally or remotely via VNC


The ZWP500 is a production programmer for Z-Wave 500 series wireless RF modules. The ZWP500 programs Z-Wave modules at their maximum programming speed bringing the typical programming time down under four seconds compared to nearly 30 seconds with competing products. RF calibration is performed using the high accuracy 1ppm on-board crystal. A fanless enclosure means the ZWP500 can be deployed on the factory floor without special packaging or custom enclosures. The ZWP500 is a complete, high speed, robust production platform that can be customized to meet your exact requirements. Customization services are available from the Express Controls team of experts.

In addition to being a fast production programmer, the ZWP500 is an ideal platform for testing Z-Wave devices. Product testing on the factory floor to ensure every device is free of manufacturing defects requires an accurate, fast and robust system. The ZWP500 utilizes the Linux based Raspberry Pi model 3 (RPi3) Quad Arm A7 processor which is then augmented with the precise timing generators of a Cypress PSoC microcontroller and the RF capabilities of the on-board Z-Wave module. A programmable power supply with current measurement capabilities enables rapid testing to ensure that the Device-Under-Test (DUT) is free from gross production failures like power to ground shorts or missing power components. Either Python or C programming languages can be used to develop a customized test program to fully verify every electronic component of the DUT. Express Controls can write the test program for you or your team can develop it using the sample code provided with the ZWP500 as a guide.

The ZWP500 can be used for software validation to verify there are no bugs in each release of firmware. The full power of high level programming languages like Python or C can be used to test every button press and Z-Wave command class with each firmware revision. Push buttons can be activated with millisecond precision. DACs can generate specific voltages or waveforms to trigger specific conditions. The power supply voltage can be varied to trigger low-battery conditions as well as measure current to ensure the DUT battery lifetime will meet your specification. LCD screens can be checked against reference images to verify every screen reacts properly to every button press. The power of the RPi3 is at your disposal using the most advanced programming languages to fully test every aspect of your product with every release.

Typical Programming & Test System

ZWP500SampleSystemA typical ZWP500 based system is shown here. A custom designed PCB utilizing spring loaded pogo posts is used to make contact with the Device Under Test (DUT). This board is then mounted in a 3D printed jig which clamps the DUT in place during programming and testing. A low-cost Zebra thermal printer is used to print the SmartStart QRCode at the same instant the DUT is programmed with the 32 byte encryption keys to ensure the proper QRCode is matched with the DUT.

Contact Express Controls for details and pricing.

Express Controls

Express Controls provides expert consulting services for the design and manufacture of wireless Internet of Things (IoT) products for Z-Wave product development teams. An early adopter, Express Controls has been been developing IoT products using Z-Wave protocol since 2003 and the early 100 series RF transceivers.  Currently we are developing Z-Wave products using the latest Sigma Designs fifth generation 500 series RF modules which enable us to quickly prototype whatever IoT device you can imagine.  We have resources available for PCB design and layout as well as industrial design and 3D printing to help visualize the entire IoT product quickly.   With well over a decade of experience learning the nuances of the Z-Wave protocol, we are here to help you get your Z-Wave product to market quickly as well as provide expertise for a variety of other IoT and/or Z-Wave challenges you may be experiencing!


Eric Ryherd – CEO and Z-Wave Expert Consultant – +1 (603) 889-4841 –

CES 2018

The Consumer Electronics Show in Las Vegas is THE trade show for smart home technology and all things cool and new and geeky. It’s a massive show and I only spent one day there and never made it out of the Sands convention center which is one of the smaller venues. If you’ve never been to CES it is something to see. The crowds are enormous and the tech is brand new. So new, some of it will never actually make it to market as there is plenty of smoke and mirrors.

Eric Ryherd wireless IoT consultant expert

My purpose is obviously to seek out the latest news about Z-Wave and chat with my clients. The Z-Wave Alliance invited me to man the “Ask the Expert” desk at the show for a few hours which I was happy to do. My expert knowledge of Z-Wave answered simple questions like “what’s Z-Wave?” (It’s like wifi but low power) to complex questions about the rules around Security S2 and SmartStart.

The most common question is always what’s the difference between Z-Wave and Zigbee? My short answer is that Zigbee is like silos. If you can develop an app, gateway and all the devices you need, then Zigbee will work OK. Z-Wave however was a mesh network from day one and every Z-Wave device can talk to every other Z-Wave device regardless of the manufacturer. Z-Wave is built around standardized command classes so every hub knows precisely what format a temperature sensor is sending the data. Is it in celcius or Fahrenheit? Tenths of a degree or hundredths? With Z-Wave, the format is fully specified. The other protocols let you decide the format which is fine if you have the huge budget to do it all. But if your investors have you on a shoestring budget then Z-Wave is the way to go. I have much longer answers to the Z-Wave vs. Zigbee question but much too long to keep your interest in a quick blog post.

The big announcement for Sigma (other than the acquisition by Silicon Labs) is the announcement of the 700 series. Unfortunately details remain shrouded in secrecy but Sigma has put a stake in the ground of having developers kits by summer 2018. Finally having a real 32 bit ARM processor will be a huge productivity improvement for us IoT developers.

I had limited time to walk the floor but it does seem that smart home has finally taken off. There are so many companies making cool gizmos it’s overwhelming. From sun tracking solar powered umbrellas to cameras of every size and resolution to lots of new hubs there is no way one person can take it all in. You’ll just have to see for yourself.

The Z-Wave Alliance booth is even bigger this year filled with companies hawking the latest IoT thingamagiggy using Z-Wave. Every one of them able to talk to all the other Z-Wave doodads. The booth was busy all day long. I did wander past the tiny Zigbee booth buried in the back of the hotel with a few people in it but nothing like Z-Wave.

How to make a Z-Wave SUPER Sniffer

In this posting I’ll show how I made not just a Z-Wave packet sniffer but a SUPER Z-Wave packet sniffer that is able to receive many Z-Wave frames that a mere average sniffer cannot.

If you are a Z-Wave developer there is a packet sniffer tool available with the Z-Wave development kit called the “Zniffer” that is similar to the popular WireShark network sniffer. Unfortunately for the average Z-Wave user, the tool is only available to developers which requires the purchase of a DevKit and signing the applicable NDA documents. The Zniffer software is available on the Sigma Technical Support Site (ZTS) which requires an account approved by Sigma so you have to prove you are a developer. The Zniffer is invaluable for developing with Z-Wave because it decodes and can decrypt the encrypted frames traveling over the radio. The Zniffer is able to capture every routing attempt and every acknowledge as well as FLiRS beams and even collisions on the radio. This is way more information than you can get via the SerialAPI and is the only way to diagnose many problems you will encounter while developing a Z-Wave based product.

How to make a Super Zniffer

You can’t buy a Zniffer. UZBYou have to make one out of a UZB which is a simple USB stick that provides a COM port that talks to a PC over USB. The ZTS site explains how to convert a UZB into a Zniffer which isn’t easy to do and every time I do it I seem to have about a 1 in 5 chance that I permanently brick the UZB and have to just throw it away (fortunately they are only $25). Once you have the Zniffer firmware loaded into the UZB, use the Zniffer software and make sure it’s working. The UZB works well however it has a tiny helical antenna which means it is limited in its ability to capture all the traffic over the radio. The key to making a Super Zniffer is to tear out the little helical antenna and replace it with a full 1/4 wave antenna.

Solder on an SMA connector

ZnifferThe first step is to pry open the UZB enclosure. Use a small flat head screwdriver to pry it open along the USB connector. There are pins that hold the two halves together. Be careful not to break off the pins as we’ll use the enclosure with the Zuper Zniffer.

SuperZnifferNext unroll the helical antenna and cut it off so it just reaches the end of the PCB. Place the SMA connector on the end of the PCB and solder the antenna wire to the center pin of the SMA as shown above. You can solder the ground pin of the SMA to the PCB ground but it doesn’t seem to make much of a difference. Cut the enclosure to make room for the SMA connector to stick out the end and then snap it back on. Then screw on any SMA antenna and try it out. I typically get 3 to 5 more dB as reported in the Zniffer software RSSI column. This should be nearly 10X more range. There are so many antennas to choose from once you have an SMA connector so experiment and find one that works for you. You can even use a Yagi antenna which would then make the Zniffer highly directional.

Comparing the Zniffer to the Super Zniffer

A regular Zniffer and even the Super Zniffer won’t capture EVERYTHING traveling over the radio waves. That is just the nature of RF. When analyzing the trace in the Zniffer you have to remember that you might be missing frames that your target can see AND that even though you can see a frame it is possible the target didn’t see it. Thus, analyzing the Zniffer trace takes some getting used to.

Here is a typical Zniffer trace:


And this is the Super Zniffer trace of the same time when both Zniffers are right next to each other. Compare line 2084 above (the 2nd red CRC ERROR line) and line 2113 below.


Notice the yellow highlighted line on the Super Zniffer trace. If you compare this line with the one from the normal Zniffer you see the normal Zniffer only recorded this frame as a CRC error and was not able to capture it correctly. Also note that the RSSI is only 56 compared to 64 for the Zniffer indicating the antenna is providing about 8dB more signal strength than the tiny helical antenna of the normal Zniffer. The improved reception of the Super Zniffer makes debugging Z-Wave problems much easier as you aren’t having to sort thru as many questionable frames.





Z-Wave Summit 2017 at Jasco in Oklahoma City

“IoT Device Testing Best Practices” by Eric Ryherd

Summit1Click HERE to see the entire presentation including my notes. If you are a Z-Wave Alliance member a video of the presentation is usually posted on the members only section of their web site. The main takeaways from my presentation are:

  • Have a written test plan
  • Use the Compliance Test Tool (CTT) as the START of your test plan
  • Vary the environmental conditions during testing
  • Test using real world applications
  • Test using complex Z-Wave networks with routing and marginal RF links
  • Test with other hubs and devices
  • Automate testing using tools like the ZWP500
  • Code firmware with failure in mind
  • Utilize the WatchDog timer built into the Z-Wave chip

ZWaveSummit2017aThe presentation goes into detail on each of these topics so I won’t duplicate the information here. I also go thru several failures of devices I’ve been working with. You learn more from failures than you do when everything just works. Feel free to comment and let me know what topic you’d like to see for next years summit.

Z-Wave Summit Notes

One of the main purposes of the summit is to learn what’s new in Z-Wave and what Sigma is planning for the future. The most important news at this year’s summit is SmartStart. The goal for SmartStart is to simplify the user experience of installing a new device on a Z-Wave network. The concept is that a customer will open the package for a device, plug it in, the hub is already waiting for the device to be joined and the device just shows up on their phone without having to press a button or enter the 5 digit pin code. This is a “game changer” as Sigma pointed out many times during the summit. Typically a user has to put their hub into inclusion mode, read the product manual to determine the proper button press sequence to put the device into inclusion mode, wait for the inclusion to go thru, write down the NodeID number, with an S2 device they have to read the teeny-tiny 5 digit PIN code printed on the product (or scan the QR code) and then MAYBE the device is properly included. Or more often, they have to exclude and retry the process all over again a couple of times. SmartStart as you can see will make the user experience much easier to get started with Z-Wave.

SmartStart enables “pre-kitting” where a customer buys a hub and several devices as a kit. The hub and the devices in the kit are all scanned at the distribution warehouse and are all white listed on the hub web site. When the customer plugs all the devices in, they automatically join and all just magically show up ready to be used without the frustration of trying to get all the devices connected together. Unfortunately there are no devices that support SmartStart and there are no hubs that support it either – yet. We’ll get over that eventually but I suspect it’ll take a year before any significant numbers of SmartStart supported devices show up on Amazon.

SmartStart is enabled in the SDK release 6.81 which occurred during the summit. There are some other handy features in this release. The main new feature (after SmartStart) is the ability to send a multi-cast FLiR beam. One problem with FLiR devices is that they are all sleeping devices and briefly wake up once per second to see if someone wants to talk to them. Prior to 6.81 you had to wake up the devices one at a time and each one would take more than one second to wake up. If you have battery powered window shades like I do, there is a noticeable delay as the shades start moving one at a time instead of all together. Both the shades and the remote (or hub) will need to be upgraded to 6.81 before we can use this new feature. That means it’ll be again probably another year before this feature is widely available, but it’ll get there eventually.

There are rumors that Sigma will be announcing a new generation of the Z-Wave transceiver chip in early 2018. I am hoping it will will finally include the upgrade from an 8-bit 8051 CPU to a more capable 32-bit ARM CPU.  The current 500 series relies on the ancient 8051 with very limited debugging capabilities which significantly slows firmware development. With an ARM CPU developers like Express Controls will find it easier to hire engineers who can code and debug firmware and thus we’ll be able to bring more Z-Wave products to market in less time.

A new web site,, has been populated with the Z-Wave documentation as well as images for the Beagle Bone Black and Raspberry Pi loaded with Sigmas Z/IP and Z-Ware. With one of these boards and a USB Z-Stick anyone can start developing with Z-Wave without having to sign a license agreement. Nice way to get started with Z-Wave for you DIY nerds out there. There were many other presentations on Security S2, Certification, The CIT, Z/IP, HomeKit and many other topics on the technical track of the summit. The marketing track had a different set of presentations so I recommend sending both a technical person and a marketing person to the summit.

Summit isn’t all work, work, work

IMG_20170927_090355The Summit isn’t all work all day though the days are long and tiring. Tuesday evening was a reception at Coles Garden which is a beautiful event venue. Unfortunately it was raining so we couldn’t wander thru the gardens much but Mitch, the Alliance Chairman, kept us entertained.

Wednesday evening was the Members Night at the Cowboy museum. Oil profits made a lot of wealthy Oklahomans who were able to make sizable donations to this huge museum. There is a lot more to see than we had time to explore so I’d recommend spending more time here if anyone is visiting Oklahoma City. Lots of food and drink made for an ideal networking environment with your fellow Z-Wave developers.


Eric Ryherd Presenting “IoT Device Testing Best Practices” at Z-Wave Summit in Oklahoma City September 26-28, 2017

Z-Wave Developers and Marketers will come together at the Z-Wave Summit at the Jasco facility in Oklahoma City September 26-28, 2017. You have to be a member of the Z-Wave Alliance to attend. I highly recommend attending if you are developing Z-Wave devices . Networking with other Z-Wave developers and having intimate access to the Sigma Design and Alliance engineers and marketing folks is invaluable. To attend, register via the Alliance member-only web site. The Alliance always has some fun in the evenings too so it’s not all work!

Eric Ryherd Presenting

Express Controls founder and Z-Wave expert Eric Ryherd (aka DrZWave) will be presenting at the summit for the 4th consecutive year. Last years presentation was “Seven Things you probably don’t know about Z-Wave” and was well received. I was surprised how many engineers were completely unaware of the many new features and command classes that have been added to Z-Wave in the past couple of years. This year’s topic is “IoT Device Testing Best Practices“. I’ll go over some of the failures I’ve found over the last several years in both my products and other products I’ve tested.


Z-Wave wireless Internet of Things (IoT) devices are hard to test! There are countless devices already in customers hands with bugs in them that make Z-Wave seem unreliable when in fact many of the issues are bugs in the device firmware.  Eric Ryherd, Z-Wave expert and consultant, describes some of the  failures that are still shipping today and best practices when testing your IoT device to reduce the chance your device fails in your customers hands. Simple command sequences sent one at a time by a test engineer is not representative of the real world packet storms that occur in an apartment building with complex RF reflections and multiple interfering RF networks. Your device has to work in the real world and to do that you need to simulate those terrible conditions that do not happen on the engineers desk.

Author Bio

Eric Ryherd licensed Z-Wave in 2003 to develop IoT devices before the term IoT even existed. Light switches, motion & temperature sensors, water valves and meters, hubs, window shades, remote controls are just a sample of the Z-Wave IoT devices developed and tested by Express Controls. Eric applies his Z-Wave expertise in consulting, training and assisting with Z-Wave Certification to companies of all sizes. Read more by Eric at his blog –

10 Questions when Reviewing Embedded Code

Design News posted a great article “10 Questions to Consider When Reviewing Code” and I’m just posting the list here. Follow the link for the full article with the details behind each question.

  1. Does the Program build without warnings?
  2. Are there any blocking functions?
  3. Are there any potential infinite loops?
  4. Should this function parameter be a const?
  5. Is the code’s cyclomatic complexity less than 10?
  6. Has extern been limited with a liberal use of static?
  7. Do all if…else if… conditionals end with an else? And all switch statements have a default?
  8. Are assertions and/or input/output checks present?
  9. Are header guards present?
  10. Is floating point mathematics being used?

My personal pet peeve is #3 – I am constantly reviewing that uses WHILE loops waiting for a hardware bit to change state. But what if the hardware bit is broken? Then the device is DEAD. Always have some sort of timeout and use a FOR loop instead of a WHILE loop. At least the code will move on and won’t be dead. Maybe it won’t work properly because of the broken hardware but at least the device can limp along.

How to support Over-The-Air (OTA) firmware update now that Micron has End-Of-Lifed the NVM Z-Wave needs

Sigma Designs Z-Wave chips rely on an external non-volatile memory (NVM) to store the routing tables and other data that needs to survive a power-loss. Unfortunately, Sigma chose an NVM that is single-sourced and what is even more unfortunate is that the source, Micron, has decided to End-Of-Life (EOL) the part in March of 2018. Semiconductor companies like Micron regularly EOL parts as technology moves on so I can’t fault them for that. Micron  gave plenty of warning as the EOL notice went out in 2013 giving you 5 years to prepare for the end. I and many other Z-Wave manufacturers didn’t realize the EOL until a couple of months ago when the NVM became out-of-stock at virtually all distributors! This shut down production lines and we were unable to build product! A potentially company killing event. Fortunately Micron was able to restock and we were able to ship product with only a slight delay. This temporary unavailability raises the critical nature of finding a replacement soon.

What are the Z-Wave NVM options?

Before deciding which NVM to use, you have to decide if you want to support Over-The-Air (OTA) firmware update or not. I highly recommend OTA because Z-Wave continues to evolve and being able to update the firmware in the field is a huge advantage. OTA requires enough NVM storage to hold a complete firmware image of the Z-Wave module which is 128K bytes AND the routing tables which is roughly another 32K bytes. The firmware image can be compressed which allows you to use a 1Mbit (128K byte) NVM but the price for a 2Mbit vs. 1Mbit is tiny and in some cases the larger ones are cheaper than the smaller ones because they are on a newer silicon technology.

Without OTA use commodity EEPROM

If you decide to not have OTA, the NVM options are not affected by the EOL because for slave devices you don’t even need an NVM. Simple slaves can store small amounts of application data in the on-chip FLASH of the Z-Wave chip. This saves the cost, size and power of the external NVM so in some cases this is the best way to go. For very small battery-powered devices like a key-fob, this is the way to go.

Routing slaves or controllers require an external NVM such as the  Atmel AT25256 32Kbit EEPROM. The EEPROM is a commodity device supported by several manufacturers so there is no EOL issue with these devices. Controllers and routing slaves need to store  the routing tables in NVM which are many K bytes of data. The EEPROM devices are well suited to this task because you can write to single bytes of the EEPROM at a time. The serial FLASH chips are not able to write to single bytes which is the major problem. Gateways or other controllers with another micro on-board can update the Z-Wave firmware using either the SPI pins or the UART/USB. The code to burn the firmware into the Z-Wave chip has to be written by you or contact Express Controls and we can sell you a small package to do it.

With OTA use a single source serial FLASH

If you decide to include OTA in your product (and I highly recommend it), then your only solution is to use the Adesto Tech AT45DB0xx family of serial FLASH chips. The Sigma 500 Series Integration Guide (document number INS12213) lists only the Adesto part as the sole supported option at the moment. Sigma is actively looking for alternatives but there don’t appear to be any at the moment. The problem I have with the Adesto part is that it is only available from Adesto, there is no second source. This is a unique part and worse, it has a completely unique pinout as shown below. Using the Adesto part REQUIRES PCB RE-LAYOUT! Existing designs that have already passed FCC regulatory and Z-Wave compliance may not be able to switch to the Adesto part because of the pinout differences. The pinout of each part is shown below. The pins are completely scrambled. The signals are basically the same function but their placement is scrambled.

Z-Wave Experts consulting and IoT product development

The only solution is to put both footprints on the PCB to enable the option of purchasing whichever part is available and cost-effective.

Why doesn’t Sigma support commodity serial FLASH chips? The problem with commodity serial FLASH chips is that they require you to erase an entire sector (4096 bytes) any time you want to write even one byte of data. The Micron and Adesto parts both have Page Write capabilities where a page is only 256 bytes. Every time you write a single byte of data to the NVM the Sigma code will READ 256 bytes, erase the entire 256 bytes (which is a single SPI command), and the write the 256 bytes with the updated byte of data. Any time you write more than one byte to the EEPROM you should be using the MemoryPutBuffer command and not the MemoryPutByte. Supporting commodity FLASH chips would require reading/storing/writing 16 times more data with each write. That would slow many operations down to the point of unusability.

Comparing the NVM Parts

The Adesto part is specifically designed for IoT devices and has a number of really handy features. Specifically it has an Ultra Deep Sleep mode of only 1uA. The Adesto NVM has a wide voltage range which ensures it will work in battery-powered devices even as the battery approaches its end of life. The Sigma Z-Wave 500 series chips are able to operate down to 2.3V and the Adesto part is well below that.

The table below gives a breakdown of the options for NVM with Z-Wave. Using the on-chip FLASH for a few dozen bytes of application storage is of course the lowest cost option but limits the routing capabilities of the node. This option is ideal for Key-fobs or other very space/cost constrained devices that don’t need OTA. The EEPROM is fine for controllers that can be reprogrammed using a second micro. The Micron part is not recommended since it will soon be unavailable. The Adesto part is expensive and is single sourced and has a unique pinout but it is the only solution at the moment.

PinOut NA Std Std Non-Std
OTA No No Yes Yes
Size on-chip 32Kb 2Mb 2Mb
Write 1 byte 1 byte 256 bytes 256 bytes
Vcc 2.3-3.6V 1.8-5.5V 2.7-3.6V 1.65-3.6V
Sleep 0 10uA 10uA 1uA
Cost1 $0.00 $0.32 $0.42 $0.75
Use Case Small battery powered devices like Key Fobs Controllers with second micro for firmware update OBSOLETE! Recommended

If Sigma can figure out how to work with the larger 4Kbyte sector sizes of commodity serial FLASH chips then the cost of a Z-Wave device can drop by over 50 cents resulting in a couple of dollar cheaper retail price. All Z-Wave manufacturers should be pressuring Sigma to come up with a cheaper solution.


  1. NVM costs are 1K pricing from online distributors Q1 2017 and should be used for comparison purposes only – your results will vary