Page 1 of 1
EEPROM layout Zuno 2
Posted: 19 Nov 2021 15:09
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
Re: EEPROM layout Zuno 2
Posted: 19 Nov 2021 19:24
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
Re: EEPROM layout Zuno 2
Posted: 21 Nov 2021 14:59
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?
Re: EEPROM layout Zuno 2
Posted: 21 Nov 2021 17:08
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.
Re: EEPROM layout Zuno 2
Posted: 25 Nov 2021 15:03
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
}
Re: EEPROM layout Zuno 2
Posted: 25 Nov 2021 17:11
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.
Re: EEPROM layout Zuno 2
Posted: 01 Dec 2021 17:41
by aleconakad
Any forecast when the next release will happen?
Re: EEPROM layout Zuno 2
Posted: 06 Mar 2022 11:11
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