Skip to content

Motor Control

Motors category blocks control the selected motor(s) - the dropdown accepts one motor or several at once (e.g. A+B). Typically arms, claws and other attachments; drive-base movement uses the Movement blocks covered next lesson.

Core blocks

wordblocks
run motor [A] [clockwise] for [1] rotations
run motor [A] [clockwise] for [90] degrees
motor [A] go to position [0]
start motor [A] [clockwise]
stop motor [A]
set motor [A] speed to [75] %
BlockBehaviorWhen to use
run for rotations / degreesTurns a set amount, blocks until doneAttachment moves: raise arm 90°, close claw half a turn
go to position xMoves to an absolute position (0-359); direction selectable: clockwise / counterclockwise / shortest pathReturn an arm to the exact same pose every time
start motorStarts spinning, next block runs immediately (non-blocking)Pair with sensors: spin while waiting for a condition
stop motorStops a started motorAlways paired with "start"
set speedSets speed (-100%..100%, negative = reverse) for subsequent movesSlow and steady for attachments

Blocking vs non-blocking

The concept beginners mix up most:

  • "run for 1 rotation" blocks: the program waits on this block until the rotation finishes.
  • "start motor" doesn't block: the motor starts and the program immediately moves on.
wordblocks
start motor [A] [clockwise]
wait [2] seconds               ← Control category
stop motor [A]

This means "spin for 2 seconds, then stop". Swap "start" for "run for 1 rotation" and the wait happens after the rotation instead.

Position and zeroing

Every motor has an absolute scale: a 0-mark on the housing. Related blocks:

wordblocks
motor [A] go to position [0]        ← return to the 0 mark
(motor [A] position)                 ← reporter block (round value block) from Sensors

FLL technique: attachment initialization

At the start of every run, send attachment motors to go to position [0] so the starting pose is identical every time. Hand-positioning an arm is not repeatable; zero it in the program.

Stop modes

A motor can stop three ways (set via block options or "set motor stop mode"):

ModeEffect
BrakeStops firmly, the default
HoldStops and actively resists external force
CoastCuts power, spins down freely

An arm lifting a load should use Hold, otherwise gravity pushes it back down after stopping.

Exercises

  1. Run the Port A motor 3 rotations at 30% speed, then 3 back at 100% - compare the time.
  2. Implement "spin 5 seconds" using start + wait + stop.
  3. Align the motor's 0-mark somewhere meaningful, put go to position 0 at the start of the program, run repeatedly and verify the pose is identical.

Next lesson: Movement (Drive Base).

© 2026 FLL Knowledge Base · All rights reserved