Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Holden9607/FRC-Academy/llms.txt

Use this file to discover all available pages before exploring further.

This quickstart walks you through completing your very first FRC Academy lesson: declaring a NEO brushless motor using the REV Robotics SparkMax API. You will open the app, navigate to the correct lesson, choose Guided mode, type your code in the interactive editor, and verify it — all in under five minutes. No robot, no wiring, and no IDE setup required.
1

Open FRC Academy

Visit https://holden9607.github.io/FRC-Academy/ in any modern browser (Chrome, Firefox, Edge, or Safari). If you prefer the desktop experience, launch the FRC-Academy.exe from your extracted download folder instead. You will land on the main menu showing the FRC Code Academy title and two learning path buttons.
2

Select Motors

Click the Motors button from the main menu. This takes you to the Teaching View and opens the motor type selection screen in the instructions panel on the right.
3

Choose NEO Motor (REV)

Click NEO Motor (REV) from the motor type menu. This selects the REV Robotics SparkMax hardware target and loads the lesson list for NEO motors.
4

Select '1. Define a Motor'

Click 1. Define a Motor from the lesson menu. This is the foundational lesson — you will learn how to properly import and declare a SparkMax object inline inside a robot class.
5

Choose Guided Lesson

Click Guided Lesson from the lesson type menu. Guided mode provides a step-by-step floating popup that shows you exactly what code to type at each stage, making it ideal for your first time through a lesson.
6

Click 'Start Coding'

Click the Start Coding button at the bottom of the instructions panel. This loads a code skeleton into the editor and makes it editable. The skeleton includes the correct imports and class structure with // TODO comments showing where your code belongs. In Guided mode, clicking Start Coding also triggers the Guided Step popup to appear.
7

Follow the guided steps

A floating Guided Step popup appears in the bottom-right corner of the editor panel. It shows the current step number (e.g., “1 / 4”) alongside a written instruction and a code snippet to type. Read each step carefully, type the shown code into the editor, then click Next Step to advance. The steps for this lesson walk you through the import statements and the motor field declaration.
8

Click 'Verify Code'

When you have filled in the code, click the Verify Code button. The Code Review modal opens with a line-by-line diagnostic view of your submission. Each line of your code is highlighted according to correctness — read the results and see how you did.
After successfully completing the lesson, your final code should look like this:
Robot.java
import edu.wpi.first.wpilibj.TimedRobot;
import edu.wpi.first.wpilibj2.command.CommandXboxController;
import com.revrobotics.spark.SparkMax;
import com.revrobotics.spark.SparkLowLevel.MotorType;

public class Robot extends TimedRobot {
    private final SparkMax m_motor = new SparkMax(1, MotorType.kBrushless);
    private final CommandXboxController driverController = new CommandXboxController(0);
    private final CommandXboxController operatorController = new CommandXboxController(1);

    @Override
    public void robotInit() { }
}
The motor is declared as a private final field on Robot extends TimedRobot, instantiated inline with CAN ID 1 and MotorType.kBrushless — the correct type for a NEO brushless motor. The lesson skeleton also includes the two CommandXboxController declarations required by the solution.

Understanding the Code Review

The Code Review modal shows your submitted code with every line color-coded by the diagnostic engine:
  • Green (✓) — the line matches the expected solution exactly (trimmed whitespace is ignored)
  • Red (✕) — the line is incorrect, missing from the solution, or contains a syntax mistake
  • Blue (/) — the line is a comment; comments are styled separately to distinguish them from logic errors
If your submission is perfect, a “Code is Correct!” success banner appears at the bottom of the modal with options to return to the main menu or go back to the motor selection screen.
Click View Solution to open the reference answer with your own lines highlighted. Lines you got right are shown in green; lines you missed or wrote incorrectly are shown in red. This makes it easy to spot exactly where your code diverged from the expected answer without having to diff the two manually.

Next Steps

Now that you have completed your first lesson, explore the rest of FRC Academy’s curriculum:

Activate a Motor

Bind a controller button to run the motor at 50% speed and stop it on release using RunCommand and InstantCommand.

Controllers Lesson

Declare CommandXboxController objects for driver and operator inputs on ports 0 and 1.

Tank Drive (2 Motor)

Build a full 2-motor arcade drive system with left/right motor inversion and MathUtil.clamp speed limits.

All Lessons

Browse every available lesson for NEO, Kraken, and CIM motors across all four lesson types.

Build docs developers (and LLMs) love