This browser can't use Web Bluetooth. Use Chrome (Android or desktop).
On Linux desktop Chrome the page may need to come from http://localhost
or an https site rather than a file.
BATTERY CUTOFFCHARGE YOUR BATTERIES NOW!The robot has stopped itself and won't drive: the pack is at
?, and these cells are damaged below 3.0 V each.
Take them out of the robot — let them cool first, then charge.
Battery
Pick a mode
Drive
L 0
R 0
Drive with buttons
Hold to drive; let go to stop.
Tilt drive
Hold the button, then tilt the phone: away = forward, sideways = turn. Release = stop. Your grip angle when you press becomes "stopped."
Line tracking
Put the robot on the line and press Start. Tune it while it
drives — every change lands immediately and is saved on the robot.
Speed, steering and the rest live on the Calibrate tab
under Line follower, so you can tune with the robot running.
Obstacle avoidance
The robot drives until something blocks it, then stops, looks
left and right with the sonar, and commits to the clearer side. Cornered on all
sides, it rotates 45° and scans again rather than butting into the wall.
Follow
Holds station in front of whatever it can see, backing off if
you get too close. Lose it and the robot waits — use Seek if you want it to
come looking.
Light seek
Steers toward the brighter side and points the sonar the way it
is turning. Works best with the room lights low and a torch.
Seek / radar
Salutes with the sonar, spins a full survey, locks onto the
nearest thing and chases it. Lose the target and it searches in widening arcs, then
gives up rather than spinning forever.
Sensors
Every indicator at once, with nothing driving. Good for
checking a robot before a session, and for arguing about what a sensor really
measures.
Speed 5
Sonar servo 90°
Live: what it senses → what it does servo —
0brightness0
Bigger bar = more light on that side (brightness = 1023 − raw reading). Cover one sensor with your thumb and watch its bar shrink.
L
R
Filled dot = that sensor sees black tape.
PL
PR
Proximity: filled dot = that side sees something close.
-front cm
0motor output0
Left motor grows left, right motor grows right. Full bar = 100% of the current mode's top speed. Blue = reverse.
Rescue pad — drive it out of trouble
IR remote & command cheat sheet
IR remote (works at power-on, no phone needed)
▲▼◀▶
drive while held; release = stop
OK
STOP (always works, even if BLE owns the robot)
1 / 2 / 3
run program slot 1 / 2 / 3
4
line tracking mode
5
obstacle avoidance mode
6
follow mode (simple)
7
light seek mode
8
seek mode (radar-lock follow)
9
speed cycle (steps up, wraps 9→3)
0
release control — next source to act (IR or BLE) wins
Serial / Bluetooth (case-insensitive)
f b l r s
drive fwd / back / spin left / spin right / stop — manual drives auto-stop 0.4s after the last command (safety), so hold = keep sending
0-9
set speed level (careful: serial 0 = slowest speed, NOT release)
t a w p y
line / avoid / follow / light / seek modes
d
one-shot sensor diagnostics
h1 / h0
live telemetry stream on / off
m<l>,<r>
direct motors -255..255 (what the joystick sends)
e<angle>
point sonar servo 0-180° (90 = straight)
z z
re-zero servo: send twice within 6s to save current position as center
*1 *2 *3
select program slot
[ lines ]
capture program into active slot (saved to EEPROM)
g / k
run / list the active slot
Program language (one per line)
f b l r w <ms>
move / spin / wait for milliseconds
v <0-9> e <ang>
speed / servo
p <n> ... q
repeat n times
i <s> ... z
if sensor s (1-8; 6/7/8 are the "else" of 5/4/3)
x
end program
Program slot (IR remote keys 1/2/3 run these)
Drag-and-drop editor
Drag blocks out of the categories on the left and snap
them together. Best with a mouse or a big screen.
Your program 0 steps
Blocks — tap to add
Tap a block in your program to aim there; new blocks land
after it. Inside a repeat or if, tap the dotted area first.
Paste a program from the Maze Lab or a lesson page here,
then press Text → blocks to see it as blocks.
Why calibrate?
Every robot is different: wheels, motors, batteries, floor. The maze
programs need YOUR robot's two magic numbers: milliseconds per room, and
milliseconds per quarter turn. Measure them here. (Each test replaces the
robot's stored program.)
Line follower — tune it while it runs
Put the robot on the line, press Follow the line, then move
the sliders while it drives. Changes land immediately and are saved on the robot.
Raise speed until it overshoots corners, then raise steering until it
holds them. If it starts sawing side to side, raise damping — that tells
the robot to ease off when it notices itself oscillating rather than fighting harder.
Speed
150how fast when the line is centred
Steering
60how much the inside wheel slows
Corner rescue
70how far a correction may grow
Damping
50back off when it starts sawing
Robot's settings: waiting for it to report…
Motor check — when something fails in only one direction
Each button runs ONE motor in ONE direction while you hold it.
All four should turn a wheel. If one does nothing, that is the fault — and it explains
manoeuvres that fail only one way, since a right spin is the only move that needs the
right motor to run backwards.
Hold a button; watch that one wheel.
Step 0 — Acceleration (do this first)
Watch the robot launch. It should creep off the line and build
speed smoothly — no chirp, no lurch, no swerve. If it slips or yaws at the start,
every measurement below inherits that error. Slower is safer; speed it up only once
launches look clean. These are live (not saved) — tell me the winners and they
get baked into the firmware.
Seed 5how hard it pushes off the line
Growth 5how fast it builds once rolling
About 0.6 s from stop to full speed
Step 1 — How fast, really?
The robot spends its first second speeding up, so a single
short run measures the launch, not the cruise. Instead do two runs from the same
start line — a short one and a long one. Both contain exactly the same launch,
so the difference between them is pure cruising. That is the number we want.
One room (30.5 cm) = ? ms — run a trial
Step 2 — The quadruple spin
Tape an arrow on top of the robot, pointing forward. Press a button:
the robot spins through FOUR quarter turns in that direction — it should end pointing exactly where it
started. Any error is multiplied by 4, so it's easy to see. Read the miss like a clock face:
1 clock-minute = 6°.
Quarter turn: left ? ms, right ? ms — measure both
Step 3 — The long drift (curve trim)
Robots curve. Line the robot up on a straight seam or tape line;
the button drives dead-straight for 3 seconds. Measure how far it ended up LEFT or
RIGHT of the line, in cm, and apply the correction. Repeat until it tracks true —
the fix is saved on the robot itself.
Robot's current trim: waiting for the robot to report it…
Step 4 — Victory lap
The proof: a half-room square using YOUR numbers (same math,
quarter the floor space), finishing with a victory wiggle. If the robot comes
home to its start mark, you're calibrated.
Servo zero (aim straight ahead)
If the sonar doesn't point dead ahead when centered: nudge until it
does, then set the new zero. The robot remembers it forever (survives power-off).