So as promised, I'm finally posting some information about Mindstorms NXT. Quick impression: it's really cool! We've built several robots already and come up with a few of our own. My Bluetooth adapter wasn't compatible with the Lego software, but I have a new one that works now. Much better! USB works fine for data transfer, but we are constantly disconnecting and reconnecting it in order to properly test it. I'm pleasantly surprised that they even bothered to include Bluetooth in it. I could understand an add-on module, but not built-in. My boys (9 and 11) figured out the building block programming style and are already creating their own programs for it. I may need to get it updated to use C#, but for now I'm content enough. The selection of motors and sensors is just great, and along with the pieces, it offers a very flexible foundation without breaking the bank (not that it's cheap...).

All of that said, however, there a few things that already bug me and make me question Lego's design choices:
- Lack of a debugger - Seriously, what were they thinking? I would love to be able to drag my programming blocks to the grid, run the code, and watch it loop through. Even if that's too intensive for the processor, it could at least support pausing with the current block highlighted for viewing or modifying (edit and continue).
- Lack of zoom in main programming view - This is so annoying. Either you can fit your entire program on the screen at once, or you can use a thumbnail scroll control. You can't just "Fit to Screen" or set a percentage of zoom. This is fundamental in editors these days that I can't believe that they didn't add it.
- Too frequent redeploys - Every "Download and Run" recompiles and redeploys the code, even if no change was made. Of course I can just reach over and click the orange button on the brick to re-run a program, but why can't this work?
- Bluetooth incompatibility - Well, it bit me anyway. Your adapter either needs to use the built-in Windows Bluetooth drivers, or a specific version of Widcomm drivers. My adapter used Widcomm drivers only, but not a new enough version. Very frustrating. Perhaps I could have updated the drivers, but they aren't generally available and seem to be locked to device ID's.
- Slow connection each time - It takes so much longer than I would expect to establish a connection with the device over USB or Bluetooth. Once connected, it works well, but it's annoying nonetheless.
- 64k Memory??? - That is so crazy. With 2GB USB flash drives regularly on sale around $50 on Buy.com this seems ridiculously stingy. Even 1MB would have been better. The device will play sampled sounds as part of programs, yet one or two sounds take up enough space to crowd your programs. Adding an SD port would have been awesome. This just makes Lego seem cheap.
Despite my complaints, I'm still very satisfied overall. The good thing is that almost everything could be resolved with software/firmware updates. The fact that they open-sourced the firmware also provides great opportunities for future enhancements. Unfortunately, the memory problem is pretty much set in stone. What a bonehead decision.
If you are interested in robotics, I recommend Mindstorms. I know that Fischertechnik makes a rival product, but I've never used it. I've played with some of their toys and they seem good. Lego is just so pervasive that it seems that community support will really be there.
On a final note,
Dean Kamen's FIRST organization and Lego banded together to create the FIRST Lego League (FLL) which hosts annual Mindstorms competitions for kids ages 9-14. I'm in the process of creating a Mindstorms club at my boys' school, with the intent to also enter the FLL competitions. This could be really fun!