Reverse Engineering the RCX
About the talk:
Early in September, LEGO Mindstorms released set number 9719, the Robotics Invention System. The core of this set is the RCX, a programmable, microcontroller-based brick capable of driving three sensors, three motors, and an infrared serial communications interface. Normally, programs are written on a PC by assembling stacks of commands, which are then compiled to byte code and downloaded to the RCX.
Like the PalmPilot, the RCX is one of a small group of products that brings microcontroller programming to the masses. Unlike it's peers, however, the RCX was designed to interact with and control objects in the physical world. Simpler and easier to use than a kit or an evaluation board, the RCX comes with everything needed to start building and programming, and is quickly becoming a standard among enthusiasts.
While the RCX is certainly a fun and useful product out-of-box, it is even more exciting under the hood. Reverse engineering has revealed enough details about the machine that it is now possible to escape the limitations of the standard programming environment. Moreover, the expectation is that it will soon become possible to bypass the byte code interpreter and access the RCX directly.
In this talk, I will describe what I've learned about the internal architecture of the RCX, including some juicy details about the reverse engineering process. I will also discuss capabilities and limitations, the few areas remaining to be reverse engineered, and development tools that others have been working on. I will also give a short demonstration of the RCX in action.
For more information about the LEGO Mindstorms and the RCX, please see the official LEGO Mindstorms [ http://www.legomindstorms.com/ ] web site. In addition, you might also be interested in visiting Mindstorms Internals [ http://www.crynwr.com/lego-robotics/ ], the main repository for reverse engineering information, and perhaps also the site that I put together [ http://graphics.stanford.edu/~kekoa/rcx/ ].
About the speaker:
Kekoa Proudfoot received a B.S. degree in Engineering from Harvey Mudd College in 1995 and an M.S. degree in Electrical Engineering from Stanford University in 1997. Currently, he is pursuing a Ph.D. degree at Stanford. His research interests include designing and modelling graphics architectures, with some emphasis on parallelism and scalability.
Gates Hall, Wing 3B, Room 372
Stanford, CA, 94305
Copyright 1998 http://www.stanford.edu/class/ee380/9899fall/schedule.html