The software on this page enables Linux applications to talk to EIB bus couplers (BCUs) via RS-232. Also have a look at the Calimero and eibd projects for complementary ways to access a KNX/EIB installation.
BCU 1 (PEI 16)
The asynchronous serial protocol which BCU 1 style bus couplers use to talk to a PC is known as PEI 16. This protocol contains a handshake with critical timing. A PC can only handle this handshake by means of a low-level driver.
Since 2001, such drivers are being developed at the A-Lab. Currently, two PEI 16 driver versions are available. They are both realized as Linux 2.6 kernel modules.
First, there is eib-pei16, also known as the U branch (by Ulrich Krenn). Extensive documentation is available for this version. Simple demo applications that show how to access the driver and test if it is working correctly are also available.
Second, there is bcu1driver, also known as the M branch (by Martin Kögler). This is a "stripped down" version with less features. It has, however, already been more extensively tested.
The client interfaces of both branches are compatible, so users can pick the branch that better suits their needs. The demo applications are also useful with both branches.
Original distribution for kernel 2.2
(This version is out of maintenance and kept here for documentation only.)
eib-0.2.1 - source code, last modified 2001-02-28 (by Bernd Thallner).
This package (tar ball) contains the driver, console and X (GTK) busmonitor tools, a sniffing tool, and an Eiblet EIB BusCommunicator API implementation. (The Eiblet technology was an early commercial attempt on Web/EIB integration.)
A short introduction to EIB in German (from Bernd Thallner's diploma thesis; the entire thesis is available on his homepage.)
A GPL Linux Device Driver for the EIB , paper presented at the EIB Scientific Conference 2001 (Munich).
Based on this driver, Frank Behrens has developed a FreeBSD kernel driver.
According to a posting in the EIB-PROSYS Forum in 2002, a change of WRITE_TEMT_CLRRTS_DELAY from 100 to 500 enables the driver to work with Powernet EIB (Busch-Jäger BCU).
Distribution for kernel 2.4
(This version is out of maintenance and kept here for documentation only.)
eib-0.2.4 - source code, last modified 2002-11-22
eibprog - Java-based application tool, last modified 2002-11-22
eibdoc.pdf - a short summary about the driver changes from kernel version 2.2.x to 2.4.x and usage of the Java-based application tool
TP-UART
The TP-UART host protocol also contains tight timing constraints. Still, eibd can handle this protocol without a kernel driver. This is a very convenient solution and almost generally recommended. However, it is less robust and may lead to higher bus traffic than necessary. In cases where this is not acceptable, a kernel driver has an inherent advantage. On the other hand, it requires constant maintenance.
The driver source comes with extensive documentation (author: Reinhold Buchinger). This driver is based on work done at FH Deggendorf (for 2.4 kernels). Besides supporting 2.6 kernels, it adds state monitoring and resilience features.
An updated and modified version of this driver is available. This version contains a considerable number of bugfixes, but the documentation has not been updated.
For using any of these drivers, level conversion circuitry is required between the PC serial port and the TP-UART: a TP-UART interface.
RTLinux version
A special version for RTLinux 3.1 (and MiniRTL) is available for stable performance under high bus load (author: Christian Troger).
tpuart-0.03.tar.gz - low level realtime device driver for linux kernel 2.2.x and 2.4.x (RTLinux 3.1), source code, last modified 2002-10-23
xtpuart-0.01.tar.gz - graphical front-end for accessing the driver and your EIB-System, source code, last modified 2002-10-23
minirtl-i686-TPUART_floppy-V3.0.img - Embedded version (MiniRTL), 1.44MB image, last modified 2002-10-23
minirtl-i686-SMP-TPUART_floppy-V3.0.img - Embedded version (MiniRTL), SMP, 1.44MB image, last modified 2002-10-23
BCU 2 (PEI 10)
The asynchronous serial protocol used by the BCU 2 (PEI 10/FT 1.2) does not require a kernel driver. For special designs, a Linux kernel driver is available (author: Wolfgang Tumfart). However, this driver is out of maintenance and for 2.2 kernels only.
eibdrv - source code, updated 28/03/02
eibdrv.ps - a short (german, postscript, zipped) introduction to installation and use of the BCU2 driver and some attached tools.