Skip to content
CrocoDocs
Starter GuideProgrammingEngineeringDesignPortfolio
Documentation

Introduction

IntroductionBIOBUZZ game overview

Getting started

Getting startedBlocksOnBot JavaAndroid StudioYour first OpModeJava basicsMotors and servosNonblocking codeDebugging robot code

Control systems

Control systemsJoystick mappingField-centric mecanum drivePID controlFeedforwardFlywheel velocity controlSystem identificationMotion profilingKalman filterLow-pass filter

Autonomous

AutonomousTimed and encoder movementOdometryLocalization troubleshootingMotion planningReliable autonomous sequencesPure PursuitSensor fusionAuto to TeleOp handoff

Season topics

Season topicsProjectile mathematicsTurret aimingShooting on the move

Code practices

Code practicesNaming conventionsCode organizationLoop timing and bulk readsFormattingComments and documentationTeam collaboration

Libraries

LibrariesNextFTCFTCLibSolversLibPedro PathingRoad RunnerFTC DashboardMercurial v2Mercurial v1PanelsSloth

Community software

Community softwareBlaze FTCOpenLoopHive Vision

Sensors and vision

Vision overviewVision basicsLimelight 3A
Starter Guide
Engineering
Design
Portfolio
Appearance

Blocks

Create FTC OpModes with the browser-based visual programming tool

Overview

is a visual programming tool served by the . You use a browser on a computer or compatible device to create, edit, save, and build with connected blocks. No separate editor installation is needed; the Robot Controller and browser must be connected through the 's Program & Manage network.

recommends Blocks as the starting tool, including for teams that expect to use later. Blocks programs are saved and run on the Robot Controller. Keep a downloaded copy of your .blk files with the team's source and .

First steps

  1. Configure the robot's devices in the Robot Controller app.
  2. Connect your browser to the Program & Manage address shown on the Robot Controller.
  3. Open the Blocks programming tool and create a sample OpMode.
  4. Read the FTC tutorial for setup, building, running, and saving Blocks programs.

The address depends on the Robot Controller device and network configuration. Use the address shown on the device rather than assuming an IP address.

Sequence playground

Blocks runs connected instructions in order. After wait for start, this sequence drives forward, pauses, reverses, and stops:

  1. Forward at 0.25 for 700 ms
  2. Stop for 300 ms
  3. Reverse at −0.25 for 700 ms
  4. Stop

Press Play and watch the sequence. Then find the first sleep block, change its 700 to 1400, and run it again. The forward part lasts longer; the reverse part stays the same. Use − in the editor to zoom out if needed, and Reset between runs to return the robot to its starting position. On a narrow screen, choose Code to edit the blocks and to see the robot.

Drive, wait, reverse
Open example in a new tab

Edit the example, then press Play. Reloading this page or changing theme restores the example.

These are editable FTC Blocks. The drive function sets all four powers. The setup function reverses the right-side motors to match the simulated . Their collapsed definitions sit below the main stack; expand one to see its motor blocks. Equal forward and reverse times do not guarantee an exact return to the starting point.

Java transition

Blocks is its own visual programming environment. It can help you learn sequencing, conditions, loops, and hardware control, but it does not automatically make a Java project for Android Studio. When you move to text, learn the Java syntax and FTC SDK APIs using the official OnBot Java or Android Studio guides.

Sources

  • Official Blocks Programming Tutorial
  • Creating an OpMode with Blocks
  • Managing, downloading, and uploading Blocks OpModes
  • Official programming tool comparison
  • Crimson Crocs FTC Simulator playground — editable Blocks with a simulated robot.

Getting started

Choose an FTC programming tool and find the official setup guides

OnBot Java

Write, build, and run Java OpModes in a browser

On this page

OverviewFirst stepsSequence playgroundJava transitionSources