PROS, or Purdue Robotics Operating System for the uninitiated, is a project consisting of an Eclipse-based programming environment, a set of custom classes and functions based on a custom runtime library, and the required drivers to compile and upload code written using it to the VEX Cortex Microcontroller. It can function as a replacement to the vastly more popular ROBOTC in high school and college VEX Robotics tournament settings, and it offers significantly more power and freedom to experienced programmers.

Created by the Purdue University VEX U team, the programming component of PROS is based on the C language and can be used without ever opening the Eclipse environment as long as the included drivers and command line interface (CLI) are installed properly. The flexibility of code written using its tools is one of many advantages that PROS holds over ROBOTC, but it isn’t the first that caught my eye.

No, the first thing I noticed while reading over the PROS documentation was its cross-platform compatibility. That is, in theory, PROS can be used on versions of the Windows, OS X, and Linux operating systems. To be fair, this feature is largely the result of the fact that this project is based on the Eclipse IDE, which is written mostly in Java and is therefore cross-platform by default, but it leaves open more of a possibility for programming VEX robots natively on my favorite operating system (OS X, if you hadn’t figured it out) than ROBOTC ever did.

However, the team makes no guarantees for OS X compatibility (as of this writing), so I had quite an adventure trying to get it to work, and I figured I’d share it for any other aspiring VEX programmers using OS X since information and guides about PROS on the web are few and far between.

Here we go!

Download and install the IDE and its components

This sounds fairly simple, and perhaps it is. But for me, this was the trickiest part of getting PROS up and running on OS X. I started by following the instructions in the installation portion of the PROS documentation, which I recommend reading through before continuing. After downloading and running the installer (which you can find here), I ran into this despite already having Java installed:

After a little digging, I discovered that OS X 10.11 El Capitan stopped supporting the legacy Java that applications like Minecraft and Eclipse (and therefore the PROS IDE) run on, so you must be running OS X 10.10 Yosemite or below to install PROS. It is up to individual developers to update their software to support newer versions of Java, and the PROS team has yet to do so. However, their their latest release notes include the following cryptic line:

Modernized OS X installation process (coming soon)

That may signal some changes to come in the future relating to this issue, but in the meantime, you’ll need an older installation of OS X to use PROS.

If you’re like me and had already upgraded to (in my case, a developer beta of) El Capitan, you have a few options.

1. Install an older version of OS X on a partition

This is what I ended up doing, and I recommend it if you want the best performance, but it may be overkill if all you’re looking to do is run PROS. I encourage you to give it a try before opting for the quicker and easier option below because I ended up using this partition for working on, in addition to VEX code, my production code for other projects in a stable environment that isn’t prone to the whimsical nature of betas and other cutting-edge software.

I won’t spend the time here describing how to set this up, but OS X Daily has a good guide that I found helpful in getting my Yosemite development partition set up.

2. Run an older version of OS X in a virtual machine (VM)

Using a VM kind of defeats the purpose of this guide since you could have just installed a Windows VM and been on your way, but it’s an option if you don’t want to deal with partitioning.

If you decide to go this route (whether for storage or ease-of-use), there are a lot of VM options to choose from, and each one should have their own instructions for how to install Yosemite (or an older version). I haven’t personally tested it, but this guide for VirtualBox seems to be a good start.

Once you have a working installation of Yosemite (or an older version, but I’ll assume it’s Yosemite for the remainder of the guide), you need to install the legacy Java that PROS depends on; you can find it here.

With all of those prerequisites out of the way, running the installer should be successful. Congrats!

Install the required drivers

With PROS installed, you’ll be able to create new projects and write code for autonomous and operator control modes. If you need help with this, I’ll be writing another guide that goes through some of the basics of PROS as well as some of its trickier features. Until then, you can get pretty far on your own with a good grasp of C and a thorough reading of the online documentation and the API.h file found in the include folder of all of your PROS projects (can be viewed online here). Reading the comments on the function headers there is the best way to learn the PROS API and all of the custom additions to C that it includes. Both the API and the following section require a basic understanding of the hardware involved in VEX robotics, so I recommend consulting with a builder on your team if you are not familiar with it.

My next problem presented itself when I attempted to upload my code to the VEX Cortex, the “brain” of all VEX robots. PROS does not include all of the necessary drivers required to transfer code from a Mac running OS X to a Cortex, and is, according to the developers, the main roadblock to full OS X support.

From the OS X installation instructions:

Install compatible programming cable drivers from the Prolific website. Restart the computer.

…

The direct tether to the VEX Cortex is not supported at this time, due to a lack of Mac OS X driver support. The new orange VEX Programming Kit works by default, but the older serial cables can be unreliable on some machines.

However, the “Mac OS X Universal Binary Driver” on the linked page did not seem to fix my issue transferring code through a VEX serial cable (or, as it was known more colloquially to my club, a “programming cable”). Using these outdated cables was already a hassle, but even drivers from some obscure third-party website were not enough to make them work with my PROS installation.

If that driver works for you, great: upload away! But it wasn’t going to cut it for me, so I did a lot of Googling and finally came across another Mac user. That’s right, it’s not just the two of us trying to use OS X for this stuff (I mean that in jest, but this is honestly the only record I have found on the entire Internet of someone other than me trying to program for VEX using OS X, so imagine my bliss). The driver he wrote enables code transfer to the Cortex via direct tether (a connection between your computer and the Cortex with a USB A to A cable), which I’ve found is more common than using the serial cable anyway.

You can download the driver from Box since the VEX Forum link seems to have broken with their redesign, and I’m hosting a copy of it here in case the Box link ever goes down. Thanks, jpearman !

That’s it! Other than the odd hardware malfunction, most of the problems I’ve had with PROS on OS X fell under those two categories. I hope this has helped you get a working PROS installation set up, and good luck with your season!