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
EEPROM layout Zuno 2
Re: EEPROM layout Zuno 2
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
-
- Posts: 68
- Joined: 18 Jan 2016 15:25
Re: EEPROM layout Zuno 2
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?
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
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.
But my tests indicate that it can write up to 0x400, after that i only get 0 back.
-
- Posts: 68
- Joined: 18 Jan 2016 15:25
Re: EEPROM layout Zuno 2
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.
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
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:
When using memory outside of "User memory" - the behavior is undefined.
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
-
- Posts: 68
- Joined: 18 Jan 2016 15:25
Re: EEPROM layout Zuno 2
Any forecast when the next release will happen?
Re: EEPROM layout Zuno 2
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'
Should I use the upload_bin option?
Thanks,
Yves
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?
Should I use the upload_bin option?
Thanks,
Yves