A Z-Wave Developer’s Journey | Part 1

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.

  1. Introduction & Z-Wave Silicon Choices
  2. First Steps in Customizing Z-Wave Firmware
  3. Which Z-Wave Command Classes to Include and Why
  4. Coding and Debugging Z-Wave Firmware
  5. Firmware Hardening
  6. Z-Wave Hardware Design Best Practices
  7. Optimizing Battery Life
  8. Antennas for Z-Wave
  9. Z-Wave Regulatory Process
  10. 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:

 

EFR32ZG23

EFRZG28

T32CZ20

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.

A Z-Wave Developer’s Journey | Part 1

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

Sign up for the Z-Wave
Alliance Newsletter

Stay current and get the latest news from the Z-Wave Alliance delivered to your inbox.

  • This field is for validation purposes and should be left unchanged.
  • Communication Opt-In