You are here

There is so much noise around LEGO Mindstorms on the web with enthusiasts and universities all attempting to do the NeXT big thing that it is hard for kids wanting to do more with their Mindstorms kit to figure out what is happening.There are three different Mindstorms kits and on top of this there is a plethora of tools for programming, different versions of NXT firmware and NXT software. This article aims to provide concise information and resources to budding Mindstormers.

Lego 8547


Let’s get the terms clear first. So far the three Mindstorms NXT retail kits from LEGO are named Mindstorms 1.0 also called Robotics Invention System (RIS), Mindstorms NXT (kit 8527) and Mindstorms NXT 2.0 (kit 8547).
There is also an educational (non-retail) version of the NXT called NXT EDU (kit 9797) and educational extensions to the NXT (kit 9648) mainly for universities and schools. This article focuses more on the NXT series retail kits and somewhat on the RIS kit.

LEGO software

The visual programming language shipped with RIS was called ROBOLAB. The visual programming language shipped with the NXT kits is called NXT-G. Kit 8527 came with version 1.0 of NXT-G. Afterwards a patch was released for NXT-G 1.0 which added dynamic block update functions. This allowed for additional sensor blocks to be imported into the software and it also allows older sensors from the RIS to be used with the NXT-G. Patched NXT-G 1.0 became NXT-G version 1.1.

Later versions of kit 8527 and kit 8547 ship with NXT-G version 2.0. So NXT-G 2.0 is different from NXT 2.0. The first refers to the version of software shipped with kit 8547 while the latter is the kit 8547 itself.

Kit Software
NXT 1.0 (8527) NXT-G 1.0/1.1 or NXT-G 2.0*
NXT 2.0 (8547) NXT-G 2.0
* Only on some newer 8527 kits

What is LabView and what has it got to do with Mindstorms?

LabView (actually written as LabVIEW) is a visual dataflow based programming environment from National Instruments (NI) which uses a computer programming language called G. LEGO and NI have been working together since 1998 to develop a simple LabVIEW like environment for programming Mindstorms robots. The result of this partnership was initially ROBOLAB (1998) and then the NXT-G (2006) language. In other words NXT-G is a cut down version of the professional LabVIEW environment - now you know where the suffix G comes from. You will see LabVIEW mentioned in forums and advanced topics discussing Mindstorms. NI also hosted the first LEGO League competition in 2005.

The intelligent brick

The intelligent brick that came with RIS is called the 'RCX'. The intelligent brick that comes with both the NXT (8527) and NXT 2.0 (8547) is called the NXT brick. The RCX and the NXT brick are not hardware compatible and firmware for NXT should not be installed on the RCX. The NXT brick supplied with the NXT 2.0 (8547) is identical to the original NXT brick (8527), so those two are hardware compatible. In short there is only one NXT brick and it does not matter which NXT kit you have.

Firmware for the brick

The NXT brick in kit 8527 came with firmware version 1.01. LEGO later released an update to this firmware version 1.05 which works with NXT-G 1.0. A more recent firmware is version 1.31 but only works with NXT-G 2.0. You can upgrade/downgrade your firmware any time.

Drivers for the brick

LEGO has released updated version 1.1.3 (Fantom) USB and Bluetooth drivers for the NXT brick for PC and MAC which works with Windows 32-bit and 64-bit and OSX. You can upgrade drivers free of charge. Third party drivers are also available for the bricks.

To simplify choices, I have placed download links in a tabular format below:

Kit Driver (LEGO) Driver (3rd Party) Software Firmware (LEGO)
RIS USB IR Tower driver (PC/Win32) PC/Win32 ROBOLAB -
NXT 1.0 (8527) PC/Win32+Win64, MAC (OSX) PC/Win32, PC/Win64 NXT-G 1.0/1.1 version 1.05
NXT-G 2.0 version 1.31
NXT 2.0 (8547)

NOTE: You can get (and share) tips on getting your RIS working with windows 64-bit here.

Getting NXT drivers working on Mac OSX 10.8 (Mountain Lion)

Some of you are having trouble getting the NXT brick to work on Apple Mac OSX 10.7 and 10.8. The problem is that the driver will only work in 32-bit mode while OSX by default will boot into 64-bit mode. I have found that installing version 5.1.2 of NI-VISA drivers from National Instruments will fix the issue for 64-bit mode. NI-VISA drivers must be updated after installing the OSX Fantom driver from Lego from above table. NI-VISA upgrade will enable the Lego driver to load and run under 64-bit mode. Bluetooth will not work with most Mac in-built Broadcom bluetooth cards. This is a known issue and Lego is working on it. If you need Bluetooth you will need to get a compatible external Bluetooth dongle.

Installing NTX-G 1.0 (kit 8527) on Windows 64-bit/7

If you try to use the NXT-G 1.0 software DVD supplied with kit 8527 on Windows Vista 64-bit or Windows 7 it will not work. The installation program will complete successfully but not install anything. So it is best to download and install the NXT-G 2.0 software from lego. You can then get building instructions for all kit 8527 robots here.

Firmware upgrade

Ensure the firmware on your brick is version 1.05. Otherwise upgrade it.
If you have the NXT-G 2.0 software you can upgrade firmware to version 1.31.

To upgrade firmware:

  1. Unzip the firmware file to the folder '\\Program Files\LEGO Software\LEGO MINDSTORMS NXT\engine\Firmware\'.
  2. Connect the NXT brick to the computer using the USB cable.
  3. Start the NXT-G software, go to the Tool menu and select Update NXT Firmware....

What is the role of firmware?

The firmware on the NXT brick is used in conjunction with the programming environment. The firmware obtained from LEGO will work with NXT-G. If you plan to use another programming environment, they may require a completely different firmware. We will discuss alternative programming environments and firmwares in the next section. However having the LEGO firmware and the NXT-G software installed and working is useful even if you will be using a different environment as it allows you to reset your NXT brick to its default state at any time. NXT-G also provides building instructions for the LEGO robots in your kit.

Alternate ways of programming Mindstorms

If you are beginning programming, the NXT-G or ROBOLAB language supplied with Mindstorms is great to get your hands dirty. However if you want to try something else, here are some good alternatives.

There are two ways the Mindstorms robots can be programmed.
Technique 1 (program mode): The program is downloaded and run on the Mindstorm robot.

  1. Programs have to be small and relatively simple.
  2. The robot works autonomously.

Technique 2 (immediate mode): The robot is remote-controlled via bluetooth by a program running on your computer.

  1. Programs can be quite complex because complex calculations can be performed quickly on your computer and the robot only receives simple directions.
  2. The robot will stop working if it goes out of Bluetooth range from the controlling computer.
  3. Requires an active Bluetooth connection, which will drain battery faster.

Most Mindstorms programming languages fall into one of the above categories. NXT-G programs the robot using technique 1.

Visual programming

Microsoft RDS is free, offers visual programming but uses technique 2 to control the robot. It runs on the standard LEGO firmware.

C like programming

You can use NQC for the RCX and NXC for the NXG LEGO bricks. Related to NXC is the NBC which is assembly level. These are free and work with standard LEGO firmware. However you can install a NBC enhanced firmware for more features. You also get the excellent BricxCC IDE which gives you much control over the NXT brick than NXT-G.

A non-free but extremely popular option for C like programming is ROBOTC which requires its own custom firmware.

All these mainly use technique 1 to control the robot.

Pure C/C++

Only for advanced programmers the NXTGCC uses Eclipse IDE and provides the GCC toolchain for writing your own firmware for the Mindstorms bricks. This is not suitable for beginners and requires good knowledge of Linux.

NXT++ uses technique 2 to control the robot from any C++ program. Requires knowledge of Visual Studio and is again only recommended for advanced programmers. It runs on the standard LEGO firmware. LesTat offers similar functionality to NXT++, but for Linux.

C# and Visual Basic

Microsoft RDS provides C# and VB programming options using technique 2. It runs on the standard LEGO firmware but is again not intended for beginners at programming.


LeJOS is free and provides a Java like language for the RCX and NXG bricks. Again custom firmware is needed for this to work. LeJOS uses technique 1 for controlling the robot though it provides some examples of using technique 2 and also allows the robot to log data to a computer. This is well maintained, actively developed and Java is simpler to learn than C. It is also cross platform and can be used to program the NXT from Windows, Linux or MAC. A nice tutorial of setting up JAVA, LeJOS and eclipse for programming the NXT is here.
BEWARE: LEJOS OSEK is completely different beast from LEJOS, don't confuse the two.


pbLua is a port of Lua programming language for the NXG brick. The syntax is extremely similar to C++ and it uses technique 1 to program the robot. It provides its own firmware and drivers and a very powerful API with data-logging capabilities. Try it and you might fall in love with it!

Taking your robot further

...where no robot has gone before!

The Idea Book: Great ideas for new robots, including RaSPy, the robot that plays Rock, Paper, Scissors. Learn RIOLA and start talking to your robot! ROILA is a spoken robot interaction language designed such that it is easy for humans to learn and easy for robots to understand and is being developed for the NXT. A website with lots of resources on building robots that see, speak, and reason and Learning openCV, a book on practical Computer Vision.

Extreme NXT: For the electronics enthusiast, understand how the NXT sensors are built then follow the instructions to build your own sensors.


  1. by Daniel Lindsley (not verified)

    If you're on Mac OS X 10.6 (Snow Leopard) & you've installed the latest drivers, but still don't have the USB bits working (though Bluetooth works), it's might be because you're running as a non-admin account.

    I use a standard account for day-to-day stuff & keep an admin account on the machine for installs. Couldn't figure out for hours why Bluetooth worked fine but USB did not. As a last ditch attempt, I logged in as the admin user, fired up Mindstorms and there was my NXT device, happy recognized via USB.

  2. by RCX Yellow Unicycle (not verified)

    To Everyone,
    I was really annoyed that I could no longer use my Mindstorms Lego RCX 1.0 brick and RIS Robotics Invention System on my new Windows 7 64 bit computer.
    I should mention I have the RCX 1.0 brick and the serial port Infrared transmitter. If you have the USB transmitter, you would need a driver installed. If you want you could buy a serial port Infrared transmitter off eBay cheap and then you don't need to worry about a driver.

    BUT, I have finally gotten it to work with only free software.
    Here is the overall approach,
    I have Windows 7 64 bit, ultimate. I downloaded Microsoft Windows XP Mode and Microsoft Virtual PC. Both are free for legally registered Windows 7 users. First you install the XP mode software and then the virtual PC client - which is actually named like kb222222. Anyway then you have to reboot to complete the install.

    After reboot, click start Windows virtual PC - Windows XP mode. It will take a few minutes but it will set up a Windows XP machine in the virtual environment for you.

    Now first thing go to Tools - settings - com 1 and for com1 click the button - physical serial port and select com 1. Now your com1 port from the real machine is mapped to your virtual machine.

    Now put the RIS CD in. Don't run anything yet, just open the explorer to view the files. You need to copy the entire disk from CD to a folder on your C drive in the virtual machine. Your C drive for the virtual machine will be labelled Local Disk C copy all files/folders from the CD to a new folder (call it 'cdrom'). When that is done, then go to the C drive and right-click on setup.exe then click compatibility tab and click run this program in compatibility mode and select Windows 98/Windows ME then click apply and OK.

    Now double click setup.exe and it will do the install everything will work fine except the DirectX 6 will fail - but don't worry you don't need it as you have a newer version. If you see options to install Quicktime let Quicktime go ahead and install as you do need Quicktime.

    Congrats it is now installed your icon should be on the desktop. Double click and run it. It is a little bit tricky first time it tries to walk you through demo mode. First time select new user type your name then exit. Now go back in and click enter not new user you will most likely get hung up at getting started setup part as it wants the CD but can't find it because of the virtual machine. You may be able to map around it but it is not necessary when you see a message "please insert the ris v1.5 cd" click cancel. At this point it will take you back to the menu and now you can select program RCX. From there you are free to program and download as usual.

    Also one other item, if you do not have the correct firmware (you will get a message) click getting started - setup options there you can download the original firmware and original programs

    I hope this helps someone. It really works!!!!

    1. by Ali (not verified)

      Thank you for sharing this. I have found some resources on the USB IR transmission tower you mention. It seems there is a Linux driver for it and also a Windows RIS patch and tower driver. If course I don't own the RCX, so I cannot comment on if these would work, but on Windows 7 they will require a virtual PC setup like you have described as the driver appears to be for XP. There are additional installation instructions from Microsoft!

      Laptops these days don't have serial ports which makes it hard to use the serial port IR tower. Does the serial port IR tower work with a USB to serial converter?

  3. by ilker (not verified)

    Thank you so much for the excellent guide on getting the original software work on win7.

  4. by Anonymous (not verified)

    Mindstorms.msi is located at \\Products\LEGO MINDSTORMS - Neutral\NTX_LEGO_MS on my NXT-G 1.1 disc.

  5. by Steve Lee (not verified)

    Thanks for a really useful resource. Out of interest, is there a python dev env?

    There is a more recent ISO of the 8547 software available from Lego and AFAIKS it includes the latest drivers available from the Lego support pages. Firmware 1.3.1 is included. This is version 2.0f6, 21-06-12 according to the read me. No fix for Broadcom bluetooth though.

    Note that the mime type is probably incorrect as Safari thinks it's an .exe, just rename.
    Also it rolls back the Flash version (on OS X) so you need to reinstall. Some report problems viewing build instructions in LabView with latest Flash but works for me (you can open the instruction files in a browser).

    1. by Ali

      Thanks Steve. I've updated the ISO link on the page.

  6. by glitterstarfish (not verified)


    Do you have a link to the updated 1.0/1.1 software? All the links above are disabled.

    I am running Win8 64bit, and have downloaded the 64bit drivers and tried re-installing the software (I found this really helpful -
    It installs fine and I do get the desktop icon, but the program wont launch and I get the error message "unable to open resource files"

    I just shoved in the disk on my old laptop, which was Windows 7 32bit and it worked fine. Who would have thought it would be so difficult to get it to work on a nice shiny new laptop. Hoping it doesn't come to it, but it looks like we're gonna have to keep the old one just so my kid can program his nxt!!
    Any help or tips would be most appreciated.
    Thanks :)

    1. by Ali

      With release of EV3 kits lego have updated their website again, hence the links were broken. I have now updated the links. The best thing is to get the NXT 2.0 software as NXT 1.0/1.1 software is not compatible with newer windows versions.