Setting Up VEXcode IQ
What you'll learn
- Download and install VEXcode IQ
- Choose between Blocks and Python
- Create your first project
- Connect and update your VEX IQ Brain
Getting Your Software Ready
You have got the hardware. Now you need the software. VEXcode IQ is the official programming environment for VEX IQ robots, and it is completely free. Let us get it installed and set up.
Downloading VEXcode IQ
VEXcode IQ is available for just about every platform:
- Windows (10 or later)
- macOS (10.14 or later)
- ChromeOS (via the Chrome Web Store)
- iPadOS (iPad only, not iPhone)
To download it:
- Go to https://www.vexrobotics.com/vexcode/install/iq
- Click the download button for your platform
- Follow the installation instructions
On Windows, it is a standard installer — just run it and click through the prompts. On macOS, drag the app to your Applications folder. On Chromebook, install it from the Chrome Web Store. On iPad, grab it from the App Store.
The install is pretty quick. You should be up and running in a few minutes.
Blocks vs. Python: Which Should You Choose?
VEXcode IQ has two programming modes, and this is one of the first decisions you will make. Here is the honest breakdown:
Blocks
Blocks is a visual programming language where you drag and drop colorful blocks to build your program. Each block represents a command like “drive forward” or “turn right.”
Best for:
- Students who are brand new to programming
- Visual learners who like to see the flow of their program
- Younger students (5th and 6th grade)
- Quick prototyping and testing ideas
Advantages:
- No syntax errors — the blocks snap together, so you cannot misspell a command
- Very intuitive — you can read the program almost like a sentence
- Great for learning programming concepts like loops and conditionals
Python
Python is a text-based programming language. You type out your commands, and the robot follows them.
Best for:
- Students who have some programming experience
- Teams that want more control and flexibility
- Students interested in learning a real-world programming language
- Building more complex autonomous routines
Advantages:
- More powerful — you can do things in Python that are difficult or impossible in Blocks
- Teaches a skill that extends far beyond robotics
- Easier to copy, share, and version-control your code
- Faster to write once you are comfortable with the syntax
Our Recommendation
Start with whichever feels right for you. If you have never programmed before, Blocks is a fantastic way to learn the concepts. You can always switch to Python later — the commands are the same, just written differently.
In this tutorial series, we show examples in both formats. But we lean a bit more toward Python because it is easier to include in written tutorials and it scales better as your autonomous routines get more complex.
If you are a parent or mentor reading this: do not pressure your students to jump into Python before they are ready. Blocks is not “lesser” — plenty of competitive teams use Blocks and do great.
Creating a New Project
Let us create your first project.
In Blocks Mode
- Open VEXcode IQ
- Make sure you are in Blocks mode (check the top-left corner — it should say “Blocks”)
- Click File > New Project or just start with the default blank project
- You will see a workspace with a “when started” hat block already placed — this is where your program begins
In Python Mode
- Open VEXcode IQ
- Switch to Python mode by clicking the mode selector in the top-left corner
- Click File > New Project
- You will see a code editor with some starter code that looks like this:
This starter code imports the VEX library and creates a Brain object. Every program you write will start with these lines.
Saving Your Project
Save your project right away and give it a descriptive name. Do not leave it as “Untitled” — you will end up with a dozen untitled projects and no idea which is which.
Good naming examples:
auto-drive-forwardauto-score-two-piecesauto-skills-v3test-turn-accuracy
Bad naming examples:
Untitledtestasdffinal-FINAL-v2-really-final
Pro Tip: Include a version number or date in your filename when you are iterating on autonomous routines. Before a competition, you might have five different versions of your autonomous, and you want to be able to go back to a previous one quickly.
Connecting Your VEX IQ Brain
Now let us connect your Brain to VEXcode so you can download programs to it.
Via USB (Recommended)
- Turn on your VEX IQ Brain
- Plug a USB-C cable from the Brain to your computer
- In VEXcode, look at the Device Info panel (usually on the right side or accessible from the toolbar)
- You should see your Brain appear as connected
- The icon in the toolbar will change to show a connected Brain
USB is the most reliable connection method. We recommend using it whenever possible, especially when downloading programs before a match.
Via Bluetooth
- Turn on your VEX IQ Brain
- In VEXcode, click the Brain icon in the toolbar
- Select Bluetooth and scan for your Brain
- Select your Brain from the list and pair it
Bluetooth is convenient when you are testing and do not want a cable dangling off your robot. But it can be flaky sometimes — if you are having trouble downloading a program, try switching to USB.
Updating Firmware
VEX regularly releases firmware updates for the Brain, motors, and sensors. It is important to keep everything up to date.
When you connect your Brain, VEXcode will tell you if an update is available. If it is:
- Click the update notification in VEXcode
- Follow the on-screen prompts
- Do not unplug the Brain during the update — seriously, just let it finish
- The Brain will restart when the update is complete
After updating the Brain, VEXcode may also prompt you to update connected devices (motors and sensors). Go ahead and update those too. Plug each device into the Brain one at a time and let it update.
Competition Tip: Update your firmware at least a day before a competition, not the morning of. Firmware updates occasionally cause unexpected behavior, and you want time to test everything. We learned this the hard way when an update changed how the inertial sensor calibrated, and our autonomous routine was turning 10 degrees off all day.
The VEXcode Interface
Let us take a quick tour of what you see when VEXcode is open:
Toolbar (Top)
- Project name: Displays and lets you rename your project
- Download button: Sends your program to the Brain
- Run button: Runs the program (if the Brain is connected)
- Brain/device icon: Shows connection status and lets you configure devices
Code Area (Center)
This is where you build your program. In Blocks mode, it is a drag-and-drop workspace. In Python mode, it is a text editor.
Block Palette / Command Reference (Left Side)
In Blocks mode, this is where you find all the available blocks, organized by category (Drivetrain, Motors, Sensors, Control Flow, etc.). In Python mode, you can access a command reference that shows available functions.
Device Info Panel (Right Side)
This panel shows your connected devices, their port assignments, and real-time sensor readings. This is incredibly useful for debugging — you can see sensor values without writing any code.
Console (Bottom)
In Python mode, the console shows print output and error messages. This becomes very important when you start debugging your autonomous routines.
What’s Next
Your software is installed, your Brain is connected, and you know your way around VEXcode. It is time to write your first program.
Head over to Your First Program to make your robot move.
VEX Tutorials