Introduction
A Z-Wave Developer’s Journey is a series of ten blogs on the nuts and bolts of creating and bringing to market a wireless IoT product utilizing Z-Wave. The series provides a step-by-step roadmap for an engineering team to bring their idea from the concept to a product ready for volume manufacturing. Naturally, this series can’t delve into every aspect of the process but leverages vendor training, documentation and Github to flesh out the details. The journey focuses on Z-Wave end devices but a similar process would be followed by Z-Wave controllers. One thing to note is that everything is constantly changing. The Z-Wave specification continues to evolve with new Command Classes and updates to existing ones, the vendor Software Development Kits (SDKs) have new releases every few months and new silicon chips are always being released. While the guidance shared here is relevant today, details will inevitably evolve over time, so stay engaged and enjoy the ride.
Topics
The journey begins with this blog which describes the topics to be discussed in this ten-part series. You have the opportunity to comment on these topics as each is published. Feel free to comment or reach out to me directly at DrZWave@DrZWave.blog. I continue to learn by doing and enjoy exchanging best-in-class techniques for IoT product development of both hardware and software even in “retirement”. Below is a list of planned topics though the list may morph somewhat along the way based on your feedback. Don’t be shy, comment below or send me an email.
- Introduction & Z-Wave Silicon Choices
- First Steps in Customizing Z-Wave Firmware
- Which Z-Wave Command Classes to Include and Why
- Coding and Debugging Z-Wave Firmware
- Firmware Hardening
- Z-Wave Hardware Design Best Practices
- Optimizing Battery Life
- Antennas for Z-Wave
- Z-Wave Regulatory Process
- Z-Wave Volume Manufacturing
Z-Wave Silicon
Z-Wave silicon began in 2001 with the Zensys 100 series. This was followed by the 300, then 500 series and then the Silicon Labs 700 series. Where are the even series? The 200 series had numerous flaws and was quickly replaced by the 300. The 400 series had the unfortunate feature that flash was One-Time-Programmable which made for challenging debugging as the team trashed silicon each time they tested a new firmware build. As a result, the 400 series was also short lived. By the time the 600 series was being discussed, the developers were superstitious enough to skip the even series moniker.
Today, Z-Wave developers have two sources for Z-Wave chips: Silicon Labs 800 series and Trident IoTs CZ20. Apparently, Silicon Labs isn’t as superstitious as Zensys since the 800 series is certainly successful. The Silicon Labs 700 series silicon chips are still available, but any new development should use the 800 series. Here is a short list of the features of the three silicon chips currently in production:
ARM CPU | CM33+FPU+DSP 78MHz | CM33+FPU+DSP 78MHz | CM33+FPU+DSP 32MHz |
FLASH | 512KB | 1MB | 1MB |
RAM | 64KB | 256KB | 288KB |
Deep Sleep Current | 1.2uA | 1.3uA | 1.4uA |
Active Current Rx | 4.0mA | 4.3mA | 5.8mA |
Receive Sensitivity | -109.8dBm ZWLR US | -109.1dBm ZWLR US | -108dBm ZWLR US |
Security | Secure Vault, Crypto Eng, PUF, DPA, Tamper, Sec Att | Secure Vault, Crypto Eng, PUF, DPA, Tamper, Sec Att | TrustZone, Sec Boot, TRNG, Crypto Eng, PUF |
Peripherals | 5 timers, 4 UARTs/SPI, 2 I2C | 5 timers, 4 UARTs/SPI, 2 I2C | 5 timers, 3 UARTs, 2 SPI, 2 I2C |
Analog | 12b ADC 1msps | 12b ADC 1msps | 12b ADC 350ksps |
GPIOs | 31 | 49 | 22 |
Debug | SWD, Trace, UART | SWD, Trace, UART | SWD, UART |
Packages | QFN40, QFN48 (6×6) | QFN48 (6×6), QFN68 | QFN40 5x5mm |
Special Features | ZGM230 Module | BLE 2.4GHz | 1K retention RAM, wake on all GPIOs |
*Data for this table comes directly from the manufacturer’s datasheets – follow the links above.
All three silicon chips are capable of +20dBm Z-Wave transmit power and fully support all Z-Wave modulation technologies. All have numerous other peripherals and features above the short list above. See the respective datasheets for more information. Silicon Labs also has the ZGM230 module which contains the ZG23 plus a crystal and a few other components. The ZGM230 is limited to +14dBm transmit power but comes with a fully calibrated crystal. We’ll talk more about crystal calibration in a later blog posting.
How to Choose
Which Z-Wave chip should you use for your project? Of course, the answer is… depends. The main challenge with the ZG23 is the limited amount of flash and RAM. The SDK uses virtually all the available resources. If your product is fairly simple, like a door/window sensor, the ZG23 should be fine. If you are designing a thermostat or door lock, I would recommend either the ZG28 or the CZ20. If you use the Silicon Labs QFN48 you can develop using the ZG28 and then potentially reduce cost by switching to the pin compatible ZG23 if the code fits. The ZG23 could also work out if you connect an external serial flash chip for the OTA image. That frees up half of the 512KB of flash for your application but it’s still tight on RAM. The ZGM230 module is easier to manufacture since the crystal is calibrated at the factory but is limited to +14dBm transmit power thus effectively cutting the RF range in half. The choice of Silicon Labs or Trident IoT is a more nuanced choice based on the support and relationship you have with the vendor.
Next Up – Getting Started
Next month we will delve into the topic of getting started with each of the silicon vendors’ tools and software. Remember, you can guide me on topics of interest going forward by commenting on this article or sending me an email. I look forward to continuing the journey with you next month.
About the Author
Eric Ryherd has been at the forefront of Z-Wave innovation since 2003, beginning as a consultant and later serving as a Field Application Engineer at Silicon Labs. Over the course of his career, he has contributed to the design and development of a wide range of Z-Wave products, including sensors, remote controls, motorized window shades, and in-wall dimmers, many of which are on the market today.
Although he “retired” in 2022, Eric remains deeply engaged in embedded systems and Z-Wave development through his blog, DrZWave.blog, and ongoing IoT consulting projects. He is also a familiar face at Z-Wave Alliance Unplug Fests, where he frequently serves as the lead coordinator, supporting interoperability and developer collaboration.