Issues with 3.21 firmware

I am using a VEX Cortex Microcontroller, a fully-licensed version of EasyC v4, and a USB-to-USB cable. We do not have joysticks.

We just recently upgraded to the latest version of EasyC (, which required updating our Cortexs with the latest master firmware (Master Code Version 3.21).

We are now unable to program our Cortexs. Downloading works fine, and the program runs fine, as long as we’re plugged in to our computer via the USB-to-USB. As soon as we take them off the computer connection and turn them on, our code does not run. The device appears to just search for a joystick.

How do we program the Cortexs with the new firmware (which exposes the Cortexs as USB CDC devices) without a joystick?

The IFI and easyC default code does not work. We have tried this on two separate microcontrollers. ROBOTC also does not work.

As long as you were not using a competition template the code on the cortex should start up. There was some discussion of this recently starting with this post. Don’t use the “3.21_worlds” version that’s posted, just the standard 3.21, the worlds version was specifically for reliability at competition where it is assumed everyone has a joystick.

How do I make sure I’m using the right firmware? I’m using the VeXNET Fimrware Upgrade utility from VeX. I also tried the one from Easy C.

Can someone link me to the correct firmware?

The 3.21 included with EasyC and ROBOTC should be the standard version. As long as you did not upgrade to the firmware referenced here you should be good to go. I only mention it as it would be one possible cause of your problem.

I did not update with that firmware.

Best practices for posting issues of this type:

  • Say what version you used; (3.21) great!, you did this (except in thread title). Its so much better than “latest version” a year from now.
  • Zip your project and post your code, so other people can try it.

Other ideas:

  • You are using “standalone(non-competition) autonomous(no joystick)” project type, right?
  • Have you tried the paper-clip reset in the cortex pinhole, then reload cortex firmware?

Default code.




Let me try and duplicate this tonight, I rarely operate in the way you describe so I cannot say definitively what should happen, however, as far as I know it should work.


Sorry for the trouble folks, this just turned out to be user error on my end.

And I just finished the tests and was going to post.

I used the following simple code in ROBOTC.

#pragma config(UART_Usage, UART1, VEX_2x16_LCD, baudRate19200, IOPins, None, None)
#pragma config(Sensor, dgtl9,  LED_1,               sensorDigitalOut)
//*!!Code automatically generated by 'ROBOTC' configuration wizard               !!*//

// Main task - flash the second LED
task main()
    int counter;

    // Backlight on
    bLCDBacklight = true;

    // Do our own thing
    while( true )
        // toggle output
        SensorValue LED_1 ] = 1 - SensorValue LED_1 ];

        setLCDPosition(1, 0);
        displayNextLCDNumber(counter++, 0);

        wait1Msec( 250 );

I tried downloading both using the USB cable and programming adapter, as long as I did not download with the expectation of a joystick or VEXnet key connected (ie. not in competition mode), the code starts after 10 seconds in both download situations. If the cortex is connected using the USB cable to the PC the code starts immediately.