> For the complete documentation index, see [llms.txt](https://docs.revrobotics.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.revrobotics.com/first-global/2026/sb-code/programming-drive-and-climber.md).

# Programming - Drive and Climber

## Arcade Drive

The FGC Starter Bot is designed for arcade drive. The **left joystick** controls all movement for the robot's drivetrain, forward/back and turning!

<figure><img src="/files/RmVJfoKeCjbsKtNXzasv" alt=""><figcaption><p>FGC Starter Bot Arcade Drive</p></figcaption></figure>

The inputs from the joystick will be stored in the set up X and Y variables. However, unlike the `targetVelocity` [constant variable](#user-content-fn-1)[^1] set up during initialization, these variables will update every time the program loops.&#x20;

Then these variables are used to calculate how much power to give each motor based on the current movement of the joystick.&#x20;

{% hint style="info" %}
To learn more about the variables used and the equation for deciding motor power, check out the [Hello Robot's walkthrough](https://docs.revrobotics.com/duo-control/hello-robot-blocks/part-2/arcade-style-teleop-blocks/establishing-variables-in-blocks)!
{% endhint %}

## Climber Control

<figure><img src="/files/acK4wUXiK2kf9iPLRqGC" alt=""><figcaption><p>FGC Starter Bot Climb Code</p></figcaption></figure>

The FGC Starter Bot uses a single motor for climbing. On the gamepad, pressing **triangle** will allow the robot to ascend up the brace while **square** reverses the motor to aid with adjusting while climbing.

[^1]: variables that do not change while the program runs
