o Launch Sequence Designer · Velocity Arena
Today Schedule Teacher resources Tools Math concepts
Build & test your opening move

Design your launch sequence on its own.

The launch is your bot's first job every match: get to the ball and kick it toward the goal. This tool runs only your launch — no roaming, no match loop — so you can tune it fast. Place a ball, press a button, watch what happens, change four numbers, and try again. When it works, copy one marked block into your game code.

Open MakeCode and load the designer

  1. Open MakeCode for micro:bit
    Go to makecode.microbit.org. You do not need to sign in.
  2. New project + Cutebot Pro extension
    Click New Project and name it launch-designer. Then click the gear icon → Extensions, search cutebot pro, and add it.
  3. Switch to JavaScript
    At the top of the editor click JavaScript. Select all the default code (⌘ A / Ctrl A), delete it, then press Copy designer below and paste.
  4. Set your stats
    Near the bottom, set SPEED and POWER to your bot's values so the drive timing and kick strength match your real robot. Download to the bot.

The code

Everything between the green COPY INTO YOUR GAME CODE markers is what you'll move to your game later. Everything below the TEST HARNESS line just lets the launch run by itself — don't copy that part.
launch-designer.ts

    

The design loop

  1. Place the ball
    Put your bot at its real starting corner and place the ball where your launch should end up (about the center of the field). Give the bot at least a meter of clear runway in front.
  2. Press A to run the launch
    The bot runs your launch once: it shimmies toward the center line, squares up to the goal, rolls forward to the ball, and kicks. Watch where the ball ends up.
  3. Change the four numbers, re-download, repeat
    Adjust the LAUNCH_ values (see the table below), download, and run again. Press B anytime to display your current four values. Press A + B for an emergency stop.
  4. Check the LED display each run
    The micro:bit tells you which phase it's in:
    GO launch started K kicking OK finished NO BALL didn't reach it

The four launch numbers

Tune them roughly in this order. Keep the two turn angles equal so the bot ends up facing the goal again after the diagonal.

VariableWhat it controlsIf it's wrong…
LAUNCH_OFFSET_TURN_DEG How far the bot turns toward the center line at the start. Bot points too wide or too shallow before the diagonal.
LAUNCH_OFFSET_DRIVE_MS How long the diagonal drive lasts (how far sideways it gets). Bot stops to the side of the ball instead of lined up with it.
LAUNCH_SQUARE_TURN_DEG The turn that re-aims at the goal. Keep equal to the offset turn. Bot finishes pointing off-target, so the kick misses the goal.
LAUNCH_APPROACH_MS How long it rolls straight forward to reach the ball. Too short → NO BALL; too long → it runs past / off the table.

Mirrored corner? If your ball sits to the right of your start, swap LeftInPlace and RightInPlace in Steps 1 and 3 — same as you will in the game.

Move it into your game code

✓

Copy the marked block

In your tuned launch-designer project, select everything between COPY INTO YOUR GAME CODE — START and — END — that's your four LAUNCH_ variables and the whole launchSequence() function — and copy it (⌘ C / Ctrl C).

Open your game project, delete your old launchSequence(), and paste yours in its place. If your game already has the LAUNCH_ variables, just update their numbers — don't paste a second let.

Don't copy the test harness. Everything below the TEST HARNESS — DO NOT COPY line (checkBorder, confirmBall, chargeAndFollowThrough, the stats, etc.) already exists in your game code. Copying it on top would create duplicate functions and errors.
!

One difference from the real game

The designer turns border detection off so your launch never gets interrupted on a bare table — that's why you supervise and catch the bot. In the full game, border safety is on, and the same launch will stop at the field edge. Your tuned numbers carry over unchanged.