Where to Find Help
Every working FRC programmer has a mental map of where answers live. Not because they memorized everything — but because they know which door to knock on. This lesson builds that map, and teaches you how to knock well.
By the end of this lesson, you will:
- Know the four primary FRC knowledge sources and what each is best for
- Navigate WPILib documentation and Java API references effectively
- Search Chief Delphi for existing answers before posting a new question
- Read and learn from championship team repositories without copy-pasting blind
- Identify the right vendor documentation for CTRE, REV, and PathPlanner
- Write a well-formed help request that gets fast, accurate responses
- Know which resource to reach for based on the type of problem you have
Knowing Where to Look Is Part of the Job
At Team 2910, we say there are no dumb questions — but there are questions asked in the wrong place at the wrong time, and questions asked without doing any groundwork first. A student who searches for 10 minutes before asking will get a better answer, faster, than one who posts immediately. More importantly, they'll retain it.
FRC programming has a genuinely excellent knowledge ecosystem. The WPILib documentation is thorough, Chief Delphi has been accumulating community wisdom since 2003, and some of the best robotics engineers in STEM post their team's code publicly for anyone to read. Learning to navigate all of that is a skill that will serve you long after your FRC career ends.
At competition, you have ten minutes between matches to diagnose and fix problems. There is no time for a forum search. The teams that recover fastest aren't the ones who look everything up — they're the ones who built enough baseline knowledge during build season that they already know where the problem is likely to be. Use these resources now, during learning, so you need them less when it counts.
The Four Primary Sources
👇 Click each card to learn what it's best forAuthoritative answers about WPILib classes, robot modes, subsystems, and commands. Always start here for WPILib-specific questions. Maintained by the WPILib team — if it's in the docs, it's correct for the current season.
Community knowledge, edge cases, and "has anyone seen this before?" questions. 20+ years of FRC history lives here. WPILib developers, CTRE and REV engineers, and championship team mentors all post regularly. Search before you post.
Seeing how elite teams structure real competition code. When the docs explain what an API does but not how to use it well in practice, championship code shows you. Read to understand patterns — not to copy and paste.
Hardware-specific API details that WPILib docs don't cover — TalonFX configuration, SparkMax control modes, PathPlanner path creation. If something involves a specific motor controller or sensor brand, go to that vendor's documentation first.
Which Resource for Which Problem
For any question about WPILib classes, robot modes, commands, subsystems, or the Gradle build system — start with the official documentation. It's actively maintained, season-specific, and written by the people who built the library.
Find the class you're using in the left sidebar or search bar. The class summary shows what it's for. Scroll to "Method Summary" for a table of all available methods — each links to a detailed description with parameter types and return values. When VS Code shows a red underline on a method call, the Javadoc for that class will tell you exactly what parameters it expects.
When the problem involves specific hardware — a TalonFX not responding, a CANcoder reading wrong values, a SparkMax throwing faults — the vendor's own documentation and tools are your first stop. WPILib docs won't cover vendor-specific behavior.
Both CTRE and REV update their documentation each season. A tutorial written for Phoenix 5 will not work for Phoenix 6 — they have entirely different APIs. Always check that the documentation page you're reading matches the library version in your vendordeps/ folder. If you see class names that don't match what VS Code suggests, you're probably reading the wrong year's docs.
Documentation tells you what the API does. Championship code shows you what it looks like when used well, at scale, under competition pressure. These teams publish their work publicly as a gift to the community — learn from it.
Don't start at Main.java and read linearly. Instead: find a concept you're currently learning — say, how they structure a swerve module — and navigate directly to that subsystem. Read the class, understand the pattern, then trace the dependencies. The goal is understanding why they made a choice, not collecting code to paste. If you can't explain why a line of code exists, don't use it.
When documentation doesn't cover your specific situation, the FRC community usually has. These are the places where the broader community gathers — choose the right one based on how quickly you need an answer and how complex your question is.
Navigating a Championship Team's Repository
When you open a repository like Team 6328's or Team 254's for the first time, the sheer amount of code can be overwhelming. Here's the mental model: you're not reading a textbook cover to cover — you're using it as a reference. Click each file or folder below to learn where to start.
How to Ask a Good Question
The quality of the answer you get is directly related to the quality of your question. A vague question gets a request for clarification. A well-formed question gets a solution. Here's the difference in practice.
set()?"
Before You Post — The Good Question Checklist
Work through this before submitting a question to Chief Delphi or any Discord channel. Click each item as you complete it.
Your question is ready to post. You'll get a fast, accurate answer.
🔌 System Check
This lesson has no physical hardware requirement — but it does have a homework equivalent. Before you move to Unit 1, complete each of these once so the resources are already familiar when you need them under pressure:
- Bookmark these URLs in a dedicated "FRC Programming" folder: docs.wpilib.org, github.wpilib.org/allwpilib/docs/release/java/, chiefdelphi.com, api.ctr-electronics.com, docs.revrobotics.com
- Make a GitHub account if you don't have one. You need it to clone private team repos, follow team accounts, and eventually contribute to your own team's codebase.
- Join the WPILib Discord and FRC Discord. You don't need to post anything — just get set up so you can reach those channels when you need them during competition week.
- Open Team 2910's most recent robot repo on GitHub. Find the drivetrain subsystem. Don't try to understand everything — just find it, note the file name, and notice the structure. You'll read it in detail during Unit 7.
- Searching Chief Delphi effectively: The built-in search is good. For more precise results, use Google with
site:chiefdelphi.comfollowed by your search terms. Try it now with a topic from this unit: site:chiefdelphi.com roboRIO imaging 2025.
Knowledge Check
Click an answer to check your understanding.
sparkMax.set(0.5) in code does nothing. Which resource should you check first?Build Your Reference Toolkit
These tasks build the muscle memory for using these resources. Do them once now so they feel familiar when you're under pressure at competition.
- Open
docs.wpilib.organd find the page explaining theTimedRobotclass. What does the documentation say happens in the robot loop every 20 milliseconds? Find the Javadoc link for the same class and confirm the method signatures match. - Go to Chief Delphi and search for "roboRIO brownout prevention". Find one thread with useful technical information. What was the most actionable piece of advice in that thread? Note the username of whoever posted it — you'll notice veteran contributors come up again and again.
- Open Team 2910's most recent robot repository on GitHub. Find the file that defines their swerve module. What class does it extend? What vendor library does it import at the top?
- Open the CTRE Phoenix 6 Javadoc and look up the
TalonFXclass. Find thesetControl()method. What does it take as a parameter? What is aControlRequest? (You don't need to understand it fully yet — just locate the information.) - Write a practice question. Think of something from Lessons 1–4 that genuinely confused you. Write a help request that passes all six items in the Good Question Checklist — even if you already know the answer now. This is a skill that improves with deliberate practice.