e-Squirt for Linux-IrDA

Linux-IrDA Java-IrDA IrNET Linux & Wireless LANs Papers Main page

Presentation Requirements Download Links Usage

What is e-Squirt ?

The e-Squirt for Linux is an Open Source project which is part of HP-Labs CoolTown initiative. One of my contributions to CoolTown was to write and release this work, and I'm accepting comments and contributions from the community.

e-Squirt is a simple protocol allowing to sense and control other devices and to build many complex interactions between devices and their environment, as can be shown in the various CoolTown demos. The dumb description of the protocol is that it allows passing URLs between devices over the IrDA medium.

RUI (Remote UI) is an extension of e-Squirt. It allows two devices to exchange HTML pages over IrDA. This is used to control an appliance, like an universal remote control. You can use it standalone (generic control), or with sending an URL (the device returns some job options and status).

Features of this implementation

The main e-Squirt implementations for Linux are written in Java. Those implementations relies very much on our Java-IrDA API. There is also other implementations for the Palm OS and WinCE that don't use Java (see below). The hardware beacons use only the Ultra protocol (they are far to bare bone to support any IrDA stack).

I also did initially a few sample implementations of e-squirt for Linux in C (e-Squirt version 1). Those implementations were not much used in practice, but are useful because they are easy to read, and also useful for debugging. In fact, the Ultra implementations served as the reference implementation to test other implementations against (mostly the Hardware Beacons).

After this initial implementation, I rewrote the whole e-Squirt for Linux as a C library with a simple and clean API (e-Squirt version 2). This is still a bit rough, but much easier to use and integrate in complex programs than the initial sample code. The library is also more flexible, has more options, and add support for extra protocols and encodings (such as Obex), and add support for RUI.

The new Linux library also contains all the test vectors and test procedures to check the interoperability and compliance of the various implementations. Those test programs also illustrate the use of the library and can be used for simple demos.

Note that there are 2 distinct transport for e-Squirt, one is a regular IrDA socket, the other is the Ultra protocol (connectionless broadcast). On each transport, you may use Obex or not. Basically, all the possible ways to program client server over IrDA are included in the code :-)

The version 2 of my e-Squirt stuff has been included in the CoolBase platform, along with the version for other platforms (Win32, WinCE, Palm & EPOC). You will find the latest source in the CVS.

While most of the other e-Squirt implementation have died, I recently did a massive upgrade of it for a different project (e-Squirt version 3). I added specification of e-Squirt over HTTP, some OBEX-HTTP proxies and BlueTooth transport. This also includes the usual bugfixes and improvements.

e-Squirt over HTTP enable the support of TCP/IP transport (such as over 802.11). It is implemented via Connection Diversity, which is not currently released.

The OBEX-HTTP proxies are fairly generic, so could be reuse in a context totally different than e-Squirt (which we are currently doing), but will work only with OBEX-HTML applications, so it won't allow you to magically use a web browser to access any OBEX device.

The OBEX over BlueTooth transport is transparent to the application, and include e-Squirt and RUI. This new transport is implemented via OBEX over RfCOMM and use SDP, so require a fairly recent version of BlueZ.


This is what you will need to make this code work :

Source code to download

Here are the Linux implementations in C :

More information and links

A few ressources :


I have put some quick instructions for getting the Linux-IrDA stack running, especially geared towards getting e-Squirt working.

The usage of the e-Squirt test programs is documented within the package.

IrDA, IrNET and Wireless LANs - jt@hpl.hp.com
Created 1 august 00
Updated 6 June 03
    Project hosted and sponsored by :