Our new Cortex is now on order, since the upgrade coupon also included a discount for Easy C, I ordered that also. Last year we used Robot C. We used Easy C four years ago.
Those of you with experience, which software do you recommend using for the Cortex and why?
It seems like there are many past threads on this , so you might search for past opinions.
EasyC is good for new programmers with drag and drop interface, and fill in the form programming. Also many example programs.
EasyC with Simulink (BEST sponsor) and BEST libraries create the ability to create amazing programs (4 gear shift simulation) with simulation. There are some online video tutorials of how to use simulink with EasyC that look amazing. But I’ve not done it myself, and I’ve got little interest and patience for Labview type dragondropping wiring.
I already know C and type well, so I can’t stand it, even though I have to mentor students in it. It is difficult to extract the C code from the .ECP formats, so it is hard to cut and paste a code segment to the forums to get suggestions on it.
If feels like there is a larger user community to help with coding issues.
It looks like in version 4.0.1.1, there is probably a way to type C code directly by adding a new source file, and typing code directly there, which would mitigate some of the issues two bullets above.
RobotC is good for people who can type well, and know C already, so I would prefer it. But I haven’t used it yet for Cortex because most of my mentee population uses EasyC.
RobotC has many example programs. Also online video tutorials.
RobotC was built for LegoMindstorms, and adapted for Cortex, and some of the text descriptions are still lagging.
RobotC had some cool multi-threaded concepts (for Mindstorms), if those made it into the Cortex edition, that makes some forms of more complex programming easier.
Vexforum username Vamfun has a frame work for cyborg-aided driving he calls scripting, and it is in RobotC.
You left out the third alternate: Linux based Vex. MarkO has some posts on this, including how to build an orange programming cable (less the reset button). EasyC is already using some GCC (Gnu C compiler) for ARM, so all you need a Vex Cortex support library, (and all the other hw/sw/knowledge needed to use linux) and you can get an open source programming solution.
I think. I like this theory, but don’t have any experience with it.
In some ways, it is the same question as PC/MAC, with the same answer:
Do the same thing that your community does: what do all the people use around you, that you will be either helping, or asking for help?
In my case, its mostly EasyC.
EasyC has a full built-in text editor and you can both import and extract C code from easyC. EasyC employs the crawl, walk, run methodology of teaching students C. Drag some blocks, look how everything gets formatted, convert some functions from blocks to C. Then lastly write your own code in our editor or the one of your choice and imort the .c and .h files.
We also offer an excellent helpfile(if anyone reads it), a huge sample library, forum, email, and phone support.
We also spend weeks testing any changes we make to easyC so your not the beta tester on game day.
Thanks for the responses so far. I am really looking for performance issues, not ease of use or training.
Are there any performance reasons to use one software over the other? Is there anything with the Cortex versions that you can do with one and not the other?
The RobotC coversheet advertises “higher performance”, and multi-tasking.
I have both EC and RC available. If you have a simple test that you believes represents sw performance, I might be able to run it to provide numbers.
I estimate it would take a very complex program to show any performance differences. There is not much point in improving the looptime from 8ms to 3ms if the motors don’t update more quickly than 20ms.
In my day job, I see that ease of use and training issues closely relate to performance, in that you can gain performance by writing increasingly complex programs, which have a longer learning curve.
For example, RobotC multi-tasking is an ease of use feature. You can likely do similar things with EasyC, but you may have to write the infrastructure yourself, or copy it from someone who has.
The RobotC multi-tasking helps with user control, as well as helping tremendously in autonomous mode, we never tried it really until this year (our second year using RobotC) for all user control code, but it should speed up any delay by a small amount, larger if you create complex programs (like we “needed” (wanted) to this year).
Mainly, I prefer RobotC, faster downloading, able to write more complex things in code easier, and I simply dislike using graphical drag-and-drop programming languages. (However the newest version of EasyC seems to have a text-code editor, which is good.)
So basically, I would say for my personal needs, RobotC all the way.
easyC has an interrupt handler for “multitasking” like use (see PID sample). Also easyC runs nativity on the MCU and has no overhead of RobotC “OS” and there for should run faster.
RobotC multitasking is much simpler than EasyC’s, and I also prefer the UI to EasyC’s - it’s built solely around text coding rather than just a feature, as in EasyC.