Saturday, February 18, 2006

NXT Expansion Ports

When Lego first announced the NXT brick, I was pretty excited about the servo-like motors, the more capable sensors, the Bluetooth wireless link and the new software development environment. And until very recently, I thought the NXT was an improvement on the RCX brick, and I expected similar developments. But I may have missed the bigger picture. The NXT isn’t just a more powerful version of the RCX brick. It is much more than that.

The thing I did not immediately get, is that on the NXT brick, the “sensor port” is much more than its name suggests. It would probably be more appropriate to call it an “expansion port”. Although I haven’t seen any evidence that the “motor ports” can also be used as (slightly different) expansion ports, it is likely that this is the case.

That means you could think of the NXT as a tiny computer with seven USB-like ports to add more devices. Off course, the sensor port has a much simpler protocol than USB. The benefit of that is that it is easier for third parties to create compatible electronics. The drawback is that the sensor port does not have true plug-and-play. Still, Lego probably made the right choice here. The ability to have a large number of third party components will add most value to Mindstorms NXT. It will also keep the complexity of the “operating system”, and hence the load on the processor, low.

Why are expansion ports such a big deal? Because third party components were essential to the success of the personal computer (PC). Once you give the market the freedom to innovate, they’ll take the product through innovation cycles that take it to a whole new level.

Already, we see that the HiTechnic multiplexer has an onboard processor to service 8 additional ports, and map them on a single NXT port. In essence, the multiplexer is a co-processor for the NXT brick that handles I/O. We can expect more co-processors to take away tasks from the central NXT brick processor. The central processor will be in a coordinating role, making everything work together.

Here's a perhaps less obvious example. The NXT Brick has onboard Flash memory. How much memory the NXT brick has, is not public yet. But whatever it is, people will want more. Expect third party flash modules that plug into a sensor port in similar ways like an USB memory stick plugs into your computer (but without the plug-and-play aspects).

Looking from this perspective, it is also clear that the new shape of the ports is much better suited for its digital task as expansion port, than the old style RCX connectors.


At February 19, 2006 3:22 PM , Blogger Jim Kelly said...

Interesting idea on the Flash memory plug-in/upgrade. If data collecting becomes a possibility (which I'm sure it will), the Flash memory plug-in would be a great way to record the information without taking up what limited memory will exist in the brick.

Another thought: The LabView software will probably have limitations on the complexity of the program, too. So having a way to add more memory could allow for more complex programming of the bot.

On the LabView software - I'm hoping that there will be libraries/API/modules that can be 'imported' to add functionality. Take the compass sensor from HiTechnic. Wouldn't it be great if there is a software icon to represent it within LabView - I imagine this would have to be something that HiTechnic would provide with the sensor.



Post a Comment

Subscribe to Post Comments [Atom]

Links to this post:

Create a Link

<< Home