roZetta is a product that combines elements of one of my earlier DIY projects (BX24-AHT) with PLC protocol translation functions and wireless (IR, X-10 RF and various RF security protocols) inputs. I designed it because there are many users of sophisticated HA controllers (e.g. ADI, JDS, HAI, HomeVision, etc.) who want to use one or more of the newer PLC protocols without abandoning their legacy controllers designed to interface with X-10's PL513/TW523 (or equivalents). Initially, it was planned as a DIY project but parts availability was spotty so I decided to offer it as an assembled and tested module.
roZetta is based on the ZX-40a micro-controller which is programmable in ZBasic. ZBasic uses a VisualBasic-like syntax and is similar to BasicX which was used with the BX-24. The project includes an optional ethernet interface module. The ZX-40a firmware (both system and application firmware) can be updated over a serial connection so users can update in the field. The ZBasic compiler is a free web download so those who want to create their own application firmware can do so.
roZetta is designed to be flexible and somewhat general purpose. It can be configured as a more powerful version of the BX24-AHT, as a PLC protocol translator or can combine some of the functions of both. It can also be used as a development board for other ZX-40a (or ZX-40) based projects.
The ZX-40a is quite a bit faster than the BX-24 and, in addition to one high speed, interrupt-driven, buffered, full-duplex, hardware-UART-based serial port, supports up to four interrupt-driven, buffered, full-duplex, software-UART-based serial ports with a maximum speed of 9600 bps.
Initially, it appeared the ZX-40 was fast enough to handle the PL513/TW523 PLC protocol but extensive testing revealed it would miss the 1mS window after ZC (zero crossing) about 3-4% of the time. As a result, ZBasic added native support (to the ZX-40a) for up to two channels of X-10 TTL I/O in the background, using an approach that is similar to the way ZBasic handles serial I/O. ZBasic was unable to add this feature to the ZX-40 due to limitations of the chip.
The ZX-40a has a software RTC that resets whenever roZetta is reset. roZetta can be configured to query an attached PC (at reset and periodically afterwards) for the current time. Or the optional nano LANReach ethernet module can be configured to maintain accurate time by connecting (at reset and periodically afterwards) to an NTP server. Or an optional plug-in battery-backed RTC daughterboard can be used to maintain accurate time when roZetta runs unconnected to a PC or LAN. The RTC chip saves the time at which it goes on battery power so it can be used to log power outages. The RTC daughterboard also incorporates an 8KB FRAM which, because it can withstand billions of erase/write cycles, can be used for data that changes frequently (e.g. lighting levels). Another optional 64KB EEPROM can be used to store ASCII strings and CCF formatted IR/RF codes.
roZetta features...
| 64KB SPI EEPROM - shared by program code and user data | |
| 1 high speed serial port (S0) | 2 X-10 capable TTL ports (T1, T2) |
| 4 low speed serial ports (S1,S2,S3,S4) | 1 infrared receiver (38kHz) |
| 1 optional ethernet port | 8 user configurable pins (10-bit ADC or DIO) |
| 1 optional I2C battery-backed RTC+8KB FRAM | 1 optional 64KB I2C EEPROM |
Some roZetta features are mutually exclusive.
The hardware UART can be used by both the high speed serial port and the ethernet module. However, only one can be active at a time. There are jumpers to select between them. The high speed serial port and three of the low speed serial ports use RS232 voltage levels. The fourth low speed port uses TTL (0-5V) levels and is switchable between RS232 and RS485. There are plans for several modules that will use multidrop RS485.
A 64KB SPI EEPROM (external to the ZX-40a) is shared between roZetta firmware and user data. Built-in ZBasic functions allow for accessing the user data stored in the external EEPROM at maximum SPI bus speed.
The optional I2C plug-in daughter board contains a battery backed RTC (The ZX-40a only has a software RTC.) and 8KB of additional EEPROM (FRAM which can be written billions of times). Another optional 64KB of I2C EEPROM can be used for ASCII strings and CCF format IR & RF codes. The RTC board and the extra EEPROM board share the I2C bus and also share the physical connection with the extra EEPROM board mounting below the RTC board on the same 5-pin header.
The TTL ports are designed to interface with a PL513/TW523. One TTL port (T2) can emulate a TW523 and is intended to interface with legacy controller PLC ports that expect a PL513/TW523. Optionally, an adapter with opto-isolators can be used between T2 and a legacy controller. The ZBasic X-10 functions can be configured for rising or falling edge on the data in lines and pull-up resistors on the PCB can be switched in or out of the circuit allowing for maximum flexibility. The optional RTC daughterboard can supply a 64Hz squarewave which can be used to simulate ZC for most legacy controllers, eliminating the need for a PL513/TW523 in instances where X-10 transmit capability is not needed or is available from a serial device.
roZetta includes an optional infrared receiver (38kHz) and has solder pads for RF receivers, only one of which can be active.
Eight individually configurable pins can be used for 10-bit ADC, as digital outputs or as digital inputs (with optional internal pullups). Optionally, one is switchable to measure RSSI (Received Signal Strength Indication) if an RF receiver is used. If the TTL ports (T1,T2) are not used for X-10, five additional pins are available for DIO. The pull-up resistors normally used on the X-10 data lines can be switched out of the circuit when these pins are used for DIO. Changes on digital input pins trigger an interrupt.
On its low speed serial ports roZetta supports...
| MR26A* | MR26E* | MR26X* |
| 2412S PLM | 1132B | UPB PIM |
| LCD+,LCD+2 | Generic RF* | CM15X-S |
| CM11A | ASCII devices | Binary devices |
There are multiple modules under development that will use the RS485 port, including RF receivers for several door/window switches and motion sensors (e.g. Ademco, CADDX, DSC, ITI, Linear, Optex, Skylink, Visonic). The RS485 network will be limited, initially, to a total of 16 modules. Inputs from any channel can be used to trigger a user defined output on any output-capable channel.
Because California and much of Europe have mandated efficiency standards that can only be met by switch-mode power supplies, roZetta has no internal power components and requires an external regulated +5V power supply. We offer a 5V/1A model that meets FCC and CE requirements. We have found it both X-10 and Insteon friendly.
Some devices (e.g. those with asterisks, above) that connect to roZetta serial ports can be powered from roZetta. Onboard switches connect +5V to pin 3 of the 6P4C connector used by the serial device needing power.
Initially, the assembled units will not include RF components or software suport for RF as this requires testing in an FCC/CE accredited laboratory. Plans are to incorporate RF once the required testing has been completed.
The unit is designed to fit a Polycase LP51F enclosure. Machined and printed enclosures may not be available with the initial units. However, it is fairly easy to DIY (except for the printing) using the drawing below.

Copyright: No part may be reproduced except as authorized by written permission. This restriction extends to reproduction in all media.