(serial port communication is part of the base functionality of MATLAB) or via a USB connection; for example using the RWTH – Mindstorms NXT Toolbox (free & open-source). Simulink is a block diagram environment for modeling and simulating dynamic systems. Using Simulink, a user can design and simulate control algorithms and Lego systems, and subsequently automatically program the Lego NXT or EV3. Support for programming the Lego NXT or EV3 only requires Simulink and is available at no additional charge. MATLAB and Simulink Support for Lego Mindstorms programming is freely available. More information is online. Lua plLua is a port of the Lua programming language, a general purpose scripting language, for Lego Mindstorms. Ada A port of GNAT is available for the NXT. It relies on a dedicated run-time kernel based on the Ravenscar profile, the same used on the Goce satellite: this permits to use high-level Ada features to develop concurrent and real-time systems on the Mindstorms NXT. URBI URBI is yet another language and is a parallel and event-driven language, with interfaces to C++/Java and Matlab. It also has a component architecture (UObject) for distribution. Urbi is compatible with many robots, including Nao (cf Robocup), Bioloid or Aibo. FLL NXT Navigation FLL Nxt Navigation is an open source program to help navigation on the FLL competition table. It uses NXT-G and .txt files to write programs. It is unknown if you can legally implement this in FLL competitions. Ruby-nxt Ruby-nxt is a library to program the NXT for the Ruby programming language. Unlike the other languages for the NXT, the code is not compiled to a binary file. Instead the code is directly transmitted to the NXT via a Bluetooth connection. Robotics.NXT Robotics.NXT is a Haskell interface to NXT over Bluetooth. It supports direct commands, messages and many sensors (also unofficial). It has also support for a simple message-based control of a NXT brick via remotely executed program (basic NXC code included). LibNXT LibNXT is a utility library for talking to the Lego Mindstorms NXT intelligent brick at a relatively low level. LibNXT is targeted mainly at the platforms that the official Lego Mindstorms NXT software overlooks, namely Linux and other unices. It will work on any POSIX-compliant operating system where libusb 0.1 libusb is supported. Windows support is also possible with the win32 port of libusb. C_NXT C_NXT is a library for controlling the Lego NXT licensed