Start from zero and end with a robot that drives. This guide covers downloading the example project, configuring your motors, and uploading working code in one session.
Before you start: You need VS Code + PROS extension installed. See the First 30 Minutes guide for that. This guide assumes PROS is working and you just need EZ Template set up.
๐ What's in an EZ Template Project
Before touching any code, understand which files you actually edit. Most students get lost because they try to edit the wrong file. Click any file below to see what it does.
EZ-Template-Example-Project
include
๐ autons.hppEDIT โ Declare your auton function names here so main.cpp can see them
๐ globals.hppEDIT โ Motors, sensors, and subsystem helpers. You add your motor objects here
๐ EZ-Template/api.hppDON'T EDIT โ EZ Template's public API header. Never edit this.
src
๐ main.cppEDIT โ Chassis constructor, drive ports, IMU port, wheel size. Auton selector setup. THIS is where you configure your robot.
๐ autons.cppEDIT โ All your autonomous routines live here. Each one is a function like void MatchLeft() { ... }
๐ robot-config.cppEDIT โ Port assignments and motor reversal. Maps motor numbers to left/right drive arrays.
๐ project.prosDON'T EDIT โ PROS project metadata. Managed by PROS CLI โ leave it alone.
Go to github.com/EZ-Robotics/EZ-Template-Example โ click Code โ Download ZIP. Extract to a folder like Documents/VRC/robot-2026. Do NOT put it in Downloads โ PROS struggles with long paths. In VS Code: File โ Add Folder to Workspace, navigate to the extracted folder.
2
Open main.cpp โ Find the Chassis Constructor
Open src/main.cpp. Scroll to the top. The chassis constructor is the big block starting with Drive chassis(. This is where your robot gets its identity. Every single parameter matters โ wrong value here = robot doesn't move right.
3
Configure Your Motors
Change the port numbers to match your brain. Negative port = reversed motor. For a 4-motor tank drive with motors on ports 1,2 (left) and 3,4 (right): {-1, -2} for left, {3, 4} for right. The IMU port is listed separately โ default is port 21.
4
Set Wheel Diameter and Cartridge
4" omni wheels are actually 4.125" โ always use 4.125, not 4. 3.25" wheels are 3.25. The cartridge is the motor RPM: pros::E_MOTOR_GEAR_BLUE = 600 RPM, BLUE, GREEN = 200, RED = 100. Use whatever cartridges are in your drive motors.
5
Build and Upload
Press Ctrl+Shift+B or click Build and Upload in the PROS panel. A loading bar appears on the V5 Brain. If the bar goes red โ bad IMU port or cable. If motors don't respond โ wrong port numbers or all reversed. If the robot drives but spins in place โ left/right swapped.
๐ง Constructor Builder
Fill in your robot's details and get a ready-to-paste chassis constructor.
๐ค Chassis Constructor GeneratorCopy into src/main.cpp
๐จ Common First-Time Errors
IMU bar goes red on startup: Wrong IMU port. Unplug and check which Smart port the IMU is actually in. EZ Template halts until IMU calibrates โ this is intentional.
Robot spins when you push forward: Left and right motor arrays are swapped in the constructor. Swap {left ports} and {right ports}.
One side goes wrong direction: That motor needs a negative port. Add a - in front of the port number that's reversed.
Robot drives but PID auton overshoots badly: Wrong wheel diameter. 4" wheels need 4.125, not 4.0. This single digit causes ~3% error over 24 inches.
"undefined reference to chassis": You renamed the chassis object but not everywhere. Keep it named chassis unless you update every reference.
๐
OFFICIAL EZ TEMPLATE DOCUMENTATION
Installation tutorial, example project walkthrough, and full API reference at ez-robotics.github.io
Development environment setup applies software configuration management (SCM) — the engineering discipline of controlling and documenting software environments to ensure reproducibility. A properly configured environment is itself an engineering artifact: version-controlled, documented, and reproducible. When environments are undocumented, "it works on my machine" becomes the team's debugging nightmare.
🎤 Interview line: “We document our development environment as a configuration item: VS Code version, PROS version, EZ Template version, and any OS-specific settings. When a team member gets a new laptop, they reproduce the exact environment in 15 minutes. We have never lost competition code to a laptop failure because our setup is reproducible.”
After installing EZ Template, your left drive motors spin backward. What is the correct fix?
⬛ Physically swap the motor wiring connectors to reverse direction
⬛ Add a negative sign before the port number in the chassis constructor — EZ Template uses negative ports to reverse motor direction
⬛ Reinstall PROS and EZ Template from scratch
📝
Notebook entry tip:Build & Program — Orange slide (Appendix) — Document your EZ Template setup as an Appendix entry: VS Code version, PROS version, EZ Template version, chassis constructor values (wheel diameter, cartridge RPM, IMU port, track width). This entry proves the team had a configured, reproducible development environment from day one — judges notice the difference between teams that set up their tools deliberately and teams that improvised.