Main menu
Sequence Builder

Blocks — click to add

Program — 0 steps

Calculator mirror — FX-9750

Packet log

Notes

Head position 0 is left, 1 centre, 2 right, as seen by someone facing the droid. The reported position uses different codes, which the controller translates back, so what you command is what you read.

Sequence blocks play the toy's own stored routines. They finish in their own time, so follow one with a Wait if the next step should not interrupt it.

Live Control

Drive and cam

The cam selects what the single motor drives. Choose a cam position, then drive.

Head

Lamps

red 0%, blue 0%

Sound and stored routines

Calculator mirror — FX-9750

Packet log

Command set

Not implemented

High-level sequences (0x17 type 2), set volume (0x23), read volume (0x22), battery (0x21) and playlist variables (0x11) are not in this build. Power-down is excluded deliberately, not by omission: a typing error should not end the lesson.

WebSocket protocol

Clicking Run sends one message: the word RUN, then one line per step. The controller holds the list in memory and steps through it, so nothing is compiled or flashed. It is line-based rather than JSON because the controller parsing it is already running a Bluetooth stack, a web server and a calculator link, and a JSON library bought to read four fields is a dependency bought for nothing.

Each line is bytes|milliseconds|mirror text. The milliseconds are how long the controller waits after issuing that command before moving on. An empty bytes field is a Wait: it transmits nothing. Live Control sends NOW bytes|mirror for a single command, and HALT stops a run.

The controller replies with STEP n as each step begins, DONE at the end, HALT why if it stops early, and TEL ir holdage head link freelance twice a second. The second field is the age of the app-mode hold in tenths of a second, the same number the calculator shows. The last field is set when the droid has chosen its own mode, which it announces in plain text on its debug channel.

Calculator mirror

As each step executes the controller emits a short token on Serial2, which the calculator picks up in its Receive( loop and prints. The tokens are deliberately short: the calculator's line is 21 characters.