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
    • ZUNO_EXT_ZEROX
    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:
      • DEFAULT = (ADC_HIGH_VCC | ADC_LOW_GND)
      • INTERNAL = (ADC_HIGH_INTERNAL | ADC_LOW_GND)
      • EXTERNAL = (ADC_HIGH_EXTERNAL | ADC_LOW_GND)
  • 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.

Fixes:

  • 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.

Improvements:

  • 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 http://z-uno.z-wave.me/files/z-uno/package_z-wave.me_index.json URL (follow instructions).

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

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

What's new in 2.0.7?

New examples added:

New features:

  • New Channel type Meter to make electrical, gas or water meters (Meter Command Class version 4)
  • IR controller
    • Learn IR commands into mark/space sequence
    • Send IR commands from mark/space sequence
    • Comparison of mark/space sequences
    • Coding/decoding for popular IR protocols: SONY/NEC/LG/RC5/RC6/SAMSUNG/PANASONIC
    • 3 ready to go sketches in examples: IRScanner/IR2ZWave/ZWave2IR
  • Libraries
    • New library ZUNO_MCP4725 for I2C DAC MCP4725. Community contribution by @michap.
    • New library ZUNO_BH1750 for light sensor BH1750. Community contribution by @A.Harrenberg
    • ZUNO_ONEWIRE lib can now scan the bus (search() function)
    • ZUNO_DS18B20 lib can search for all DS18B20 on the OneWire bus (findAllSensors and scanAloneSensor functions). Added example: DS18B20Sacnner
    • ZMEKeypad new function isIdle() added to the lib to check if buttons are active or idle (to go to sleep only on idle)
  • Compatibility: new parameter #12 added for correct work of Sensor Binary/Notification channels in Fibaro Home Center 2/Lite.

Fixes:

  • uCxx Compiler
    • Multidimensional arrays definition fixed
    • Dots in file names now work
    • // comments in ZUNO_* macro work
    • Warinings on local char * supressed
    • Optimized pointer to this to minimize stack usage
    • Optimized pointers parameters in function calls to minimize stack usage. All but char are now passed via XDATA instead of generic pointers
    • Keypad restart after sleep fixed
    • delayMicroseconds() precision up to 1 microsecond
  • Libraries
    • Library Wire. Bug with two bytes locations. Affected 16-bit registers in BMP180
    • ZUNO_BMP180. Fixed inaccurate rounding of pressure
    • ZUNO_ONEWIRE. Fixed intervals in OneWire bus handling with accurate delayMicroseconds
    • ZUNO_DS18B20. Fixed timings depending on sensor resolution. Fixed problem with negative values. Thanks to @michap for contribution

This new C++ release is available under http://z-uno.z-wave.me/files/z-uno/package_z-wave.me_index.json URL (follow instructions).

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

Сергей Полторак September 30, 2016

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

We need your feedback!
We would like to ask you to follow our survey to better fit your requirements. Want more examples? Want more function? Please let us know!

What's new in 2.0.6?

New examples added:

New features:

Improvements:

  • DS18B20 and BMP180 libraries fixed to return float
  • Fast pin operations (defined via s_pin) improved (now can run faster up to 0.5 μs)
  • DHT and I2C libraries moved to user space code (saves code space if you don't use them)
  • I2C SCL/SDA can now run on any pins from 9–16 range (default is still 9 and 10), I2C can run up to 100 kHz
  • EEPROM and NZRAM libraries changed slightly: EEPROM uses DWORD for address reference, NZRAM uses BYTE.
  • User now have access to up to 360 kBytes of EEPROM
  • SPI buffering enabled to speed up to 480 kbps

Fixes:

  • Problem with static and global variables fixed
  • Path to sketch can now contain dashes, spaces and other special symbols
  • Problems with sleep mode

Changes:

  • Z-Uno specific libraries were renamed with ZUNO_ prefix not to conflict with native Arduino

This new C++ release is available under http://z-uno.z-wave.me/files/z-uno/package_z-wave.me_index.json URL (follow instructions).

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

During the IFA show that took place in Berlin from 2 to 7 September we have shown Z-Uno development board and new RaZberry board with enhanced antenna.

Have a look on the video presentation by INTUITECH.

See a short presentation of Z-Uno for Conrad Community blog at IFA 2016!

(starting from 1:05, in German)

Another presentation (also in German) was recently prepared by INTUITECH.

Release candidate of C++ version 2.0.5 is out!

A lot of new h/w support added and new examples provided.

  • 1-Wire library added (OneWire.h)
  • built-in EEPROM support added, 16kB available for user (EEPROM.h)
  • non-volatile fast memory support added for sleping devices (EEPROM.h)
  • Key scanner mode added to allow wakes up from sleep on up to 112 buttons (7x16 columns)
  • Dallas DS 3232 RTC library (DS3232RTC.h)
  • OLED library (OLED_I2C.h)
  • Adafruit BMP180 library (Adafruit_BMP085.h)
  • I2C BMP180 pressure and temperature sensor and OLED display example
  • I2C BH1750 light sensor example
  • 1-Wire DS18B20 temperature sensor example
  • New fast pin control added to digitalWrite() and digitalRead()

Like before, this C++ release candidate is available under http://z-uno.z-wave.me/files/z-uno/test-ucxx/packa... URL (please remove stable URL in Arduino IDE settings and put this instead)

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

We are releasing new C++ version of Z-Uno software. Release candidate version 2.0.4 is out!

Most of changes are very technical, but will make the Z-Uno more stable and make your life easier.

  • Wire (I2C) library now allows scanning of devices on the bus
  • DHT22 support added
  • Size of all sketches optimized by tuning the compiler
  • Fix compiler to understand struct/union/enum without typedef
  • Fixed initialization of static variables
  • Fixed bug with multiline macros
  • A lot of stability fixes (better stack and memory management)

Like before, this C++ release candidate is available under http://z-uno.z-wave.me/files/z-uno/test-ucxx/package_z-wave.me_index.json URL (please remove stable URL in Arduino IDE settings and put this instead)

In next versions we will add save to EEPROM and wakeup by key scanner to allow you make remote controls based on Z-Uno. We plan to finally release stable C++ version in mid August.

Dear Z-Uno followers, we are proud to announce that Z-Uno is now available in Europe! Right now our master distributor for Europe is shipping Z-Uno to various resellers and e-shops around Europe. We will list all available resellers by the end of week to help you get to your local e-shop.

Dear user, we are continuing the development of C++ version of Z-Uno software. Beta version 2.0.3 is out!

What's new:

  • millis() function implemented
  • Serial avaliable, peek, parseInt, parseFloat
  • I2C library added (Wire.h)
  • based on I2C library and example for MCP23017
  • based on I2C library and example for BMP180
  • SPI library added (SPI.h)
  • Keypad library added (called ZMEKeypad)
  • correct update from 0.6.2, 0.6.3, 0.6.7, 0.7.0 and 2.0.x
  • bits operations: bitRead(value, bit), bitSet(value, bit), bitClear(value, bit), bitWrite(value, bit, bitvalue)
  • Macro ARDUINO and F_CPU added

Like before, this C++ beta release is available under http://z-uno.z-wave.me/files/z-uno/test-ucxx/package_z-wave.me_index.json URL (please remove stable URL in Arduino IDE settings and put this instead)

In next versions we will add DHT11 and some other examples. We plan to finally release stable C++ version in August to substitute current 0.x.x branch (C only) by C++ enabled 2.x.x branch.

Z-Uno project partially reuses infrastructure of Arduino community. In the same way we want to make it easy to port existing libraries to Z-Uno platform. Most libraries for Arduino uses C++ syntax, while our first versions of compiler was pure C only. To make your life easier we have added C++ support to our compiler. Please follow this instruction to start testing our C++ implementation. Once it gets stable, we will make it the default compiler.

Getting started

Follow our normal instruction but use another link on step 4: http://z-uno.z-wave.me/files/z-uno/test-ucxx/package..., choose latest version on step 5. Now you can start using C++ syntax.

If you are on a version newer than 0.6.2, please first downgrade to 0.6.2. Please see troubleshooting page if you experience problems.

Using own libraries

Put you library files in the same folder as the .ino file of your project. Add #include "your_lib_include_file.h" and reload the sketch.

You can also copy your library folder in ~/.arduino15/packages/Z-Uno/hardware/zw8051/2.0.0/libraries/ (on Linux) or /Users/alexander/Library/Arduino15/packages/Z-Uno/hardware/zw8051/2.0.0/libraries (on Mac OS X) or My Documents\Arduino\libraries\ (on Windows) to use it in many projects.