> For the complete documentation index, see [llms.txt](https://docs.cb21829.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cb21829.org/welcome.md).

# Circuit Breakers FTC Java Documentation

Welcome to the official programming resource made directly by FTC Team 21829 Circuit Breakers. This platform hosts our comprehensive Java guides designed to take your robot software from a blank project to a highly competitive, professional-grade architecture.

Whether you are configuring your first control hub or tuning a custom path-planning algorithm, choose the path below that matches your current experience level.

### FTC Java Beginner Guide

Target Audience: Perfect for rookie programmers and teams transitioning from Block programming to Android Studio. If you are starting from scratch or have never made a motor spin using text-based code, this track provides the exact foundation you need to get competition-ready.

Overview of Contents:

By the end of this guide, you will have a working robot that drives accurately and corrects its heading. Core topics include:

* Environment Setup: Installing Android Studio and cloning the `FtcRobotController` SDK.
* Java Essentials: The core object-oriented programming (OOP) principles you actually need for robotics.
* Hardware Fundamentals: Configuring and commanding DC Motors, Servos, and CRServos.
* TeleOp: Reading gamepad inputs to drive a mecanum drivetrain and operate mechanisms.
* Autonomous: Using encoders, the IMU, and proportional (P) controllers for heading correction and precise movement.
* Working Examples: Complete, copy-pasteable reference code for a full TeleOp and a basic Autonomous routine.

### FTC Java Advanced Guide

Target Audience: Designed for experienced programmers looking to level up their competition software. If your robot can already execute basic auto routines and you understand the fundamentals of the SDK, this track will teach you how to implement the complex pathing, computer vision, and control systems used by world-class teams.

Overview of Contents:

This guide transitions your code from basic blocking operations to reactive, non-blocking parallel systems. Core topics include:

* Feedback Control: Implementing custom PID and PIDF controllers for smooth, predictable mechanism movement.
* Path Planning & Localization: Utilizing Pedro Pathing and odometry to navigate smooth, reliable curves across the field.
* Motion Profiling: Generating trapezoidal velocity profiles for buttery-smooth linear slide and arm movements.
* Software Architecture: Managing complex, parallel operations using Finite State Machines (FSMs) and modern command-based structures with NextFTC.
* Loop Optimization: Implementing bulk reads and eliminating redundant hardware calls to keep control loops blazing fast.
* Computer Vision: Leveraging VisionPortal for AprilTag alignment and EasyOpenCV for custom color detection pipelines.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.cb21829.org/welcome.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
