Hi Chief Delphi,
So my team has run into a little problem. For some reason when we attempt to deploy code, about 90% of the time an error comes up at a completely random time in deployment that says:
“Error: waiting for real-time target CRIO to respond”
We don’t know what is happening to cause this or how to fix it.
Sometimes it happens in the beginning of deployment, sometimes not util the end.
Has anyone run into this problem before? If so how did you fix it?
Hello all,
I’m from the same team and as an update, when we try to connect we get error 44002 about 50 times: Warning <Code> 44002 occurred at Ping Results: link-bad, DS radio(.4)-GOOD, robot radio(.1)-bad, cRIO(.2)-bad, FMS-bad Driver Station. It is something like this each time, except the radio flashes between GOOD and bad every other time. Both computers we have tried have windows firewall off.
We’ve been regularly losing contact with the cRIO during code deployment for weeks. Our lead programmer just discovered that having it in Test mode when trying to load new code was a reliable way to have it fail, and after he started making sure it was in Teleop it hasn’t broken again. I don’t know what is really going on, but I do know that Test mode pegs the CPU usage at 100%.
The “DS radio(.4)-GOOD” part is highly peculiar. It’s not typical to have anything respond at the 10.23.37.4 IP address. Besides the D-Link, do you have another wireless router in the network?
“DS Radio” is a legacy indicator used to indicate the ping status to an external radio on the DS side at 10.XX.YY.4.
So, a couple of things I can think of… Does the 44002 warning change between
Warning <Code> 44002 occurred at Ping Results: link-bad, DS radio(.4)-GOOD, robot radio(.1)-bad, cRIO(.2)-bad, FMS-bad Driver Station.
and anything else?
Secondly, and you might just want to do this anyways, but have you tried this? If you hook up your router to that, it should set the IP correctly, if that’s the issue.
Also, something else to try: hook up directly to the cRIO and deploy to that, instead of going through the router, just to see if that works, or if you still lose connection.
That’s all I can think of right now… Hope that helps.
I suspect that this is caused not by CPU load, but because the cRIO is pumping out so many error messages. Each time it does so, it causes a number of thread transitions. We discovered late last year that during those thread transitions, it is possible for the cRIO code to drop the deployment protocol.
If your Diagnostics tab is streaming errors, try another mode, tele, disable, etc. Then try to deploy.
If Test is causing lots of errors, that would probably be because some I/O was not opened correctly. Test mode reads every single I/O value and displays it, so if there was a rarely used or not used Open call, it will complain about it anyway.
We managed to find our problem. Some of our refnum names were left blank. we fixed it and it deploys now.
Thank you all for your help.
EDIT:
Never mind. It still isn’t working. We always have it deployed when the driver station is in teleop, not test. This happens whether it is attached to the radio or CRIO.
The radio signal flashes between good and bad. Also when we try to deploy code without rebooting the crio since the last attempt we get this error: Access denied: Another project is using this target. You must disconnect the existing project from the target or restart the target before establishing a new connection. Note: The existing project may be running on a different host computer.
So far, connecting directly to the CRIO actually has been working, so we’re just going off of that right now. The bridge config utility isn’t working on our radio. It says login failed.
If deploying directly through the cRIO is working, then I’m pretty sure it’s a router issue.
I’d say you should do a factory reset of the router, then go through the Bridge Configuration tool again. If you’re using the router in the KoP, reset it by holding down the reset button in the back of the router for ~10 seconds.
We have tried the reset button, however it is not working. Also, connecting to the CRIO directly failed yesterday. Towards the end of deploy, when it’s mostly through our global variables library, it stops.
When it stops, there is typically a dialog on the screen explaining what succeeded and what failed. Can you copy/paste or take a screenshot so that we can help interpret what failed?
The only response we get is when we are trying to connect, it will say Waiting for response from Real time Target (I forget the exact wording). When we reimage the Crio, or at the beginning of meetings, is when it seems to work the most often. Our head mentor (we don’t have any actual programming mentors) said that maybe our code bugs up the CRIO image when it deploys? Also, though our electrical team said it should be irrelevant, the analog card(I think. It’s whatever shows the voltage) is not in the CRIO.
The HW team is correct. The DS voltage will be incorrect, and you will need the module and breakout and jumper in order to pass inspection, but you don’t need it right now.
My suspicion is that you have a great deal of Diagnostic errors being reported at the DS. If you can change the mode of the robot at the DS, you may find that one of the modes produces less errors and will have a better shot of deploying. If you fix the code issues that are causing the errors, the deploy issue will go away.
Also, you do not need to reimage the cRIO – almost ever. Teams do this all the time, and I’m not sure why. The file system is very robust, and if not corrupt, why do it? You may sometimes need to turn on a setting such as the no-app switch or change the CAN or other settings.
Well the reimaging of the CRIO seemed to help. We just tried deploying a default robot project, and the CRIO was still not accepting it. Then we switched to our practice bot, with a different CRIO and a different ethernet and tried deploying our code, which didn’t work, and then tried deploying a default project onto that, and that too did not work. They both were stuck in the same “waiting for the target (RT CompactRIO target) to respond.”
Reimaging the cRIO works (in a brute force kind of way), because as a side effect it wipes out your user code that is responsible for the problem.
The No App switch (a DIP switch on the 8-slot or for the 4-slot virtual through the cRIO Imaging Tool) disables your user code when the cRIO is reset and is quicker.
Exactly. And once the errors on the diagnostic screen are fixed, neither will be necessary. Until they are fixed, don’t Run as Startup, use the run button instead.
Alright so I’m getting confused now. What is the diagnostics screen? The part of the driver station? Because I’m not sure how it may be in our code, seeing as the default robot project didn’t deploy either.
It’s not the code you are deploying. It’s the code already running on the cRIO from the previous deploy.
The Diagnostics tab on the Driver Station has a message window.
There are a lot of warnings that can obscure the real error messages, so copying and pasting all of them into a text file makes them a lot easier to look through.
You can also look at the Driver Station log from the Charts tab, in the lower right is “Launch Viewer.”
You have to pick the latest log or two by date, then look at the Event List tab for error messages.