ZWP500
™
Z-Wave Production Programmer & Tester
www.ExpressControls.com
February 2018
Bringing
the Internet of Things (IoT) to Life
22
UARTSend
DD…
Send the hexadecimal characters DD out the UART to the DUT. If the characters are not hexadecimal a ? is returned.
Example:
UARTSend 53 65 6E 64 30 31<cr>
Sends the ASCII string “Send01” to the DUT UART
VIOSet
Set the current voltage of the VIO pin in milliVolts. A voltage value of 0 turns off the VIO power supply. If the desired
voltage is not achieved or the current exceeds 300mA a command failed (!) is returned. The VIO voltage is stepped up
over several milliseconds to allow the RPi power supply time to adjust to the increased load. Use VIOGet to check the
voltage and current being provided to the DUT.
Example: VIOSet 3300<cr>
Returns: *<cr>
VIOGet
Get the voltage and current of the VIO power supply.
Example: VIOGet<cr>
Returns: *<cr>VIO x.xxV yy.yymA
Where x.xxV is the voltage in volts of the VIO pin and yy.yymA is the current in milliAmps.
ZWaveGet [TT]
Data from the Z-Wave chip SerialAPI is returned. The optional parameter TT specifies the number of seconds (in
hexadecimal) to wait before returning. The default for TT is 1 second (0x01). If a complete SerialAPI frame has been
received from the Z-Wave chip and the checksum is good, the frame will be acknowledged to the Z-Wave chip so that it
won’t continue to retry sending the frame. Note that if the time between the ZWaveSend and the ZWaveGet is more than
a few milliseconds, the Z-Wave chip may send the frame multiple times expecting an immediate acknowledge. The
recommendation is to immediately follow a ZWaveSend with at least one ZWaveGet and typically several. An unsolicited
frame may also arrive which may also have multiple retries in it which is why the receive buffer is purged when a
ZWaveSend command is sent. During production testing the optional parameter TT is typically set to 01 or even 00 to
shorten the timeout because there should be no routing or other delays.
See ZWaveSend for an example. The Python sample application also has a number of examples of how to send Z-Wave
commands.
ZWaveS
end DD…
The Sigma SerialAPI command DD is sent to the ZWP500 Z-Wave chip. This command can be any SerialAPI command
and the data required with it. The SerialAPI frame is automatically built around the SerialAPI command. The SOF, length
and checksum are wrapped around the command. The Z-Wave receive buffer is purged of any received commands. The
receive buffer is purged as the expectation is that only the response to this command is desired.
The data portion of the command DD is as follows:
Byte #
Name
Description
1
FUNC_ID
SerialAPI Function ID as described in the Sigma SerialAPI documentation
2
DEST_NODEID Destination NodeID (optional)
3-n
DATA
Data for the FUNC_ID depends on the command being sent.
If the SerialAPI SendData command is sent, a non-zero callback function ID (the last byte of the command) should be
supplied to receive the callback indicating if the command was delivered to the desired NodeID or not. The function ID will
be returned with the status of the delivery (ACK or NAK) which can take up to 10 seconds to deliver over the radio. Many
SerialAPI commands return a large amount of data or a series of frames so multiple calls to ZWaveGet may be required
to return all the data from a single ZWaveSend command.