FunkNXT v0.9.4

Mario Patino - cybernesto@gmail.com

This little midlet provides a comfortable way to control your robots using your mobile phone. It displays the sensor values and allows you to control your robot using the directional pad and/or numeric pad. Unlike the official mobile application, this jar file should run correctly on most phones without any modification.

1. Requirements
2. Installation
3. Setup
4. Usage
5. Troubleshooting
6. Version History
7. Disclaimer


1. Requirements
 - A mobile phone with bluetooth supporting MIDP2.0 and JSR-82
 - 50KB of free memory on your phone
 - A computer with the proper software to transfer the program to the phone
 - A peripheral to establish communication between your phone and your computer (Bluetooth, IR, Cable)


2. Installation
Please refer to the user manual of your mobile phone to find out how to install applications. Usually this implies transferring the .jar file using a cable or a wireless link and copying to a proper location in the file system. 
Some brands support only OTA (over the air) transfers, which means you should load the .jar file using the wap/internet browser in the phone. In this case type the following URL 
http://funknxt.homepage.t-online.de/funknxt.jar
and download the file. Depending on your contract and your provider additional costs may arise for the data transfered.


3. Setup
Make sure bluetooth on your phone is on. Please refer to your user manual to activate it if it isn't. 
This program allows you to control a robot with differential drive. If you want to do this the left motor should be connected to the output B and the right motor to the output C.
The sensors should be connected as follows:
1 - Touch Sensor
2 - Sound Sensor
3 - Light Sensor
4 - Ultrasonic
This is the same configuration required to use the integrated NXT Program routines.
Locate the application in your file system and run it. A splash screen is shown for 2 seconds then a menu will appear. There are three options:
 - Connect
 - Setup
 - About
To quit the program an "Exit" softkey was defined. Depending on your phone this will be assigned to a button under your screen or to an item in an extra menu. In case you cannot find this option you can always terminate the program pressing the "End Call" button.

The Setup screen shows the following options:

Power
You can drag the slider to set the motor power between 0 and 100, where 100 means full power. This setting applies to every motor in your robot.

Motor Control
There are two motor control modes. In the default mode "Single" you can control each motor separately. If your robot features a differential drive you can control two motors simultaneously using "Differential". If your robot goes backwards when you press UP using this mode, then activate the "Inverted" option. Remember to connect the left and right motor to the outputs B and C respectively.

Light Sensor Mode
You can select if you want the LED of the light sensor on (active) or off (passive).


4. Usage
Turn your robot on. Make sure Bluetooth is on and that no connection is active between your robot and any other device. After selecting the setup that best suits your needs go back to the main menu and select connect. The program will start looking for a NXT Brick and establish a connection. If you have more than one robot nearby, please keep the one you don't want to control off while the software is searching. After the connection is established you can turn it back on. The program can control only one robot at once.
After the connection has been established a screen shows the sensor values underneath its icons. Make sure you connected the sensors as described in the Setup.
To control the robot use the game controls. 
Motor A is controlled by the fire button A and fire button B, forwards and backwards respectively.

In "Single" control mode:
- Motor B is controlled using the UP and DOWN buttons. 
- Motor C is controlled using the LEFT and RIGHT buttons.

In "Differential" control mode:
- The robot goes forward and backward pressing UP and DOWN.
- The robot turns left and right pressing LEFT or RIGHT.

The directional pad might be replaced by the keys 4, 6, 2 and 8 for LEFT, RIGHT, UP, and DOWN respectively. The FIRE A and B buttons can be mapped to the keys 7 and 9. This depends on the manufacturer though. Please refer to the user manual of your phone to find out which are the game keys.


5. Troubleshooting
 - Connect throws an error message 
   make sure that your mobile phone supports JSR-82 and that Bluetooth is on. 
   If the problem persists try pairing your phone with the NXT brick before using FunkNXT. Once the devices are paired once, FunkNXT will work correctly.

 - No NXT found message is displayed 
   make sure the NXT Brick is ON and Bluetooth is active.
 
 - The robot goes backwards while pressing UP
   you should use "Inverted" option instead. 

 - The robot turns left while pressing RIGHT 
   reverse the connection of the B and C outputs.


6. Version history
v.0.9.4:
Added the "Inverted" option to allow inverted single motor control too.
Minor modifications to improve compatibility with LG phones.

v.0.9.3: 
Added support for Sony Ericsson phones. Thanks to Denis Stancer for helping me figure this out.

v.0.9.2: 
Changed the "connecting to" dialog to remain on screen until connection is complete. 

v.0.9.1: 
first beta release.
 


7. Disclaimer
The software is provided as-is without any warranty of any kind. The entire risk arising out the use or performance of the software remains with you. To the maximum extent permitted by applicable law, in no event shall the LEGO Group of Companies (including LEGO Systems A/S) and its suppliers and licensors, be liable for any damages arising out of the use or inability to use the software. 
LEGO MINDSTORMS and the LEGO NXT logo is a trademark of the LEGO Group, which doesn't endorse or support this software. Bluetooth is a trademark owned by Bluetooth SIG, Inc.

