Fun Projects for your LEGO MINDSTORMS NXT!

Home     Projects     Help     Contacts

Steering Remote Control
Building: Intermediate
Program: Intermediate

Building Instructions



You can use the NXT with either AA batteries or the NXT Rechargeable Battery Pack.








9 (Optional: Alternate Steering Lever)



You can use either the steering wheel or the steering lever, or another dial or lever of your own design.

Steering Remote Control Programming

The SteerRemote program for the remote control provides one general purpose way to send Bluetooth messages from the remote control to another NXT (other strategies are possible).  A receiving program on the other NXT must be used to interpret the Bluetooth messages and take action.  For example, see the SteerBTCar program from the Race Car project.  Instructions to use the remote with the Race Car are below.

The SteerRemote program sends three different kinds of Bluetooth messages to three different mailboxes on the receiving NXT: 

  1. The first message, sent to mailbox 1, is a Number that indicates the angle in degrees of the steering wheel control (positive or negative).  This message is sent continuously about 20 times per second, whether or not the steering control changes position.

  2. The second message, sent to mailbox 2, is a Number that indicates when an NXT button is bumped (pressed and then released) as follows: 1 = Left Arrow button, 2 = Enter button, 3 = Right Arrow button.  These messages are only sent when an NXT button is bumped and are only sent once for each bump.

  3. The third message, sent to mailbox 3, is a Logic message that indicates whether or not the touch sensor is pressed (True if pressed).  This message is sent continuously about 20 times per second, whether or not the touch sensor changes position.


Using Bluetooth Wireless Remote Control with Two NXTs

You will need another NXT to receive the messages from the remote control and an appropriate receiving program for that NXT project.  The following example instructions show how to set up an connection between the Steering Remote Control and the Race Car project.

  1. Download the SteerBTCar program to the Race Car NXT, but don't run it yet.

  2. Download the SteerRemote program to the Steering Remote Control, but don't run it yet.

  1. Establish a Bluetooth connection from the remote control to the Race Car.  See your NXT User Guide for instructions, summarized here:

    1. Make sure Bluetooth is turned on for both NXTs from the Bluetooth menu (from NXT main menu)

    2. From the NXT for the remote control, go to the Bluetooth menu, and if this is the first time these two NXTs have been connected, pick Search.  Pick Contacts if they have connected before.

    3. Choose the name of the NXT for the Race Car from the list and connect.

    4. Connect using connection number 1

    5. If prompted for a Passkey, you can accept the default 1234 key on both NXTs

    6. The NXTs are connected when they both display a diamond after the Bluetooth icon in the upper left corner of the screen.

  2. Run the SteerRemote program on the remote control NXT.

  3. Run the SteerBTCar program on the Race Car NXT.

  4. The Race Car will operate from the remote control as follows:

    • Turning the steering wheel will steer the front wheels.  The Race Car's steering motor can only steer 75 degrees in either direction (which results in less than 75 degrees of steering angle because of the gears), so the receiving program will limit the steering angle to this range and ignore extra turning of the steering wheel.

    • Press and release the Left Arrow button to decrease the drive power (speed) by 20%, and the Right Arrow button to increase speed by 20%.  The current power level is displayed on the Race Car NXT (not the remote NXT).

    • Press and release the Enter button to toggle Reverse mode (once to shift into Reverse and again to go back to forward).  When in Reverse mode, the car will drive and turn in reverse.

Note that you could use the Steering Remote Control to control another NXT project that can respond in any way it wants to the Bluetooth messages described in the Programming section above, so you could assign other actions to the wheel/lever and the four available buttons if you want.


  • Pick another robot vehicle to control with the Steering Remote Control or design your own, and write a Bluetooth receiving control program for it to use.

  • Try modifying the SteerRemote program to make the remote control work better or differently for your own robot designs.  For example, you might want to change the NXT button behavior from "bumped" to "press and hold", or perhaps add some feedback on the display.

  • Can you use or modify the Steering Remote Control to control something that is not a vehicle?


Home     Projects     Help     Contacts


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