> 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/docs/duo/programming-guides.md).

# Programming Guides

### Getting Started

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Where to Program - Client vs. Browser</strong></td><td><a href="/duo-control/hello-robot-blocks/where-to-program.md">Where to Program - Client vs. Browser</a></td><td><a href="https://3172778982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQpUff2Tw0aAY2K1UwemO%2Fuploads%2FHU6EnCeVrqNndcRbRVtQ%2FWhere%20to%20Program_GB-Card.png?alt=media&amp;token=d710a94a-f207-4e10-a31c-f4bdff763456">Where to Program_GB-Card.png</a></td></tr><tr><td><strong>Setting up a Configuration</strong></td><td><a href="/duo-control/hello-robot-blocks/configuration.md">Setting up a Configuration</a></td><td><a href="https://3172778982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQpUff2Tw0aAY2K1UwemO%2Fuploads%2FknNxqtyEb6Nz0H5VuAk4%2FSetting%20up%20a%20Config_GB-Card.png?alt=media&amp;token=d783b16a-7151-4e42-a115-d7a0d1ea6975">Setting up a Config_GB-Card.png</a></td></tr><tr><td><strong>Using a Gamepad</strong></td><td><a href="/duo-control/hello-robot-blocks/using-a-gamepad.md">Using a Gamepad</a></td><td><a href="https://3172778982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQpUff2Tw0aAY2K1UwemO%2Fuploads%2FZibioq4WqzAmmJa537Ex%2FGamepad_GB-Card.png?alt=media&amp;token=29943ced-ff79-47bb-a85c-9da5ec6eec34">Gamepad_GB-Card.png</a></td></tr></tbody></table>

### Hello Robot - Intro to Blocks Programming

{% hint style="success" %}
[Click here to jump to the beginning of the Hello Robot - Blocks Tutorial](/duo-control/hello-robot-blocks/welcome.md)
{% endhint %}

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Part 1: Tackling the Basics</strong><br><br><a href="/duo-control/hello-robot-blocks/part-1/test-bed-blocks.md">Creating an OpMode</a><br><br><a href="/duo-control/hello-robot-blocks/part-1/programming-servos.md">Programming Servos</a><br><br><a href="/duo-control/hello-robot-blocks/part-1/programming-motors.md">Programming Motors</a><br><br><a href="/duo-control/hello-robot-blocks/part-1/programming-touch-sensors.md">Programming Touch Sensors</a><br><br><a href="/duo-control/hello-robot-blocks/part-1/programming-color-sensors.md">Programming Color Sensors</a></td><td><a href="https://3172778982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQpUff2Tw0aAY2K1UwemO%2Fuploads%2FH7IKEZidx5LG4p8maapo%2FHello%20Robo_GB-Card.png?alt=media&amp;token=577ecacb-3257-4616-9268-98b960640350">Hello Robo_GB-Card.png</a></td></tr><tr><td><strong>Part 2: Robot Control</strong><br><br><a href="/duo-control/hello-robot-blocks/part-2/programming-drivetrain-motors.md">Programming Drivetrain Motors<br></a><br><a href="/duo-control/hello-robot-blocks/part-2/arcade-style-teleop-blocks.md">Arcade Style TeleOp</a><br><br><a href="/duo-control/hello-robot-blocks/part-2/arm-control-blocks.md">Arm Control</a></td><td><a href="https://3172778982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQpUff2Tw0aAY2K1UwemO%2Fuploads%2FZibioq4WqzAmmJa537Ex%2FGamepad_GB-Card.png?alt=media&amp;token=29943ced-ff79-47bb-a85c-9da5ec6eec34">Gamepad_GB-Card.png</a></td></tr><tr><td><strong>Part 3: Autonomous and Encoders</strong><br><br><a href="/duo-control/hello-robot-blocks/part-3/elapsed-time.md">ElapsedTime</a><br><br><a href="/duo-control/hello-robot-blocks/part-3/using-encoder.md">Encoder Basics</a><br><br><a href="/duo-control/hello-robot-blocks/part-3/autonomous-navigation-blocks.md">Drivetrain Encoders</a></td><td><a href="https://3172778982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQpUff2Tw0aAY2K1UwemO%2Fuploads%2FYhCRWG8ciYIHtnkUFvAR%2FAuto%20and%20Encoders_GB-Card.png?alt=media&amp;token=b429f816-1459-4fea-8369-74f0caf1b9bb">Auto and Encoders_GB-Card.png</a></td></tr><tr><td><strong>Part 4: Going Beyond!</strong><br><br><a href="/duo-control/hello-robot-blocks/part-4-going-beyond/exploring-functions.md">Exploring Functions</a><br><br><a href="/duo-control/hello-robot-blocks/part-4-going-beyond/programming-mecanum-refined.md">Programming Mecanum</a></td><td><a href="https://3172778982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQpUff2Tw0aAY2K1UwemO%2Fuploads%2F7Iv6BwMJNycBv2e9GNCc%2FGoing%20Beyond_GB-Card.png?alt=media&amp;token=2c8f54ba-2ad0-47ee-ae93-8bef8e0aa320">Going Beyond_GB-Card.png</a></td></tr></tbody></table>

### Hello Robot - Intro to OnBot Java Programming

{% hint style="success" %}
[Click here to jump to the beginning of the Hello Robot - OnBot Java Tutorial](/duo-control/hello-robot-java/welcome.md)
{% endhint %}

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Part 1: Tackling the Basics</strong><br><br><a href="/duo-control/hello-robot-java/part-1/test-bed-onbot-java.md">Creating an OpMode</a><br><br><a href="/duo-control/hello-robot-java/part-1/programming-servos.md">Programming Servos</a><br><br><a href="/duo-control/hello-robot-java/part-1/programming-motors.md">Programming Motors</a><br><br><a href="/duo-control/hello-robot-java/part-1/programming-touch-sensors.md">Programming Touch Sensors</a><br></td><td><a href="https://3172778982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQpUff2Tw0aAY2K1UwemO%2Fuploads%2FALNryYt0x5Aa30StLLIa%2FHello%20Robo_GB-Card.png?alt=media&amp;token=a535c90a-b840-442d-bb44-001d8bfd71e5">Hello Robo_GB-Card.png</a></td></tr><tr><td><strong>Part 2: Robot Control</strong><br><br><a href="/duo-control/hello-robot-java/part-2/programming-drivetrain-motors.md">Programming Drivetrain Motors</a><br><br><a href="/duo-control/hello-robot-java/part-2/arcade-style-teleop-onbot-java.md">Arcade Style TeleOp</a><br><br><a href="/duo-control/hello-robot-java/part-2/arm-control-onbot-java.md">Arm Control</a></td><td><a href="https://3172778982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQpUff2Tw0aAY2K1UwemO%2Fuploads%2FZibioq4WqzAmmJa537Ex%2FGamepad_GB-Card.png?alt=media&amp;token=29943ced-ff79-47bb-a85c-9da5ec6eec34">Gamepad_GB-Card.png</a></td></tr><tr><td><strong>Part 3: Autonomous and Encoders</strong><br><br><a href="/duo-control/hello-robot-java/part-3/elapsed-time.md">ElapsedTime</a><br><br><a href="/duo-control/hello-robot-java/part-3/using-encoder.md">Encoder Basics</a><br><br><a href="/duo-control/hello-robot-java/part-3/autonomous-navigation-onbot.md">Drivetrain Encoders</a></td><td><a href="https://3172778982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQpUff2Tw0aAY2K1UwemO%2Fuploads%2FYhCRWG8ciYIHtnkUFvAR%2FAuto%20and%20Encoders_GB-Card.png?alt=media&amp;token=b429f816-1459-4fea-8369-74f0caf1b9bb">Auto and Encoders_GB-Card.png</a></td></tr></tbody></table>
