New Z-Uno release!

This new software update for Z-Uno adds many new features and allow to make several new types of devices based on the same Z-Uno board.

What's new in 2.1.4?

New features

  • Three new channel types: Color Switch, Thermostat and Door Lock
  • If only one channel, MultiChannel will be supressed (Command Classes outside channel will represent your single channel)
  • Handling of incoming reports from other devices. Handled reports are Basic/Sensor Binary/Alarm/Sensor Multilevel/Switch Binary/Switch Multilevel/Battery/Meter.
  • New inclusion mode: double click for unsecure inclusion, triple click for secure (as it was before). New security parameter added to zunoStartLearn(timeout, secure)
  • Two new functions: tone() and noTone()
  • ADC and PWM pins can now be referenced in pinMode/digitalWrite/digitalRead as PWMx и ADCx too (like in Arduino). Before was only via pin number.
  • Added FastPWM on pin A0.
  • New types added for SensorMultilevel

Bug fixes

  • Fixed multiple ADC influencing each other
  • Fixed OTA (broken since 2.1.3)
  • Fixed interrupts handlers inside libraries (was broken since 2.1.3)
  • Fixed compiler diagnostic messages if a too big sketch is uploaded. Before it was silently ignored.
  • Switch between S2 and S0 firmwares was broken (since 2.1.3)
  • s_pin interrupt handlers was corrupting value in another s_pin.
  • Only lower word part from the DWORD-value on channels was passed. (thanks to @petergebruers)
  • Pull Up mode was overriden by mode change on the same i/o port (8 pins) (broken since 2.1.1)
  • S2 bootloader upload fixed
  • analogWrite(pin, 0) was not working properly (was never actually 0)
  • zunoBatteryHandler was not working (since 2.1.3)


  • Config parameters are now two bytes instead of four
  • New security parameter added to zunoStartLearn(timeout, secure)

New libraries

  • ZUNO_BMP280 - support for BMP280/BME280 sensors by Bosch (thanks to petergebruers for testing it)
  • ZUNO_MERCURY206R - support for electrical meters Mercury, model 206R.
  • SoftwareSerial - supports for slow UART. Valid speeds are 1200/2400/4800/9600 8-N-1
  • Wire. Added clockStretching. Enabled using Wire.enableTS(true). Slows down the speed by ~25%. Usefull to support modern I2C devices that do require Clock Stretching.
  • Added library for air quality sensor CCS811 from AMS.

More info and examples on our forum. To install this new release follow simple instructions.

Documentation on Z-Uno web site was also revised and updated to host new functions description.

This new software update for Z-Uno adds the support of the best in class IoT security protocol — Z-Wave Security S2.

What's new in 2.1.3?

New features:

  • Z-Wave Security S2 implemented!
  • MultiChannel is supressed if only one channel is defined (no duplicate widget will be shown in your controller).
  • Associations reworked - up to 32 groups are now supported (1 LifeLine + 31 control groups) with up to 8 nodes in each group.
  • User libraries can now be located in the sketch folder.

Bug fixes

  • Fixed Wakeup CC (broken since 2.1.1).

Notes on Security S2

  • To benefit from the newest Security S2 you need to own a modern S2 capable controller.
    RaZberry users can check the beta v3.0.0.
  • You need to change the bootloader from non-secure/S0 to S2 version. This is done by selecting S2 from the menu Tools→Security (see the screenshot). Then do Tools→Burn bootloader. If bootloader mismatch your menu settings, you will get a warning.
  • To locate the Z-Uno PIN (also known as DSK or ZWS2DSK) check the log of the Arduino IDE (see the screenshot).
  • Z-Uno supports all security classes: S2 Unauthenticated, S2 Authenticated and S2 Access.
  • S2 capable bootloader do not support S0 security, Z-Uno can autodetect the security scheme used by the recepient, so it can control devices with any S2 security level provided the corresponding key is granted to Z-Uno.
  • Z-Uno with S2 support can not control/support S0 security scheme. If you need to control actuator with S0 security only, either downgrade to S0 your Z-Uno or use rules on the controller to receive S2 sensors notifications and send S0 commands to the S0 capable actuator.
  • In S2 variant of Z-Uno the user code is limited to 6 Kb only. This is enough for most of your sketches.
  • This is a not yet certified Z-Uno software - we plan to certify it soon in the Z-Wave Alliance.
Z-Uno with Z-Wave Security S2 support

What's next?
Z-Uno is great, but it can be even better. We have a huge list of interesting features we would like to introduce. This is why we want to ask you about features you need for your project. Please vote on our forum.

To install this new release follow simple instructions.

Documentation on Z-Uno web site was also revised and updated to host new functions description.

We have a new official distributor in Canada: National Sensors.

Z-Uno is also available on Amazon and Amazon UK.

This new software update for Z-Uno introduces many new features, allows you to use modern Arduino IDE 1.8.5 and prepares Z-Uno for the most secure IoT protocol - Z-Wave Security S2 - that will be release in the next 2.1.2.

What's new in 2.1.1?

New features:

  • Arduino IDE 1.6.5 and 1.8.5 are now supported. You can now use the latest Arduino IDE with Z-Uno!
  • Added Japonese, Korean and Taiwanese frequencies.
  • Number of Z-Uno channels rised to 32! You can make 32 devices in one.
  • Added support for up to 32 user defined configuration parameters to make your sketches even more flexible.
  • Z-Uno can wake up on low and high INT1 - this allows to go into sleep mode on any state of INT1. Save more battery in your sensor!
  • Stack overflow and system errors are reported to the controller and/or to the UART0. Arduino IDE Tools menu allows to turn it on/off. This should make your debugging easier.
  • User defined battery measurement allows to personalize battery reports for your project.
  • Added the possibility to measure the voltage on the 3V pin using analogRead() function.
  • Added function zunoSetBeamCountWU() to instruct Z-Uno in FLiRS mode to wake up after several second even if there were no packets received. This allows to make always reachable battery powered sensors.
  • In Arduino IDE Tools menu one more item added - clean EEPROM. Can clean user data, system data or all data (like reset to factory default).
Bug fixes
  • Fixed wakeup on Key Scanner (broken in 2.1.0)
  • Fixed FLIRS not reporting without a delay in the loop. Now delay is not needed anymore.
  • Fixed handler calling when devices is sent into sleep by user.
  • memset fixed
  • No need to downgrade to the previous version to upgrade from test build to a stable one
  • Few examples changed to adop the changes above

And a lot of internal changes (see our forum for more details).

Our next ambitious goal is to release and certify an S2 capable Z-Uno!

To illustrate the power of Z-Uno we have made those new examples::

To install this new release follow simple instructions.

Documentation on Z-Uno web site was also revised and updated to host new functions description.

We are happy to announce a new Z-Uno release! This software update of Z-Uno is introducing many new features and fixes some bugs found in 2.0.9.

What's new in 2.1.0?

New example added (can be found in File→Examples→Z-Uno in Arduino IDE or on the site):

  • Z-Uno as a modem — communicate with Z-Uno via AT commands.
    This new sketch allows to use Z-Uno as a modem like it is with Bluetooth HM-10. Connect Z-Uno you your smart devices to make the Z-Wave enabled!

    This sketch also allows to report values from your PC or Arduino to your existing Z-Wave controller.
  • NeoPixel illustrates how to control WS2811/WS2812 LEDs right from your Z-Uno.
  • Multiple DS18B20 creates as many channels as there are temperature sensors connected

New features:

  • New channel types added:
    • Blinds (similiar to Switch Multilevel, but shows up as blinds in controllers)
    • Siren (similiar to Switch Binary, but shows up as a siren) — can be sleeping (FLiRS) and run on battaries
    • Valve control (also called Flow Stop, similiar to Switch Binary, but shows up as a valve control) — can be sleeping (FLiRS) and run on battaries
  • Now Z-Uno channels and association groups can be configured depending on the peripherals - same sketch can adopt to the environment. For example autodetect all DS18B20 temperature sensors on the 1-wire bus and render the corresponding channels. Or read configuration from UART and create channels and groups corresponding to that data. Or connect Bluetooth modem with Z-Uno and create a Bluetooth-to-Z-Wave gateway. There might be many ideas! See full description.
  • Learn mode can not be initiated from the sketch. This allows to start learn mode via USB, UART or any other bus from another chip.


  • NeoPixel implements support of WS2811 and WS2812. The library is compatible with Arduino style.

This new C++ release is available under URL (follow instructions).

Documentation on Z-Uno web site was also revised and updated to host new functions description.

Z-Uno is now available in USA! Get yours from

To help you make your first Z-Wave device faster, we wrote the Z-Uno Quick Start Guide book. It will guide you through the wonderful world of Z-Uno. Special thanks to team for proofreading the book. A very short and quick introduction is also available for those who don't want to read a book.

Z-Uno is back in stock! Check the list of Z-Uno distributors to find your favorite shop.

We are happy to announce a new Z-Uno release! This software update of Z-Uno is fixing a lot of bugs of the previous version 2.0.8 and earlier.

What's new in 2.0.9?

New example added (can be found in File→Examples→Z-Uno in Arduino IDE):

New features:

  • Libraries
  • Fixes:

    • Fixed digitalRead with constant pin reference (broken since 2.0.8).
    • Fixed ADC wrong values after Z-Uno wakeup (broken since the beginning).
    • Fixed user readable output on wrong s_pin usage (not in 9-16 range, broken since 2.0.8).
    • Fixed problem with pins 17-23 (fixed in 2.0.7, but broken again in 2.0.8).


    • Added atoi, atol, atof definitions in headers.
    • Interrupt handlers can be defined not only in sketch file, but in libs too (used in the new ZUNO_SERVO)

    This new C++ release is available under URL (follow instructions).

    Documentation on Z-Uno web site was also revised and updated to host new functions description.

    We are happy to announce a new Z-Uno release! This software update of Z-Uno fixes some issues from 2.0.7 version and brings many new features to your Z-Uno.

    What's new in 2.0.8?

    New examples added (can be found in File→Examples→Z-Uno in Arduino IDE):

    New features:

    • External interrupts of the Z-Wave chip: INT0 (pin 17), INT1 (pin 18), ZEROX (pin 3). Interrupt handler should be defined in global range via ZUNO_SETUP_ISR_*(isr_handler), where isr_handler is the name of the corresponding function to call on interrupt.
      • ZUNO_SETUP_ISR_INT0(int0_handler)
      • ZUNO_SETUP_ISR_INT1(int1_handler)
      • ZUNO_SETUP_ISR_ZEROX(int_zeroX_handler)
      NB! The code in the handler should be as fast as possible and should not contain ANY function calls except few specified below.

      Trigger mode is defined using function zunoExtIntMode(byte int_num, byte mode). Allowed values are for int_num are:
      • ZUNO_EXT_INT0
      • ZUNO_EXT_INT1
      for mode are:
      • CHANGE (value change)
      • FALLING (high to low falling)
      • RISING (low to high rising)
    • General Purpose Timer (GPT) is now available. interrupt handler can be set via ZUNO_SETUP_ISR_GPTIMER(gpt_handler), where gpt_handler - is the handler function name (like for interrupts handlers). Timer is configured using the following functions:
      • zunoGPTInit(byte flags) — set timer mode:
        • ZUNO_GPT_SCALE1024 — specify tick frequency as 32MHZ/1024, otherwise default 4MHZ is used.
        • ZUNO_GPT_IMWRITE — write new value immediately instead of waiting for timer to reach zero
        • ZUNO_GPT_CYCLIC — reload the timer on reaching zero — otherwise timer triggers only once
      • zunoGPTEnable(byte bEnable) — enable/disable timer
      • zunoGPTSet(word interval) — defines the number of ticks before interrupt happens.
      NB! GPT can not be used together with PWM. Don't use analogWrite while using timers
    • New 1 ms timer. Unlike GPT, this timer is not so accurate, but have no restrictions on PWM. Defined using ZUNO_SETUP_ISR_1MSTIMER(m1ms_handler)
    • ADC (analogRead) resolution can be changed using function analogReadResolution(byte resolution). Resolution can be in range 1-12 bits. Most popular are:
      • 10 bits (default) — Arduino Uno compatibility mode
      • 12 bits — maximum possible in Z-Uno
      • 8 bits — can save energy in battery devices (uses special mode of Z-Wave MCU to make ADC faster)
    • Possibility to choose Reference for ADC using analogReference(byte ref). Possible values are (bitmask flags)::
      • ADC_HIGH_EXTERNAL — use A0 pin as upper reference voltage
      • ADC_HIGH_INTERNAL — use internal voltage reference 1.2 V as upper reference voltage (NB! there might be a ±10% drift from Z-Uno to Z-Uno, but constant for a particular Z-Uno!)
      • ADC_HIGH_VCC — use Vcc as upper reference voltage (default)
      • ADC_LOW_EXTERNAL — use A1 pin as lower reference voltage
      • ADC_LOW_GND — use GND as lower reference voltage (default)
      • Pre-defined (Arduino-like) values:
    • Possibility to define PWM resolution using function analogWriteResolution(byte res). Resolution can be in range 1-16 bits. Most popular:
      • 8 — like in Arduino Uno (default)
      • 16 — maximal possible in Z-Uno
    • Libraries
      • New library ZUNO_AM2030 temperature & humidity AM2030 I2C sensor.
      • New library ZUNO_PN532 NXP PN532 I2C NFC/RFID sensor.
      • New library ZUNO_LPS3310 LPS3310 I2C pressure sensor.


    • Error that lead to Z-Uno being unreachable after new sketch load (reset was required).
    • Problems with ADC wrong errors and input resistance (pullup was accidentelly turned on).
    • Problems with data loss on UART1/UART0 on speed bigger than 9.6 kbps. UART reworked to use buffering and MCU facilities (DMA).
    • Problems with pins 17-23 being changed on Z-Wave packet send.
    • Failed I2C communication with Arduino and other MCUs.


    • IR input buffer size rised from 200 to 300 bytes - now IR commands up to 9 bytes can be captured (used by most A/C remotes).
    • Allowed to use delay() in setup(). This call is blocking.

    This new C++ release is available under URL (follow instructions).

    Documentation on Z-Uno web site was also revised and updated to host new functions description.