Project page

The LegoUSB Project

The LegoUSB Tower

This device is part of the Robotics Invention System 2.0 (3804).

Linux kernel module

The driver is now officially supported within the 2.6.1 kernel. If you are still using 2.4.x series, you can get the driver from CVS from the project page. The driver currently works with Lejos, NQC and BrickOS.

Important Linux Kernel Issues

Linux 2.6.1

The minor number has changed and is now 160. If you are creating the device file, you need to mknod /dev/usb/lego0 c 180 160


usb-uhci contained a bug introduced in version 2.4.21 which will lock the kernel if used with legousbtower driver. Linux version 2.4.22-pre3 and above include the fix and are safe to use.

usb-ohci was fixed in Linux version 2.4.22-pre3 so that it will work with legousbtower.

Lego Copyright Issues

A version of a driver for the Lego USB tower was previously available from this site. This driver unfortunately included a header file from the Lego Mindstorms SDK and so has been deprecated. We have been in communication with Lego regarding the license for the SDK so that eventually it may be possible to include this file, but as yet, the license has not been changed.

The current driver does not use this header file but consequently only supports limited ioctl functionality for advanced features in the tower. This is not seen as a major issue since these features are rarely used.



  • The RCX2 SDK contains official documentation for the tower.

Kernel USB

  • in the Linux kernel see Documentation/usb/URB.txt, include/linux/usb.h and drivers/usb/usb-skeleton.c

Kernel Drivers

  • do make htmldocs and look under Documentation/DocBook, especially kernel-hacking, kernel-locking and kernel-api.
  • see the O'Reilly book Linux Device Drivers.


This site is an unofficial site and in no way affiliated with The LEGO Group.
LEGO, Mindstorms, RCX (and probably some other words) are trademarks of The LEGO Group.

last modified Wednesday, 14-Jan-2004 00:31:21 UTC
Source Forge Logo