I’ve been using PROS to program my cortex with a USB cable directly from the laptop for a couple weeks now. The programming module just arrived in the mail, so I’ve been trying to get wireless uploading to work. I’m having two issues:
My code has various puts in it so I can track progress in the terminal window. This worked well for direct USB uploading. However, when I upload wirelessly, it prints a single ‘y’ character on the terminal instead of the numerous puts commands throughout my code. This happens consistently, with one exception. For whatever reason, one time it did print 3 of the 6 puts messages in my code. Here’s a snapshot of the terminal window. Each y was generated by an upload attempt.
yyyyyyyyyyyyyyarm test - up, down
we’re all done
done auto mode
When first transitioning from default code (loaded with VEXnet Firmware Upgrade Utility), I’m struggling to get the cortex to reliably run code I upload.
If I power toggle the cortex, on power up it runs the code I last uploaded. It will also consistently run the first program I upload after a power toggle. Subsequent uploads fail to run. No errors appear on the Console, Problems or Terminal window. The Terminal window produces a ‘y’ character for both successful and unsuccessful upload and execution.
As I repeat this process, the cortex eventually corrects itself, and reliably loads code.
The upload seems to be working, since the code that runs just after I power toggle is the same code that had uploaded prior that for whatever reason didn’t execute. I change the number of motor on/off sequences each time so I can tell which version was executed.
I’ve tried pressing the PROGRAM button on the programming module before and during the upload without success. I had also upgraded the cortex and joystick firmware 2 weeks ago. They’re running the following firmware:
One issue with the wireless connection is that you will not receive any characters back from the cortex until you have sent it some (at least one). This is a master firmware feature and not an issue with PROS. With VEXnet 2.0 you also need to periodically send something back to the cortex or the wireless link will timeout after 15 seconds and printf etc. will stop working again.
My PROSe is:
Build id: M20120914-1800
This should have been the latest, since I installed it in the last month. I just did a “Check for Updates” on PROSe and it found the following to update:
C/C++ Development Tools 126.96.36.199302132326
C/C++ GCC Cross Compiler Support 188.8.131.52302132326
Eclipse EGit 184.108.40.206212191850-r
Eclipse Platform 4.2.2.M20130204-1200
I’m using a Windows XP machine.
Thanks for the tips on keeping the connection active. I’ll start with a periodic motorSet(X,0) for an unused motor X, unless you can suggest something else (some form of status check would be good).
Ok, what you are looking at here are the versions of Eclipse and some of the installed tools.
Most of the “PROS” application, almost everything you interact with, the GUI etc. is part of an application called Eclipse. Eclipse is an open source workspace that can be extended by the addition of plugins, many companies use Eclipse as the basis of their development environments, for example, code composer from Texas Instruments (used for development on micro-controllers such as the MSP430) uses eclipse. The PROS team customized eclipse by the addition of three plugins and a new splash screen (may be one or two other small things as well), they then packaged this up along with the necessary run time support (ie. Java runtime and the ARM compiler for the STM32 used in the cortex) to make installation easy for students.
When you do a “check for updates” you are checking for updates to the installed components of eclipse. It will check for updates to the plugins by using a URL that’s part of the plugin metadata, unfortunately, the PROS team does not currently have an update site for their plugins which is why we have to download and install the entire application when they release a new version (I think they are addressing this problem).
You need to poll from the PC to keep the serial communications alive when using Wifi.
On you original questions.
You won’t see output from your code in the terminal window until you send a couple of characters (just hit CR) and allow the VEXnet 2.0 wireless connection time to switch channels (VEXnet 2.0 uses three different ranges of channels depending on whether the cortex is being used in “pit” mode, “competition” mode or “download/debug” mode.
I will check this next weekend as I didn’t test PROS much with the new VEXnet keys and I gave away my programming cable at worlds and have only just ordered a new one.