I love Legos. They're positively the best physical toy in the world, simply because they can be any other toy; all it takes is imagination and work.

One of the neat things I have is a Lego DACTA kit. It's an RS-232 interface with connectors for various sensors (buttons, rotation measurers, light sensors) and actors (lights, motors, sirens) built into Lego bricks. This allows some magical automation of lego models which can be a lot of fun.

Once upon a time, however, I got fed up with the Logo programming that the associated software required. After some inquiries with Lego, I gave up and reverse-engineered enough of the protocol to allow me to create this Linux-based C library to control it.

It has motor control 100% working, but I never got to sensor inputs, because my search for 9-volt controllable pneumatic valves (with dreams of a pneumatic robotic arm) met with zero success. Perhaps I'd fare better today, with stuff like Google at my command.

Still, all the source is there, and it should compile quite straightforwardly. I believe I also included the source for my project where a 2-motor car could be driven by the arrow keys.

If anyone would like to contribute additions to that library, feel free to e-mail me.