+ All Categories
Home > Documents > CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of...

CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of...

Date post: 22-Mar-2020
Category:
Upload: others
View: 6 times
Download: 0 times
Share this document with a friend
73
CONFIDENTIAL Instruction Z-Wave 500 Series SDK Contents v6.81.01 Document No.: INS13933 Version: 3 Description: - Written By: JFR;COLSEN;TRO;BBR Date: 2018-03-06 Reviewed By: JFR;TRO;ABR;EFH;SSE;COLSEN;JKA;LTHOMSEN Restrictions: Partners Only Approved by: Date CET Initials Name Justification 2018-03-06 14:02:00 NTJ Niels Thybo Johansen This document is the property of Silicon Labs. The data contained herein, in whole or in part, may not be duplicated, used or disclosed outside the recipient for any purpose. This restriction does not limit the recipient's right to use information contained in the data if it is obtained from another source without restriction.
Transcript
Page 1: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

CONFIDENTIAL

Instruction

Z-Wave 500 Series SDK Contents v6.81.01

Document No.: INS13933

Version: 3

Description: -

Written By: JFR;COLSEN;TRO;BBR

Date: 2018-03-06

Reviewed By: JFR;TRO;ABR;EFH;SSE;COLSEN;JKA;LTHOMSEN

Restrictions: Partners Only

Approved by:

Date CET Initials Name Justification 2018-03-06 14:02:00 NTJ Niels Thybo Johansen

This document is the property of Silicon Labs. The data contained herein, in whole or in part, may not be duplicated, used or disclosed outside the recipient for any purpose. This restriction does not limit the recipient's right to use information contained in the data if it is obtained from another source without restriction.

Page 2: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page ii of vi

CONFIDENTIAL

REVISION RECORD

Doc. Rev

Date By Pages affected Brief description of changes

1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series SDK Contents v6.71.01

1 20170510 COLSEN Section 4.1.4 Changed triple press to press for learn mode.

1 20170524 TRO Section 4.5.4 Change button interface

1 20170623 TRO Section 4.3.1 Added sensor type variants

1 20170719 JFR Section 3 & 4 Removed intermediate apps

1 20170728 JFR Section 4.1.3 Changed Version CC version from 2 to 3.

1 20170801 TRO Section 4.10.4 Remove LED indication from Wall Controller

1 20170803 TRO Section 4 Add documentation states a Security Enabled Z-Wave Controller must be used in order to fully utilize the product.

1 20170804 TRO Section 4.6 Remove module ZDB5202 from Power strip

1 20170825 TRO Section 4.10 Wall Controller support ZDB5101

1 20170904 COLSEN Section 4.10.1 Removed Switch and Switch Multilevel from Wall Controller NIFs.

2 20171121 JFR Section 4.5.1 Section 4.1.3 Section 4.1.3, 4.5 & 4.6 Section 3.1 & 3.4.1

Added Basic CC to list of command classes. Changed Central Scene CC version from 2 to 3. Added information about supported mode of Notification. Added MyProductPlus binaries

2 20171127 COLSEN 4.1.3, 4.5 & 4.6 Added information about supported mode of Notification.

2 20171211 COLSEN 4 Updated support of Supervision in NIF tables.

2 20180130 COLSEN 4.2.4 Update buttons table for Door Lock.

2 20180215 COLSEN 4.6.3, 4.10.3 Updated endpoint lifelines.

2 20180222 COLSEN 4.1.5 Squashed “Documentation related to devices from multiple manufacturers” to be one section applying for all applications.

2 20180222 COLSEN 4.6.4 Updated description of button S6 for Power Strip (Overload detection).

3 20180306 BBR All Added Silicon Labs template

Page 3: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page iii of vi

CONFIDENTIAL

Table of Contents

1 ABBREVIATIONS ................................................................................................................................. 1

2 INTRODUCTION ................................................................................................................................... 3

2.1 Purpose .............................................................................................................................................. 3 2.2 Audience and prerequisites ................................................................................................................ 3

3 SOFTWARE COMPONENTS ............................................................................................................... 4

3.1 Directory Structure SDK 6.8x.0x ........................................................................................................ 4 3.2 Boards Supported .............................................................................................................................. 6 3.3 Z-Wave ............................................................................................................................................... 7

3.3.1 Include ...................................................................................................................................... 7 3.3.2 I/O Defines ............................................................................................................................... 8 3.3.3 Libraries.................................................................................................................................... 8

3.3.3.1 Bootloader ........................................................................................................................ 9 3.3.3.2 Bridge Controller.............................................................................................................10 3.3.3.3 Portable Controller .........................................................................................................10 3.3.3.4 Static Controller ..............................................................................................................10 3.3.3.5 Static Controller Single ...................................................................................................10 3.3.3.6 Enhanced 232 Slave ......................................................................................................11 3.3.3.7 Production Test DUT ......................................................................................................11 3.3.3.8 Production Test Generator .............................................................................................11 3.3.3.9 Routing Slave .................................................................................................................11 3.3.3.10 External non-volatile memory .........................................................................................12 3.3.3.11 Variable initialization .......................................................................................................12 3.3.3.12 Library S2 .......................................................................................................................12 3.3.3.13 RF frequency ..................................................................................................................12

3.4 ProductPlus ......................................................................................................................................13 3.4.1 Bin ..........................................................................................................................................13

3.4.1.1 DoorLockKeyPad ...........................................................................................................13 3.4.1.2 MyProductPlus ...............................................................................................................14 3.4.1.3 PowerStrip ......................................................................................................................15 3.4.1.4 ProdTestDUT ..................................................................................................................15 3.4.1.5 ProdTestGen ..................................................................................................................15 3.4.1.6 SensorPIR ......................................................................................................................15 3.4.1.7 SerialAPI_Controller_Bridge ..........................................................................................16 3.4.1.8 SerialAPI_Controller_Portable .......................................................................................16 3.4.1.9 SerialAPI_Controller_Static ............................................................................................17 3.4.1.10 SerialAPI_Controller_Static_Single ................................................................................17 3.4.1.11 SerialAPI_Slave_Enhanced_232 ...................................................................................18 3.4.1.12 SerialAPI_Slave_Routing ...............................................................................................18 3.4.1.13 SwitchOnOff ...................................................................................................................18 3.4.1.14 WallController .................................................................................................................19

3.4.2 ApplicationCommandHandlers ..............................................................................................20 3.4.3 ApplicationUtilities ..................................................................................................................22 3.4.4 DoorLockKeyPad ...................................................................................................................23 3.4.5 MyProductPlus .......................................................................................................................23 3.4.6 PowerStrip ..............................................................................................................................23 3.4.7 SensorPIR ..............................................................................................................................23 3.4.8 SerialAPIPlus .........................................................................................................................23 3.4.9 SwitchOnOff ...........................................................................................................................24 3.4.10 WallController .........................................................................................................................24

3.5 Tools .................................................................................................................................................25

Page 4: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page iv of vi

CONFIDENTIAL

3.5.1 FixBootCRC ...........................................................................................................................25 3.5.2 FixPatchCRC .........................................................................................................................25 3.5.3 HexTools ................................................................................................................................25 3.5.4 IMAToolBox ............................................................................................................................25 3.5.5 IncDep ....................................................................................................................................25 3.5.6 KeypairGeneration .................................................................................................................25 3.5.7 Make .......................................................................................................................................25 3.5.8 Mergehex ...............................................................................................................................25 3.5.9 Python ....................................................................................................................................26 3.5.10 TextTools................................................................................................................................26 3.5.11 uVisionProjectGenerator ........................................................................................................26

4 Z-WAVE PLUS APPLICATIONS ........................................................................................................27

4.1 Z-Wave Plus Framework ..................................................................................................................28 4.1.1 Application Command Handlers ............................................................................................29 4.1.2 Transport Layer ......................................................................................................................29 4.1.3 Supported command classes .................................................................................................30 4.1.4 General user interface ............................................................................................................30 4.1.5 Documentation related to devices from multiple manufacturers ............................................30

4.2 Door Lock Key Pad ..........................................................................................................................31 4.2.1 Announced Command Classes in NIF ...................................................................................32 4.2.2 Basic Command Class mapping ............................................................................................32 4.2.3 Association groups .................................................................................................................33 4.2.4 Usage of buttons on ZDP03A ................................................................................................33 4.2.5 LED status on ZDP03A ..........................................................................................................33 4.2.6 Firmware update and external NVM ......................................................................................33 4.2.7 Z-Wave Certification ...............................................................................................................34

4.3 My Product Plus ...............................................................................................................................35 4.3.1 My Product Plus sensor type variants ....................................................................................35 4.3.2 Announced Command Classes in NIF ...................................................................................35 4.3.3 Basic Command Class mapping ............................................................................................36 4.3.4 Association groups .................................................................................................................37 4.3.5 MyProduct Files .....................................................................................................................37 4.3.6 Firmware update and external NVM ......................................................................................38 4.3.7 Z-Wave Certification ...............................................................................................................38

4.4 Switch On/Off ...................................................................................................................................39 4.4.1 Announced Command Classes in NIF ...................................................................................40 4.4.2 Basic Command Class mapping ............................................................................................40 4.4.3 Association groups .................................................................................................................40 4.4.4 Usage of buttons on ZDP03A ................................................................................................41 4.4.5 LED status on ZDP03A ..........................................................................................................41 4.4.6 Firmware update and external NVM ......................................................................................41 4.4.7 Z-Wave Certification ...............................................................................................................41

4.5 Sensor PIR .......................................................................................................................................42 4.5.1 Announced Command Classes in NIF ...................................................................................43 4.5.2 Basic Command Class mapping ............................................................................................43 4.5.3 Association groups .................................................................................................................44 4.5.4 Usage of buttons on ZDP03A ................................................................................................44 4.5.5 LED status on ZDP03A ..........................................................................................................44 4.5.6 Z-Wave Certification ...............................................................................................................44

4.6 Power Strip .......................................................................................................................................45 4.6.1 Announced Command Classes in NIF ...................................................................................46 4.6.2 Basic Command Class mapping ............................................................................................47 4.6.3 Association groups .................................................................................................................48 4.6.4 Usage of buttons on ZDP03A ................................................................................................49 4.6.5 LED status on ZDP03A ..........................................................................................................49 4.6.6 Z-Wave Certification ...............................................................................................................49

Page 5: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page v of vi

CONFIDENTIAL

4.7 Production Test DUT ........................................................................................................................50 4.7.1 Production Test DUT Files .....................................................................................................51

4.8 Production Test Generator ...............................................................................................................52 4.8.1 Production Test Generator Files ............................................................................................54

4.9 Serial API Applications .....................................................................................................................54 4.10 Wall Controller ..................................................................................................................................55

4.10.1 Announced Command Classes in NIF ...................................................................................56 4.10.2 Basic Command Class mapping ............................................................................................58 4.10.3 Association groups .................................................................................................................59 4.10.4 Usage on ZDP03A .................................................................................................................61 4.10.5 How to configure associations to Wall Controller...................................................................61

4.10.5.1 Non-multi-channel encapsulated configuration ..............................................................62 4.10.5.2 Encapsulated configuration ............................................................................................63

4.10.6 Z-Wave Certification ...............................................................................................................63

5 DEVELOPMENT COMPONENTS ......................................................................................................64

5.1 Z-Wave Development Platform ZDP03A .........................................................................................64 5.2 Hardware development components for 500 Series ........................................................................65

REFERENCES ...........................................................................................................................................66

INDEX .........................................................................................................................................................67

List of Figures

Figure 1, Z-Wave Plus Application Framework. ........................................................................................ 28 Figure 2. Prod_Test_DUT test program flow. ............................................................................................ 50 Figure 3. Wall Controller endpoints/buttons on ZDP03A. .......................................................................... 58 Figure 4. The Z-Wave Development Platform ZDP03A. ........................................................................... 64

List of Tables

Table 1. 500 Series development boards hex files naming......................................................................... 6 Table 2. Functionality covered by the Z-Wave Plus applications. ............................................................. 27 Table 3. Door Lock Key Pad command classes announced in NIF depending on state .......................... 32 Table 4. Door Lock Key Pad buttons interface .......................................................................................... 33 Table 5. Door Lock Key Pad LED status interface .................................................................................... 33 Table 6. Door Lock Key Pad external NVM data backward compatibility ................................................. 34 Table 7. My Product Plus command classes announced in NIF depending on state. .............................. 36 Table 8. My Product Plus external NVM data backward compatibility ...................................................... 38 Table 9. On/Off Switch Command Classes announced in NIF depending on state ................................. 40 Table 10. On/Off Switch push buttons interface ........................................................................................ 41 Table 11. On/Off Switch LED status interface ........................................................................................... 41 Table 12. PIR Sensor command classes announced in NIF depending on state ..................................... 43 Table 13. PIR Sensor buttons interface..................................................................................................... 44 Table 14. PIR Sensor LED status interface ............................................................................................... 44 Table 15. Power Strip command classes announced in NIF depending on state ..................................... 46 Table 16. Power Strip push buttons interface ........................................................................................... 49 Table 17. Power Strip LED status interface .............................................................................................. 49 Table 18. Production Test Generator LED interface ................................................................................. 52 Table 19. Wall Controller command classes announced in NIF depending on state ................................ 56 Table 20. Wall Controller push buttons interface ...................................................................................... 61

Page 6: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page vi of vi

CONFIDENTIAL

Table 21. 500 Series development boards and interfaces ........................................................................ 65

Page 7: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 1 of 67

CONFIDENTIAL

1 ABBREVIATIONS

Abbreviation Explanation

ACK Acknowledge

AES The Advanced Encryption Standard is a symmetric block cipher algorithm.

AGI Association Group Information command class

ANZ Australia/New Zealand

API Application Programming Interface

ASIC Application Specific Integrated Circuit

CC Command Class

CSA Client-Side Authentication

DLL Dynamic Link Library

DUT Device Under Test

ERTT Enhanced Reliability Test Tool

EU Europe

GNU An organization devoted to the creation and support of Open Source software

HEX S-Record hex file extension (*.hex) for programs to be downloaded the first time using a programmer because it contains both bootloader and Firmware Update Meta Data Command Class implementation. The bootloader can support S-Record hex file or compressed hex file format.

HK Hong Kong

HW Hardware

IL Israel

IMA Installation and Maintenance Application that typical resides on the gateway

IN India

IR Infrared

JP Japan

KR South Korea

LBT Listen Before Talk

MY Malaysia

NVM Non-volatile memory

OTA Over the air (e.g. making a firmware update wireless). Also used as S-Record hex file extension (*.ota) for programs to be sent over the air achieving a firmware update of the device in question. The device must of course have a bootloader supporting the S-Record hex file format.

OTW Over the wire (e.g. making a firmware update via the serial API interface)

OTZ Used as compressed hex file extension (*.otz) for programs to be sent over the air (OTA) achieving a firmware update of the device in question. The device must of course have a bootloader supporting the compressed hex file format.

RF Radio Frequency

RSSI Received Signal Strength Indicator

RU Russia

S0 Security Command Class

S2 Security 2 Command Class

SDK Z-Wave Software Developer’s Kit includes software and related software documentation.

SSA Server-Side Authentication

TI Test Interface for test and debugging purposes.

UPnP Universal Plug and Play

US United States

USB Universal Serial Bus

UZB USB v2.0 full speed low power CDC-ACM compliant Z-Wave adapter

VCP Virtual COM Port

XML eXtensible Markup Language

Page 8: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 2 of 67

CONFIDENTIAL

Abbreviation Explanation

ZDK Z-Wave Developer’s Kit includes hardware, software and documentation.

Page 9: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 3 of 67

CONFIDENTIAL

2 INTRODUCTION

2.1 Purpose

The purpose of this document is to describe the contents on the Z-Wave Software Developer’s Kit (SDK). Document contains also a description of all embedded applications including user guide or reference to relevant document.

2.2 Audience and prerequisites

The audience is Z-Wave Partners.

Page 10: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 4 of 67

CONFIDENTIAL

3 SOFTWARE COMPONENTS

The Z-Wave development software packet consists of a protocol part, applications and a number of tools used for developing and building the code.

3.1 Directory Structure SDK 6.8x.0x

The development software is organized in the following directory structure:

/ - ProductPlus

- ApplicationCommandHandlers - ApplicationUtilities - Bin

- DoorLockKeyPad - MyProductPlus - PowerStrip - ProdTestDUT - ProdTestGen - SensorPIR - SerialAPI_Controller_Bridge - SerialAPI_Controller_Portable - SerialAPI_Controller_Static - SerialAPI_Controller_Static_Single - SerialAPI_Slave_Enhanced_232 - SerialAPI_Slave_Routing - SwitchOnOff - WallController

- DoorLockKeyPad - MyProductPlus - PowerStrip - ProdTestDUT - ProdTestGen - SensorPIR - SerialAPIPlus - SwitchOnOff - WallController

- Tools - FixBootCRC - FixPatchCRC - HexTools - IMAToolbox

- PC - Source

- IncDep - KeypairGeneration - Make - Mergehex - Python - TextTools

- sed-1-4-5 - uVisionProjectGenerator

Page 11: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 5 of 67

CONFIDENTIAL

- Z-Wave - include - IO_defines - lib

- bootloader_ZW050x - controller_bridge_ZW050x - controller_bridge_ZW050x_3CH - controller_portable_ZW050x - controller_portable_ZW050x_3CH - controller_static_single_ZW050x - controller_static_single_ZW050x_3CH - controller_static_ZW050x - controller_static_ZW050x_3CH - ext_nvm - init_vars - lib2 - rf_freq - slave_enhanced_232_ZW050x - slave_enhanced_232_ZW050x_3CH - slave_prodtest_dut_ZW050x - slave_prodtest_dut_ZW050x_3CH - slave_prodtest_gen_ZW050x - slave_prodtest_gen_ZW050x_3CH - slave_routing_ZW050x - slave_routing_ZW050x_3CH

This directory structure contains all the tools and applications needed, except the recommended Keil software, which must be purchased separately. More information about where and how to buy the Keil software development components are described in [12].

Note! Recommending leaving the directory structure as is due to compiler and linker issues.

The majority of the above mentioned Z-Wave specific tools and application are briefly described in the following sections.

Page 12: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 6 of 67

CONFIDENTIAL

3.2 Boards Supported

The SDK support a number of different boards as shown in the table below.

Table 1. 500 Series development boards hex files naming

Development board Module/chip used Hex file name

ZDB5101

ZM5101 *_ZW050x_y*.hex

*_ZW050x_USBVCP_y*.hex

ZDB3502

SD3502 *_ZW050x_y*.hex

*_ZW050x_USBVCP_y*.hex

ZDB5202

ZM5202/SD3502 (300 series interface)

*_ZW050x_y*.hex (See note below)

Note: USBVCP hex files do not support ZM5202. Calibration hex files for Z-Wave have dedicated ZM5202 hex files.

Page 13: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 7 of 67

CONFIDENTIAL

3.3 Z-Wave

The Z-Wave header files and libraries are the software files needed for building a Z-Wave enabled product. The files are organized in directories used for building Z-Wave controllers and slaves respectively.

3.3.1 Include

The Z-Wave\include directory contains Z-Wave header files needed for interfacing to the Z-Wave protocol and hardware peripherals that reside on the 500 Series Single Chip.

The Z-Wave protocol related header files are as follows:

ZW_controller_api.h Portable Controller interface. This header should be used together with the Controller Library.

Macro defines.

Include all necessary header files.

ZW_controller_bridge_api.h Bridge controller interface. This header should be used together with the Bridge Controller Library.

Macro defines.

Includes all necessary header files.

ZW_controller_static_api.h Static Controller interface. This header should be used together with the Static Controller Library.

Macro defines.

Includes all necessary header files.

ZW_sensor_api.h Sensor interface.

Macro defines.

Includes all other necessary header files.

ZW_slave_32_api.h Slave interface for ZMXXXX-RE Z-Wave module.

Macro defines.

Include all header files.

ZW_slave_api.h Slave interface.

Macro defines.

Includes all other necessary header files.

ZW_slave_routing_api.h Routing and Enhanced 232 slave nodes interface.

Macro definitions.

Includes all other necessary header files.

ZW_basis_api.h Z-Wave Application general software interface.

Interface to common Z-Wave functions.

ZW_transport_api.h Transfer of data via Z-Wave protocol.

ZW_classcmd.h Defines for device and command classes used to obtain interoperability between Z-Wave enabled products from different vendors, for a detailed description refer to [4], [5], [6], [7], [8], [15], [16] and [11].

Page 14: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 8 of 67

CONFIDENTIAL

The hardware peripherals related header files are as follows:

config_lib.h This header file contains defines for library version in a generalized way.

ISD51.h This header file contains defines and functions for the In-System Debugger for 8051 based microcontrollers modified for Silicon Labs ZW050x.

ZW_adcdriv_api.h This header file contains defines and functions interfacing to the 500 Series Single Chip built-in analog to digital converter.

ZW_aes_api.h This header file contains defines and functions interfacing to the 500 Series Single Chip built-in AES-128 engine.

… See comments in header files.

ZW050x.h Inventra 8051 SFR defines for the Z-Wave ZW050x RF transceiver.

3.3.2 I/O Defines

The Z-Wave\IO_defines directory contains hardware definition files needed for building an application e.g. the development controller application.

AppRFSetup.c This file defines the normal and low power transmission levels. Change levels here if necessary.

ZW_app_version.a51 Makes the version for the application accessible from the library file during linking.

ZW_evaldefs.h This file contains definitions of the connector pins on the controller board.

ZW_L51_BANK.a51 This file enables code bank switching.

ZW_pindefs.h This file contains definitions of the connector pins on the Z-Wave module, and macros for accessing the I/O pins. Refer to [10] regarding a detail description.

ZW_portdefs.h This file contains I/O port initialization vectors on the Z-Wave ASIC.

ZW_segment_tail.a51 This file enables use of XDATA located in SRAM part of the code area.

ZW_strings_rf050x.h/c Attributes for RF table.

3.3.3 Libraries

The Z-Wave\lib directory structure contains all the supported libraries.

Page 15: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 9 of 67

CONFIDENTIAL

3.3.3.1 Bootloader

The lib\bootloader_ZW050x directory contains a bootloader that is used in connection with OTA firmware update. The directory contains the following file:

ZW_bootloader_ZW050x.lib This file is linked together with the Z-Wave protocol and API library.

Page 16: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 10 of 67

CONFIDENTIAL

3.3.3.2 Bridge Controller

The lib\controller_bridge_ZW050x… directory contains all files needed for building a non-secure Z-Wave bridge controller application. The directory contains the following files:

ZW_controller_bridge_ZW050x.lib ZW_controller_bridge_ZW050x_3CH.lib

These files are the compiled Z-Wave protocol and API library for a 500 Series based module that a Z-Wave bridge controller application should be linked together with. JP and KR use the 3CH variant.

3.3.3.3 Portable Controller

The lib\controller_portable_ZW050x… directory contains all files needed for building a non-secure Z-Wave controller application. The directory contains the following files:

ZW_controller_portable_ZW050x.lib ZW_controller_portable_ZW050x_3CH.lib

These files are the compiled Z-Wave protocol and API library for a 500 Series based module that a Z-Wave portable controller application should be linked together with. JP and KR use the 3CH variant.

3.3.3.4 Static Controller

The lib\controller_static_ZW050x… directory contains all files needed for building a non-secure Z-Wave static controller application. The directory contains the following files:

ZW_controller_static_ZW050x.lib ZW_controller_static_ZW050x_3CH.lib

These files are the compiled Z-Wave protocol and API library for a 500 Series based module that a Z-Wave static controller application should be linked together with. JP and KR use the 3CH variant.

3.3.3.5 Static Controller Single

The lib\controller_static_single_ZW050x… directory contains all files needed for building a Z-Wave static single controller application. ERTT application uses this library because it supports suppression of retransmission. Notice that the PC based Controller now supports the ERTT functionality.

WARNING: Do not use this library in product applications

The directory contains the following files:

ZW_controller_static_single_ZW050x.lib ZW_controller_static_single_ZW050x_3CH.lib

These files are the compiled Z-Wave protocol and API library for a 500 Series based module that a Z-Wave static controller single application should be linked together with. JP and KR use the 3CH variant.

Page 17: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 11 of 67

CONFIDENTIAL

3.3.3.6 Enhanced 232 Slave

The lib\slave_enhanced_232_ZW050x… directory contains all files needed for building a non-secure and secure S0/S2 Z-Wave enhanced 232 slave node application. The directory contains the following files:

ZW_slave_enhanced_232_ZW050x.lib ZW_slave_enhanced_232_ZW050x_3CH.lib

These files are the compiled Z-Wave protocol and API library for a 500 Series based module that a Z-Wave enhanced 232 slave application should be linked together with. JP and KR use the 3CH variant.

3.3.3.7 Production Test DUT

The lib\slave_prodtest_dut_ZW050x… directory contains all files needed for building a production test DUT application on a Z-Wave module. The directory contains the following files:

ZW_slave_prodtest_dut_ZW050x.lib ZW_slave_prodtest_dut_ZW050x_3CH.lib

These files are the compiled Z-Wave protocol and API library for a 500 Series based module modules that a Z-Wave production test DUT application should be linked together with. JP and KR use the 3CH variant.

3.3.3.8 Production Test Generator

The lib\slave_prodtest_gen_ZW050x… directory contains all files needed for building a production test generator application on a Z-Wave module. The directory contains the following files:

ZW_slave_prodtest_gen_ZW050x.lib ZW_slave_prodtest_gen_ZW050x_3CH.lib

These files are the compiled Z-Wave protocol and API library for a 500 Series based module modules that a Z-Wave production test generator application should be linked together with. JP and KR use the 3CH variant.

3.3.3.9 Routing Slave

The lib\slave_routing_ZW050x… directory contains all files needed for building a non-secure Z-Wave routing slave node application on a Z-Wave module. The directory contains the following files:

ZW_slave_routing_ZW050x.lib ZW_slave_routing_ZW050x_3CH.lib

These files are the compiled Z-Wave protocol and API library for a 500 Series based module that a Z-Wave routing slave application should be linked together with. JP and KR use the 3CH variant.

Page 18: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 12 of 67

CONFIDENTIAL

3.3.3.10 External non-volatile memory

The lib\ext_nvm directory contains external non-volatile memory (NVM) drivers, which can be used to substitute default driver in library.

The default driver uses SPI1 and P2.5 to access external NVM. The driver adapt automatically to the external NVM in question or uses data in NVR. Regarding supported NVMs, refer to [17]

WARNING: Currently it is not possible to substitute default driver in library/bootloader by linking one of the object files.

3.3.3.11 Variable initialization

The lib\init_vars directory contains an init_vars.obj object file, which replaces the standard Keil initialization procedure. This reduces the time to detect whether a wakeup beam is present or not by postponing initialization. Initialization happens only in case the wakeup beam is addressed to the node in question.

3.3.3.12 Library S2

The lib\libs2 directory contains the S2 Security-specific libraries. These libraries are linked into all S2 enabled targets.

The directory contains the following files:

LIBS2CRYPTO.LIB: Cryptographic functions used by S2.

LIBS2_SLAVE.LIB: S2 transport system and inclusion state machine for slave libraries.

3.3.3.13 RF frequency

The lib\rf_freq directory contains all the possible RF initialization object files ZW_rf_050x_xx.obj:

ZW_rf_050x_ALL.obj – Contains all frequencies (Used by Zniffer and Production Test Generator)

ZW_rf_050x_ANZ.obj – Australia/New Zealand

ZW_rf_050x_CN.obj – China

ZW_rf_050x_EU.obj – Europe

ZW_rf_050x_HK.obj – Hong Kong

ZW_rf_050x_IL.obj – Israel

ZW_rf_050x_IN.obj – India

ZW_rf_050x_JP.obj – Japan

ZW_rf_050x_KR.obj – South Korea

ZW_rf_050x_MY.obj – Malaysia

ZW_rf_050x_RU.obj – Russia

ZW_rf_050x_US.obj – US

Page 19: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 13 of 67

CONFIDENTIAL

3.4 ProductPlus

The ProductPlus directory contains Z-Wave Plus applications for a number of different product examples. Both source code and precompiled files ready for download are supplied.

3.4.1 Bin

The ProductPlus\Bin directory structure contains the precompiled code of the Z-Wave Plus applications and the hex files needed to download to the Z-Wave 500 Series Single Chip via the Z-Wave Programmer.

The table in section 3.1 show the hex files naming for Z-Wave Development Boards used in conjunction with the Z-Wave Development Platform ZDP03A. Refer to section 5.1 regarding RS232 and USB numbering on ZDP03A. Refer to section 3.3.3.11 regarding frequency notation y.

3.4.1.1 DoorLockKeyPad

The ProductPlus\Bin\DoorLockKeyPad directory contains all files needed for running a Z-Wave Plus Door Lock with Keypad (both non-secure and secure S0/S2) application on a Z-Wave module. The Z-Wave Plus application is based on the enhanced 232 slave library. The directory contains the following files:

DoorLockKeyPad_slave_enhanced_232_OTA_SSA _ZW050x_y_TI_WITH_BOOTLOADER.hex

Door Lock with Keypad hex files for y frequency versions. Download this file first time using ZwaveProgrammer because it contains both bootloader supporting OTZ hex files and Firmware Update Meta Data CC implementation. The OTW functionality requires an external NVM equal to or bigger than 128 KB. TI denotes that Test Interface is enabled. SSA denotes that server-side authentication is used, which is the highest security level in S2.

DoorLockKeyPad_slave_enhanced_232_OTA_SSA _ZW050x_y_TI.otz

Door Lock with Keypad OTZ hex files for y frequency versions. Download this file over the air (OTA) subsequent because it contains not the bootloader.

DoorLockKeyPad_slave_enhanced_232_OTA_CSA _ZW050x_y_TI_WITH_BOOTLOADER.hex

Door Lock with Keypad hex files for y frequency versions. Download this file first time using ZwaveProgrammer because it contains both bootloader supporting OTZ hex files and Firmware Update Meta Data CC implementation. The OTW functionality requires an external NVM equal to or bigger than 128 KB. TI denotes that Test Interface is enabled. CSA denotes that client-side authentication, which is used when upgrading devices to support S2.

DoorLockKeyPad_slave_enhanced_232_OTA_CSA _ZW050x_y_TI.otz

Door Lock with Keypad OTZ hex files for y frequency versions. Download this file over the air (OTA) subsequent because it contains not the bootloader.

Page 20: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 14 of 67

CONFIDENTIAL

3.4.1.2 MyProductPlus

The ProductPlus\Bin\MyProductPlus directory contains all files needed to develop a Z-Wave Plus application (both non-secure and secure S0/S2) using a minimum framework. MyProductPlus application supports three different types of devices:

Always on device.

Battery device supporting Battery CC

Battery device supporting Battery and Wake Up CC

The MyProductPlus application is missing device type specific command classes before it is a real device. Application is based on the enhanced 232 slave library. The directory contains the following files:

MyProductPlus_slave_enhanced _232_OTA_ZW050x_y_WITH_BOOTLOADER.hex

MyProductPlus (Always on device) hex files for y frequency versions. Download this file first time using ZwaveProgrammer because it contains both bootloader supporting OTZ hex files and Firmware Update Meta Data CC implementation. The OTW functionality requires an external NVM equal to or bigger than 128 KB.

MyProductPlus _slave_enhanced _232_OTA_ZW050x_y.otz

MyProductPlus OTZ hex files for y frequency versions. Download this file over the air (OTA) subsequent because it contains not the bootloader.

MyProductPlus_Battery_slave_enhanced _232_OTA_ZW050x_y_WITH_BOOTLOADER.hex

MyProductPlus (Battery device supporting Battery CC) hex files for y frequency versions. Download this file first time using ZwaveProgrammer because it contains both bootloader supporting OTZ hex files and Firmware Update Meta Data CC implementation. The OTW functionality requires an external NVM equal to or bigger than 128 KB.

MyProductPlus_Battery_slave_enhanced _232_OTA_ZW050x_y.otz

MyProductPlus OTZ hex files for y frequency versions. Download this file over the air (OTA) subsequent because it contains not the bootloader.

MyProductPlus_Battery_wakeUp_slave_enhanced _232_OTA_ZW050x_y_WITH_BOOTLOADER.hex

MyProductPlus (Battery device supporting Battery and Wake Up CC) hex files for y frequency versions. Download this file first time using ZwaveProgrammer because it contains both bootloader supporting OTZ hex files and Firmware Update Meta Data CC implementation. The OTW functionality requires an external NVM equal to or bigger than 128 KB.

MyProductPlus_Battery_wakeUp_slave_enhanced _232_OTA_ZW050x_y.otz

MyProductPlus OTZ hex files for y frequency versions. Download this file over the air (OTA) subsequent because it contains not the bootloader.

Page 21: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 15 of 67

CONFIDENTIAL

3.4.1.3 PowerStrip

The ProductPlus\Bin\PowerStrip directory contains all files needed for running a Z-Wave Plus Power Strip (both non-secure and secure S0/S2) application on a Z-Wave module. The Z-Wave Plus application is based on the enhanced 232 slave library. The directory contains the following files:

PowerStrip_slave_enhanced_232_OTA _ZW050x_y_TI_WITH_BOOTLOADER.hex

Power Strip hex files for y frequency versions. Download this file first time using ZwaveProgrammer because it contains both bootloader supporting OTZ hex files and Firmware Update Meta Data CC implementation. The OTW functionality requires an external NVM equal to or bigger than 128 KB. TI denotes that Test Interface is enabled.

PowerStrip_slave_enhanced_232_OTA _ZW050x_y_TI.otz

Power Strip OTZ hex files for y frequency versions. Download this file over the air (OTA) subsequent because it contains not the bootloader.

3.4.1.4 ProdTestDUT

The ProductPlus\Bin\ProdTestDUT directory contains all files needed for running a production test device under test (DUT) application on a Z-Wave module. The directory contains the following files:

prodtestdut_ZW050x_y.hex Production test DUT hex files for y frequency versions.

3.4.1.5 ProdTestGen

The ProductPlus\Bin\ProdTestGen directory contains all files needed for running a production test generator application on a Z-Wave module. The directory contains the following files:

prodtestgen_ZW050x_ALL.hex prodtestgen_ZW050x_ALL_3CH.hex

Production test generator hex files for all frequency versions. JP and KR uses 3CH.

3.4.1.6 SensorPIR

The ProductPlus\Bin\SensorPIR directory contains all files needed for running a Z-Wave Plus PIR Sensor (both non-secure and secure S0/S2) application on a Z-Wave module. The Z-Wave Plus application is based on the routing slave library and supports therefore not OTA firmware update. The directory contains the following files:

SensorPIR_Battery_slave_routing _ZW050x_y.hex

PIR Sensor hex files for y frequency versions.

Page 22: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 16 of 67

CONFIDENTIAL

3.4.1.7 SerialAPI_Controller_Bridge

The ProductPlus\Bin\SerialAPI_Controller_Bridge directory contains all files needed for running a serial API based bridge controller (both non-secure and secure S0/S2) application on a Z-Wave module. The directory contains the following files:

serialapi_controller_bridge_ZW050x_y.hex RS232 1 port (ZDP03A) based serial API hex files for y frequency versions.

Serialapi_controller_bridge_ZW050x_USBVCP _y.hex

USB 2 port (ZDP03A) based serial API hex files for y frequency versions. USBVCP hex files do not support ZM5202.

Serialapi_controller_bridge_OTW_ZW050x _y_WITH_BOOTLOADER.hex serialapi_controller_bridge_OTW_ZW050x _USBVCP_y_WITH_BOOTLOADER.hex

RS232 1 / USB 2 port (ZDP03A) based serial API hex files supporting OTW firmware update for y frequency versions. Hex file comprises of application and bootloader supporting OTZ hex files. This hex file MUST be used first time when programming the device. The OTW functionality requires an external NVM equal to or bigger than 256 KB.

Serialapi_controller_bridge_OTW_ZW050x _y.otz serialapi_controller_bridge_OTW_ZW050x _USBVCP_y.otz

RS232 1 / USB 2 port (ZDP03A) based serial API OTZ hex files supporting OTW firmware update for y frequency versions. Hex file comprises of only application. This hex file MUST be used when doing OTW firmware update.

3.4.1.8 SerialAPI_Controller_Portable

The ProductPlus\Bin\SerialAPI_Controller_Portable directory contains all files needed for running a serial API based portable controller (both non-secure and secure S0/S2) application on a Z-Wave module. The directory contains the following files:

serialapi_controller_portable_ZW050x_y.hex RS232 1 port (ZDP03A) based serial API hex files for y frequency versions.

Serialapi_controller_portable_ZW050x_USBVCP _y.hex

USB 2 port (ZDP03A) based serial API hex files for y frequency versions. USBVCP hex files do not support ZM5202.

Serialapi_controller_portable_OTW_ZW050x _y_WITH_BOOTLOADER.hex serialapi_controller_portable_OTW_ZW050x _USBVCP_y_WITH_BOOTLOADER.hex

RS232 1 / USB 2 port (ZDP03A) based serial API hex files supporting OTW firmware update for y frequency versions. Hex file comprises of application and bootloader supporting OTZ hex files. This hex file MUST be used first time when programming the device. The OTW functionality requires an external NVM equal to or bigger than 256 KB.

Serialapi_controller_portable_OTW_ZW050x _y.otz serialapi_controller_portable_OTW_ZW050x

RS232 1 / USB 2 port (ZDP03A) based serial API OTZ hex files supporting OTW firmware update for y frequency versions. Hex file comprises of only application. This hex file MUST be used

Page 23: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 17 of 67

CONFIDENTIAL

_USBVCP_y.otz when doing OTW firmware update.

3.4.1.9 SerialAPI_Controller_Static

The ProductPlus\Bin\SerialAPI_Controller_Static directory contains all files needed for running a serial API based static controller (both non-secure and secure S0/S2) application on a Z-Wave module. The directory contains the following files:

serialapi_controller_static_ZW050x_y.hex RS232 1 port (ZDP03A) based serial API hex files for y frequency versions.

Serialapi_controller_static_ZW050x_USBVCP _y.hex

USB 2 port (ZDP03A) based serial API hex files for y frequency versions. USBVCP hex files do not support ZM5202.

Serialapi_controller_static_OTW_ZW050x _y_WITH_BOOTLOADER.hex serialapi_controller_static_OTW_ZW050x _USBVCP_y_WITH_BOOTLOADER.hex

RS232 1 / USB 2 port (ZDP03A) based serial API hex files supporting OTW firmware update for y frequency versions. Hex file comprises of application and bootloader supporting OTZ hex files. This hex file MUST be used first time when programming the device. The OTW functionality requires an external NVM equal to or bigger than 256 KB.

Serialapi_controller_static_OTW_ZW050x _y.otz serialapi_controller_static_OTW_ZW050x _USBVCP_y.otz

RS232 1 / USB 2 port (ZDP03A) based serial API OTZ hex files supporting OTW firmware update for y frequency versions. Hex file comprises of only application. This hex file MUST be used when doing OTW firmware update.

3.4.1.10 SerialAPI_Controller_Static_Single

The ProductPlus\Bin\SerialAPI_Controller_Static_Single directory contains the embedded code for the Enhanced Reliability Test Tool (ERTT). Notice that the PC based Controller now supports the ERTT functionality.

WARNING: Do not use this Serial API application in product applications

The directory contains the following files:

serialapi_controller_static_single_ZW050x_y.hex RS232 1 port (ZDP03A) based serial API hex files for y frequency versions.

Serialapi_controller_static_single_ZW050x_USBVCP _y.hex

USB 2 port (ZDP03A) based serial API hex files for y frequency versions. USBVCP hex files do not support ZM5202.

Page 24: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 18 of 67

CONFIDENTIAL

3.4.1.11 SerialAPI_Slave_Enhanced_232

The ProductPlus\Bin\SerialAPI_Slave_Enhanced_232 directory contains all files needed for running a serial API based enhanced 232 slave (both non-secure and secure S0/S2) application on a Z-Wave module. The directory contains the following files:

serialapi_slave_enhanced_232_ZW050x_y.hex RS232 1 port (ZDP03A) based serial API hex files for y frequency versions.

Serialapi_slave_enhanced_232_ZW050x_USBVCP _y.hex

USB 2 port (ZDP03A) based serial API hex files for y frequency versions. USBVCP hex files do not support ZM5202.

Serialapi_slave_enhanced_232_OTW_ZW050x _y_WITH_BOOTLOADER.hex serialapi_slave_enhanced_232_OTW_ZW050x _USBVCP_y_WITH_BOOTLOADER.hex

RS232 1 / USB 2 port (ZDP03A) based serial API hex files supporting OTW firmware update for y frequency versions. Hex file comprises of application and bootloader supporting OTZ hex files. This hex file MUST be used first time when programming the device. The OTW functionality requires an external NVM equal to or bigger than 128 KB.

Serialapi_slave_enhanced_232_OTW_ZW050x _y.otz serialapi_slave_enhanced_232_OTW_ZW050x _USBVCP_y.otz

RS232 1 / USB 2 port (ZDP03A) based serial API OTZ hex files supporting OTW firmware update for y frequency versions. Hex file comprises of only application. This hex file MUST be used when doing OTW firmware update.

3.4.1.12 SerialAPI_Slave_Routing

The ProductPlus\Bin\SerialAPI_Slave_Routing directory contains all files needed for running a serial API based routing slave (both non-secure and secure S0/S2) application on a Z-Wave module. The routing slave does not use external NVM. The directory contains the following files:

serialapi_slave_routing_ZW050x_y.hex RS232 1 port (ZDP03A) based serial API hex files for y frequency versions.

Serialapi_slave_routing_ZW050x_USBVCP _y.hex

USB 2 port (ZDP03A) based serial API hex files for y frequency versions. USBVCP hex files do not support ZM5202.

3.4.1.13 SwitchOnOff

The ProductPlus\Bin\SensorPIR directory contains all files needed for running a Z-Wave Plus On/Off Switch (both non-secure and secure S0/S2) application on a Z-Wave module. The Z-Wave Plus application is based on the enhanced 232 slave library. The directory contains the following files:

SwitchOnOff_slave_enhanced_232_OTA _ZW050x_y_TI_WITH_BOOTLOADER.hex

On/Off Switch hex files for y frequency versions. Download this file first time using ZwaveProgrammer because it contains both bootloader supporting OTZ hex files and Firmware

Page 25: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 19 of 67

CONFIDENTIAL

Update Meta Data CC implementation. The OTW functionality requires an external NVM equal to or bigger than 128 KB. TI denotes that Test Interface is enabled.

SwitchOnOff_slave_enhanced_232_OTA _ZW050x_y_TI.otz

On/Off Switch OTZ hex files for y frequency versions. Download this file over the air (OTA) subsequent because it contains not the bootloader.

3.4.1.14 WallController

The ProductPlus\Bin\WallController directory contains all files needed for running a Z-Wave Plus Wall Controller (both non-secure and secure S0/S2) application on a Z-Wave module. The Z-Wave Plus application is based on the enhanced 232 slave library. The directory contains the following files:

WallController_slave_enhanced_232 _ZW050x_y_TI.otz

Wall Controller hex files for y frequency versions. TI denotes that Test Interface is enabled.

WallController_slave_enhanced_232_OTA _ZW050x_y_TI_WITH_BOOTLOADER.hex

Wall Controller hex files for y frequency versions. Download this file first time using ZwaveProgrammer because it contains both bootloader supporting OTZ hex files and Firmware Update Meta Data CC implementation. The OTW functionality requires an external NVM equal to or bigger than 128 KB. TI denotes that Test Interface is enabled.

WallController_slave_enhanced_232_OTA _ZW050x_y_TI.otz

Wall Controller OTZ hex files for y frequency versions. Download this file over the air (OTA) subsequent because it contains not the bootloader.

Page 26: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 20 of 67

CONFIDENTIAL

3.4.2 ApplicationCommandHandlers

In addition to Command Class specific modules, the folder “ProductPlus\ApplicationCommandHandlers” contains general purpose functions by the ApplicationCommandHandler function.

Files Description

config_app.h This header file contains definitions saved in NVM. It is used for Firmware Update (APP_MANUFACTURER_ID and APP_FIRMWARE_ID) and Application version handling.

Config_release.bat The BAT file is a helper file for the build environment. Instead of using “make xx” use “mk xx”.

Page 27: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 21 of 67

CONFIDENTIAL

ZW_tx_mutex.h ZW_tx_mutex.c

This module allocates protected transmit-buffers used to send data. The mutex buffer MUST be used correctly to ensure safe access to the transmit buffer. All Command class handler modules use mutex buffers to send data.

There are two types of buffers, one for Set/Get commands (Request commands) and one for Response commands.

Example of using a Response buffer: GetResponseBuffer()

returns a pointer to the buffer and ZCB_ResponseJobStatus() releases the buffer again. It is possible for the application to

get status of the SendData() by calling

GetResponseBufferCb( pCB). If Transport_SendResponse() failed is it up to the user to free the buffer

{

/*Get pointer to buffer and check it is not NULL*/

ZW_APPLICATION_TX_BUFFER *pTxBuf =

GetResponseBuffer();

If(NULL != pTxBuf)

{

/*Fill out buffer*/

pTxBuf->ZW_BasicReportFrame.cmdClass =

COMMAND_CLASS_BASIC;

pTxBuf->ZW_BasicReportFrame.cmd = BASIC_REPORT;

pTxBuf->ZW_BasicReportFrame.value = 0;

/*Send data through transport layer. Remember to

free

Buffer if Transport_SendResponse failed!*/

if(FALSE == Transport_SendResponse(

sourceNode,

(BYTE *)pTxBuf,

sizeof(ZW_BASIC_REPORT_FRAME),

option,

ZCB_ResponseJobStatus))

{

/*Job failed, free transmit-buffer pTxBuf */

FreeResponseBuffer();

}

}

}

CommandClassXxx.c CommandClassXxx.h

The files contain code for command class Xxx implementation. Add new command class implementations using the same framework.

ZW_plus_version.h Z-Wave Plus Framework version and revision.

Page 28: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 22 of 67

CONFIDENTIAL

3.4.3 ApplicationUtilities

The ProductPlus\ApplicationUtilities directory contains some helpful functions that are used by several of the applications.

Files Description

ota_util.c/h OTA module for firmware update

one_button.c/h

p_button.c/h

keyman.c/h

Buttons utilities

ZW_TransportLayer.h

ZW_TransportEndpoint.c/h

ZW_TransportMulticast.c/h

ZW_TransportSecProtocol.c/h

ZW_classcmd_ex.h

endpoint_lookup.c/h

Transport layer

association_plus.c/h Association manager module for Zwave+ apps.

Battery_monitor.c/h

battery_non_zero_vars.c

battery_plus.c/h

Battery module.

-Low battery monitoring module

-Non zero Memory for Battery module

-Handling sleep timeout and wakeup

config_app.h ApplicationUtilities version and revision

ctrl_learn.c/h

slave_learn_plus.c

Connection module:

-Handle Learn-mode for Controller device

-Handle Learn-mode for Slave device

Page 29: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 23 of 67

CONFIDENTIAL

ZW_bootloader_descriptor.c

ZW_firmware_bank1_mark.c

ZW_firmware_bank2_mark.c

ZW_firmware_bank3_mark.c

ZW_nvm_descriptor.c

ZW_firmware_descriptor_addr.c

ZW_firmware_size.c

ZW_product_id_enum.h

Boot loader module

manufacturer_specific_device_id.c/h Manufacturer specific device ID

ZW_cmd_class_list.c/h Node Info List utilities

ZW_ev_scheduler.c/h

port_monitor.c/h

ZW_portpin_api.h

Event scheduler tools.

Multilevel_switch.c/h Multilevel-switch utility module

notification.c/h Notification utility module

3.4.4 DoorLockKeyPad

The ProductPlus\DoorLockKeyPad directory contains source code for a Z-Wave Plus Door Lock with Key Pad application on a Z-Wave module. For further information, refer to section 4.1.5.

3.4.5 MyProductPlus

The ProductPlus\MyProductPlus directory contains source code for a Z-Wave module. For further information, refer to section 4.3.

3.4.6 PowerStrip

The ProductPlus\PowerStrip directory contains source code for a Z-Wave Plus Power Strip application. For further information, refer to section 4.6.

3.4.7 SensorPIR

The ProductPlus\SensorPIR directory contains source code for a Z-Wave Plus PIR Sensor application on a Z-Wave module. For further information, refer to section 4.5.

3.4.8 SerialAPIPlus

The ProductPlus\SerialAPIPlus directory contains source code for the Serial API applications. For further information about the Serial API, refer to section 4.9.

Page 30: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 24 of 67

CONFIDENTIAL

3.4.9 SwitchOnOff

The ProductPlus\SwitchOnOff directory contains source code for a Z-Wave Plus On/Off Switch application. For further information, refer to section 4.4.

3.4.10 WallController

The ProductPlus\WallController directory contains source code for a Z-Wave Plus Wall Controller application. For further information, refer to section 4.9.

Page 31: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 25 of 67

CONFIDENTIAL

3.5 Tools

The Tools directory contains various tools needed for building and debugging the applications. All tools in this directory can freely be used for building Z-Wave applications.

3.5.1 FixBootCRC

This directory contains a tool used when building bootable applications.

3.5.2 FixPatchCRC

This directory contains a tool used when building patchable applications.

3.5.3 HexTools

This directory contains a tool used when building patchable applications.

3.5.4 IMAToolBox

This directory contains the IMA Tool Box supports an installation and maintenance procedure, which can ensure an easy installation and provide an operational qualification of the installation. This tool is used in combination with the SerialAPI_Controller_Static_IMA_... hex file. For detailed information, refer to [1].

The IMAToolBox directory contains the following files:

PC\IMAtoolbox.exe IMA Tool Box application.

PC\Source\... IMAtoolbox PC source code.

3.5.5 IncDep

This directory contains a python script that is used for making dependency files when building the applications.

3.5.6 KeypairGeneration

This directory contains Linux source code showing how to generate a keypair (PUK and PRK) based on curve25519. For implementation details refer to [19] and here is keypair generation to other platforms also described.

3.5.7 Make

This directory contains a DOS/Windows version of the GNU make utility. The make utility is used for building the applications.

3.5.8 Mergehex

This directory contains a tool used for merging two files in Intel hex format. The tool is used for building external non-volatile memory files in the code.

Page 32: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 26 of 67

CONFIDENTIAL

3.5.9 Python

This directory contains a python scripting language interpreter. Python is used for various purposes in the code build process.

3.5.10 TextTools

This directory contains the sed stream editor used to modify text strings during the make process.

3.5.11 uVisionProjectGenerator

This directory contains uVision Project Generator program; the program generate uVision projects when running the makefile from a DOS prompt.

The uVisionProjectGenerator directory contains the following files:

__init__.py j.py MakePatch.bat och51.bat uv-find-segment-end.bat uVisionProjectGenerator.exe

uVision Project Generator application files.

Page 33: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 27 of 67

CONFIDENTIAL

4 Z-WAVE PLUS APPLICATIONS

The SDK includes Z-Wave Plus slave applications which are implemented according to the Z-Wave Plus specifications [4], [5], [6], [7], [8], [15] and [16]:

Door Lock with Key Pad

My Product

On/Off Switch

PIR Sensor

Power Strip

Wall controller

All applications are built on the Z-Wave Plus Framework [13]. For secure inclusion use a PC Based Controller v5 and SerialAPI dongle firmware delivered in SDK. Associations must be configured to examine all the features in the Z-Wave Plus embedded applications. Setting up associations is supported fully by the PC based Controller v5 and not older versions of the PC based Controller.

Please see the following table for an overview of the functionality covered by the applications.

Table 2. Functionality covered by the Z-Wave Plus applications.

Functionality Door Lock Key Pad

Power Strip

Sensor PIR

Switch On/Off

Wall Controller

Primary Func. Always On Slave

(AOS)

Listening Sleeping Slave (LSS)

Reporting Sleeping Slave (RSS)

Routing Slave

Enhanced 232 Slave

Battery

Endpoints

Security S2 Access V

S2 Authenticated

S2 Unauthenticated

S2 SSA

S2 CSA S0

Primary CCs Door Lock

User Code Binary Switch

Multilevel Switch

Notification

Central Scene

Firmware Update

Page 34: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 28 of 67

CONFIDENTIAL

Devkit v6.8x.0x includes Smart Start functionality in protocol. For Smart Start secure inclusion, applications need to be included with PC Controller and Serial API controller delivered in Devkit v6.80.00. For classic secure inclusion, both Devkit v6.7x and v6.8x.0x PcController and Serial-API controller are usable.

In Devkit v6.7x.0x is the Framework updated to handle multicast addressing and a device can both be non-securely and securely added to a network. This feature has an impact on Framework API’s with respect to single-cast addressing and addressing a group for nodes. Association module is update to handle security level for each association and to deliver group addressing. Security S0 module in Transport-layer is moved to the Z-Wave protocol.

Because of development board ZDP03A pin layout is button S3 removed from all sample applications. Port 23 is used to both key S3 and SPI communication to external NVM. Button S5 is removed from WallController. Port 21 is used for S5 button and UART 0 communication.

4.1 Z-Wave Plus Framework

The purpose of the Z-Wave Plus Framework is to facilitate the implementation of robust Z-Wave Plus Compliant products. The framework provides a number of modules:

“Transport Layer” handles multicast and endpoint encapsulation.

“Application command class handlers” handle parsing and frame composition for the application.

“Utils” provides helper modules for association, AGI, I/O handling, battery monitoring and firmware update “OTA”

The figure below outlines the Z-Wave Plus Framework modules.

Figure 1, Z-Wave Plus Application Framework.

Page 35: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 29 of 67

CONFIDENTIAL

4.1.1 Application Command Handlers

The Z-Wave Plus Framework simplifies command processing as parsing and transmission of Z-Wave frames is no longer handled directly by the application.

The folder “/ApplicationCommandHandlers/” provides modules for handle parsing and frame

composition for each individual Command Class. Each module provides a command class specific API for the application.

API Request Calls return a status code JOB_STATUS, indicating if the call was successful. The value JOB_STATUS_BUSY is returned if the transmit buffer was occupied or if the

ZW_SendData() call failed.

The value JOB_STATUS_SUCCESS is returned if the frame was sent. A function callback pointer must be specified when issuing certain API calls.

Example of a request API call:

JOB_STATUS CmdClassBasicSetSend(…,VOID_CALLBACKFUNC(pCbFunc)(BYTE val));

The Application command handlers use the ZW_tx_mutex module to allocate a protected transmit buffer for composition of frames. Please read chapter 3.4.1.13, ZW_tx_mutex.c/h for protected transmit buffers.

The application must define proper mappings to relevant Application command handlers in the SDK

function Transport_ApplicationCommandHandler.

4.1.2 Transport Layer

Transport Layer encapsulates Z-Wave protocol API for handling secure and non-secure data traffic, and endpoint encapsulation. It also handles which command classes should send secure and non-secure frames dependent of security level. For Battery devices is timeout extended dependent for the in/out- going traffic. Transport layer module includes files:

ZW_TransportLayer.h

ZW_TransportEndpoint.c/h

ZW_TransportMulticast.c/h

ZW_TransportSecProtocol.c/h

ZW_classcmd_ex.h

Endpoint_lookup.h/c

Page 36: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 30 of 67

CONFIDENTIAL

4.1.3 Supported command classes

The following table lists all command classes and their versions currently supported by the Z-Wave+ Application Framework.

Command Class Name Version Name Version

Association 2 Multilevel Switch 4

Association Group Information (AGI) 1 Notification 8

Basic 2 Powerlevel 1

Battery 1 Security 1

Binary Switch 1 Security 2 1

Central Scene 3 Supervision 1

Device Reset Locally 1 Switch All 1

Door Lock 2 Transport Service 2

Firmware Update Meta Data 4 User Code 1

Manufacturer Specific 2 Version 3

Multi Channel 4 Wake Up 2

Multi Channel Association 3 Z-Wave Plus Info 2

Only the “push mode” of Notification Command Class is tested.

4.1.4 General user interface

The following user interface applies to all the Z-Wave+ sample applications.

Button Action Description

RST Press Resets the firmware of an application (like losing power). All volatile memory will be cleared.

S1 Press Enter learn mode (sending node info frame) to add/remove the device.

Removing the device from a network will reset it.

Hold for 10 seconds Device is reset and a Device Reset Locally Notification is sent via Lifeline.

4.1.5 Documentation related to devices from multiple manufacturers

All applications can be operated in any Z-Wave network with other Z-Wave certified devices from other manufacturers. All non-battery operated nodes within the network will act as repeaters regardless of vendor to increase reliability of the network.

Page 37: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 31 of 67

CONFIDENTIAL

4.2 Door Lock Key Pad

The Door Lock with Key Pad application shows a lock implementation that has a built-in keypad. It will support user codes to open a door and thereby eliminate the need for traditional keys. Typically, it is possible to both lock and unlock the door remotely through the Z-Wave protocol.

The Door Lock with Key Pad application is based on:

Role Type: Listening Sleeping Slave (LSS)

Device Type: Door Lock Keypad

Supported security keys: S0 and S2_ACCESS o The Door Lock Key Pad features depends on the security level.

Library: Enhanced 232 slave

Supported module(s): ZDP03A platform configured with a ZDB5101 board.

The full set of features only work when securely added to a network by a controller supporting security.

Graphical representation (Icon Types):

Page 38: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 32 of 67

CONFIDENTIAL

4.2.1 Announced Command Classes in NIF

The Door Lock with Keypad application implements a number of mandatory and optional command classes. The table below show announced command classes in NIF depending on state of device.

Table 3. Door Lock Key Pad command classes announced in NIF depending on state

Command Class Not added Non-secure added Securely added

Non-secure CC Secure CC

ZWAVEPLUS_INFO Support Support Support

TRANSPORT_SERVICE Support Support Support

MANUFACTURER_SPECIFIC Support

DEVICE_RESET_LOCALLY Support

SECURITY Support Support Support

SECURITY_2 Support Support Support

BATTERY Support

POWERLEVEL Support

VERSION Support

DOOR_LOCK Support

USER_CODE Support

ASSOCIATION Support

MULTI_CHANNEL_ASSOCIATION Support

ASSOCIATION_GRP_INFO Support

SUPERVISION Support Support Support

FIRMWARE_UPDATE_MD Support

Not implemented Door lock functionality: o Operation mode o Door Lock condition o Inside Door Handle Mode o Inside Door Handle State o Functionality handling Lock timeout.

4.2.2 Basic Command Class mapping

Basic Command Class is not mapped to any of the supported command classes.

Page 39: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 33 of 67

CONFIDENTIAL

4.2.3 Association groups

ID Name Node count

Description

1 Lifeline 5 Supports the following command classes:

Device Reset Locally: triggered upon reset.

Battery: triggered upon low battery.

Door Lock: triggered upon a change in door lock operation.

2 Doorlock Op

5 Nodes associated will receive a Door Lock Operation report upon Door Lock Operations.

4.2.4 Usage of buttons on ZDP03A

Table 4. Door Lock Key Pad buttons interface

Button Action Description

S2 Button up/down If the outside door handle state is active:

Button down sets the outside door handle mode active.

Button up sets the outside door handle mode inactive.

S4 Press Activates the keypad which in real is the Test Interface. If connected to the Test Interface, a terminal will show when and how to input the user code. The default user code is “0000”.

Hw-reset

”reset” Sends Battery Report.

4.2.5 LED status on ZDP03A

Table 5. Door Lock Key Pad LED status interface

LED Description

D1 Latch, (Led on -> latch closed [bit 1])/ (Led off -> latch open[bit 0])

D2 Bolt, (Led on -> Bolt locked [bit 0])/ (Led off -> bolt unlocked [bit 1])

D3 User code input is active, (4 key presses)

4.2.6 Firmware update and external NVM

When upgrading the old firmware on the Z-Wave module it is important to understand that old data (both protocol and application) in external NVM is unchanged. The new firmware must therefore be able to use the same data in external NVM to avoid re-installation of the device. New data fields must be appended to the existing ones to assure backward compatibility.

The table below show backward compatibility of data in external NVM when upgrading Door Lock Keypad from one SDK to another one.

Page 40: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 34 of 67

CONFIDENTIAL

Table 6. Door Lock Key Pad external NVM data backward compatibility

New Firmware

Old Firmware

SDK 6.51.00 SDK 6.51.01 SDK 6.51.02 SDK 6.51.03 SDK 6.51.05

Prot. Appl. Prot. Appl. Prot. Appl. Prot. Appl. Prot. Appl.

SDK 6.51.00 Yes Yes No No No No No No No No

SDK 6.51.01 - - Yes Yes Yes Yes Yes No Yes No

SDK 6.51.02 - - - - Yes Yes Yes No Yes No

SDK 6.51.03 - - - - - - Yes Yes Yes No

SDK 6.51.05 - - - - - - - - Yes Yes

For SDKs 6.51.00-02 application data definitions in external NVM was located in multiple files (association_plus.h and battery_plus.h). During linking the files could be shuffled around breaking backward compatibility wrt. Application data layout in external NVM. This defect was registered as TO #5277.

SDK 6.51.03 fixed TO #5277 by moving all external NVM far variables to eeprom.h file in a common struct s_nvmApplDescriptor_. Appending new variables to struct ensured backward compatibility.

Array size in BYTE EEOFFSET_ASSOCIATION_START_far[ASSOCIATION_SIZE]; was changed in the common struct s_nvmApplDescriptor_.for SDK 6.51.05. This broke backward compatibility because EEOFFSET_ASSOCIATION_START_far was not located at the end of the struct.

4.2.7 Z-Wave Certification

The Door Lock with Key Pad passes certification. However, the key pad functionality is very simple due to lack of push buttons on the ZDP03A hardware.

Page 41: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 35 of 67

CONFIDENTIAL

4.3 My Product Plus

The My Product Plus contains the minimum framework to begin developing a Z-Wave Plus application. This application supports a broad range of libraries and boards. Check first if one of the product specific applications suite your needs better because it is often easier to modify the existing code than building one from scratch based on My Product.

The My Product Plus application is based on:

Role Type: -

Device Type: -

Supported security keys: S0 and S2_UNAUTHENTICATION

Library: Enhanced 232 slave

4.3.1 My Product Plus sensor type variants

The My Product Plus can be built in 3 sensor type variants.

Always on device.

Battery device supporting Battery CC

Battery device supporting Battery and Wake Up CC. See Table 7.

4.3.2 Announced Command Classes in NIF

This device supports no other command classes than the mandatory ones. The table below show announced command classes in NIF depending sensor type variants.

Sensor type variants are present in the make system and can be displayed in command prompt by typing "mk help":

NON_BATT: Always on device.

BATTERY: Battery device supporting Battery CC.

BATTERY__CC_WAKEUP: Battery device supporting Battery and Wake Up CC.

Page 42: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 36 of 67

CONFIDENTIAL

Table 7. My Product Plus command classes announced in NIF depending on state.

Command Class Not added

Non-secure added

Securely added

Non-secure CC

Secure CC

ZWAVEPLUS_INFO Support Support Support

TRANSPORT_SERVICE Support Support Support

MANUFACTURER_SPECIFIC Support Support Support

DEVICE_RESET_LOCALLY Support Support Support

SECURITY Support Support Support

SECURITY_2 Support Support Support

POWERLEVEL Support Support Support

VERSION Support Support Support

ASSOCIATION Support Support Support

MULTI_CHANNEL_ASSOCIATION Support Support Support

ASSOCIATION_GRP_INFO Support Support Support

SUPERVISION Support Support Support

FIRMWARE_UPDATE_MD Support Support Support

BATTERY

(SENSOR_TYPE = BATTERY)

Support Support Support

BATTERY

(SENSOR_TYPE = BATTERY__CC_WAKEUP)

Support Support Support

WAKE_UP

(SENSOR_TYPE = BATTERY__CC_WAKEUP)

Support Support Support

Dependent on sensor type command class list is present in 3 variants. Command classes for sensor type NON_BATT is basic for all sensor types and present with background color white. Sensor type BATTERY is background color white and blue. Sensor type BATTERY__CC_WAKEUP is background color white and red.

4.3.3 Basic Command Class mapping

Basic Command Class is not mapped to any of the supported command classes.

Page 43: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 37 of 67

CONFIDENTIAL

4.3.4 Association groups

ID Name Node count Description

1 Lifeline 5 Supports the following command classes:

Device Reset Locally: triggered upon reset.

4.3.5 MyProduct Files

The ProductPlus\MyProductPlus directory contains source code on a Z-Wave module. The application uses also a number of utility functions described in section 4.1.

MK.BAT

Make bat file for building the application in question. To only build applications using EU frequency enter: MK “FREQUENCY=EU” in command prompt.

Makefile

This is the Makefile for the application in question defining the targets built.

config_app.h

This header file contains defines for application version.

eeprom.c / eeprom.h

The eeprom source/header files contains the NVM variable definitions.

MyProduct.h / MyProduct.c

This file contains the source code for the MYProduct. The common API functions such as ApplicationInitHW, ApplicationInitSW, ApplicationNodeInformation, ApplicationPoll, ApplicationSlaveUpdate and ApplicationCommandHandler are defined here.

MyProduct_ZW050x_....Uv2

uVision4 *.Uv2 project files created by makefile system using uVisionProjectGenerator software.

Page 44: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 38 of 67

CONFIDENTIAL

4.3.6 Firmware update and external NVM

When upgrading the old firmware on the Z-Wave module it is important to understand that old data (both protocol and application) in external NVM is unchanged. The new firmware must therefore be able to use the same data in external NVM to avoid re-installation of the device. New data fields must be appended to the existing ones to assure backward compatibility.

The table below show backward compatibility of data in external NVM when upgrading MyProduct application from one SDK to another one.

Table 8. My Product Plus external NVM data backward compatibility

New Firmware

Old Firmware

SDK 6.51.00 SDK 6.51.01 SDK 6.51.02 SDK 6.51.03 SDK 6.51.05

Prot. Appl. Prot. Appl. Prot. Appl. Prot. Appl. Prot. Appl.

SDK 6.51.00 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes

SDK 6.51.01 - - Yes Yes Yes Yes Yes Yes Yes Yes

SDK 6.51.02 - - - - Yes Yes Yes Yes Yes Yes

SDK 6.51.03 - - - - - - Yes Yes Yes Yes

SDK 6.51.05 - - - - - - - - Yes Yes

For SDKs 6.51.00-02 application data definitions in external NVM was located in multiple files (association_plus.h and battery_plus.h). During linking the files could be shuffled around breaking backward compatibility wrt. application data layout in external NVM. This defect was registered as TO #5277.

SDK 6.51.03 fixed TO #5277 by moving all external NVM far variables to eeprom.h file in a common struct s_nvmApplDescriptor_. Appending new variables to struct ensured backward compatibility.

4.3.7 Z-Wave Certification

The My Product cannot pass certification because it is not a real product at this stage.

Page 45: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 39 of 67

CONFIDENTIAL

4.4 Switch On/Off

The On/Off Power Switch application shows a switch implementation to turn on any device that is connected to power. Examples include lights, appliances etc.

The On/Off Switch application is based on:

Role Type: Always On Slave (AOS)

Device Type: On/Off Power switch

Supported security keys: S0 and S2_UNAUTHENTICATION o The Switch On/Off features do not depend on the security level.

Library: Enhanced 232 slave

Supported module(s): ZDP03A configured with either a ZDB5101 or ZDB5202 module

Graphical representation (Icon Types):

Page 46: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 40 of 67

CONFIDENTIAL

4.4.1 Announced Command Classes in NIF

The On/Off Switch application implements a number of mandatory and optional command classes. The table below show announced command classes in NIF depending on state of device.

Table 9. On/Off Switch Command Classes announced in NIF depending on state

Command Class Not added Non-secure added Securely added

Non-secure CC Secure CC

ZWAVEPLUS_INFO Support Support Support

TRANSPORT_SERVICE Support Support Support

MANUFACTURER_SPECIFIC Support Support Support

DEVICE_RESET_LOCALLY Support Support Support

SECURITY Support Support Support

SECURITY_2 Support Support Support

POWERLEVEL Support Support Support

VERSION Support Support Support

ASSOCIATION Support Support Support

MULTI_CHANNEL_ASSOCIATION Support Support Support

ASSOCIATION_GRP_INFO Support Support Support

SUPERVISION Support Support Support

FIRMWARE_UPDATE_MD Support Support Support

SWITCH_BINARY Support Support Support

4.4.2 Basic Command Class mapping

Basic Command Class is mapped according to [16] for an On/Off Power Switch.

4.4.3 Association groups

ID Name Node count Description

1 Lifeline 5 Supports the following command classes:

Device Reset Locally: triggered upon reset.

Page 47: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 41 of 67

CONFIDENTIAL

4.4.4 Usage of buttons on ZDP03A

Table 10. On/Off Switch push buttons interface

Button Action Description

S2 Press Toggle LED D2.

4.4.5 LED status on ZDP03A

Table 11. On/Off Switch LED status interface

LED Description

D1 This LED is on when the device is in learn mode.

D2 Switch ON/OFF. LED ON indicates SWITCH ON and LED OFF indicates SWITCH OFF.

4.4.6 Firmware update and external NVM

When upgrading the old firmware on the Z-Wave module it is important to understand that old data (both protocol and application) in external NVM is unchanged. The new firmware must therefore be able to use the same data in external NVM to avoid re-installation of the device. New data fields must be appended to the existing ones to assure backward compatibility.

For SDKs 6.51.00-02 application data definitions in external NVM was located in multiple files (association_plus.h and battery_plus.h). During linking the files could be shuffled around breaking backward compatibility wrt. application data layout in external NVM. This defect was registered as TO #5277.

SDK 6.51.03 fixed TO #5277 by moving all external NVM far variables to eeprom.h file in a common struct s_nvmApplDescriptor_. Appending new variables to struct ensured backward compatibility.

4.4.7 Z-Wave Certification

The On/Off Switch passes certification.

Page 48: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 42 of 67

CONFIDENTIAL

4.5 Sensor PIR

The Sensor PIR application shows a presence/movement detector implementation for controlling other devices and for sending notifications.

The Sensor PIR application is based on:

Role Type: Reporting Sleeping Slave (RSS)

Device Type: Sensor – Alarm

Supported security keys: S2_UNAUTHENTICATION

Library: Routing slave

Supported boards: ZDB5101 and ZDB5202

Graphical representation (Icon Types):

Notice: Sensor PIR supports one security command class only due to NVM space shortage when using a routing slave library.

Sensor PIR transmits the following notification types/events:

Home Security o Motion detection (unknown location)

Sensor PIR supports the “push mode” only of Notification CC.

Page 49: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 43 of 67

CONFIDENTIAL

4.5.1 Announced Command Classes in NIF

Sensor PIR implements a number of mandatory and optional command classes. The table below show announced command classes in NIF depending on state of device.

Table 12. PIR Sensor command classes announced in NIF depending on state

Command Class Not added Non-secure added Securely added

Non-secure CC Secure CC

ZWAVEPLUS_INFO Support Support Support

TRANSPORT_SERVICE Support Support Support

MANUFACTURER_SPECIFIC Support Support Support

DEVICE_RESET_LOCALLY Support Support Support

SECURITY_2 Support Support Support

POWERLEVEL Support Support Support

BATTERY Support Support Support

VERSION Support Support Support

ASSOCIATION Support Support Support

MULTI_CHANNEL_ASSOCIATION Support Support Support

ASSOCIATION_GRP_INFO Support Support Support

SUPERVISION Support Support Support

NOTIFICATION Support Support Support

WAKE_UP Support Support Support

BASIC Control Control Control

4.5.2 Basic Command Class mapping

Basic Command Class is not mapped to any of the supported command classes.

Page 50: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 44 of 67

CONFIDENTIAL

4.5.3 Association groups

ID

Name Node count

Description

1 Lifeline

1 Supports the following command classes:

Device Reset Locally: triggered upon reset.

Battery: triggered upon low battery.

Notification: triggered by pressing button S2. Triggered Notification event type is “NOTIFICATION_TYPE_HOME_SECURITY” and event

“NOTIFICATION_EVENT_HOME_SECURITY_MOTION_DETECTION_UNKNOWN_LOCATION”. After a while Sensor send Notification event type

“NOTIFICATION_TYPE_HOME_SECURITY”, event “NO MORE” (0) with event

parameter “NOTIFICATION_EVENT_HOME_SECURITY_MOTION_DETECTION_UNKNOWN_LOCATION”

2 Basic set

1 Upon pressing button S2, nodes associated in this group will first receive a Basic Set with 0xFF (turn on) and after a while receive a Basic Set with 0x00 (turn off).

4.5.4 Usage of buttons on ZDP03A

Table 13. PIR Sensor buttons interface

Button Action Description

S1 DOWN Learn mode

S2 DOWN “Motion detection”

S4 DOWN Device is reset and a Device Reset Locally Notification is sent via Lifeline.

Hw-reset ”reset” Sends Wake Up Notification.

4.5.5 LED status on ZDP03A

Table 14. PIR Sensor LED status interface

LED Description

D1 Learn mode active

D2-D8 Not used

4.5.6 Z-Wave Certification

Sensor PIR passes certification.

Page 51: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 45 of 67

CONFIDENTIAL

4.6 Power Strip

The Power Strip application shows an extension block implementation to turn on a number of devices that is connected to power. Examples include lights, appliances etc.

The Power strip application is based on:

Role Type: Always On Slave (AOS)

Root device type: generic type switch binary and specific type Power Strip

Supported security keys: S0 and S2_UNAUTHENTICATION

Library: Enhanced 232 slave

Supported module(s): ZDP03A configured with a ZDB5101 module

Endpoint 1 device type: generic type switch binary and specific type On/off power switch

Endpoint 2 device type: generic type switch binary and specific type On/off power switch

Endpoint 3 device type: generic type light dimmer switch and specific type light dimmer switch

Graphical representation (Icon Types):

Power Strip supports the “push mode” only of Notification CC.

Page 52: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 46 of 67

CONFIDENTIAL

4.6.1 Announced Command Classes in NIF

Besides the common mandatory command classes and functionality, this Power Strip application implements additional command classes. The table below show announced command classes in NIF depending on state of device.

Table 15. Power Strip command classes announced in NIF depending on state

Command Class Not added Non-secure added Securely added

Non-secure CC Secure CC

ZWAVEPLUS_INFO Support Support Support

TRANSPORT_SERVICE Support Support Support

MANUFACTURER_SPECIFIC Support Support Support

DEVICE_RESET_LOCALLY Support Support Support

SECURITY Support Support Support

SECURITY_2 Support Support Support

POWERLEVEL Support Support Support

VERSION Support Support Support

ASSOCIATION Support Support Support

MULTI_CHANNEL_ASSOCIATION Support Support Support

ASSOCIATION_GRP_INFO Support Support Support

MULTI_CHANNEL Support Support Support

SUPERVISION Support Support Support

FIRMWARE_UPDATE_MD Support Support Support

SWITCH_BINARY Support Support Support

SWITCH_MULTILEVEL Support Support Support

NOTIFICATION Support Support Support

The endpoint implements the following command classes.

Endpoints 1-2

Page 53: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 47 of 67

CONFIDENTIAL

Command Class Non-secure added Securely added

Non-secure CC Secure CC

ZWAVEPLUS_INFO Support Support

SECURITY Support

SECURITY_2 Support

ASSOCIATION Support Support

MULTI_CHANNEL_ASSOCIATION Support Support

ASSOCIATION_GRP_INFO Support Support

SUPERVISION Support Support

SWITCH_BINARY Support Support

NOTIFICATION Support Support

Endpoint 3

Command Class Non-secure added Securely added

Non-secure CC Secure CC

ZWAVEPLUS_INFO Support Support

SECURITY Support

SECURITY_2 Support

ASSOCIATION Support Support

MULTI_CHANNEL_ASSOCIATION Support Support

ASSOCIATION_GRP_INFO Support Support

SUPERVISION Support Support

SWITCH_MULTILEVEL Support Support

NOTIFICATION Support Support

4.6.2 Basic Command Class mapping

Basic Command Class is mapped to:

Binary Switch CC for endpoint 1 & 2.

Page 54: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 48 of 67

CONFIDENTIAL

Multilevel Switch CC for endpoint 3.

4.6.3 Association groups

Backwards compatibility for non-Multi Channel devices, forces the root device AGI table to contain all the association groups mentioned in each of the endpoints AGI tables except from group 1, the Lifeline group.

Root device:

ID Name Node count

Description

1 Lifeline 5 Supports the following command classes:

Device Reset Locally: triggered upon reset.

Notification: triggered by the endpoints

2 alarm EP 1 5 Mirror of endpoint 1, group 2

3 alarm EP 2 5 Mirror of endpoint 2, group 2

4 alarm EP 3 5 Mirror of endpoint 3, group 2

Endpoint 1:

ID Name Node count

Description

1 Lifeline 0 Mirror of root device, but without node count.

2 alarm EP 1 5 Notification report on overload.

Endpoint 2:

ID Name Node count

Description

1 Lifeline 0 Mirror of root device, but without node count.

2 alarm EP 2 5 Notification report on overload.

Endpoint 3:

ID Name Node count

Description

1 Lifeline 0 Mirror of root device, but without node count.

2 alarm EP 3 5 Notification report on overload.

Page 55: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 49 of 67

CONFIDENTIAL

4.6.4 Usage of buttons on ZDP03A

Table 16. Power Strip push buttons interface

Button Button press Description

S2 Key press Switch on/off endpoint 1 by pressing push button

S4 Key press Dimming or switch on/off endpoint 3. Pressing push button turn light on/off and holding push button perform dimming of light (toggle up/down)

S6 Key press Toggles the transmission of an “Overload detected” notification. The first transmission, when enabled, will always be the first in the following list.

The notifications will be transmitted in the following pattern:

1. Notification from endpoint 1: Overload detected 2. Notification from endpoint 1: No event 3. Notification from endpoint 2: Overload detected 4. Notification from endpoint 2: No event 5. Notification from endpoint 3: Overload detected 6. Notification from endpoint 3: No event

One notification will be transmitted every 3rd

second.

NOTICE: Node Info Frame is only send by triple press on ZDP03A S1 button!

4.6.5 LED status on ZDP03A

Table 17. Power Strip LED status interface

LED Description

D1 Endpoint 1 (switch on/off)

D2 Endpoint 2 (switch on/off)

D3-D6 Endpoint 3 (dimmer)

D7-D8 Not used

4.6.6 Z-Wave Certification

The Power Strip passes certification.

Page 56: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 50 of 67

CONFIDENTIAL

4.7 Production Test DUT

The Production Test DUT code for a device under test contains code that demonstrates how the basic tasks of testing devices in a Z-Wave network can be accomplished using the Z-Wave API.

The Z-Wave basis software continually calls the ApplicationPoll function. The ApplicationPoll function contains a state machine, which initiates actions from user input.

The Production Test DUT application is based on the ZW_slave_prodtest_dut library.

This application has two functions that can be used during production test

The radio will start to transmit continuously if the P0.4 (CS_ZW_EE_N) pin on the ZM5202 is pulled low during power up.

If the pin isn’t pulled low the radio will go into receive mode and send acknowledge to all frames send to the module.

The program execution flow is as follows:

Initialize HW

"Enable test"

low ?

Chip pins

shorted ?

Received NOP-

frame ?

Reply ACK frame

Chip pins

interconnected with

module ?

Turn on radio and

transmit CWTurn off radio

YesNo

Yes

No Yes

No

No

Yes

Figure 2. Prod_Test_DUT test program flow.

Page 57: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 51 of 67

CONFIDENTIAL

Immediately after program execution start, the state of the “Enable test” pin (pin P0.4 on the ZW050x) is tested. If the pin is high, “normal” Z-Wave slave code is started, and the DUT will reply to a NOP frame with an ACK frame. This behavior is used during the Link test, where 10 NOP’s are transmitted from the Z-Wave test box and 10 ACK’s are expected from the DUT.

If the “Enable test” pin is low, a test program flow is started.

All pins not used during chip programming and test enabling are tested for shorts. The CPU of the ZW050x writes a “0101…” pattern to its pins and then reads back the state of the pins. If no shorts, the pattern read will be “0101...”. Then a “1010…” pattern is written, and “1010...” is expected when reading back.

The interconnections form the ZW050x chip to the castellation notched of the ZM5202 module are tested. The CPU enables the internal pull-up resistors on the ZW050x chip and sets the pins high. The read back of the pins should then be high. All pins are then set to low, and because of the external 10 kOhm pull down resistors, all pins should be read back as being low. If an interconnection fails, the internal pull up will lead the CPU to read the pin as being high instead of low.

If one of the above tests fails, the radio will be turned off.

If both of the above tests pass, the radio will be turned on to transmit a CW, and the spectrum analyzer is then able to measure the RF frequency and RF output power.

4.7.1 Production Test DUT Files

The ProductPlus\ProdTestDUT directory contains the source code for the Production Test DUT application.

MK.BAT

Make bat file for building the application in question. To only build applications using EU frequency enter: MK “FREQUENCY=EU” in command prompt.

Makefile

This is the Makefile for the application in question defining the targets built.

Config_app.h

This header file contains defines for application version.

prodtestdut.c

This file contains the main source code for the application. Both ApplicationPoll and ApplicationCommandHandler are defined in this file.

prodtestdut.h

This file contains definitions for the prodtestdut application.

Page 58: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 52 of 67

CONFIDENTIAL

4.8 Production Test Generator

The Developer's Kit contains code that demonstrates how the basic tasks of testing devices in a Z-Wave network can be accomplished using the Z-Wave API. The Z-Wave generator is used to verify the TX / RX circuits on Z-Wave enabled products.

A simple generator consists of a ZW050x Interface Module and a Z-Wave Module (ZDB5101, ZDB5202, or ZDB3502).

On the Interface module there are 6 LED diodes, which have these assignments in the Prod_Test_Gen application.

Table 18. Production Test Generator LED interface

LED # Colour Description

D6 Red

D1 Red Error

D2 Red Success

D3 Red Send (flashes during transmission)1

D4 Red -

D5 Red

The push button on the Z-Wave Module is the “Test” button.

After connection to power, the red “Error” LED ‘D1’ on the Interface module will be on.

When the push button is pressed, 10 NOP’s will be transmitted. A device under test (application in production test mode executing ApplicationTestPoll) is expected to verify the reception of each NOP with an ACK. During transmission, the red LED ‘D3’ will flash.

If all NOP’s are replied correctly, the red “Error” LED ‘D1’ will turn off and the red “Success” LED ‘D2’ will turn on and stay on until the next test is conducted. If the DUT does not reply correctly, the red “Error” LED ‘D1’ will turn on and stay on until the next test is conducted.

The Z-Wave basis software continually calls the ApplicationPoll function. The ApplicationPoll function contains a state machine, which initiates actions from user input. The ApplicationCommandHandler function is only called when the Z-Wave basis software receives information for the application.

The Production Test Generator application is based on the ZW_slave_prodtest_gen library.

1 Not used on module ZM5202

Page 59: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 53 of 67

CONFIDENTIAL

The application is controlled via RS232 (115200,8,N,1) or button with fixed timings: Device will respond to any char received with an ASCII SPACE followed by a command answer or error '!' followed by error information: Following ASCII commands are implemented. Received:

'U': Frequency US is selected sending 9.6kbps on channel 1 Response is: ' US'

'E': Frequency EU is selected sending 9.6kbps on channel 1 Response is: ' EU'

'Z': Frequency ANZ is selected sending 9.6kbps on channel 1 Response is: ' ANZ’

'M': Frequency MY is selected sending 9.6kbps on channel 1 Response is: ' MY'

'I': Frequency IN is selected sending 9.6kbps on channel 1 Response is: ' IN'

'J': Frequency JP is selected sending 100kbps on channel 1 Response is: ' JP’

‘F’ Set frequency by number Any frequency is selected from the table of defined frequencies. The input shall be 2 decimal digits. Response for the first digit is: ' n' Response for the second digit is: ‘ n Frequency selected: nn=FREQUENCY’ (where nn is the selected 2 digits decimal index in the table of defined frequencies.

'S': Start test Response is ' ST'

'C': Set the number of NOPs to send to 1000 Response: ' CO'

'N': Set the destination node ID. Response: ' NI'

'R': Reset the hardware Response: ' RS'

On Unknown: '!' 'received Char'

Page 60: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 54 of 67

CONFIDENTIAL

4.8.1 Production Test Generator Files

The ProductPlus\ProdTestGen directory contains the source code for the Production Test Generator application.

MK.BAT

Make bat file for building the application in question.

Makefile

This is the Makefile for the application in question defining the targets built.

Config_app.h

This header file contains defines for application version.

prodtestgen.c

This file contains the main source code for the application. Both ApplicationPoll and ApplicationCommandHandler are defined in this file.

prodtestdut.h

This file contains definitions for the prodtestdut application.

4.9 Serial API Applications

For a description of how to develop serial API based host applications refer to [14].

Page 61: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 55 of 67

CONFIDENTIAL

4.10 Wall Controller

The Wall Controller application shows a push button switch panel implementation to control devices in the Z-Wave network from push buttons (physical or virtual) on a device that is meant to be mounted on a wall. Examples include scene and zone controller, wall mounted AV controllers.

The Wall Controller had four buttons in previous versions. Although endpoints and AGI indicates the number 4 (for the sake of backwards compatibility), the Wall Controller can only handle 3 buttons due to limitations of the ZDP03A hardware. S3 is occupied by external NVM and S5 are occupied by the test interface.

The Wall controller application implements a wall mounted switch that has three individually configurable buttons each mapping to one multilevel endpoint. Each button has support for on/off and dimming.

The application is based on:

Role Type: Always On Slave (AOS)

Root Device Type: generic type Wall Controller and specific type Basic Wall Controller

Supported security keys: S0 and S2_UNAUTHENTICATION and S2_AUTHENTICATION o The Wall Controller features do not depend on the security level.

Library: Enhanced 232 slave

Supported module(s): ZDP03A configured with a ZDB5101 module

Endpoint 1 device type: generic type Wall Controller and specific type Basic Wall Controller

Endpoint 2 device type: generic type Wall Controller and specific type Basic Wall Controller

Endpoint 3 device type: generic type Wall Controller and specific type Basic Wall Controller

Graphical representation (Icon Types):

Page 62: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 56 of 67

CONFIDENTIAL

4.10.1 Announced Command Classes in NIF

Besides the common mandatory command classes and functionality, this Wall controller application implements additional command classes. The table below show announced command classes in NIF depending on state of device.

Table 19. Wall Controller command classes announced in NIF depending on state

Command Class Not added Non-secure added Securely added

Non-secure CC Secure CC

ZWAVEPLUS_INFO Support Support Support

TRANSPORT_SERVICE Support Support Support

MANUFACTURER_SPECIFIC Support Support Support

DEVICE_RESET_LOCALLY Support Support Support

SECURITY Support Support Support

SECURITY_2 Support Support Support

POWERLEVEL Support Support Support

VERSION Support Support Support

ASSOCIATION Support Support Support

MULTI_CHANNEL_ASSOCIATION Support Support Support

ASSOCIATION_GRP_INFO Support Support Support

MULTI_CHANNEL Support Support Support

SUPERVISION Support Support Support

FIRMWARE_UPDATE_MD Support Support Support

SWITCH_MULTILEVEL Control Control Control

CENTRAL_SCENE Support Support Support

Page 63: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 57 of 67

CONFIDENTIAL

The endpoint implements the following command classes.

Endpoints 1-4

Command Class Non-secure added Securely added

Non-secure CC Secure CC

ZWAVEPLUS_INFO Support Support

SECURITY Support

SECURITY_2 Support

ASSOCIATION Support Support

MULTI_CHANNEL_ASSOCIATION Support Support

ASSOCIATION_GRP_INFO Support Support

SUPERVISION Support Support

SWITCH MULTILEVEL Controlled Controlled

BASIC Controlled Controlled

Use case:

Wall controller’s four buttons are configurable to control nodes. Each button action is sent over life-line as scene actions. Current figure shows an example of this:

Page 64: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 58 of 67

CONFIDENTIAL

Figure 3. Wall Controller endpoints/buttons on ZDP03A.

4.10.2 Basic Command Class mapping

Basic CC is mapped according to [16] for a Wall Controller.

Page 65: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 59 of 67

CONFIDENTIAL

4.10.3 Association groups

Backwards compatibility for non-Multi Channel devices forces the root device AGI table to contain all the association groups listed in each of the endpoint’s AGI table except from group 1, the Lifeline group.

Root device:

ID Name Node count

Description

1 Lifeline 5 Supports the following command classes:

Device Reset Locally: triggered upon reset.

Central Scene: triggered by endpoints.

2 Basic set 5 Mirror of endpoint 1, group 2.

3 Multilevel set 5 Mirror of endpoint 1, group 3.

4 Basic set 5 Mirror of endpoint 2, group 2.

5 Multilevel set 5 Mirror of endpoint 2, group 3.

6 Basic set 5 Mirror of endpoint 3, group 2.

7 Multilevel set 5 Mirror of endpoint 3, group 3.

8 Basic set 5 Mirror of endpoint 4, group 2.

9 Multilevel set 5 Mirror of endpoint 4, group 3.

Endpoint 1:

ID Name Node count

Description

1 Lifeline 0 Mirror of root device, but without node count.

2 Button S2 5 Transmits a Basic Set upon pressing S2.

3 Button S2 5 Transmits a Multilevel Start Change when pressing and holding S2 and a Multilevel Stop Change when releasing.

Endpoint 2:

ID Name Node count

Description

1 Lifeline 0 Mirror of root device, but without node count.

2 NOT USED 5 Not used, but kept for backwards compatibility.

3 NOT USED 5 Not used, but kept for backwards compatibility.

Page 66: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 60 of 67

CONFIDENTIAL

Endpoint 3:

ID Name Node count

Description

1 Lifeline 0 Mirror of root device, but without node count.

2 Button S4 5 Transmits a Basic Set upon pressing S4.

3 Button S4 5 Transmits a Multilevel Start Change when pressing and holding S4 and a Multilevel Stop Change when releasing.

Endpoint 4:

ID Name Node count

Description

1 Lifeline 0 Mirror of root device, but without node count.

2 Button S6 5 Transmits a Basic Set upon pressing S6.

3 Button S6 5 Transmits a Multilevel Start Change when pressing and holding S6 and a Multilevel Stop Change when releasing.

Page 67: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 61 of 67

CONFIDENTIAL

4.10.4 Usage on ZDP03A

Table 20. Wall Controller push buttons interface

Switch # Action Function

S2 (EP1)

Press [Root : Group 1] CC Central Scene ”Key Pressed 1 time” (over lifeline)

[EP: Group 2] CC Basic Set

Hold start [Root : Group 1] CC Central Scene ”Key Held Down” (over lifeline)

[EP: Group 3] CC MultiLevel Start

Hold release [Root : Group 1] CC Central Scene ”Key Released” (over lifeline)

[EP: Group 3] CC MultiLevel End

S4 (EP3)

Press [Root : Group 1] CC Central Scene ”key push” (over lifeline)

[EP: Group 2] CC Basic Set

Hold start [Root : Group 1] CC Central Scene ”Key Held Down” (over lifeline)

[EP: Group 3] CC MultiLevel Start

Hold release [Root : Group 1] CC Central Scene ”Key Released” (over lifeline)

[EP: Group 3] CC MultiLevel End

S6 (EP4)

Press [Root : Group 1] CC Central Scene ”key push” (over lifeline)

[EP: Group 2] CC Basic Set

Hold start [Root : Group 1] CC Central Scene ”Key Held Down” (over lifeline)

[EP: Group 3] CC MultiLevel Start

Hold release [Root : Group 1] CC Central Scene ”Key Released” (over lifeline)

[EP: Group 3] CC MultiLevel End

4.10.5 How to configure associations to Wall Controller

Association configuration can be done non-multi-channel encapsulated by using roots mirroring groups present in AGI root table or multi-channel encapsulated for each endpoint.

Controller configures associations:

Wall Controller button 1 switch Power Strip plug 1 on/off by button press.

Wall Controller button 2 switch Power Strip plug 2 on/off by button press.

Wall Controller button 4 switch Power Strip plug 3 on/off by button press.

Wall Controller button 4 dimmer Power Strip plug 3 by button hold.

Page 68: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 62 of 67

CONFIDENTIAL

4.10.5.1 Non-multi-channel encapsulated configuration

Controller configures associations by using Multi-channel Association CC

Page 69: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 63 of 67

CONFIDENTIAL

4.10.5.2 Encapsulated configuration

Controller configures associations by using Multi-channel Association CC and send it multi-channel encapsulated.

4.10.6 Z-Wave Certification

The Wall Controller passes certification.

Page 70: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 64 of 67

CONFIDENTIAL

5 DEVELOPMENT COMPONENTS

The SDK contains a number of Z-Wave Development Platforms and Boards used for programming and application development.

5.1 Z-Wave Development Platform ZDP03A

This Z-Wave Developer’s Kit comes with the Z-Wave Development Platform ZDP03A included. This platform is used for application development and as programmer downloading firmware to the Z-Wave Single Chips. The programmer is also used when setting lock bits, programming the external non-volatile memory on the Z-Wave module etc. For details refer to [2].

Figure 4. The Z-Wave Development Platform ZDP03A.

For a detailed description of the ZDP03A Z-Wave Development Platform refer to [2].

UART 1

USB 1

UART 2

USB 2

Page 71: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 65 of 67

CONFIDENTIAL

5.2 Hardware development components for 500 Series

The 500 Series based embedded application are designed for the ZDP03A Z-Wave Development Platform in combination with a Z-Wave module hosting the application. Some applications use also the AVR processor on ZDP03A as host together with a serial API application running on the Z-Wave module. The Z-Wave modules exist in four variants:

Table 21. 500 Series development boards and interfaces

Development board Module/chip used Interface lines

ZDB5101

ZM5101 2 x UART, 2 x SPI, 1 x USB

ZDB3502

SD3502 1.5 x UART (- UART1 Rx), 2 x SPI,

1 x USB

ZDB5202

ZM5202/SD5302 (300 series interface)

1 x UART0, 2 x SPI0

Page 72: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

INS13933-3 Z-Wave 500 Series SDK Contents v6.81.01 2018-03-06

silabs.com | Building a more connected world. Page 66 of 67

CONFIDENTIAL

REFERENCES

[1] SD, INS12712, Instruction, Z-Wave Network Installation and Maintenance Procedure User Guide. [2] SD, DSH11243, Datasheet, ZDP03A Z-Wave Development Platform. [3] SD, APL12955, Application Note, Z-Wave Multi Channel Basics [4] SD, SDS13781, Software Design Specification, Z-Wave Application Command Class

Specification. [5] SD, SDS13782, Software Design Specification, Z-Wave Management Command Class

Specification. [6] SD, SDS13783, Software Design Specification, Z-Wave Transport-Encapsulation Command Class

Specification. [7] SD, SDS13784, Software Design Specification, Z-Wave Network-Protocol Command Class

Specification. [8] SD, SDS13548, Software Design Specification, List of defined Z-Wave Command Classes. [9] SD, APL12956, Application Note, Z-Wave Association Basics [10] SD, INS13954, Instruction, Z-Wave 500 Series Application Programmers Guide v6.8x.0x. [11] SD, SDS10242, Software Design Specification, Z-Wave Device Class Specification. [12] SD, INS12366, Instruction, Working in 500 Series Environment User Guide. [13] SD, SDS13953, Instruction, Z-Wave Plus Application Framework v6.8x.0x. [14] SD, INS12350, Instruction, Serial API Host Appl. Prg. Guide. [15] SD, SDS11846, Software Design Specification, Z-Wave Plus Role Types Specification. [16] SD, SDS11847, Software Design Specification, Z-Wave Plus Device Types Specification. [17] SD, INS12213, Instruction, 500 Series Integration Guide. [18] SD, INS13933, Instruction, Z-Wave 500 Series SDK Contents v6.8x.0x [19] SD, SDS12467, Software Design Specification, 500 Series Z-Wave Chip NVR Flash Page

Contents.

Page 73: CONFIDENTIAL · CONFIDENTIAL REVISION RECORD Doc. Rev Date By Pages affected Brief description of changes 1 20170227 COLSEN ALL Initial draft based on INS13477-8 Z-Wave 500 Series

silabs.com | Building a more connected world. Page 67 of 67

CONFIDENTIAL

INDEX

ApplicationTestPoll .................................................................................................................................... 52 Enhanced Reliability Test Tool .................................................................................................................. 17 ERTT ................................................................................................................................................... 10, 17 External non-volatile memory .................................................................................................................... 12 IMA Tool Box ............................................................................................................................................. 25 Low power transmission levels .................................................................................................................... 8 Normal power transmission levels ............................................................................................................... 8 Z-Wave Development Platform ZDP03A ................................................................................................... 64


Recommended