You are hereGetting to Grips with Installing, Updating and Programming LEGO Mindstorms Kits
Getting to Grips with Installing, Updating and Programming LEGO Mindstorms Kits
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. Plus LEGO has changed the Mindstorms update pages on their website since release of NXT 2.0, so most old links don’t work any more, including links provided within the kit 8527 software. This article aims to provide concise information and resources to budding Mindstormers.

Terminology
Let’s get the terms clear first. So far the three Mindstorms 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. You cannot upgrade for free from NXT-G 1.0 or NXT-G 1.1 to NXT-G 2.0 as all this is licensed commercial software. You can buy the NXT-G 2.0 disk if you wish to upgrade.
| Kit | Software |
|---|---|
| RIS | ROBOLAB |
| 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. A more recent firmware is version 1.29 which only works with NXT-G 2.0. You can upgrade/downgrade your firmware free of charge.
Drivers for the brick
The USB and Bluetooth driver files supplied with the NXT 8527 kit were also updated from version 1.0 and version 1.02 is available. You can upgrade drivers free of charge. However these drivers only work with Windows XP and somewhat with Vista 32-bit. They don’t work at all with 64-bit Windows or Windows 7 (Don't worry, we'll sort this out in the next section).
LEGO has finally released their own updated driver version 1.1.3 for PC and MAC which works with Windows 32-bit and 64-bit and OSX. You can upgrade drivers free of charge.
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.
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. You can however still install NXT-G manually1.
You will need the original installation disk that came with your Mindstorms NXT kit. You cannot download that software as it is licensed for you. You can order a new disk from LEGO here.
- Remove any old LEGO software, drivers and language packs from your system first by going to Control Panel->Add/Remove Programs. This step is important.
- Download and install drivers for the NXT brick for your version of Windows: 32-bit or 64-bit.
- Insert your NXT-G software disk into your computer and browse it.
- Install '\\Bin\LEGO MINDSTORMS NXT Software\NXT_LEGO_MS\Mindstorms.msi' from CD. Press OK if you see any Flash8.ocx error.
- Start '\\Bin\Products\LEGO MINDSTORMS - English\LEGO_Eng\MidstormsEng.msi' from CD. You will have to manually set the current install location correctly. It will be set to 'C:' change it to 'C:\Program Files (x86)\LEGO Software\' on 64-bit systems and 'C:\Program Files\LEGO Software\' on 32-bit systems.
- If you have NXT-G 1.0, download and install the dynamic block update which should upgrade you to NXT-G version 1.1
- Download and install additional sensor blocks for NXT-G 1.1 and NXT-G 2.0.
- If you want to use the RIS sensors with the NXT-G download and install the legacy sensor blocks.
- Plug in you NXT brick via USB and verify that it is detected by Windows and works.
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:
- Unzip the firmware file to the folder '\\Program Files\LEGO Software\LEGO MINDSTORMS NXT\engine\Firmware\'.
- Connect the NXT brick to the computer using the USB cable.
- 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.
- Programs have to be small and relatively simple.
- The robot works autonomously.
Technique 2 (immediate mode): The robot is remote-controlled via bluetooth by a program running on your computer.
- Programs can be quite complex because complex calculations can be performed quickly on your computer and the robot only receives simple directions.
- The robot will stop working if it goes out of Bluetooth range from the controlling computer.
- 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.
Java
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
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.
Roila.org: 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.
Cognotics.com: 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. These instructions are originally from Oliver Schenks blog.


Mindstorms.msi is located at \\Products\LEGO MINDSTORMS - Neutral\NTX_LEGO_MS on my NXT-G 1.1 disc.
Thank you so much for the excellent guide on getting the original software work on win7.
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!!!!
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?
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.
I have a new Samsung laptop with Windows7 32bits Home Premium and very few SW installed. I tried to follow your clear instructions but failed to install any of the drivers on your link (1.1.3 from Lego or the other 3RD party one). In both cases the installation starts and fails before the end. Thanks for help!
Does it generate a failure message? Please describe what message is shown.
Please also check that you are running as an administrator user with full privileges. On Vista/7 try starting the setup by right-clicking and selecting "Run as Administrator". Your Antivirus may be blocking driver installation so you may want to disable it temporarily during installation.
I did everything as listed for 64-bit Windows 7 and (after resoldering the LCD capacitors) was able to get the software to work and upgrade the firmware. GREAT! Then I handed it over to my son (his #1 Christmas present) to start building but we cannot get the building guides to display! We click the "Start" button and it clears the pane but no image shows....????
Please ensure you have the latest flash player for Internet explorer(32-bit) installed. Also all building guides are now downloadable from the LEGO website.
Thanks so much for your guide. You had me up and running in less time than it took to wander aimlessly around Lego's own support sites.
I'm having the same issue with the Building Guides. I have updated Flash in both IE 64 bit and 32 bit, and I can verify this by going to Flash's about page. In IE 64, I have 10.2.161.23 and in IE 32 I have 10.1.102.64
The Building Guides are still blank. If I zoom in, I can then get a right-click menu which shows two options: "Movie not loaded" and "About". If I click "About", it takes me to the Flash About page, which lists my Flash version as 8.0.22.0
I wonder if this has something to do with the Flash8.ocx error during the install? I tend to think not, since everything else is working.
I'm currently using the PDF downloads from the Lego site as a workaround.