Drivetrain#

Introduction#

A VEX V5 drivetrain allows the robot to move continuously or for set distances, rotate by degrees or to a heading, and respond to changes in its rotational orientation.

If the drivetrain is configured with an Inertial Sensor, GPS Sensor, or Gyro Sensor, the drivetrain will be able to make more precise forward, reverse, and turning movements by tracking the sensor’s heading and rotation.

The Drivetrain category also includes configuration blocks that let you set drive and turn speeds, define stopping behavior, apply timeouts to avoid execution stalls, and manually update the robot’s heading or rotation values. These features provide flexibility when designing autonomous behaviors or real-time adjustments.

Below is a list of available blocks:

Actions – Drive or turn the robot for a set distance, angle, or continuously.

  • drive – Drives the robot continuously forward or in reverse.

  • drive for – Drives the robot for a set distance.

  • turn – Turns the robot continuously left or right.

  • turn for – Turns the robot a specific number of degrees.

  • turn to heading – Turns the robot to face a specific absolute heading.

  • turn to rotation – Turns the robot to reach a specific cumulative rotation.

  • stop driving – Stops all robot movement.

Settings – Configure drivetrain speeds, stopping, timeouts, and rotation values.

Values – Return drivetrain motion status, heading, rotation, velocity, and current draw.

  • calibrate drivetrain – Calibrates the drivetrain’s configured Inertial, GPS, or Gyro Sensor.

  • drive is done? – Returns a Boolean indicating whether the drivetrain is no longer moving.

  • drive is moving? – Returns a Boolean indicating whether the drivetrain is currently moving.

  • drive heading – Returns the drivetrain’s heading angle (0 to 359.99 degrees).

  • drive rotation – Returns how much the drivetrain has turned since the project started.

  • drive velocity – Returns the drivetrain’s current velocity in % or rpm.

  • drive current – Returns the current (in amps) drawn by the drivetrain’s motors.

  • drive power – Returns the amount of electrical power the drivetrain is consuming in watts.

  • drive torque – Returns the amount of torque currently being applied by the drivetrain in inch-pounds (InLb) or Newton-meters (Nm).

  • drive efficiency – Returns the current efficiency of the drivetrain.

  • drive temperature – Returns the current temperature of the drivetrain’s motors.

Actions#

drive#

The drive block moves the drivetrain forward or in reverse using the current drive velocity. This block runs continuously until another Drivetrain block interrupts it or the project stops.

aria-description goes here#
  drive [forward v]

Parameters

Description

direction

The direction in which the robot drives:

  • forward
  • reverse

Example

aria-description goes here#
  when started
  [Drive forward, then stop.]
  drive [forward v]    
  wait [2] seconds
  stop driving

drive for#

The drive for block moves the drivetrain forward or in reverse for a specified distance using the current drive velocity.

aria-description goes here#
  drive [forward v] for [200] [mm v] ▶

Parameters

Description

direction

The direction in which the robot drives:

  • forward
  • reverse

distance

The distance the robot drives, as an integer or decimal.

unit

The unit of measurement:

  • mm (millimeters)
  • inches

expanding arrow

By default, this is a waiting block, so the drivetrain will finish moving before running the next block. To make the drivetrain start moving and immediately run the next block right away, expand the block to say and don’t wait.

Example

aria-description goes here#
  when started
  [Drive forwards and backwards.]
  drive [forward v] for [200] [mm v] ▶
  wait [1] seconds
  drive [reverse v] for [200] [mm v] ▶

turn#

The turn block turns the drivetrain continuously left or right using the current turn velocity. The drivetrain will keep turning until another Drivetrain block runs or the project stops.

aria-description goes here#
  turn [right v]

Parameters

Description

direction

The direction in which the robot turns:

  • left
  • right

Example

aria-description goes here#
  when started
  [Turn right, then stop.]
  turn [right v]
  wait [2] seconds    
  stop driving

turn for#

The turn for block turns the drivetrain left or right for a specific number of degrees using the current turn velocity.

aria-description goes here#
  turn [right v] for [90] degrees ▶

Parameters

Description

direction

The direction in which the robot turns:

  • left
  • right

angle

The number of degrees the robot turns, as an integer or decimal.

expanding arrow

By default, this is a waiting block, so the drivetrain will finish turning before running the next block. To make the drivetrain start turning and immediately run the next block right away, expand the block to say and don’t wait.

Example

aria-description goes here#
  when started
  [Turn left, then turn around to the right.]
  turn [left v] for [90] degrees ▶
  turn [right v] for [180] degrees ▶

turn to heading#

The turn to heading block turns the drivetrain to face a specific heading using the current turn velocity.

Note: This block is only available if the drivetrain is configured with an Inertial Sensor, GPS Sensor, or Gyro Sensor in the Devices window.

aria-description goes here#
  turn to heading (90) degrees ▶

Parameters

Description

heading

The absolute heading the drivetrain will turn to, from -360 to 360 degrees.

expanding arrow

By default, this is a waiting block, so the drivetrain will finish turning before running the next block. To make the drivetrain start turning and immediately run the next block right away, expand the block to say and don’t wait.

Example

aria-description goes here#
  when started
  [Turn to face the cardinal directions.]
  turn to heading [90] degrees ▶
  wait [2] seconds
  turn to heading [180] degrees ▶
  wait [2] seconds
  turn to heading [270] degrees ▶
  wait [2] seconds
  turn to heading [0] degrees ▶
  wait [2] seconds

turn to rotation#

The turn to rotation block turns the drivetrain to face a specific rotational value using the current turn velocity.

Note: This block is only available if the drivetrain is configured with an Inertial Sensor, GPS Sensor, or Gyro Sensor in the Devices window.

aria-description goes here#
  turn to rotation [90] degrees ▶

Parameters

Description

rotation

The cumulative rotation value the robot will turn to, as an integer or decimal.

expanding arrow

By default, this is a waiting block, so the drivetrain will finish turning before running the next block. To make the drivetrain start turning and immediately run the next block right away, expand the block to say and don’t wait.

Example

aria-description goes here#
  when started
  [Turn left, then spin in a circle clockwise and face right.]
  turn to rotation [-90] degrees ▶
  wait [2] seconds
  turn to rotation [450] degrees ▶

stop driving#

The stop driving block immediately stops all movement of the drivetrain.

aria-description goes here#
  stop driving

Parameters

Description

This block has no parameters.

Example

aria-description goes here#
  when started
  [Drive forward, then stop.]
  drive [forward v]
  wait [4] seconds
  stop driving

Settings#

set drive velocity#

The set drive velocity block sets the movement velocity as a percentage for all subsequent movement blocks in the project. By default, this is 50%.

aria-description goes here#
  set drive velocity to (50)%

Parameters

Description

velocity

Sets the movement velocity from 0% to 100%.

Example

  when started
  [Drive forward at the default velocity.]
  drive [forward v] for (100) [mm v] ▶
  wait (1) seconds
  [Move slower.]
  set drive velocity to (20)%
  drive [forward v] for (100) [mm v] ▶
  wait (1) seconds
  [Move faster.]
  set drive velocity to (100)%
  drive [forward v] for (100) [mm v] ▶
  wait (1) seconds

set turn velocity#

The set turn velocity block sets the default velocity as a percentage for all subsequent turn blocks in the project. By default, this is 50%.

aria-description goes here#
  set turn velocity to [50] %

Parameters

Description

velocity

Sets the turn velocity from 0% to 100%.

Example

  when started
  [Turn at default velocity.]
  turn [right v] for (100) degrees ▶
  wait (1) seconds
  [Turn slower.]
  set turn velocity to (20)%
  turn [right v] for (100) degrees ▶
  wait (1) seconds
  [Turn faster.]
  set turn velocity to (100)%
  turn [right v] for (100) degrees ▶
  wait (1) seconds

set drive stopping#

The set drive stopping block sets how the drivetrain behaves when drivetrain movement ends.

aria-description goes here#
  set drive stopping to [brake v]

Parameters

Description

stopping behavior

Sets how the drivetrain stops:

  • brake – Stops immediately.
  • coast – Slows gradually to a stop.
  • hold – Stops and resists movement using motor feedback.

set drive timeout#

The set drive timeout block sets a time limit for how long a Drivetrain block will wait to reach its target. If the robot cannot complete the movement within the set time, it will stop automatically and continue with the next block.

Note: The drivetrain’s time limit is used to prevent Drivetrain blocks that do not reach their target position from stopping the execution of other blocks in the stack.

aria-description goes here#
  set drive timeout to (1) seconds

Parameters

Description

time

The maximum number of seconds a Drivetrain block will run before stopping and moving to the next block.

set drive heading#

The set drive heading block sets the gyro’s current heading to a specified value.

Note: This block is only available if the drivetrain is configured with an Inertial Sensor, GPS Sensor, or Gyro Sensor in the Devices window.

aria-description goes here#
  set drive heading to (0) degrees

Parameters

Description

heading

The heading value to assign, in degrees.

Example

aria-description goes here#
  when started
  [Turn to the left.]
  set drive heading to (90) degrees
  turn to heading (0) degrees ▶

set drive rotation#

The set drive rotation block sets the gyro’s current cumulative rotation value.

Note: This block is only available if the drivetrain is configured with an Inertial Sensor, GPS Sensor, or Gyro Sensor in the Devices window.

aria-description goes here#
  set drive rotation to (0) degrees

Parameters

Description

rotation

The cumulative rotation value to assign, in degrees.

Example

aria-description goes here#
  when started
  [Spin counterclockwise two times.]
  set drive rotation to (720) degrees
  turn to rotation (0) degrees ▶

Values#

calibrate drivetrain#

The calibrate drivetrain block calibrates the drivetrain’s configured Inertial, GPS, or Gyro Sensor. All subsequent blocks will wait for the calibration to complete before executing. Calibration is an internal procedure that measures and compensates for sensor noise and drift over a specified period. During this time, the sensor must remain completely still (i.e., on a stable surface without any external movement). Movement during calibration will produce inaccurate results.

Note: This block is only available if the drivetrain is configured with an Inertial Sensor, GPS Sensor, or Gyro Sensor in the Devices window.

    calibrate drivetrain

Parameters

Description

This block has no parameters.

drive is done?#

The drive is done? block returns a Boolean indicating whether the drivetrain is not moving.

  • True - The drivetrain is not moving.

  • False - The drivetrain is moving.

Note: This block only detects movement from blocks that can expand to show the and don’t wait option.

    <drive is done?>

Parameters

Description

This block has no parameters.

drive is moving?#

The drive is moving? block returns a Boolean indicating whether the drivetrain is moving.

  • True - The drivetrain is moving.

  • False - The drivetrain is not moving.

Note: This block only detects movement from blocks that can expand to show the and don’t wait option.

    <drive is moving?>

Parameters

Description

This block has no parameters.

drive heading#

The drive heading block returns the drivetrain’s heading angle as a decimal number, in the range 0 to 359.99 degrees.

Note: This block is only available if the drivetrain is configured with an Inertial Sensor, GPS Sensor, or Gyro Sensor in the Devices window.

    (drive heading in degrees)

Parameters

Description

This block has no parameters.

Example

    when started
    [Display the heading after turning.]
    turn [right v] for (450) degrees ▶
    print (drive heading in degrees) on screen ◀ and set cursor to next row

drive rotation#

The drive rotation block returns how much the drivetrain has turned since the project started, in degrees: positive for clockwise, negative for counterclockwise.

Note: This block is only available if the drivetrain is configured with an Inertial Sensor, GPS Sensor, or Gyro Sensor in the Devices window.

    (drive rotation in degrees)

Parameters

Description

This block has no parameters.

Example

    when started
    [Display the rotation after turning.]
    turn [right v] for (450) degrees ▶
    print (drive rotation in degrees) on screen ◀ and set cursor to next row

drive velocity#

The drive velocity block returns the current speed of the drivetrain in a range from -100% to 100% or -127 rpm to 127 rpm.

    (drive velocity in [% v])

Parameters

Description

unit

The unit of measurement:

  • %
  • rpm – revolutions per minute

drive current#

The drive current block returns the amount of electrical current the drivetrain is drawing in a range from 0.0 to 1.2 amps (amperes).

    (drive current amps)

Parameters

Description

This block has no parameters.

drive power#

The drive power block returns the amount of electrical power the drivetrain is consuming in a range from 0.0 to 22.0 watts.

    (drive power in watts)

Parameters

Description

This block has no parameters.

drive torque#

The drive torque block returns the amount of torque currently being applied by the drivetrain in a range from 0.0 to 22.0 inch-pounds (InLb) or 0.0 to 2.1 Newton-meters (Nm).

    (drive torque in [InLb v])

Parameters

Description

unit

The unit of measurement:

  • InLb – inch-pounds
  • Nm – Newton-meters

drive efficiency#

The drive efficiency block returns the current efficiency of the drivetrain as a percent.

    (drive efficiency in %)

Parameters

Description

This block has no parameters.

drive temperature#

The drive temperature block returns the current temperature of the drivetrain’s motors as a percent.

    (drive temperature in %)

Parameters

Description

This block has no parameters.