Fun Projects for your LEGO MINDSTORMS NXT!

Home     Projects     Help     Contacts

How can I learn to program the NXT?

The NXT-G programming system that comes with the NXT is a graphical block-based system that makes writing simple programs for the NXT easy. 

The NXT-G Programming System

Everyone needs some help learning to program, from beginners who have never programmed anything before, to experts in other systems.  To learn how to use NXT-G and how to program more complex actions, here are some suggestions:

Attend a Workshop

We now offer in-person LEGO Robotics workshops at our training facility Smart Fingers Robotics in northern California.

Sign up for one of our workshops, and you will get a great introduction to NXT programming, as well as robot building experience, and participate in a number of fun robotics activities.

Visit Smart Fingers Robotics for more information.



Get a Book

A good way for many beginners and even experienced programmers to learn NXT-G is to get a book and read through it.  This will give you instructions in a friendly "how-to" format that you can go through at your own pace and refer to when you try things out.

Two good books that include both programming information and building instructions for several fun projects are:

For NXT 1.0, The Unofficial LEGO MINDSTORMS NXT Inventor's Guide by David J. Perdue. 

For NXT 2.0, The LEGO MINDSTORMS NXT 2.0 Discovery Book: A Beginner's Guide to Building and Programming Robots by Laurens Valk.

NXT 1.0 NXT 2.0
The Unofficial LEGO MINDSTORMS NXT Inventor's Guide The LEGO MINDSTORMS NXT 2.0 Discovery Book: A Beginner's Guide to Building and Programming Robots
More NXT Books:

Study the Multi-Bot Programs

For NXT 2.0 users, the Multi-Bot project has over 70 programs organized into categories that are designed to teach different programming concepts, such as motor control and using the different kinds of sensors.  Each category has example programs of increasing complexity. Owners of the CD "LEGO MINDSTORMS NXT 2.0 By Example" have access to all of the programs in ready-to-run form.  Web-only users can view the program descriptions and perhaps use them to guide and inspire their own experiments.

Study Example Programs

The programs provided on nxtprograms.com contain comments inside them that help explain how they work.  Starting with the list of Projects by Program Complexity (for NXT 1.X or 2.0), load the programs and study how they work.  Start with the easy programs and work your way up as you learn more.  Building the associated projects will help you see how the program operates in action.

Read Through the Software Help Pages

Picking Contents and Index from the Help menu on the NXT software will lead to the help pages that are included with the software.  You can read about some general topics as well as get detailed help on the various programming blocks.  In addition, with a block selected and the help tab selected in the lower right of the screen, you can follow the help link for that block to learn more about it.

Tutorial on "My Blocks"

After you become familiar with the basic to intermediate features of the NXT-G system, including data hubs and data wires, you can learn about the "My Blocks" feature, which allows you to make your own custom blocks, from this free My Blocks Tutorial.

In addition, owners of the CD "LEGO MINDSTORMS NXT 2.0 By Example" get complete building instructions and ready-to-run programs for two complex projects that use My Blocks in their programs: The Vending Machine, and the Pinball Machine.  Studying these programs will help give you ideas of how to structure a larger program as a series of smaller My Blocks.


Sometimes the best or only way to figure something out is to try it!  The NXT is a great system to experiment with, because it is easy, fast, free, and not dangerous to try things.  If you are wondering what a certain block does or what happens if you use it in a certain way, write a simple test program to use it and see what happens with a suitable test robot.  Make a change to the block's configuration, and try it again to see what difference it makes.  If you don't know enough to guess what try, try to find a use of the block in the programs provided on this site to get an idea of how the block can be used, then try to imitate a similar use.

A general rule when experimenting and learning is to keep everything else as simple as possible.  Make your test program as simple as possible, and try only one new thing at a time.  Get one thing working before adding anything else new, and when experimenting with variations, change only one thing at a time if possible.


Home     Projects     Help     Contacts

2007-2011 by Dave Parker.  All rights reserved. 
All project designs, images, and programs are protected by copyright.  Please see the usage policy.