The LEGO Mindstorms series of products are the pinnacle of LEGO’s toy line when it comes to complexity and price. This is why you have to be extra careful before laying out any cash. After all, Mindstorms cost a LOT of money.
- Download and install all the software and student apps needed to successfully integrate SPIKE Prime, MINDSTORMS EV3, WeDo 2.0 and more into your classroom.
- As the hapless RCX Maintenance Specialist 5th Class attached to the CESS Stormrunner, a routine mission to the Pluto Outstation isn't anything to write home about. But when you're accidentally ejected onto the surface of a strange new planet, sending a signal to Earth is the only way to save yourself and the other colonists marooned there.
- I have the RCX IR tower setup and working on my Windows 7 laptop. I downloaded the drivers from the ROBOTC.net site here (labeled 'RCX Device driver') Direct file download link. Note: I am running Windows 7 32-bit, according to the ROBOTC site, this driver is 32.bit only. No known 64-bit driver is available for the RCX.
I’ve put together this short guide so that you have all the most important information in one place before you make a buying decision. This isn’t an exhaustive guide to Mindstorms, just a summary of the series that will make you knowledgeable enough that you won’t go into a shop blind.
Mindstorms Generations
LeJOS is a Java based replacement firmware for the Lego Mindstorms RCX microcontroller and NXJ is a Java based replacement firmware for the Lego Mindstorms NXT.
There are three main generations of Mindstorms. Although LEGO has had several smaller product lines that are both programmable and robotic, the ones that you should care about all fall into these three generations.
Generation 1: RCX
Released in 1998, the RCX Mindstorms (then called the “Robotics Invention System”) represents the first proper entry in the series. The programmable brick (which is the computer at the heart of Mindstorms) is properly primitive by modern standards. You have to remember that this little computer was made long before smartphones were a thing. The 8-bit microcontroller wouldn’t even power a toothbrush these days. OK, maybe that’s an exaggeration, but there’s no argument that this product is thoroughly outdated.
That is why I can’t really recommend that anyone should go out and buy first-generation Mindstorms. It can be tempting, because people are selling them off for good prices. But unless you’re a collector or just curious about historical LEGO, there isn’t much here to justify the effort.
The main issue is that the RCX just isn’t compatible with most computer systems anymore. Given the time of its release, the operating system the RCX was designed for is Windows 98. With patching and some fiddling under the hood, it’s possible to get it working, but Windows XP itself is now completely removed from Microsoft support and shouldn’t be run by anyone.
This means that the only working solution these days is to run the heavily-patched instance of Windows XP on a virtual machine and then port your USB connector through to it using the virtual machine software. So be warned that you’ll have to go through all of that trouble just for the privilege of experiencing LEGO’s first big swing at toy robotics.
Generation 2: Mindstorms NXT and NXT 2.0
The second generation of Mindstorms was released in 2006, which means there’s almost a decade of computer technology development between them. Given Moore’s Law and the speed with which computer technology improves, it might as well be a century.
Unlike RCX, there is still an argument to be made for buying an NXT set, especially if you can get it for a good price. But we’ll go over the pros and cons of this choice below.
The NXT jumps straight to a 32-bit processor from the dinky 8-bit unit found in the RCX. It can have four sensors and three motors connected to it. There’s also a speaker and Bluetooth support.
NXT is provided in two editions: Retail Version Set & Education Base Set. One key difference between the two is that the education set uses a rechargeable li-ion battery and the retail version uses six AA batteries. If you were buying the set new I’d say the rechargeable versions was a good deal, but lithium batteries degrade and there’s no guarantee that a used Education Base Set will still have a healthy battery. So if you’re buying used, just go with retail and use your own rechargeable AAs.
NXT is still compatible with modern operating systems and drivers are available from XP all the way to Windows 10.
LEGO has also seen fit to make the firmware of the NXT intelligent brick open source; if you really want to do custom, advanced things with Mindstorms, NXT can actually be a better choice than the latest models. It’s really becoming a LEGO hacker’s favorite toy.
You should be aware that there was a mid-generation update to NXT, appropriately called “NXT 2.0”, that added a color sensor and a sound editor. The sound sensor from NXT 1.0 is gone, however – traded off for a second touch sensor.
It should be noted that the intelligent brick has not been upgraded at all and is the same one included in NXT 1.0. You can mix the parts between the sets without issue. Any NXT sets you find new at retail today are going to be 2.0 sets, unless you live in Alaska or something.
While NXT may not be the latest hardware, many of the LEGO-designed NXT robots have become classics in their own right and are worth collecting.
Generation 3: EV3 Mindstorms
As I write this, the EV3 system is the latest in the range, but it’s already a few years old. Released near the end of 2013, the upgrades to the intelligent brick are still pretty dramatic, even though there’s a smaller generational gap.
While the NXT had a slow 48Mhz CPU, the EV3 is just over six times faster in terms of core speed alone. It has one hundred times the RAM, going from 16KB to 64MB. The built-in storage has gone from 256KB to 16MB, which doesn’t sound like much, but there’s also a microSD slot now!
The Bluetooth has been improved. You can get WiFi with an optional dongle and there’s now a USB host-port option, which means the brick can use USB devices. LEGO has also taken modern mobile devices into account, and Apple devices can now be connected. As you might expect, there’s an EV3 App that let’s you do things like program the robot.
Using this massive leap in power and connectivity, people have built some incredible machines that we often see featured in viral videos. Apart from that, the actual robots you can build out of the box are far more entertaining, more modern-looking, and significantly more capable than the NXT ones.
Just remember that there is also a retail and education set here and the education set has parts not included in the retail version! So make sure to check the parts list.
Which to Buy?
So let’s summarize the reasons for buying any of these three generations.
Generation One should be an automatic “no” for anyone who just wants to get into Mindstorms. It doesn’t matter how cheaply you can pick up a used set, the limited abilities and technical issues on modern computers mean this is only for the most hardcore fan who has the other Mindstorms products and wants to collect, experiment, or learn.
NXT Mindstorms are a great used purchase and you can get them for much less than the price of a new EV3 set. Since it’s been open-sourced, there’s also a lot of hacking and mods produced by other people – you can use these without being too technical yourself.
Lego Rcx Software
Another big factor is that the NXT generation is simply easier to use and learn than EV3. The new system does a lot more, but that means there’s more to learn. I’ve seen advice that NXT is better for a beginner and, especially, younger children. Once you have the hang of NXT, then moving on to EV3 is less of a learning curve.
For most people, however, I’d recommend just buying the EV3 base set if you can afford it. The abilities of EV3 are such that it’s worth the extra bit of learning and, of course, LEGO is giving the most support and development to EV3 right now. Given how long the gaps were with previous generations, it should still be a few years from now (2017) before EV3 is replaced. So, if you have the cash there’s little risk of buyer’s remorse!
Get up and running quickly with LEGO Mindstorms on your PC and to take best advantage of the .NET power now available for it. This article shows you some of the quirks and pitfalls of setting up your system and acquaints you with the challenges of programming using the 'integrated' model. | |
Difficulty: Intermediate Cost: $100-$200 Software: Lego Mindstorms 2.5 SDK,Visual Studio Express Editions Download: |
Updated May 4, 2006
Programming with the Microsoft .NET Interface for LEGO Mindstorms can be a great way to introduce yourself to the world of robotics while having fun with one of the world's most popular educational toys. It can also present a few challenges along the way if you are new to LEGO Mindstorms or hardware programming in general. The following topics are designed to help you get up and running quickly with LEGO Mindstorms on your PC and to take best advantage of the .NET power now available for it.
Acquiring and Setting Up LEGO Mindstorms Robotics Invention System 2.0
Where to buy LEGO Robotics Invention System (RIS) 2.0
LEGO Mindstorms RIS 2.0 is available directly from LEGO or online shopping sites such asAmazon as of May 2006 (note: Lego NXT will be releasing soon). Aside from your PC, the kit comes with all the hardware and software needed to create your first LEGO robot. You should install the LEGO software from the kit and use the built-in visual programming tool to create simple projects, then track your progress through a series of LEGO robotics learning challenges.
However, to take advantage of the Microsoft .NET Interface to program your robot, you still need to download and install some special developer software, as explained below.
What to expect when installing the LEGO RIS 2.0 software
The RIS 2.0 software on the CD that comes with the LEGO kit will install and run on Windows 98, Windows ME, and Windows XP. It may install on other Windows versions, but there is no support by LEGO and the software is very likely to crash, according to some discussion forum threads. We strongly recommend using a version of Windows XP for programming with .NET 2.0 and the LEGO Mindstorms .NET Interface. There is a required reboot after installation is finished.
After installing the software from the LEGO Mindstorms RIS 2.0 CD onto your computer, you will likely need to install one, possibly two, software patches from LEGO:
- For all XP systems there is a bug where the LEGO RIS Software is started each time the PC system is restarted. DownloadRIS20XPPatch.exefrom the LEGO Web site and install the patch following their instructions.
- For PCs using Hyper-Threading (HT), you will need to install an updated IR tower driver to prevent system lockups. This patch file is also found on the LEGO Web site. Download and save theTower164 patch, double-click it, then follow the on-screen instructions to finalize the patch installation. It is also recommended you install it if the PC has a dual-core CPU. (NOTE: Some dual-core systems have issues running the LEGO software even after this patch has been installed.)
What to expect the first time you run the LEGO RIS 2.0 software
First, plug the LEGO infrared (IR) tower into a USB port. The hardware wizard should detect the device and install it automatically using default selections. (PLEASE NOTE: The hardware wizard will need to run every time you connect the IR tower to the PC.)
Next, make sure your speaker volume is turned up so you can follow the directions given when the application is running. Start the LEGO RIS 2.0 Software from the desktop shortcut or from the Programs Menu. The first time you run the program select the top menu option, Run. (PLEASE NOTE: During installation this software will take control of your screen and you willnot be able to switch between other running programs.) You will be guided through the setup of the IR tower, the downloading of the LEGO RCX firmware via the IR tower to the RCX brick, and the testing of the effective range of communication between the IR tower and the RCX brick. Once finished, you may exit the program. The Constructopedia booklet included with the LEGO kit contains additional information on this on page4.
PLEASE NOTE THE FOLLOWING:
- Do not run other applications while performing the download of firmware (basically, the LEGO operating system) to the RCX brick.
- It is not unusual to require several attempts to download the firmware to the RCX brick. Three or four attempts before succeeding is not unusual.
- The download of the firmware will take approximately four minutes. During that time you should see a faint flashing green light coming from the IR tower and a counter on the face of the RCX brick going from 0000 to 2500. If the download fails you will be given the opportunity to retry.
- After completing the download of the firmware, the LEGO program will download five proprietary sample applications to the RCX brick. This will take approximately one minute. The counter on the face of the RCX brick will go from 1 to 5 as the sample applications are downloaded. If the download fails, you will be given the opportunity to retry.
- If the batteries drain too low or if for some reason you must remove the batteries from the RCX brick, it will be necessary to re-download the firmware.
Where to get the software needed to program the RIS 2.0
If you have not done so already, please download and install a copy of Visual Studio 2005 Express Editions onto your Microsoft Windows XP computer. Installing Visual Studio will also ensure you have Microsoft .NET 2.0 installed as well.
Why Windows XP? The RIS 2.0 system was originally designed for Windows 98. Although it has support for Windows XP, it does not work well with Windows 2000 or Windows 2003 Server. Additionally, the .NET Interface requires .NET 2.0, which generally requires more hardware horsepower than found on most Windows 98 and Windows ME computers. We therefore recommend sticking with a version of Windows XP for your Mindstorms RIS 2.0 coding projects.
Next you will need to install the LEGO Mindstorms Software Development Kit (SDK) 2.5. This can be downloaded for freefrom LEGO.
Finally, download one or more of the LEGO Mindstorms Starter Kits. The starter kits are available in each of the Visual Studio Express Edition development languages:C++, C#, J#, and Visual Basic. Each starter kit includes the compiled version of the Microsoft .NET Interface for LEGO Mindstorms, C4F.LegoRcx.Dll. This DLL file is the link between your code and other DLL files that are included in the LEGO Mindstorms SDK. If you would like to explore just how this works, the C++ version of the SDK contains the source code for the .NET Interface itself.
Once that is installed, please follow the directions in the article Introduction to Programming LEGO Mindstorms for an explanation of which redistributable files from the SDK you will need to reference and distribute with your LEGO Mindstorms applications. Basically, you will need to place the .NET Interface for LEGO Mindstorms file, C4F.LegoRcx.DLL, in the same folder as your project executable along with GhostAPI.DLL from the LEGO RIS SDK 2.5 and the proper driver for the IR tower being used.
Trying to use these support files from the GAC (a system-wide known location for .NET assemblies on a PC) has generally resulted in unstable application performance with the LEGO robots.
Tips for setting up LEGO software and the Microsoft .NET Interface for LEGO Mindstorms
At this point it should be clear that you need to follow a number of setup steps before you actually get down to programming your LEGO robots with .NET. Please keep in mind that this is all a hobbyist programming extension to another company's product and it is pushing some limitations on both sides. The following is intended to provide some realistic expectations for what can be accomplished with this release of the .NET Interface for LEGO Mindstorms.
There are some known issues to be aware of:
- Some newer computers will not recognize the LEGO IR tower. For example, we have been unable to install the IR tower driver on a Toshiba Portege 3500 Tablet PC. A similar problem has been mentioned on some web forums for certain Dell desktop models, but we do not have a list of model numbers.
- Postings on several different forums related to LEGO Mindstorms RIS 2.0 have indicated a problem getting the LEGO software to communicate with the IR tower on some PCs with dual-core processors. Use of the Tower164.exe patch discussed earlier does not address this problem directly, but there are unconfirmed reports that it has, in some cases, resolved the issue.
- Changing the batteries in the RCX brick or letting the RCX brick sit for long times between uses can require that the LEGO firmware be re-downloaded by starting the LEGO RIS 2.0 software, selecting the menu option Settings, and then selecting Download Firmware. If you are prompted for a password, simply enter your name and press enter.
The challenges of integrated ('tethered') programming
Lego Rcx Windows 10
Because the actual running of the .NET code is on the PC, the term used to describe the programming relationship with the LEGO RCX brick isintegrated programming. Think of the IR tower as a tether—a lifeline—between the PC running your application and the RCX brick that must execute physical actions based on instructions from the PC. The IR tower is what makes this possible. If the link with the tower breaks at either end, the integrated execution of the program dies.
Because the RCX brick is a very simplistic computer compared to your PC, you will need to keep in mind its limitations when developing your code. For example, the RCX brick does not raise events. The IR tower must poll the brick for changes in hardware state and the information gathered must then be interpreted by your .NET program as being an event that needs to be handled or not. Likewise, the tower using the relatively slow infrared signals form of communication may experience backlogs in instructions to the brick from the computer. In some test application development we noted the following issues may arise:
Communications latency. There may be a several-second delay between when an event occurs on the RCX brick and when it is recognized by the PC. Long delays can cause an event to be lost all together. Limiting situations and circumstances that can cause tower interference can be important in these cases, such as blocking direct sunlight on the tower, keeping the robot within a reasonable range of the tower (about 8'-10'), and not placing obstacles in the signal path between the RCX brick and the tower.
Losing commands. This has most often occurred when issuing motor commands from a sensor event handler. In fact, commands may not actually be lost but the sensor referenced may not be active and therefore events that would affect motors will not occur. Best to keep motor commands in discrete methods called as necessary.
Setting the sensor type. You may experience a narrow window of time in which this works. We recommend setting sensor types in the main form load event of your application.
Lego Rcx Programming
Queued commands may still run. Even after stopping the running application on the PC, the robot may continue to run queued up commands. In such cases, it may be necessary to turn off the brick manually. Generally this is not because of a “haunted” RCX brick but because motor commands were left running.
We continue to explore resolutions and work-arounds for these issues, but you should be cognizant of them in the meantime when trying to create and debug your applications
Using the LEGO Mindstorms Programming Starter Kits
The Microsoft .NET Interface for LEGO Mindstorms Starter Kit consists of three demonstration applications that use the basic RoverBot configuration shown below. This robot uses two motors and a double bumper system with two pressure sensors to demonstrate how the robot can smartly react to bumping into other objects.
The Roverbot sample is a very simple .NET application showing how the robot will react to bumping into objects as it roves around the floor. If the right side bumper is pressed by running into an object, the robot will stop attempting to move forward, back up to the right and proceed to try passing the object on the left side. If it strikes the left bumper, then it takes the same actions but with back up to the left followed by an attempt to pass the obstacle on the right side.
The Remote Control sample adds a bit of fine tuning to the first sample. In this sample you determine the direction of the robot (and hopefully avoid obstacles) by using the arrow keys on the PC keyboard.
Both the Roverbot and Remote Control samples provide a visual display of the robot's trail.
The third application in the starter kit, Music Demo, demonstrates using the audio features of the RCX microprocessor brick to play back sounds entered into a PC screen display resembling a piano keyboard.
These are only very basic applications, but they are intended to act as building blocks in creating more sophisticated robot applications of your own. For example, a particular sound may play depending on the touch sensor that is activated. Or, an independently running Roverbot may be commanded to switch to remote control directions when faced with a particularly difficult obstacle and then back to independent roving once the obstacle is cleared.
Lego Rcx 2.0 Software Download
Extending the .NET Interface for LEGO Mindstorms
Because the source code for the Microsoft .NET Interface for LEGO Mindstorms is included with the free C++ version of the Starter Kit, you can use this along with tools and information in the LEGO Mindstorms RIS SDK to modify and even extend its capabilities. For example, you may wish to add support for additional sensor types such as heat or sound sensors that you acquire from third party sources and wish to adapt for use with LEGO robots.
Additional Resources for Programming with LEGO Mindstorms
The LEGO Mindstorms section of Coding4Fun should definitely be bookmarked in your browser Favorites list. Here you will find the latest news, announcements of new features, updated downloads, and articles on cool LEGO Mindstorms projects with .NET. Additionally, you will want to check these other resources:
First LEGO League —a 'minor league' version of the FIRST Robotics Challenge sponsored byFIRST and LEGO.
LUGNET —the LEGO Users Group Network, an international group with many resources on building Mindstorms robots.
The LEGO Mindstorms Community Web site—the latest information and support from LEGO along with discussion forums on programming Mindstorms robots.
In addition, a search on the web using MSN or Google search using keywords like 'LEGO Mindstorms' will yield plenty of useful resources from other hobbyist coding enthusiasts using the LEGO Mindstorms Robotics Invention System.
What Is the Future of LEGO Mindstorms?
In addition to supporting LEGO Mindstorms RIS 2.0 with a .NET Interface, there is even more for hobbyist coders to look forward to with the impending release of the next generation of LEGO Mindstorms this summer. DubbedMindstorms NXT, this promises to be a huge opening for more coding for fun with a new 32-bit microprocessor for the robot, Bluetooth and USB support, a third motor, and new sound and ultrasound sensors!
All in all, this means there are going to be some terrific ways for students, hobbyists, and the just curious to get an introduction to robotics programming at a reasonable price. Using either the existing Mindstorms product or the upcoming NXT version, you can become familiar with the thrill of robotics programming while learning the challenges faced by robotic software developers to make reliable, smoothly operating, intelligent systems. And by tying it into one of the world's most recognizable toymaker brands, it can be a great way to attract your kids into joining you on a weekend development project.
Lego Rcx 1.0
John Wingfield is a .NET applications developer and technical project manager residing in Kirkland, WA. Currently on a contract assignment at Microsoft, he works with the Visual Studio Express Product Management Team and serves as content strategist for the MSDN Developer Center, Coding4Fun. You can reach him through his blogsite.
Comments are closed.