A peripheral from Sinclair Research for its ZX Spectrum home computer, the ZX Interface 1 was launched in 1983. Originally intended as a local area network interface for use in school classrooms, it was revised before launch to also act as the controller for up to eight ZX Microdrive high-speed tape-loop cartridge drives. It also included a DE-9 RS-232 interface capable of operating at up to 19.2 kbit/s - a rare instance of Sinclair using an industry-standard connector. At hardware level it was mainly a voltage adapter, the serial protocol being implemented in software by bit-banging. This led to problems when receiving data, but not when transmitting.
A wedge-shaped device fitting underneath the ZX Spectrum, ZX Interface 1 contained 8 kB of ROM comprising the control software for the Microdrives, RS-232 port and network interface. This extended the error handler in the Sinclair BASIC to allow extra keywords to be used. As this became an official standard, other developers quickly used this mechanism to create language extensions to Sinclair BASIC.
The device offered two network ports, allowing up to 64 ZX Spectrums to be daisy-chained using network leads up to 3 m (10 ft) long. The network, called ZX Net, used a proprietary CSMA-like protocol. Data could be sent or received at 100 kbit/s either to or from a numbered workstation, or broadcast to all nodes, allowing one machine to act as a server.
Two further revisions of the device's firmware were made following launch. These aimed to improve ZX Microdrive cartridge formatting and access time, printing functions via the RS-232 interface, and other bugs in the firmware held in device's internal 8K ROM. Machine code software which used the officially documented entry points ('hook codes') would experience few incompatibility issues, however programs using non-standard entry points risked incompatibility due to presence of revised entry points.
The same protocol, renamed QLAN, was later used on the Sinclair QL. This was intended to be interoperable with ZX Net, but due to timing differences interoperability was found to be problematic.
Source: Wikipedia, "ZX Interface 1", available under the CC-BY-SA License.