Frequently Asked Questions

General Questions

How do I stop an Enchanting Program?

You can always stop an Enchanting program by pressing and holding down the 'enter' and 'exit' buttons (the orange and dark grey buttons) at the same time.

If your robot is connected to your computer, you may press the 'stop' button to stop your program.

Firmware Questions

Why do I have to "Flash the Firmware"?  What is "firmware", anyways?

The "firmware" on your NXT is like an operating system for a computer.  "Firmware" allows software (the application you write) to control hardware (the NXT).  
In the same way that an application (software) written for Mac OS X (operating system) will not run on a Mac computer (hardware), your program (software) written in Enchanting will not run on your NXT (hardware) unless it is running leJOS 0.9.1 (firmware).

Because your NXT is not already running leJOS 0.9.1, you have to install it, and that process is called "flashing" the firmware.

Why did you choose leJOS?

There are many excellent firmwares for the NXT.  leJOS is the most advanced firmware for the NXT that is freely available and has tools for multiple platforms.  It allows you to do things readily on the NXT that are difficult or impossible with most other firmwares.

For example, the library of routines and classes that come with leJOS allow you to:
  • create lists
  • put a function in a variable and invoke it
  • write code to make a robot navigate around accurately, largely independant of how the robot is configured
  • draw sprites (graphics with transparency)
  • access a wide variety of sensors and peripherals for the NXT

Is flashing the firmware risky?  Why the warning message?

Your NXT is designed so that the firmware can be updated.  LEGO has provided several updates to the stock firmware, which have fixed bugs and added features, and they update the firmware in the same way as Enchanting does.

LEGO has also generously provided documentation so that third parties could create firmwares for the NXT, and even provide an Open Source version of their firmware!  (Way to go, LEGO!)  It may be possible for a replacement firmware to damage your NXT or sensors, and LEGO is not responsible if that happens.  Using a replacement firmware may void your warranty.

One more thing.  The NXT is designed so that the firmware can be updated several times — I think it is guaranteed to work 100 times.  However, the flash storage for the firmware wears out as it is flashed, and it is possible that you'd go to flash it and it would "break" and not let you flash it again, in which case, you are likely to be left with a "brick" or "paperweight" that looks like an NXT.

Because of this, I feel it is necessary to warn you before flashing your NXT.

With all that said, I'm not concerned about flashing the firmware.  I've done it many times to my own NXTs, as have others, and I've never heard of any problems, except for the following:

Help!  My brick is clicking quietly and not doing anything else!

This is called "the NXT click of death".  Be calm!  You'll be all right.

When you flash the firmware on your NXT, the NXT restarts and goes into "Firmware Update Mode".  It waits patiently for the computer to reconnect to it and flash the firmware, and it makes a mild clicking sound while it waits — probably so you know it is in this mode.

Normally, the computer reconnects and flashes the firmware.  Sometimes, though, things go awry, and the NXT is stuck in firmware update mode.

You get it out of firmware update mode by flashing the firmware.  You can certainly flash back to using LEGO stock firmware (see the next question), or you can use Enchanting.  However, there is one problem: Enchanting v0.2 only recognizes an NXT when it is in its regular mode, and will not see it in firmware update mode.

Fear not, however; Enchanting comes with leJOS firmware update utility, which does recognize the NXT in firmware update mode and flashes it handily.

So, to resolve the issue:

1. Quit Enchanting.
2. Run the "Flash Firmware" utility included with Enchanting.
  • On Windows, it is on the Start Menu in the "Enchanting" folder.
  • On the Mac, it is "Flash Firmware.command" in the /Applications/Enchanting folder.
3. Follow the instructions to flash your NXT's firmware.

How do I go back to using NXT-G?

To use the software LEGO provides, "LEGO Mindstorms NXT" (and also known as "NXT-G"):
  1. Quit Enchanting.
  2. Run "LEGO Mindstorms NXT"
  3. From the menu, choose "Tools -> Update NXT Firmware..."
  4. (Optionally, download the latest version of the firmware)
  5. Flash it back, and you are ready to use it with NXT-G.
(If you wish to go back to using RobotC or some other firmware, the instructions will be similar — your application will have a way to reflash the firmware).