[FTC]: FCS and autonomous

Got another question. We have the FCS up and running and have tried just one robot to see if all works. I have shut off autonomous to try it, It works well in Teleop. So I wanted to see if we could get the autonomous to work with FCS.

Do we need to have two different programs loaded on the NXT in order to use autonomous with the FCS. Last year we used two different programs, an autonomous and a teleop. When got to the field we started the autonomous program on the NXT and then waited for the field system to start the bots.

What is the process this year, I looked through the documentation for the FCS, but alittle unclear


Basically, it works the same way. When you get to the field, you will turn on your robot. It should connect to the FCS and you will start your autonomous. The FCS will then start the match.

To expand on what sii said, yes, you will use two programs, an autonomous and a teleop, you will set the robot on the field, start your auto, the fcs enables auto, then your program chooser automatically switches it to teleop when the time comes.

I kind of thought so too, but it seems to me last year we loaded two programs onto the NXT before the competition. and then when we started the matches we could call both programs in the FCS or FMS. This year I see no place to call both programs?

clairfication from you point would be great


You can call teleop (well, you have to call teleop) using the program chooser, but auto must be started using the NXT brick before pressing enable, but after connecting to the FCS (starting it before connection seems to turn off the program, but only sometimes, it’s picky)

Yes you will have two (or more depending on how you work your multiple autonomous options) routines on your NXT (three if you count samostat). Your team will start your autonomous routine when you get to the field. The Samantha FCS will enable the robot at the beginning of autonomous. At the end of autonomous, it will stop the running program and start the telop routing you have specified on the NXT. If I remember correctly, the name is specified in FTCCONFIG.TXT (don’t quote me on that file name). This file is created either by the joystick control window in RobotC or by running the program chooser application (the same as last year). Basically it works the same as last year. Don’t forget, in addition to these file, you can include a graphic file “team.gif” that the Samantha FCS can retrieve from the NXT to display on the timer display during the competition.

Ok beginning to make some sense. In the program chooser on the NXT, is what I think you are referring to when you say program chooser. So I can choose a teleop program on the NXT, and then go to the autonomous program on the NXT and run it. So the chooser on the NXT can keep track of the program you choose for the teleop and also run the autonomous program?
THe FCS then just calls the two programs you choose>

Is that correct?

You are getting closer…

The program chooser application asks you to select your autonomous program. It then creates a text file on the NXT with that program name. The FCS is able to read that file and uses it to determine what teleop program to run. Your team will start the autonomous when you get to the field. The FCS does not start the autonomous program, it only sends the packets that tell the software template if the robot is enabled or not and what the joystick commands are.

Really, it is exactly the same as in previous years.

Actually, you use the program chooser application to select the teleop… which is put into the file on the NXT…

But, yes, it is the same as previous years.

NalaTI, thanks for the correction. Thats what I get for typing in a hurry when I should be loading robots in the trailer for a demonstration the next day.

I’m new to FTC and I’m looking for a clear cut set of steps or sequence in regards to autonomous. I’d like to list out what “I THINK” would happen in a competition and if you would, let me know where I’m offbase.


  1. Prior to a competition, for simplicity, I have a single Autonoums (AutoX) program and a single Tele program (TeleX). Our NXT will have firmware v1.28 on it with three programs: Program_Chooser, AutoX and TeleX. We have two other VI’s (Samostat.vi & Comm_Status.vi) as well but there are not part of the question I have. Lastly, we have a team.gif file to indicate our team logo.

  2. Also, prior to a competition, we’ve setup our Samantha unit to be using the same wireless network as the FCS comptuer mentioned below. Life is good in regards to the Samantha unit.

  3. Using Program_Chooser, we select TeleX for our teleoperated program

  4. FCS: There is a single computer with four game controllers and it’s running FCS. That computer is either directly wired to a router or uses wireless for connecting to the same network. We are just one team of four. The person running the competition correctly assigns the four teams via selecting the corresponding Samantha unit (I assume each team will run SamoStat.vi on the NXT to tell the person our IP address).

  5. Our robot is put in place on the competition mat.

  6. NOW… this is my question… do I instruct our student to select (on the NXT itself) the AutoX program for our autonomous and hit the orange button to run it? Theoretically, our robot is all setup in regards to the FCS.

My problem is that I don’t know how to select a program to run as autonomous without selecting it on the NXT itself. When I do that - it runs (okay, that’s expected). But at competition, how is it that I select the autonoumous and yet the FCS kicks it off?

My vision is that there are four team’s all with their autonomous program selected and at the count of three - they all press the button on their NXT at the same time. But… I’m thinking that’s wrong and that “SOMETHING” on the FCS program will kick off the autonomous program.

Comments/suggestions on how to test this out?

-Ted Dressel, FTC Programming Mentor

So far you have a pretty good handle on this. A couple clarifications…

In Step 4, the computer will have 8 game controllers (2 per team) and the computer is supposed to be wired directly to the router. Also, all the FCS operator needs is your team number, it will then be able to determine the IP address and initiate the connection.

In Step 6, yes your students start execution on the NXT of the autonomous program. The program will run waiting for a packet from the FCS to tell them that they are enabled. When the FCS starts the match, it will send a packet to all the robots enabling the autonomous routines (ie they will exit their wait loop). At the end of autonomous, the FCS will halt the autonomous routine and start the Teleop. The Teleop routine will sit in its wait loop until the FCS sends the enable packet at the begining of the Teleop phase of the match. All throughout the match, the FCS will be sending packets with all the joystick commands.


One other item that may have been missed. Your autonomous program needs to integrated into the autonomous template that is provided (which you can find under sample programs (robotc). You will see that this template has a “wait for start” function.

When you start your autonomous program it will wait at this function until the FCS system starts all the programs.