Category Archives: Raspberry Pi

Z-Wave Saved My Fathers Life

My father is a cantankerous curmudgeon but at 89 years old he deserves to be a little crusty. In his infinite wisdom at the age of 79 he decided to move away from his family here in New England and purchased a home in warm sunny Florida. He was happy he no longer had to freeze in the cold of winter but I was unhappy because now he was 2,000 miles away and I worried something might happen to him. If someone broke in or if he fell no one would know potentially for weeks. To ease my worries I applied my technical expertise and deployed an inexpensive Z-Wave based system to keep an eye on him.

HomeSeer to the Rescue


HomeSeer sells a Raspberry Pi based Home Automation system with a built-in Z-Wave interface called the Zee S2. This small box needs only 6 Watts of power but contains a complete Linux computer that can serve web pages and runs the HomeSeer HS3 application. My initial system was just the HomesSeer Zee S2 ($199) and two Express Controls EZMultiPli Multi-sensors ($99) for a total cost of $300 for my peace of mind.  No monthly charges, no “monitoring fees” or any other costs so this is indeed a low-cost solution. All of the Z-Wave devices just plug in with no wiring, no batteries and everything pretty much plug-and-play. In less than an hour the system went from the box to fully installed and the web interface up and running via my phone or computer.

The HomeSeer system is accessible 24x7x365 via their portal at No complex router tunneling or anything like that – just plug the Zee S2 Ethernet cord into HS3the router and then login to it from anywhere in the world. The system is secure and password protected. The HS3 application serves web pages with a status of every Z-Wave device. The HS3 application runs on the Raspberry Pi so all processing is local which means temporary Internet connectivity outages are no problem.

The HS3 user interface shown here is utilitarian which is fine for this application. HomeSeer has an easy to use IF-THEN “events” page which is quite powerful. The HS3 system constantly monitors the motion sensors and depending on the time of day sends me a text anytime there hasn’t been motion detected in the house for more than 5 hours. I placed a motion sensor next to his bed and another in the kitchen. Since he typically would get up several times each night, my 5 hour time limit rarely false-triggered. The trigger was extended longer during the day since he would be up and around the house and not in the bedroom for more than 8 hours at a time.

Nothing is Perfect

When I first put the system together, it seemed to work reliably. However the Zee S2 unit was installed at the far end of the house near the cable box. The kitchen motion

Express Controls EZmultiPli Motion Sensor

sensor was about 25′ away and the bedroom one was another 20′ away and had to pass thru several walls, the HVAC system and a bathroom. With only 3 nodes in the Z-Wave network I violated one of the key rules of a mesh network – always have more than two routes to every device. In this case I had exactly one route to each device so I didn’t have a mesh and the result was a number of false triggers because the bedroom motion sensor occasionally couldn’t reach all the way back to the Zee S2.

I was frustrated because I left what I thought was a working system but soon turned out to be unreliable. Now I was 2000 miles away and had to suffer with this system for nearly a year before my next visit to Florida. The solution was to add a few lamp modules and another multi-sensor so now I had 7 nodes with several routes to all nodes. Now the system was reliable and did not false trigger. I added an event that automatically turned on a lamp in the family room whenever motion was detected. My father really liked this feature as he always had light as soon as he entered and it would automatically turn off when he had left the room.

I thought things were pretty robust at this point but my next Achilles heel turned up rather quickly. Something caused the Raspberry Pi to crash. I couldn’t log into it and it was no longer sending me the daily emails telling me what time my father had gotten up in the morning. After nearly 2 months the system just suddenly started sending me the daily emails again. Apparently a power outage had in effect rebooted the HomeSeer system. On my next visit I put the entire system on a power strip that my father could reach so he could reset the system. I still want a power strip that has a watchdog timer function and if it doesn’t get some sort of “ping” every hour or so, it reboots everything downstream.

He Takes a Fall

At 2:39am one morning in mid-November 2017, my father fell in his bedroom. He was unable to get up. He was unable to call for help. My HomeSeer system sent me a text at 7:39am stating he had not gotten up. That seemed like an odd time for him to not get up so I tried to call him. After several calls with no answer and checking the HomeSeer system to see that there has been no changes since 2:39am I became concerned. I had the Sheriff stop by and check on him and it turns out he was on the floor, awake but unable to move. The EMTs were called and he was taken to the hospital. In just 5 hours he was already dehydrated and would have slowly died a painful death in a day or so if my system had not been in place. The Z-Wave system saved my fathers life.

Looking back on it now, I had noticed that his morning schedule had started to vary significantly from day to day. For years he had been getting up at a pretty predictable time of around 10am. But in the months prior to his fall, his schedule had started to vary from 8am to as late as 1pm in the afternoon. When we talked on the phone he said he was fine but clearly he was struggling. He enjoyed being warm in Florida and he was happy and I was confident that my Z-Wave system would alert me to any major problems which it did.

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 –