EEPROM layout Zuno 2

Discussion about Z-Uno product. Visit http://z-uno.z-wave.me for more details.
Post Reply
aleconakad
Posts: 68
Joined: 18 Jan 2016 15:25

EEPROM layout Zuno 2

Post by aleconakad »

Hi,

does this layout still hold true for Zuno 2?
https://z-uno.z-wave.me/Reference/EEPROM/

if not, could you please provide a newer layout for Zuno2?
Thanks
joergm6
Posts: 24
Joined: 03 Nov 2016 21:16

Re: EEPROM layout Zuno 2

Post by joergm6 »

NO, the z-uno2 no longer has an external EEPROM. Thus less memory is available.

Code: Select all

Start 	End 		Size		Description
0x0000	0x200	512 B	User memory
0x200	0x204	4 B 	Settings of Notification Command Class
0x204	0x208	4 B	Settings of Wakeup Command Class
0x208	0x28C	132 B	User configuration parameters
aleconakad
Posts: 68
Joined: 18 Jan 2016 15:25

Re: EEPROM layout Zuno 2

Post by aleconakad »

Thanks,

but I am not sure if this information is correct. In one of my programs that run on Zuno 1G, I use EEPROM extensively to write lot of tables and animations. After writing, I read them back again and compare them with the original table ( loaded in RAM at compile time as an array of static bytes). The program runs without any issues until I start writing to EEPROM address 0x0F40.
Last table was written to address 0x0CE0 with a size of 275 bytes and verified ok.
How can this be?
joergm6
Posts: 24
Joined: 03 Nov 2016 21:16

Re: EEPROM layout Zuno 2

Post by joergm6 »

I can only say what the developers have communicated. Actually they talked about a 1kByte EEPROM, but that doesn't fit exactly to the layout.
But my tests indicate that it can write up to 0x400, after that i only get 0 back.
aleconakad
Posts: 68
Joined: 18 Jan 2016 15:25

Re: EEPROM layout Zuno 2

Post by aleconakad »

I've written this program to determine the last writable address. Check it and see if I have some bugs inside :-)

From the output it seems that EEPROM writes span from 0x28D to 0xFED (3424 bytes), additionally to the 512 bytes from 0x000 to 0x200.

All in all, almost 4K for EEPROM storage.

I wish if Poltos or anyone else from the team could verify this.

Code: Select all

#include "EEPROM.h"

#define DATA_SIZE 25
BYTE some_data[DATA_SIZE] = {0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0x55, 0x66, 0x77, 0x88, 0x99};
BYTE read_data[DATA_SIZE];

// Testing EEPROM limit for the Z-Uno2
#define EEPROM_START_ADDR   0x28D
#define BUILTIN_LED_PIN 13   //built in LED

dword addr = EEPROM_START_ADDR;
bool retval = true;

void setup() {
  pinMode(BUILTIN_LED_PIN, OUTPUT);
  Serial.begin();
}

void loop() {
  byte i;

  if(!retval) {
    digitalWrite(BUILTIN_LED_PIN, HIGH);
    return;
  }
  // clean the read array
  for (i = 0; i < DATA_SIZE; i++) {
    read_data[i] = 0;
  }
  
  Serial.print("Writing data block to EEPROM at address: ");
  Serial.println(addr, HEX);
  EEPROM.put(addr, &some_data, DATA_SIZE);

  Serial.println();
  delay(10);
  Serial.print("Reading block from EEPROM at address: ");
  Serial.println(addr, HEX);
  
  EEPROM.get(addr, &read_data, DATA_SIZE);

  //compare contents in write and read arrays and make sure that they are identical
  for (i = 0; i < DATA_SIZE; i++) {
    if (read_data[i] != some_data[i]) {
      Serial.print("Compare failure at byte: ");
      Serial.println(i);
      Serial.print("Last writable address: ");
      Serial.println(addr + i - 1, HEX);
      retval = false;
      break;
    }
  }
  
  Serial.print("EEPROM Verification: ");
  retval ? Serial.print("success") : Serial.print("failure");
  Serial.println();

  addr += DATA_SIZE;   //increment address by 10 for next round
  delay(500); // don't write to much in the EEPROM not to kill it
}
amatilda
Posts: 60
Joined: 26 Sep 2021 22:09

Re: EEPROM layout Zuno 2

Post by amatilda »

Hello.
In version 3.07 EEPROM 1k bytes are available.
In version 3.08beta EEPROM 4k bytes are "preliminarily" available.
In the next released version, "completely" 4k bytes will already be available.
And to be more precise, this is how it will be:

Code: Select all

0x0000	0xE00	3584 B	User memory
0xE00	0xE04	4 B	Settings of Notification Command Class
0xE04	0xE08	4 B	Settings of Wakeup Command Class
0xE08	0xE8C	132 B	User configuration parameters
When using memory outside of "User memory" - the behavior is undefined.
aleconakad
Posts: 68
Joined: 18 Jan 2016 15:25

Re: EEPROM layout Zuno 2

Post by aleconakad »

Any forecast when the next release will happen?
yves
Posts: 49
Joined: 17 Sep 2021 18:05

Re: EEPROM layout Zuno 2

Post by yves »

Hi,
First thanks to aleconakad & amatilda, I was fighting to get thing working under 3.0.7 but 1k was really too short....

just a 'side question'
  • Is there a way to write the user zone via USB?
.\zme_make.exe writeNVM dose not have any '-f' option?
Should I use the upload_bin option?

Thanks,
Yves
Post Reply