Radiometrix RPC Radio Device Drivers for Linux

Downloads and Documentation

These device drivers are free software, distributed under the GNU General Public License (GPL); see the file COPYING (in the distribution) for details.

You can get the latest driver package at the FTP site. The latest version is Version 0.80, released July 10, 2000.

Online documentation is available on the web; or, if you'd prefer a nicely printed version, you can get the same documentation in PDF or Postscript format.

What do these drivers do?

This package contains a Linux device driver for the RPC (Radio Packet Controller) model of radio manufactured by Radiometrix. The RPC is a fairly low-power, self-contained, short-range, plug-on radio. It requires only a simple antenna, 5V power supply, and interface to a byte-wide I/O port on a host microcontroller or bi-directional PC parallel port. The module provides all the RF circuits and processor intensive low level packet formatting and packet recovery functions required to inter-connect an number of microcontrollers in a radio network.

This software package allows control of an RPC under Linux if the RPC is connected to a bi-directional PC parallel port. The driver is a Linux kernel module that implements two types of device drivers:

  1. A character device, (e.g. /dev/rpc), allowing arbitrary data to be sent and received by user processes.
  2. A network interface (rpc0), allowing peer-to-peer IP connectivity using the RPC as a slow but usable datalink network.

The Radiometrix Device Drivers for Linux were written by Jeremy Elson ( while at the University of Southern California's Information Sciences Institute. This work was supported by DARPA under grant No. DABT63-99-1-0011 as part of the SCADDS project, and was also made possible in part due to support from Cisco Systems. It is freely available under the GNU Public License (GPL).

Bugs and Known Limitations

Currently, the RPC driver can only control one RPC device at a time. Configurations with multiple RPC radios are not supported. (The underlying Parapin library currently has the same limitation.)

When using the fragmentation interface, the memory used by krpc will grow slowly over time (up to a certain limit). The driver currently does not implement garbage collection; it will in the future.

When providing an IP interface, the RPC driver really should do link-layer retransmissions. TCP performance is rather bad otherwise.

The implementation of fragmentation can be made somewhat more efficient; the first ``introduction'' fragment currently does not carry any data.

If you have bug reports, patches, suggestions, or any other comments, please feel free to contact me at I love getting feedback.

Release History

Back to my software page
Back to my home page

Jeremy Elson
Last updated: 11 July 2000