Over-the-Air upgrade

Z-Uno allows Over-the-Air (OTA) upgrade of the Z-Uno bootloader as well as user sketch. Your controller should be capable of sending new firmwares to Z-Wave devices (using Firmware Update Command Class).

Updating Z-Uno bootloader

Normally one would use Arduino IDE (Tools → Burn bootloader menu item) to upgrade Z-Uno bootloader via USB. But if your Z-Uno is already enclosed in some box, you can also do it wirelessly using OTA. To do this you need to use your Z-Wave controller to select corresponding .bin file, select target 0 and start the process.

Z-Uno will require confirmation from user (for security reasons). This can be done by triple click right after process start or by setting any value to parameter #20 just before the process.

The .bin file can be found in the user arduino folder/packages/Z-Uno/hardware/zw8051/x.y.z/bootloaders/ (x.y.z is your current version of Z-Uno software installed, for example, 2.0.6). You will find there files called like zuno_bootloader_AAAABBBB0115011000010043EFF27E20.bin. The part in bold (here it is 0043) should match the version installed on your Z-Uno (here it is 0.67, 0x00 = 0, 0x43 = 67). This file should be used to update Z-Uno (in our example from 0.67 to x.yz).

Note that user sketch will be lost after bootloader upgrade!

Updating Z-Uno sketch

Normally one would use Arduino IDE (Upload button) to load user sketch via USB. But like with bootloader, you can use OTA to update your sketch too. To do this you need to use your Z-Wave controller to select corresponding .bin file, select target 1 and start the process.

To locate the .bin file you need first to enable verbose mode in Arduino IDE (File → Preferences → Show verbose output during → Compilation). To compile your sketch press Verify button. During compilation you will see somthing like:
Making firmware file: /tmp/build6366042106180249572.tmp/sketch_sep28a-0206.hex ...packihx: read 137 lines, wrote 255: OK.

Z-Uno will require confirmation to start the process, see above.

The file with same name as in bold, but with .bin instead of .hex is the one you need (in this example it will be /tmp/build6366042106180249572.tmp/sketch_sep28a-0206.bin).