FTC SDK Basics
Learn the fundamentals of programming an FTC robot using the FTC SDK.
SDK Basics
The FTC SDK provides the tools needed to communicate with your robot hardware and create programs that run on the Control Hub.
Before building advanced systems like subsystems, autonomous routines, or command-based architectures, it is important to understand the basic components of an FTC program.
In this section, you will learn how to:
- Create and run OpModes
- Control robot hardware
- Read driver input
- Debug programs using telemetry
- Work with motors, servos, and sensors
- Understand timing and robot configuration
What is the FTC SDK?
The FTC SDK is a collection of Java libraries that allow your code to interact with the robot.
Instead of directly controlling hardware, your code uses the SDK to communicate with:
- Motors
- Servos
- Sensors
- Gamepads
- Hubs
Example:
motor.setPower(1.0);The SDK converts this command into instructions for the physical motor.
How FTC Programs Work
Most FTC programs follow this general flow:
Initialize Hardware
↓
Wait for Start
↓
Read Inputs
↓
Run Robot Logic
↓
Control Hardware
↓
RepeatDuring a match, your code continuously reads information from the robot and makes decisions.
Before You Start
You should already understand basic Java concepts such as:
- Variables
- Conditionals
- Loops
- Methods
- Classes and objects
If you need a refresher, review the Java section first.
SDK Basics Lessons
Follow these lessons in order:
-
- Learn how the SDK is structured.
-
- Learn how FTC programs start and run.
-
- Display information and debug your robot.
-
- Read driver inputs and control mechanisms.
-
- Connect your code to physical hardware.
-
- Control movement and motor-based mechanisms.
-
- Control position-based mechanisms.
-
- Add feedback and awareness to your robot.
-
- Control delays, actions, and sequences.
-
- Connect your software configuration to your hardware.
-
- Robot performance galore.
What's Next?
After learning the SDK basics, you can move on to more advanced FTC programming concepts:
- Code organization
- Subsystems
- Command-based programming
- Autonomous programming
- Motion planning
- Vision systems
These concepts build on the foundation covered in this section.
Was this resource helpful?
