Wednesday, September 16, 2009

Connecting to NXT on Windows 7 64 bit

For many reasons, it has been quite a long time since I last played with the NXT. At one point I was actually trying to sell mine as well as someone elses, because I just don't have too much time these days. However, because I once said I would write a library in C#.NET I had a bit of a look to see how far I'd actually gotten with it for old times sake. I tried to get all the software up and running, but because I was running Windows 7 RC x64 I had all sorts of problems. Hopefully this guide will help others using Windows 7 (or even Vista x64) in the future.

In this guide I will basically run through the steps of how to get the LEGO NXT software installed and how to connect the NXT brick to a PC running a 64 bit version of Windows 7. I will run through both getting the USB cable working as well as communicating through Bluetooth. A Bluetooth connection will basically appear as a number of Serial COM ports in the Bluetooth device settings. I can't give you support for other libraries and toolkits such as Microsoft Robotics Studio, leJOS, RobotC, etc... I simply haven't used them before!

0. My test system

Windows 7 Ultimate x64 build 7100
NIMBUS USB Bluetooth Dongle

LEGO NXT with USB cable

1. Delete any existing LEGO NXT Software, Drivers and Language Packs

Go to your Programs and Features in your Control Panel and remove any existing LEGO NXT software, NXT drivers and language packs. At this stage you shouldn't have Bluetooth or USB connected to your PC.

2. Prepare Software

First of all we will get all the files that we need in order to get everything working. 


The first thing you will need are some 64 bit drivers for the NXT USB cable. Go to the RobotC download website at http://www.robotc.net/content/lego_down/lego_down.html and download the "NXT - 64 bit operating system" zip file called "NXT_64bit_driver.zip".

The other thing you will need is a copy of the LEGO NXT CD. If you only want to get the USB cable working but you do not want to use the NXT-G Software that comes with the NXT you do not need the CD.

3. Install the NXT 64 bit Driver

Open up the
"NXT_64bit_driver.zip" file you just downloaded and run the "LegoMindstormsNXTdriver64.msi" that is inside it. Follow the prompts with default settings and default installation path.

If you now turn on your NXT brick and plug the USB cable into it and into the PC you should see Windows 7 trying to install the correct drivers. Once completed you should get the following message:


If you have a look in the Device Manager (in Control Panel > System) you should see the newly installed LEGO MINDSTORMS NXT item.

 

Make sure that the NXT is actually turned ON, because it does tend to switch itself off automatically without you noticing. 

If this did not work for you then all I can suggest is that you make sure all previous drivers and anything you have done up to this point is deleted and you start again. Note that the driver I am using here is only for 64 bit systems. The RobotC website also has a 32 bit driver you can try if needed if your system is a 32 bit system.

4. Install the LEGO NXT Software

You now obviously want to try to use the software that comes with the NXT to develop some programs or maybe you only need it to update the firmware and then you will use some other 3rd party library. In any case this is what you need to do to get it going. 

From experience I noticed that you can't just stick in the CD and run the auto launch setup, because it will appear to load but in reality it will only install the NXT Driver (which doesn't work anyway). You can see in the picture below that only the driver is in the list to be installed so something is definitely fishy!


Cancel out of any setup programs that may have already started. We do not want to take the standard route.

To get things going we will install two things manually, which would normally be taken care of by the autorun installer:
  • NXT Software (the actual development tool that will let you build NXT apps)
  • LEGO Mindstorms Language Pack
Open up the CD and go into Bin\LEGO MINDSTORMS NXT Software\NXT_LEGO_MS. Run the "Mindstorms.msi" file to being setup. Just follow the prompts and install the files to the default location. At the end of the setup process you may get an error message as follows:


As long as you have flash installed you should be fine. Just click OK and the installer will finish. 
Now navigate to Bin\Products\LEGO MINDSTORMS - English\LEGO_Eng on the CD. Run the "MidstormsEng.msi" file to start the installer. On the first screen click Next. I'm not sure what you will see now, but I can see that it is trying to install the files into G: drive:


This is wrong so we need to change this to the correct path. Click on Browse and navigate to "C:\Program Files (x86)\LEGO Software\". Your path should now point to the given directory:


You can now click Next and follow the remaining prompts to finish the installation. 

There is actually one more thing that you could install, but it is not necessary. The Meta Uninstaller program is simply a program that allows you to uninstall the LEGO software more easily and all at once. You can however just uninstall LEGO software at a later stage without having to use this program.

If everything was successful you should have the Minstorms logo on your desktop and in your start menu folder. The Programs and Features in the Control Panel should have these programs listed:



You can now launch the LEGO software by clicking on the Mindstorms shortcut on the desktop or start menu. If your installation was successful the Mindstorms software will start with no issues.

5. Test your USB Driver

To check that the USB cable driver that you installed earlier works fine you can either try to update the NXT Brick with the latest 1.05 firmware (available on the LEGO support website) or make a small sample program and try to load it. These steps will not be outline here as there is sufficient documentation and help available from LEGO.

6. Test Bluetooth

The final step in this guide is to ensure that Bluetooth is working as expected. When you plug in a USB Bluetooth dongle or use built in Bluetooth you should already have some icons showing up in your Device Manager. You should see something like this:


Make sure that your NXT Brick is powered up and Bluetooth has been enabled. In the Bluetooth menu you can use the search menu to scan for computers. Assuming your PC's Bluetooth adapter is up and running your NXT Brick should be able to locate it. If at any stage your NXT Brick/PC asks for a PIN just enter 1234 as a default in both the NXT Brick and the PC.

If the NXT Brick was successfully detected and installed as a device you should be able to see it in the Bluetooth devices window of your PC. Something similar to below:


Looking at the properties of the device and clicking on the Hardware tab should give you two serial ports. These are the serial ports (COM Ports) that you will be able to connect to using your own custom software. They are literally just seen as standard serial ports and will automatically transfer over Bluetooth. As follows:

 

The only difference is that your port numbers may not be exactly the same.

7. Final Remarks

Hopefully you should now have USB capabilities to be able to load your software onto the NXT Brick using the Mindstorms development software. If you wish to use a custom programming language or library you can also make use of the Bluetooth serial ports.

If you ever wish to uninstall the LEGO software it is a simple matter of going into your Programs and Features section of the Control Panel and uninstalling all LEGO NXT items.

27 comments:

Arian said...

Thanks for posting this! Great information. Since Lego has Mindstorms 2.0 out, I bet the software is more modern. They really need to make it available to downlevel users. Hopefully without charging much...

Ramaprasanna said...

Great post my friend. :)
It helped me get the 64 bit drivers.

thank you !!

Poul Anker said...

This information saved me a lot of trouble and time.
Very informative.

Thank you very much.

Anonymous said...

Thank you - you saved me a ton of time. Very nice work :-).

Jean-Vincent / France said...

Thank you very much for your notice

David said...

Awesome! Thank you.

Anonymous said...

amazing stuff thanx :)

patrick said...

Thank you for this posting... Great template application development

cheap viagra said...

Hello friend amazing and very interesting blog about Connecting to NXT on Windows 7 64 bit

citrate sildenafil said...

I really like this write! I enjoy it so much! thanks for give me a good reading moment!

Henrik Pedersen said...

Found a way easier method... Just go to task manager and close the popup with "Dosn't have enough memory"... not the installer, but the pop-up (which seems to be a seperate thread for some reason)...
when it continues and installs perfect :D

Anonymous said...

Thanks, Oliver. Scratched my head all of two minutes when this did not install on the new desktop - and Googled to find this post. --tagMacher

captainkirk said...

Worked perfect. Thank you for your step by step instructions.

Anonymous said...

Hello NXTemplar,
can you tell me wich NXT software cd you are using I am using software cd v.1.1. and the foders differ from your explaination,
with the standard setup my software lists a 64 bit driver and the nxt 1.1 software setup

Anonymous said...

Very good article I enjoy your website keep up the great blog posts

Yo said...

thank you soooo much i was going crazy downloading installing and uninstalling a lot of drivers until this great job!!

Lennart Klein said...

Thanks a lot!!!!! I got stuck on the part where he only shows the driver. But you realy helped me out! Thanks!

Anonymous said...

Thanks! Worked great on Vista!

GGrinton said...

This thread is old, but I am wondering if you have any experience with NXT2 and 64-bit Win7? My bluetooth connections seem to create the paired authentication OK, but then the connect from the LEGO software fails with an error -142024.

Oliver Schenk said...

Sorry; unfortunately, as pointed out by one user, playtime with my robot seemed to be quite short lived and in the end I didn't end up posting very much more useful stuff. :( Just really hard to find the time. I sold mine a few months back.

At least I feel a little better that I could at least help a few people. What I might do is dig up the C# program I wrote back then and share that. Not sure how much use it is anymore...

@GGrinton: I never tried NXT 2.0, sorry.

John Lee said...

A great post for this certain topic.
Information damage situation is often a headache for the user.
To be able to resolve this concern, the gurus have launched several data files recovery solutions.
If a deletion of data problem has taken place, person got to know which application or software package to apply as a way to deal with this scenario of data damage.
recover deleted pst file

Huhu said...

Great work. The same sequence is working on windows 8.

Iris Leung said...

Thank you SO much for this article. I just picked up an old Mindstorm set and it obviously wasn't compatible with Windows 7. I've been wading through forums for days until I came across your blog and now everything is installed and ready to go. Really appreciate the conciseness of your post. Thanks again.

jakob fredslund said...

This is a great post, thanks! Wish all explanations were this clear.

Yuri Correa Fontes said...

Hi Oliver, I did just like you say in your tutorial, and in Programs and Features there are all 3 programs it should have, just like your tutorial explains.
The problems is that when I double click the NXT icon to star the software, a pop-up window appear with this message
"Error loading fantom.dll" and then the software closes itself.
Would you know how can I fix it?

Thanks a lot!
Regards

Edward Pico said...

I have the same issue as Yuri Correa Fontes The problem is that when I double click the NXT icon to star the software, a pop-up window appear with this message
"Error loading fantom.dll" and then the software closes itself.
Any ideas how can I fix it?

Edward Pico said...

Hi guys ,

just to report the solution to my previous question:

The following link has the updated driver (32 and 64 bit) which solve the Phantom issue.

http://www.robotc.net/support/troubleshooting/fantom-driver.php

Regards

Ed