PIC/Cortex Microcontroller

I’ve been thinking of purchasing a kit for a while and think I’m finally going to place an order. I’ve used other systems such as Lego Mindstorms and messed around with stamp and a few other microcontrollers before. I’ve kind of been debating on the PIC vs Cortex system and was just wondering what kind of pro/cons people have seen with first hand experience. Does the PIC offer enough options for more advanced applications, or do people who have purchased it usually end up wishing they had gone with the Cortex?

I’m not terribly interested in user control, so I’m half debating on even spending the extra money for dual control. I guess the main use I would use it for is to test mechanical functionality without having to spend time writing code. Is it also possible to use multiple Vexnet systems in the same area or do they interfere with each other? Is it also possible to use wireless programming and debugging without Vexnet?


The primary advantage that Cortex has (in my opinion) is the faster CPU and a few additional I/O ports. If your project is not going to be computationally difficult, then the PIC will probably suffice. I don’t think I’ve yet written a program for the Cortex that wouldn’t have fit in the PIC (though to be fair I haven’t gone back and checked). The I²C port on the Cortex may eventually become a major advantage, but the programming options so far do not allow you to access it.

One advantage of the PIC microcontroller is that you can use MPLAB to program it (maybe for free). This is the more challenging of the three programming environments to use, but it is also the most powerful (IMO). This is the only way I’ve been able to create real interrupt handlers and code for sub-milisecond timings on the VEX platform.

VEXnet is more-or-less a direct replacement for the crystal sets. Eventually VEXnet should allow direct PC-to-Robot communication, but for now it is only Remote-to-Robot.

VEXnet uses wifi technology to create ad-hoc networks. Like wifi, they can operate around each other without interference. I’m sure there is a theoretical limit to how many pairs can be operating in a space, but it will be far greater than the number of crystal channels available.

No, the crystal system does not support wireless programming.

With PIC microcontrollers, you had to use the orange USB-to-serial cable to download programs to your VEX. I suppose you could use some Zigbee modules to create a wireless serial link for remote programming…

With the Cortex, you use the VEXnet modules to create a wireless network to the handheld remote, and then link the remote to your computer using the same orange USB-to-serial cable.


Vex has announced that they eventually hope to support direct PC-to-Robot programming via VEXnet (without the use of a remote control or the orange cable), but I don’t think they’ve announced a schedule for that yet.

For wired programming of the Cortex, you use the orange USB-to-USB cable to tether the Cortex directly to your PC without the need of the handheld remote. I program this way most of the time.


The just announced VEXpro microcontroller runs Linux and has a full Wifi stack, allowing full remote communication - in fact, that microcontroller doesn’t even support the handheld remote yet, so it is pretty much just for autonomous or PC controlled operation.
Cortex Wireless Programming.jpg
Cortex Wired Programming.jpg

Thanks for the reply, the info was very helpful. I think I’m leaning towards the Cortex, just can’t really decide if I want/need the dual control ability or if I want to spend the extra money on more structural parts.

The cortex will certainly save you some time when you’re testing your programs and making small adjustments to code then retesting, because you can do it all wirelessly (if you get dual control) without having to tether every time. Nor will you have to turn the microcontroller off and on again each time you change the code - you do have to if you’re using the PIC.

But if your application means leaving the robot tethered while you test is fine, then of course it won’t matter as much.

The dual-control option is basically a US$50 discount compared to starting with autonomous-only and then upgrading to dual-control later. Not only does dual-control give you the joystick, it also gives you wireless programming.

If you think you will eventually upgrade to dual-control, and you can afford it now, then I’d say go for it. If you aren’t sure that you will ever need dual-control, or you need to spend the extra $$$ elsewhere, then you can always upgrade later.


  • Dean

I’m guessing you need to buy two USB Adapter Keys? Originally added up a $10 difference but only added one adapter, didn’t read it closely but kind of assuming it only comes with one. How does using multiple systems in the same area work then, kind of similar to when you connect a computer to a wireless network where you can just select which one to connect to?

I think I’m probably going to go with the classroom kit, I probably won’t use much of the accessories initially but the rechargeable batteries are probably worth it instead of burning through AA/AAA’s.

I may be wrong but I am pretty sure that the required VEXNet keys are included.

Two VEXnet keys are included if you buy the VEXnet system bundle ($400) or other packages such as the classroom kit.

I agree, I’ve been able to write some pretty spiffy code for the PIC. MPLabs gives the low level control that RobotC would aspire to give you some day.

I’m pretty old school (or maybe just old) when it comes to microprocessor programming (my first was the 8080). Not much space, not many cycles, how can you get closer to the metal with your programming? Today everything electronic has one or two microprocessors in it, a single chip CPU with memory and program space replaces tens to hundreds of components.

Out in the work world, the code you write needs to be fast, tight and neat. I’d suggest getting the free download of RobotC, use it staying away from their “natural language” and stick to the C. Then make the transition to MPLabs to write future code.

We have a lot of the older transmitter/crystal sets, but the backpacks (if you can find them) rock. The Vexnet in them is solid, once it links it stays linked thought the match. We support both VEXnet and crystals at our events, but many events don’t.

Good luck, please post your build progress!

This thread reminded me of something I’ve been meaning to do for a while now. I’ve posted a Comparison of Microcontrollers page up on the wiki. Please feel free to extend or correct anything on the page as appropriate.


  • Dean

I really like this page. An excellent Side-by-Side comparison of each of the Vex Control Systems… Thanks for the In-Depth coverage…

I also want to mention that the VexPro Internals page is very nice too…

Thanks Mark! I’m still adding to these pages, and I’ve got some thoughts for a few more teardown pages (any requests?).

PSA: Please don’t hesitate to edit one of the pages I’ve posted if you have something to add - the wiki is communal resource and nobody owns any page.


  • Dean