No Robot Code!!!

Hmmm, okay. I guess I will try it. Thanks!!! :slight_smile:

-Masoug

It still does not work…
The executable is still there, but the DS is not recognizing it and cannot execute the program.
Plus, NetConsole doesn’t work either, nothing shows up on the NetConsole client even after changing the “ni-rt.ini” file and rebooting the robot, nothing comes up.
Is there a step we were supposed to do right after competition that involved this?

Is there a way to manually execute the “FRC_UserProgram.out” file?

And now WindRiver cannot connect to the cRIO,

Wed Apr 21 17:27:05 2010
Target name is 10.01.14.2
tgtsvr (VxWorks6x_10.01.14.2@VistaProX9): Wed Apr 21 17:27:05 2010
WTX Library version: 4.1.1.22
Tgtsvr core version: 4.1.1.17
Wind River Target Server: Win32 version
Connecting to the target agent …
… switching to WDB4 mode … … succeeded !
Loading plug-in for VxWorks… succeeded.
Checking License… OK
VxWorks plugin version: 4.1.1.11
Attaching elf OMF reader for PPC CPU family… succeeded.

Differences for module “vxWorks” segment’s address 0x100000:
Offset Target Value Host Value
0x152 0x9d 0x62
0x153 0xd0 0x5c
0x49d 0x09 0x0c
0x49e 0xaf 0xc8
Stopping dump. Other errors might exist.

Error: The systems running on the target and loaded into the target server memory are different.

Either wrong core file is selected on the host or text section is corrupted on target side.
Error during target server core initialization
Target Server will exit

How does this entire system work?

THANKS!!!

-Masoug

are you sure Wind River is set to look at the right cRIO image?

also, is the “No App” switch set on the cRIO?

Yes, I double checked that WindRiver is downloading the right code. I hope I don’t sound too wierd saying this, but what is the no app switch? THANKS!!!-Masoug

It’s one of the switches on the cRIO (next to the Serial out, no FPGA, etc). When set, it prevents the user code from running. Often used because many LabVIEW team’s code starves the downloader of CPU time. I believe the edge nearest the end of the cRIO being down indicates the off position, but try it both ways to be sure

I didn’t mean the .out file that is your user code. If Wind River doesn’t have a local copy of the current cRIO image the serial port communications will fail. I don’t know the exact instructions of how to point wind river to the right file, but I think they were in last year’s control system manual.

Also, are you using serial CAN? If you have the Console Out switch set on it will take up the serial port, causing the CAN plugin to fail and possibly mess up all your other code.

With NetConsole, did you manually type in the IP of the cRIO into the box? I’ve had trouble getting it to auto-connect and I just type it in every time

Just to make sure, do you have WPILib update 4.3?

Yes, rather I think THAT was the problem to this “No Robot Code” thing…

Would Driver Station updates have anything to do with this?

With NetConsole, did you manually type in the IP of the cRIO into the box? I’ve had trouble getting it to auto-connect and I just type it in every time

For the NetConsole thing, NOTHING came up, auto-connect or not.

I hope this doesn’t sound too weird either, but what is “Serial CAN”?

-Masoug

Do you have the 2nd update?

That means either you didn’t install it correctly, or something on the cRIO is crashing it

If you don’t know what it is you probably don’t have it. It’s the version of the CAN motor control network that runs through a black jaguar

If you install the DS software on another computer (just run the updater), does it work?

Did you try the “No App” switch thing?

it could be (although if you are not using the camera or DriverStationLCD, having 4.1, 4.2 and 4.3 are the same)

4.2 caused this error if you were using the camera, hence the 4.3 update

Try rebuilding:
right click the project>Rebuild

Okay, thanks for all the wonderful suggestions and comments, but there is too much going on. Lets answer each question one by one… :]

1) What are the Driver stations updates for? What do they do?

  1. What are the possible ways that trigger a “No Robot Code” error?
    (I am pretty sure that we did not enable the “No App” switch, lets assume we didn’t.)
  2. I have installed NetConsole on my computer (with LabView Runtime) and enabled the “NetConsole.out” in “ni-rt.ini” via FTP. I rebooted the robot but it still doesn’t work… (auto-connect or not) Has anyone have this problem before?
  3. What is supposed to come up upon booting (of cRIO) on the NetConsole?
  4. What does updating the cRIO image do? Would it help?

Thank you very much, I appreciate your help! :]

-Masoug

They update the driver station software. you should have it if you passed inspection at the competitions.

There are many ways, but the two main ones are: no program on the robot, or undefined symbols (linker error)

Updates the libraries the cRIO has. YES IT WOULD HELP (assuming it is not v20 already)

I’ll get the ones the above didn’t answer

haven’t really heard of this happening. Most likely there is some error on the cRIO that is blocking it from sending properly

NetConsole will show a nice long list of StartupLibs being initialized, talking about FRC_NetworkCommunication at the end, as well as other errors it may see (some important, some not), and some other small messages depending on what is in your code (camera errors come to mind. No consequence on the actual robot)

If you update the image (even if you are at v20) it will do a complete reformat of the cRIO and wipe everything on it. That’s probably a good idea right now since nothing seems to work. Be sure to remove any CAN libraries as they block updates

Thanks for all the wonderful suggestions and comments.
Here’s my list so far…

1) What are the Driver stations updates for? What do they do? SOLVED
Thanks to byteit101

2) What are the possible ways that trigger a “No Robot Code” error?

Hmmm… Thanks, but what is a symbol? The linker wasn’t able to successfully link the dynamic libraries correctly? (Incorrect correspondence between in-program link and the actual link library?)

3) I have installed NetConsole on my computer (with LabView Runtime) and enabled the “NetConsole.out” in “ni-rt.ini” via FTP. I rebooted the robot but it still doesn’t work… (auto-connect or not) Has anyone have this problem before?

4) What is supposed to come up upon booting (of cRIO) on the NetConsole? SOLVED
Thanks to Radical Pi

5) What does updating the cRIO image do? Would it help? SOLVED
Thanks to **Radical Pi
**

So apparently, this is my to-do list:

  1. Check “No App” switch.
  2. Reformat/reimage cRIO. (v20)
  3. Run WindRiver updates. (4.3)](http://first.wpi.edu/FRC/frccupdates.html)
  4. Run driver station updates.
  5. Load new code. Hope it works! :]

Thank you guys, I learned a lot!

-Masoug

Thanks for all the wonderful suggestions and comments.
Here’s my list so far…

1) What are the Driver stations updates for? What do they do? SOLVED
Thanks to byteit101

2) What are the possible ways that trigger a “No Robot Code” error?

Hmmm… Thanks, but what is a symbol? The linker wasn’t able to successfully link the dynamic libraries correctly? (Incorrect correspondence between in-program link and the actual link library?)

3) I have installed NetConsole on my computer (with LabView Runtime) and enabled the “NetConsole.out” in “ni-rt.ini” via FTP. I rebooted the robot but it still doesn’t work… (auto-connect or not) Has anyone have this problem before?

4) What is supposed to come up upon booting (of cRIO) on the NetConsole? SOLVED
Thanks to Radical Pi

5) What does updating the cRIO image do? Would it help? SOLVED
Thanks to **Radical Pi
**

So apparently, this is my to-do list:

  1. Check “No App” switch.
  2. Reformat/reimage cRIO. (v20)
  3. Run WindRiver updates. (4.3)](http://first.wpi.edu/FRC/frccupdates.html)
  4. Run driver station updates.
  5. Load new code. Hope it works! :]

Thank you guys, I learned a lot!

-Masoug

WPILib is compiled and on the robot. It exposes its functions, so you can compile your program with the WPILib headers on your computer, copy the program to the cRIO, and then the linker will move the references from the WPILib headers to the actual WPILib functions. If the linker cannot find the function you are calling, it will throw a undefined symbol error

If you call a old function from an old version of WPILib (assuming you have the right headers), it will compile fine, but linking will throw lots of symbol errors.

this can also be an artifact of a c++ feature: every cpp file is compiled by itself, and then linked together at the end, so when you change a file, only the changed file has to be recompiled. sometimes when you update, a file is not recompiled with the new changes, so it can also throw the error
the best way to twart this is to recompile the project (solved all of our symbol errors this year): right click the project and click rebuild

I would change that to:

  1. Check “No App” switch.
  2. Reformat/reimage cRIO. (v20)
  3. Run WindRiver updates. (4.3)](http://first.wpi.edu/FRC/frccupdates.html)
  4. Run driver station updates.
    **5) restart driverstation, restart cRIO, restart WindRiver
  5. rebuild (right click project, rebuild)**
  6. Load new code. Hope it works! :]

masoug et al,
A few of these issues have been plaguing teams and I saw a few up close at Champs that we were able to observe and rectify. Frayed/splayed wiring at the PD or at the Crio end of the power supply cable causes very intermittent breaks in the power supply line. On several robots, this eventually led to a no code or other error as the noise produced by the wiring eventually corrupted the Crio. Teams should know that a properly terminated power cable has no exposed copper and cannot be pulled out with a tug to each of the wires at both ends.

Unfortunately, I followed the steps:

  1. Check “No App” switch.
  2. Reformat/reimage cRIO. (v20)
  3. Run WindRiver updates. (4.3)](http://first.wpi.edu/FRC/frccupdates.html)
  4. Run driver station updates.
    **5) restart driverstation, restart cRIO, restart WindRiver
  5. rebuild (right click project, rebuild)**
  6. Load new code. Hope it works! :]

but it still did not work.

Does anyone have any suggestions? I am becoming very interested in the “Reset” button on the cRIO.

THANKS!

-Masoug

The reset button only forces a reboot as far as I know (just like the reset button on a desktop computer)

So you’ve done a full reformat of the cRIO? Have you tried a direct connection to a non-classmate computer running the DS software? You can load it by running the latest updater on any computer. If it still doesn’t work without using the classmate, then you most likely have a defective cRIO

Yep it just reboots the cRIO, we used it extensively. It is nice when the software crashes and you cannot use the DS reboot, and when you need to reboot fast, but don’t have the DS up.

What I am thinking happened the cRIO was damaged in some way (shaking? shock?) that somehow disturbed its system. Although the code works at first, when we update it the cRIO has an error we cannot detect.

As for this;

Yes we used the Imaging tool to load v20 onto the cRIO.

and

We haven’t tried that yet, but I think that is not the problem.
I believe that the cRIO has a configuration error that we cannot see, (I wish there is an SSH server on there) OR it is physically damaged.

THANKS!!!

-Masoug