LEGO.NET is the name of our project to make the .NET run-time available on the LEGO Mindstorms platform. As the original LEGO firmware is too limited for such a project, we are building on top of alternative operating systems; currently, our focus is on brickOS.

We are currently following two different strategies. One is to develop a tiny interpreter (code-named Micro.NET) which interprets .NET intermediate language instructions on the Mindstorm's microprocessor.

The other approach is to develop a GCC front-end which translates Microsoft/ECMA intermediate language into native machine code of the target processor (the Renesas H8/300 processor in the case of the Mindstorm). Our first release of this technology is now available.

In either case, supporting the full .NET framework library is clearly not possible within the 32k RAM that the RCX bricks offer. Therefore, we subset the features available to .NET developers on the Mindstorm platform to those which can be supported within the limited hardware resources. On the other hand, the system also offers some unique features which have no equivalent on the PC version of .NET. We expose these features to .NET programmers by providing a wrapper around the brickOS APIs, given .NET applications access to the device's sensors and actuators.