πΊοΈ Flowchart β EZ-Template auton selector β brain-screen pattern
Before auton starts, the driver picks a routine on the Brain. EZ-Template provides the selector framework; you register your autons and it handles the UI.
flowchart TD
Init([Robot powers on]) --> Setup[Brain screen shows auton selector menu]
Setup --> Wait([Wait for user input])
Wait --> Touch{User touches screen?}
Touch -->|"Left side"| Prev[Previous routine in list]
Touch -->|"Right side"| Next[Next routine in list]
Touch -->|"Center"| Confirm[Confirm selection]
Prev --> Update[Update display: highlight new selection]
Next --> Update
Update --> Wait
Confirm --> Lock[Lock selection any pre-auton setup runs]
Lock --> Idle([Wait for match start])
Idle --> Run[Match begins: autonomous called selected routine runs]
style Init fill:#1e293b,stroke:#22d3ee,stroke-width:2px,color:#e2e8f0
style Run fill:#1e293b,stroke:#22c55e,stroke-width:2px,color:#e2e8f0
style Touch fill:#fbbf24,color:#0f172a,stroke:#fbbf24
27 pages on this site mention the auton selector. Here's how to actually set it up β declare routines, register them, use the Brain screen at the field, and recover if you forget to select one.
Why one program beats many: Some teams upload a different program for each auton. Every time you change PID constants or driver code, you re-upload 4+ programs. Under tournament pressure you will upload the wrong one. One program with a selector eliminates this entirely.
πΊ Interactive Brain Screen Simulator
This is what the EZ Template auton selector looks like on the V5 Brain. Click the β β buttons to navigate pages. The highlighted page runs when autonomous is enabled.
V5 BRAIN Β· PROGRAM: ROBOT-2026
β βΆ to select Β· Current: page 0
π The Three Files You Edit
Setting up the auton selector touches three files. Here's the complete pattern:
Step 1 β Write the functions in autons.cpp:
// src/autons.cppvoidDoNothing() {
// Safe fallback β always register this one first
}
voidMatchLeft() {
chassis.pid_drive_set(24_in, DRIVE_SPEED, true);
chassis.pid_wait();
chassis.pid_turn_set(90_deg, TURN_SPEED);
chassis.pid_wait();
// ... more moves
}
voidMatchRight() { /* mirror of MatchLeft */ }
voidAWP() { /* auton win point routine */ }
voidSkills() { /* 60-second skills run */ }
The \n\n in the name: The first line is the big title on the Brain screen. Text after \n\n appears smaller below it β use this for start position or notes. Keep names short β the screen only shows ~20 characters cleanly per line.
π Tournament Field Workflow
Before queueing: At the pits, verify your selected auton is correct. Navigate with Brain screen buttons. The currently displayed page is what runs.
At the field: Plug into the field controller. The Brain screen stays on whatever you left it. You can still change pages after plugging in β right up until the match starts.
If you forget to select: "Do Nothing" registered first = page 0 = default when powered on. This is the safe fallback. You will not accidentally run Skills in a qualification match.
SD card persistence: If an SD card is in the Brain, EZ Template saves which page was last selected and restores it on power-up. No SD card = always starts at page 0.
Naming convention that actually works: Use MatchLeft, MatchRight, AWP, Skills, DoNothing. Capital letter start, no spaces. Consistent naming = any team member can find the right auton in the dark, 30 seconds before a match.
π
OFFICIAL EZ TEMPLATE β AUTON SELECTOR REFERENCE
Complete API including limit switch support, SD card persistence, and blank page callbacks
⚙ STEM HighlightComputer Science: State Machines & Human-Computer Interaction Design
The EZ Template auton selector is a state machine with a display interface. The Brain screen presents a state (current auton selection), and joystick input triggers state transitions (next/previous routine). This pattern — state storage, transition triggers, and output display — is identical to how operating systems manage application state. Good selector design minimizes the steps required to reach the correct auton, especially under the time pressure of a tournament queue.
🎤 Interview line: “Our auton selector is designed for the worst case — a queuing situation with 60 seconds before the match. We ordered routines by usage frequency so the most-used option is always one button press away. We also label each routine on the Brain screen with its expected score and alliance color, not just a number. This reduces human error during tournament selection.”
Why is the order of routines in your auton selector important for tournament performance?
⬛ The first routine always runs during autonomous — order determines which one executes
⬛ Routines run faster when listed first because they load into memory first
⬛ Under time pressure in a queue, minimizing button presses to reach the correct routine reduces selection errors — most-used routines should be easiest to reach
📝
Notebook entry tip:Build & Program — Orange slide — Document your auton selector design as a programming entry: list each routine name, its expected score, and the button sequence to select it. Include a screenshot of the Brain screen display. This entry shows judges that your tournament preparation extended to software UX — a detail that separates experienced teams from beginners.