crio looses comm and code after V20 upgrade.

Our Team needs urgent help. We were running at the competition yesterday. After inspection we were told we needed cRio V20. We were running V19, Wind River C++, with CanJaguars using the serial buss. It took a while to learn to uninstall the ftp fixes before we could load cRio V20. (2.5 hours to find the person who knew). We also redid the ftp fixes after the update and I’m positive we selected WindRiverC++. Now our code bombs out. Had the Cans checked and they are running the correct version. I only joined the team 2 weeks ago, where I helped install the ftp fixes. I believe that the Wind River project that we are using was already started. (meaning the CANJaguar.cpp was already in the project folder). Don’t know how to tell which version is being used?

We believe we were running V20 in the lab on Monday. (1 motor, 1 can, id2). Using the canJaguars. But we started on Monday with a SimpleRobot project. Is it possible that the original code we were using yesterday morning was started prior to an update such that it ran with V19 and not V20?

We had run V19 all morning, made it to the field twice, and even scored. So its dissapointing we lost from 3-8 PM trying to update firmware when the robot was running. Especially as we had much more to check out.

Our initial error was a watch dog time out. We upped it to 500 msec and it still stops. But Diag on the console showed canJaguar errors where the canJaguar Wind River software version was incompatible. Online show c++ for V19 and V20 to be the same?

Our robot uses 7 cans. IDs 3-9. I’m at a loss for what to try next and the pits open at 8:00 AM EST.

Thanks Team 211 MaK

Checked CANJaguar.cpp, CANJaguar.h, can_proto.h, and JaguarCANDriver.h between the two workspaces using CMD shell and COMP. They all match. Note first workspace is the one used on the robot that was running the seven cans using Crio V19 and second workspace was used in the lab and was running one Can with a second brand new Crio that was running v20.

I don’t think remaking our project is going to work. Please send Team 211 Mak Help…

Our development computer has WorkbenchUpdate20100217.exe on the desktop so we are positive that the latest WindRiver cpp code has been installed. Don’t know how to test this without rerunning the exe?

WorkbenchUpdate20100217.exe Dated 2/18/2010 on the Desktop. This should have been when we updated all of the code. before my time though. The guys at USFirst Robotics Competition thought that our cRio update must have failed and we didn’t notice as we had the CAN mods made to the files. But I don’t recall trying to update the cRio after the ftp stuff, so maybe we had other files loaded? Doesn’t make sense as the update worked last evening and all we did was delete the BlackJaguarPluggin and mod the ini.

C:\WindRiver\WPILib
3.96 MB (4,161,889 bytes)
3.97 MB (4,165,632 bytes) on disk.

Searching for CANJaguar under C:\WindRiver\ turns up 37 files, all under workspaces. Don’t know where the originals are being pulled in from?

5:53 AM pits open at 8:00 AM and we don’t have a solution yet.

We also have BlackJaguar-89.bin on the desktop of the development PC so I assume that is what the techs at the show found when they hooked up the serial port to the cans and told me that they all did have the latest version.

A huge thank you to Jeff from Penfield Team 1511. Jeff stopped by first thing Friday morning as the pits opened at 8:00 AM and helped us out HUGE.

1st) Error messages in the Diagnostic screen on the console are not necessarily accurate. Our error that the CANJaguar Software on the WindRiver compiler was incompatible was not the problem.

2nd) We did install and run a simpler program that talked to one Can Jaguar and did not stop. So we knew that the WindRiver code was OK. (Plus we had checked all our versions per above).

3rd) Issues with WindRiver include how to load a SimpleRobot program. The instructions I’ve found on the Web did not work. SimpleRobot does not show up under New Wizards so I don’t know what to do.

4th) We had minor mods in the code, but we ended up calling an object function prior to initializing the pointer. Jeff showed us how to single step through until we failed at the line where the program did not respond. Moved the getInstance call and were up and running.

5th) Team 211 thanks Jeff from Penfield Team 1511. If you see Jeff give him a high five for us :cool: We also thank all the others who came to see if we were still having trouble, plus the help from Lead Robot Inspectors Jonathan and Rob. :slight_smile:

You’re welcome - it was my pleasure.

1st) Error messages in the Diagnostic screen on the console are not necessarily accurate. Our error that the CANJaguar Software on the WindRiver compiler was incompatible was not the problem.

More info on this for others who might be seeing this… If you receive errors along the lines of “the cRIO version is incompatible with the software” (sorry, do not have the exact message) that is coming out of a line in the CANJaguar C++ driver, know that it has nothing to do with your cRIO per se – the error message content itself is misleading in this sense.

Rather, this error message is the result of the CANJaguar C++ driver looking at the firmware version of the Jaguar itself and noticing a mismatch from what it would like. Further, it appears that with v89 firmware and an up to date CANJaguar driver, there is a bug causing false negatives. I haven’t had the resources & time yet to see if the bug is in the firmware or the driver. The driver should operate normally despite these messages which warn to the contrary.

We also thank all the others who came to see if we were still having trouble, plus the help from Lead Robot Inspectors Jonathan and Rob. :slight_smile:

I’d like to thank Lead Inspector Rob as well; without his dedication to tracking down problems when they arose and connecting teams with others who could help, I know many teams would have had a significantly less amount of time and fun on the playing field.