The ZX-40a incorporates a software RTC which resets to 00:00 on 01-01-1999 whenever the processor is reset. If connected to a PC, either via S0 or a NetModule, this is not a problem as roZetta can be configured to query the PC for a timestamp after all resets. For complete standalone operation, an optional I2C RTC daughterboard containing a battery-backed ST M41T81 RTC IC and an 8KB FRAM connects to a five pin I2C header on the main board. Depending on other options, the RTC board can either plug-in or be soldered to the header. The BR1225 battery can maintain the RTC for more than 10 years. The BR type battery was chosen because it has a very flat discharge curve, maintaining full voltage until near its end of life.
The ST M41T81 RTC chip was chosen because it has several features that augment roZetta functions. It has calibration registers which can be used to fine tune its accuracy. It has a squarewave output which can be set to 64Hz and used as a simulated zero crossing (ZC) signal to legacy controllers, eliminating the need for a PL513/TW523 merely to supply ZC. (Note: Some controllers may not like this frequency.) It logs the time whenever it switches to battery power, enabling roZetta to track power outages.
The FRAM can withstand billions of erase/write cycles and can, thus, be treated almost as if it were RAM. It is used for randomizing daily schedules, tracking lighting levels and other tasks which require frequent changes that might eventually wear out standard EEPROM. When the RTC is not needed, but the FRAM is desired, the FRAM chip can be supplied on a separate board that can be used either independently or can share the bus with the EEPROM board (below).

One or two optional 64KB CMOS EEPROM chips can share the five pin header with the RTC/FRAM (or up to three EEPROM chips if there is no RTC/FRAM). These can be used for storing ASCII strings and Pronto CCF format codes which can be used to send IR and/or RF commands to AV gear, ceiling fans, etc. These can withstand 1,000,000 erase/write cycles. If used with the RTC/FRAM or if multiple EEPROMs are used, the addresses must be set manually by cutting traces on the EEPROM board. If no RTC/FRAM is used, one of the EEPROM boards must have 6.8K (size 805) pull-up resistors added to the board.
roZetta has a 64KB SPI EEPROM on the main board. It is used both for storing the roZetta program code and for user data. It can only withstand 1,000,000 erase/write cycles so it is not the best type of memory for data that changes frequently. Being on the SPI bus, access to it is faster than for the slower I2C. It is best used for things which need fast lookup and are of predefined lengths such as the user programmed responses to input triggers. The slower I2C EEPROM is best used for data that is longer and has random lengths. An index table contains the addresses of each entry and the first byte of each entry contains the length of the item.
Copyright: No part may be reproduced except as authorized by written permission. This restriction extends to reproduction in all media.