Wirelessly stream data from PC to Cortex

I’m looking for the most straightforward way to wirelessly send data from a PC to a robot with a VEX Cortex, while the robot is running. My use-case is I want to send external sensor data (e.g., simulated GPS position, waypoints) to the Cortex. Bidirectional communication is not critical, but it would be a plus. This is for an academic project and is not associated with competition.

I’ve seen some similar discussion here on these forums [1][2], but no definitive solution. To recap, the methods I’ve seen suggested are:

[INDENT]Using the VEXNet v1, connect the PC to the programming port of the joystick–which in theory is said to function as a wireless serial link.

Use the I2C or UART port on the Cortex, together with some external radio equipment (Xbee, Bluetooth, etc.) and use a custom library/protocol for communicating with the Cortex.[/INDENT]

My questions are:

  • Has this been done before, and is this a solved problem? Since VEX offers such a versatile hardware platform, I was surprised not to find more documented examples of interfacing it with higher-power computing for either robotics research or university-level education.
  • Is there an option that would let me work in a standard environment like RobotC/Easy-C, or will I have to use alternative firmware? As my goal here is just to add additional (virtual) sensor inputs for students to work with, I’d rather not pull the rug out from under their existing VEX experience, if I don’t have to.
  • Which approach is recommended? I haven’t worked with VEX much since the initial product launch, quite a number of years ago now. I’d appreciate any intuition that more up-to-date users can offer.


[1] https://vexforum.com/t/full-vexnet-protocol-specification/26467/1
[2] https://vexforum.com/t/bnsbluetooth-robotc-library-for-the-hc-05/29982/1

years ago I did this for PIC the same approach would work for Cortex.


Xbee, Bluetooth, Wifi all are possible these days via serial port.


[2] https://vexforum.com/t/bnsbluetooth-robotc-library-for-the-hc-05/29982/1

Last season we used a VEX wireless programming cable to do this. You’d plug it into the program port on the controller, then use VEXNet to link the controller to the Cortex. It worked the same as having the Cortex plugged straight in to the controller.

When connected in this way, how does the Cortex present on the PC for establishing communication via a program other than an IDE? For example, does it show up as a virtual COM port?

The programming cable carries a serial link which works as a teletype console. You can send and receive data over it.

On Windows it shows up as a COMM port, on Unix it shows up as a hardware descriptor file (or whatever it’s called).

This is probably the easiest way to do what you want.