GNAT GPL for LEGO MINDSTORMS NXT – Ravenscar Edition

GNAT GPL for LEGO MINDSTORMS NXT – Ravenscar Edition is a GPL port for the GNAT compilation system to the LEGO MINDSTORMS NXT robotic platform. Originally born as an education-oriented project at MIT Media Lab, the LEGO MINDSTORMS has evolved into a successful commercial product for education in robotics in a multitude of universities and high schools across the globe. The latest revision of the platform includes a 32 bits processor and supports several different sensors able to detect distance, colors and sounds and to communicate via the Bluetooth protocol.

GNAT GPL Edition for the LEGO MINDSTORMS NXT – Ravenscar Edition brings the possibility of experimenting with real-time embedded systems development using the Ada 2005, Ada 2012 and SPARK languages to an education-oriented robotic platform. Entire embedded systems, including software, hardware and sensors interfacing, and wireless communications can be developed and verified using the GPL editions of GNAT and SPARK.

Technical Details

GNAT GPL Edition for the LEGO MINDSTORMS NXT – Ravenscar Edition supports Ada-level real-time and concurrency features complying with the Ravenscar profile. The Ravenscar profile is a subset of Ada 2005 specifically conceived to build analyzable concurrent and real-time systems. The inclusion of a Ravenscar run-time will permit the development of Ada-only concurrent and real-time systems on the LEGO MINDSTORMS NXT. Differrently from the 2009 release of GNAT GPL for the LEGO MINDSTORMS NXT, the 2010 release does not rely on any operating system: it is an Ada-only bareboard solution leveraging on Ada 2005 features for concurrent and real-time behaviour.

Here’s what’s included:

  • Support for the Ravenscar profile to bring Ada-level tasking to the LEGO MINDSTORMS NXT
  • Support for Ada 2005 and a preview of Ada 2012
  • Support for SPARK and RavenSPARK
  • High-level drivers for the NXT brick, sensors and motors, including Bluetooth, written in Ada
  • Getting Started material and examples of applications which can be used as teaching material

Lego Mindstorms NXT NOT included.

A port of the GNAT GPL Edition to Linux hosts has been carried out and contributed by the Departamento de Ingeniería de Sistemas Telemáticos of the Universidad Politécnica de Madrid (DIT/UPM). The latest version includes support for the Ravenscar profile on the 2012 Linux edition and hardware debugging (JTAG) capabilities using gdb and OpenOCD.
The binaries can be downloaded here.

For more information on the LEGO MINDSTORMS NXT platform, see



Here are few examples of GNAT GPL for Lego MINDSTORMS in action. If you have a video of your MINDSTORMS project that you’d like to share on this page, please send us a link and any related project information to:

Lego Segway NXT-Ada/Ravenscar

This is a fun video made by some students at Telecom Paris. The Lego is programmed in Ada using the Ravenscar profile ported to NXT. The robot action starts at around 1:00 min. Enjoy

Wired Controlled Vehicle

Universidad Politécnica de Madrid uses MINDSTORMS to analyze, develop and implement a wired controlled vehicle in Ada in real-time.

Robotics Demonstrator for Safety-Critical & Real-Time Systems

The robot traverses the table and when an edge is detected changes direction and continues on a different path. By introducing a randomness into the change in direction, the coverage of the table is guaranteed as demonstrated by sweeping of objects off that table.