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
-
Open MakeCode for micro:bitGo to makecode.microbit.org. You do not need to sign in.
-
New project + Cutebot Pro extensionClick New Project and name it
launch-designer. Then click the gear icon → Extensions, searchcutebot pro, and add it. -
Switch to JavaScriptAt the top of the editor click JavaScript. Select all the default code (⌘ A / Ctrl A), delete it, then press Copy designer below and paste.
-
Set your statsNear the bottom, set
SPEEDandPOWERto your bot's values so the drive timing and kick strength match your real robot. Download to the bot.
The code
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.
The design loop
-
Place the ballPut 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.
-
Press A to run the launchThe 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.
-
Change the four numbers, re-download, repeatAdjust 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. -
Check the LED display each runThe 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.
| Variable | What it controls | If 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.
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.