Troubleshooting your Z-Uno

Z-Uno is pretty complex in work. To make your experience better we have collected here some most frequent problems you can experience.

I can not include Z-Uno

There might be many reasons to fail inclusion:

  • Triple press on Service Button is not fast enough → press the Service Button faster
  • Your Z-Uno is not on the same frequency as your Z-Wave controller → please doublecheck in Arduino IDE settings and in controller settings
  • Your sketch prevents Z-Uno from handling button/Z-Wave operations (you did an infinite loop) → use rescue mode to disable your sketch
  • Z-Uno is too far from the controller or any other mesh capable Z-Wave device in the network → try to move Z-Uno closer to the controller

Z-Uno is not reachable by the controller or other Z-Wave devices

There might be many reasons for this:

  • Your Z-Uno is sleeping (if sketch uses sleeping power mode) → wake up Z-Uno by pressing three times Service button
  • Your Z-Uno is not on the same frequency as your Z-Wave controller → please doublecheck in Arduino IDE settings and in controller settings
  • Your sketch prevents Z-Uno from handling button/Z-Wave operations (you did an infinite loop) → use rescue mode to disable your sketch
  • Z-Uno is too far from the controller or any other mesh capable Z-Wave device in the network → try to move Z-Uno closer to the controller

My sketch is not applied (number/type of channels or association groups or powr mode are not updated)

Z-Uno will allways apply your sketch immediately after sketch upload, but number and types of channels and association groups as well as power mode will not change unless you exclude the device. Inorder to apply those changes exclude Z-Uno and include back. For development reasons only you can use special Debug configuration parameter to apply those changes «on the fly». Make sure to disable debug mode after debugging session.

Z-Uno hangs and new sketch can not be uploaded anymore

It happens that your sketch kills Z-Uno with some hard task (like infinite loop or too fast write to serial port or some other things we sometimes accidentelly do). In that case Z-Uno becomes completely non-responsive. Hopefully there is a special Rescue mode to boot Z-Uno without running user sketch.

To go into Rescue mode hold down the Service Button and then hold down the Reset button, wait for a second, release the Reset button then release the Service Button. User code will not be executed until reboot (it is not erased from Z-Uno).

In worst case you might need to reset your Z-Uno to factory default state.

I can not find serial port of my Z-Uno

There might be many reasons for this: Z-Uno is sleeping, Z-Uno goes into infinite loop (hangs) and do not serve USB, Z-Uno is in some unpredictable state.

Rescue mode or reset to factory default will solve this problem.

Z-Uno unpredictable behaviour or hangs due to stack overflow

Sometimes complex or big user code can lead to unexpected Z-Uno behavior or hangs. Usually this is caused by stack overflow problems. Try to move local variables from functions in global scope and lower the number of nested function calls. Logging might help to detect overflows.

Z-Uno system logging

Sometimes you might get strange things: unpredictable behaviour or hangs. In most cases it is a result of stack overflow or code errors. We suggest to use Serial.print() to debug your code.

To help you better debug your code enable Z-Uno logging in the Arduino IDE. Z-Uno will try to log critical events (unless the error is unrecoverable and kills the logging itself). It is possible to use loging via UART0 (not USB!) or thru Z-Wave radio. It is better to use UART logging as it usually still works in most worse overflows.

Log via UART0 have the following format: TTTT:EE PP, where

  • TTTT — time in seconds from the start of device (hexadecimal)
  • EE — code of the event (hexadecimal)
  • PP — parameter of the event (hexadecimal)

When Z-Wave logging is used, events are reported via Configuration Report for parameter #48. Higher two bytes are event, lower two are event parameter. Some events (like Go Sleep) are not sent via Z-Wave.

Logging codes are listed as ZUNO_LOGGING_EVENT_* constants in ZUNO_Definitions.h.

Arduino IDE complains about versions of bootloader

If during sketch upload error message «Z-Uno core version and device version mismatche. You have x.y.z firmware version on the board. Core version is a.b.c. Please upgrade bootloader.» is show, go to menu Tools → Burn Boorloader and wait for Z-Uno to upgrade (might take few minutes, don't unplug Z-Uno until process is finished).

Error during bootloader upgrade

If during sketch upload or bootloader upgrade you see the following error, go to Tools → Boards, select Z-WAVE>ME Z-Uno and Tools → Programmer, select Z-Uno Programmer.

<pre>java.lang.NullPointerException

.....

at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)</pre>

Security is not enabled in Z-Uno

Go to Arduino IDE and check Security item in Tools menu.

I can not install newer/older Z-Uno package for Arduino

Sometimes new/old packages can not be installed. In this case you will get errors like this:

Invalid version found: x.xx.xx
Tool name : zuno_toolchain y.yy.yy
     sys : i686-pc-linux-gnu 
     sys : x86_64-apple-darwin 
     sys : x86_64-pc-linux-gnu 

If you see this, remove Z-Uno related files and folders from Arduino IDE folders and install the desired Z-Uno package again:

~/.arduino15/packages/Z-Uno and ~/.arduino15/staging/packages/zuno* (on Linux)
/Users/.../Library/Arduino15/packages/Z-Uno and /Users/.../Library/Arduino15/staging/packages/zuno* (on Mac OS X)
\AppData\Roaming\Arduino15\packages\Z-Uno and \AppData\Roaming\Arduino15\staging\packages\zuno* (on Windows)

I can not install newer/older Z-Uno package for Arduino

Sometimes new/old packages can not be installed. In this case you will get errors like this:

CRC doesn't match. File is corrupted

If you see this, remove Z-Uno related files and folders from Arduino IDE folders and install the desired Z-Uno package again:

~/.arduino15/packages/Z-Uno and ~/.arduino15/staging/packages/zuno* (on Linux)
/Users/.../Library/Arduino15/packages/Z-Uno and /Users/.../Library/Arduino15/staging/packages/zuno* (on Mac OS X)
\AppData\Roaming\Arduino15\packages\Z-Uno and \AppData\Roaming\Arduino15\staging\packages\zuno* (on Windows)

I can not burn bootloader

If you see the following error:

 Error  0  There is no firmware "zuno_bootloader_....*.bin" that is needed for your Z-Uno

you are trying to update from some test version. To be able upgrade you need to downgrade first to the latest stable version and then install the desired version.

Where can I find Arduino IDE folders?

Arduino IDE stores Z-Uno files in a "user" folder. Depending on your operating system it can be found at:

  • ~/.arduino15 (on Linux)
  • /Users/.../Library/Arduino15 (on Mac OS X)
  • C:\Users\...\AppData\Roaming\Arduino15 (on Windows)