Page 1 of 2

New 2.1.1 release!

Posted: 18 Oct 2017 02:22
by PoltoS
This build 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.

You can get it from https://z-uno.z-wave.me/files/z-uno/tes ... index.json repo

What's new:

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 3-channel firmware for JP and KR frequencies - requires bootloader change from the Arduino IDE
  • Number of Z-Uno channels rised to 32! You can make 32 devices in one single Z-Uno.
  • Added support for up to 32 user parameters via Configuration Command Class. Parameters are numbered in Z-Wave controller as 64-95
    Use ZUNO_SETUP_CFGPARAMETER_HANDLER(handeler_func) to define your custom parameter handler where function is defined as handeler_func(param_number, value). Parameters are automaticly saved in the EEPROM. To load them from the EEPROM or change two new functions are introduced: zunoLoadCFGParam(param_number, * value) and zunoSaveCFGParam(param_number, * value).
  • Z-Uno can wake up on low and high INT1. To configure do zunoSetWUOptions(ZUNO_WUPFLAGS_INT1_HIGH/ZUNO_WUPFLAGS_INT1_LOW)
  • Same function zunoSetWUOptions(ZUNO_WUPFLAGS_INT1_KEYSCAN) is used to wake up from key scanner (any of 8 pins). Function zunoSetupKeyScannerWU(byte cols_num) is deprecated and removed.
  • 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.
  • Battery measurement is made in user code: you can either define the range in voltage ZUNO_SETUP_BATTERY_LEVELS(low, high) or your personal handler that will report back the value upon request ZUNO_SETUP_BATTERY_HANDLER(handler). Values low/high are in milivolts.
  • Added BATTERY to possible values for analogRead() to read the battery level. The reported value is the position of 1.21 V between 0 and battery voltage. For 1024 precision the battery voltage equals to 1.21 V * 1024 / value.
  • Added function zunoSetBeamCountWU(byte count) to instruct Z-Uno in FLiRS mode to wake up after count second even if there were no packets.
  • 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).
  • Added Binary.h to the default header for Arduino style binary numbers definition
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
Internal changes
  • Code compilation optimized to produce 4 (four!) times smaller binary code. This is needed to let us fit the new Security S2 in the code.
  • Rewrote LLCore.c to fit the new design of internal structure. Many features were moved from the internal bootloader to the HLCore.cpp.
  • zunoSysCall(func, ...) introduced instead of inter-code stack to make faster and more compact jumps between bootloader and user sketch.
  • All system calls don't use stack anymore.
  • User memmory in the EEPROM moved to new address. This will break your data in a sketch that is using EEPROM after the update.
  • Fixed problem with prototypes not visible
  • Fixed bug with local arrays not initialized (like in code void func() { byte a[]={1,2,3}; })
  • Fully refactored Print to make the code smaller and use less stack
  • Optimized code for float and printing float numbers to use less stack
  • Added fixPrint() method to print fixed digets of a float
  • Added dumpPrint() to help debug by printing big amounts of data (i.e. arrays/structures/any memory areas)
  • Print() now uses three different prototypes to print byte, word and dword value - saves stack in most cases
  • ZUNO_OLED refactored to use less stack.
Our next ambitious goal is to release and certify an S2 capable Z-Uno!

Re: New 2.1.1 release!

Posted: 20 Oct 2017 12:03
by sega66
This build allows you to use the Arduino IDE 1.8.4 ?

Re: New 2.1.1 release!

Posted: 20 Oct 2017 12:35
by petergebruers
I am not sure. I was running Arduino 1.8.4 during beta tessting but now I am running the release version on Arduino1.8.5. Do you have stuff that does not run on 1.8.5?

Re: New 2.1.1 release!

Posted: 19 Nov 2017 11:47
by gaelj
It would be useful to reflect the Aruino IDE 1.8.5 in the installation guide: https://z-uno.z-wave.me/install

Re: New 2.1.1 release!

Posted: 22 Nov 2017 11:50
by PoltoS
You mean update screenshots? As we see, the difference is not that big. Arduino IDE updates pretty often, so updating screenshots might become constant work.

Re: New 2.1.1 release!

Posted: 03 Dec 2017 12:51
by gaelj
Following the instructions, I specifically installed Arduino IDE 1.6.5.
A week later I noticed in this forum I could have used the latest Arduino IDE.
I'd say keep the screenshots but write in plain text that Arduino 1.8.5 is supported.

Re: New 2.1.1 release!

Posted: 29 Mar 2018 17:22
by budm
I've never been able to build 2.1.1 or later (currently trying 2.1.3) on Arduino IDE 1.8.5 on Linux. One compile fails trying to include "WProgram.h", indicating that the '#define ARDUINO 152' line in the board headers isn't being defined, or is being redefined somewhere (or something).

Switching to any other Arduino board works perfectly. As it stands, none of my software compiles for the Z-UNO with IDE 1.8.5/Linux.

Re: New 2.1.1 release!

Posted: 30 Mar 2018 01:17
by PoltoS
Can you show your board settings under Tools menu? I use 1.8.5 without any problems.

Re: New 2.1.1 release!

Posted: 30 Mar 2018 13:08
by budm
Screenshots attached. First one is trying to compile a simple z-uno app, second one is trying to compile a ping app that requires no zuno-specific libraries.

Re: New 2.1.1 release!

Posted: 30 Mar 2018 16:31
by p0lyg0n1
Z-Uno don't have WProgram.h. It's a very old header from Wiring. Use "Arduino.h" instead.