![]() |
No Robot Code!!!
Hi,
We are using a Vista machine with WindRiver to program the cRIO. When we install the updates (for WindRiver), the robot complains with "No Robot Code".:ahh: We re-imaged the cRIO with version 20 and it still does not work.:mad: We downloaded the code and rebooted the robot, but it still does not work. Does anyone else have the same problem? Any help will be appreciated. -Masoug |
Re: No Robot Code!!!
Masoug,
A team in Minnesota had the same problem last weekend. They claimed it was a Vista machine that was causing the problem but I think it was more the type of machine than the operating system. Have you been using this machine all through the season or is this something new? They switched to an XP machine and were able to download just fine. It had me and the NI rep scratching our heads. If it works use it in good health. |
Re: No Robot Code!!!
Install NetConsole (from the WPI update site) and post what is says. It could give a bit more insight about what the root problem is
|
Re: No Robot Code!!!
Generally the cause for sudden "No Robot Code" is a missing symbol. WindRiver is set up to link dynamic executables so it doesn't report missing symbol errors at build time. NetConsole will definitely help you determine whether this is the cause, as any missing symbols will be reported to the console when the cRIO attempts to run UserProgram.out. They will be name mangled (C++'s way of converting "foo::bar::baz(int a, int b, int c)" into a unique name of only upper/lowercase/numbers/underscores) but you should be able to decipher it pretty easily. I've sometimes found a full rebuild fixes it. A particularly common cause is missing symbols in the WPILib camera code.
|
Re: No Robot Code!!!
You can also "Undeploy", reboot the robot, then load using the Debug method (described in C++ Getting Started guide). When loading this way, any unresolved symbols will be reported to you. In addition, if the program is crashing, the debugger may help you figure out where and/or why.
|
Re: No Robot Code!!!
Hmmm, okay. I guess I will try it. Thanks!!! :)
-Masoug |
Re: No Robot Code!!!
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, Quote:
THANKS!!! -Masoug |
Re: No Robot Code!!!
are you sure Wind River is set to look at the right cRIO image?
also, is the "No App" switch set on the cRIO? |
Re: No Robot Code!!!
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
|
Re: No Robot Code!!!
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 |
Re: No Robot Code!!!
Just to make sure, do you have WPILib update 4.3?
|
Re: No Robot Code!!!
Quote:
Would Driver Station updates have anything to do with this? Quote:
I hope this doesn't sound too weird either, but what is "Serial CAN"? -Masoug |
Re: No Robot Code!!!
Quote:
Quote:
Quote:
If you install the DS software on another computer (just run the updater), does it work? Did you try the "No App" switch thing? |
Re: No Robot Code!!!
Quote:
4.2 caused this error if you were using the camera, hence the 4.3 update Try rebuilding: right click the project>Rebuild |
Re: No Robot Code!!!
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? 2) 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.) 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? 5) What does updating the cRIO image do? Would it help? Thank you very much, I appreciate your help! :] -Masoug |
Re: No Robot Code!!!
Quote:
Quote:
Quote:
Quote:
|
Re: No Robot Code!!!
I'll get the ones the above didn't answer
Quote:
Quote:
Quote:
|
Re: No Robot Code!!!
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 Quote:
Quote:
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 Quote:
5) What does updating the cRIO image do? Would it help? SOLVED Thanks to Radical Pi Quote:
1) Check "No App" switch. 2) Reformat/reimage cRIO. (v20) 3) Run WindRiver updates. (4.3) 4) Run driver station updates. 5) Load new code. Hope it works! :] Thank you guys, I learned a lot! -Masoug |
Re: No Robot Code!!!
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 Quote:
Quote:
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 Quote:
5) What does updating the cRIO image do? Would it help? SOLVED Thanks to Radical Pi Quote:
1) Check "No App" switch. 2) Reformat/reimage cRIO. (v20) 3) Run WindRiver updates. (4.3) 4) Run driver station updates. 5) Load new code. Hope it works! :] Thank you guys, I learned a lot! -Masoug |
Re: No Robot Code!!!
Quote:
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 Quote:
1) Check "No App" switch. 2) Reformat/reimage cRIO. (v20) 3) Run WindRiver updates. (4.3) 4) Run driver station updates. 5) restart driverstation, restart cRIO, restart WindRiver 6) rebuild (right click project, rebuild) 7) Load new code. Hope it works! :] |
Re: No Robot Code!!!
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. |
Re: No Robot Code!!!
Unfortunately, I followed the steps:
Quote:
Does anyone have any suggestions? I am becoming very interested in the "Reset" button on the cRIO. THANKS! -Masoug |
Re: No Robot Code!!!
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 |
Re: No Robot Code!!!
Quote:
|
Re: No Robot Code!!!
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; Quote:
and Quote:
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 |
Re: No Robot Code!!!
I don't know if you got NetConsole working (I never do), you can do a direct connection to the cRIO's serial port with a NULL modem cable to your PC using 9600,n,8,1 (make sure the console debug DIP switch is enabled accordingly). I found this extremely useful because then you will see all the boot messages from the cRIO. If there is any code loading problem, it will show on your terminal console. There was an excellent thread somewhere talking about different causes of "No Robot Code". I don't remember which forum. You may want to search for it. It contains a lot of useful information.
Good luck. |
Re: No Robot Code!!!
Quote:
|
Re: No Robot Code!!!
On the cRIO, there is a 9-pin D connector. That's a serial port. Right around it, there are 8-bit DIP switches. The 2nd position is labeled "Console Out". Make sure console out is enabled. Here is more info about Console out:
http://digital.ni.com/public.nsf/all...25701B004A77CD You need a COM port on your PC. Unfortunately, new laptops no longer have COM ports, you may need a desktop PC or you need to get a USB to Serial adapter such as this: http://www.newegg.com/Product/Produc...-067-_-Product You also need a Null modem cable (i.e. pin 2 and 3 on both ends are swapped). The one that came with the KOP is not a null modem cable. You may need to get a null modem cable such as this: http://www.newegg.com/Product/Produc...-034-_-Product You also need a terminal software. If you are running XP, you can use hyperterm that came with Windows. You need to set the communication protocol to 9600 baud, 8 data bit, no parity bit and 1 stop bit (i.e. 9600, n, 8, 1). Once you have this set up, you should see messages spitting out from the cRIO while it boots. If your code failed to load, there will be an error message telling you why. |
Re: No Robot Code!!!
Finally, we figured out what the problem was. The WindRiver working directory was just on the desktop, so when WindRiver regenerated the makefiles, all the paths (library paths) didn't correspond correctly, resulting in an undefined symbol error.
Thanks guys for helping me pinpoint the problem, so now we know what to look for when this happens. -Masoug |
| All times are GMT -5. The time now is 12:18. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi