Arm Studio · runs in the browser
The editor, the simulator, the compiler and the USB connection. All of it in a browser tab, with nothing to install and nothing for school IT to approve.
Simulate mode needs no hardware and no account.
Most classroom robotics works like this: write code, compile it, upload it, wait, watch, change one number, repeat. Fifteen seconds a go. Children stop experimenting.
The arm carries a small resident program called ArmOS, installed once with one click. After that the browser sends it short commands over USB and the arm answers immediately. Drag a slider and the joint follows your finger.
When a student is ready to write a real Arduino sketch, compile-and-flash is still there. Both paths exist, and the course teaches the difference between them, because knowing when you are talking to a program and when you are the program is a real idea.
What goes over the wire
Nine lines a student can read. The serial console in the Studio shows this traffic live, which is the fastest debugging tool in the whole course.
The same program, seen four different ways. Switching tabs never loses your work.
Four sliders, one per joint, plus a coordinate pad. The stage draws the arm from the side and from above, with the reach envelope marked.
Ask for a point it cannot reach and the app shows you where you asked, outside the envelope, instead of printing an error. Record six poses and they become blocks, which is a whole program with no typing at all.
Drag-and-drop, with blocks that know about robot arms rather than generic loops.
pick up at (x, y, z) is one block that expands into five moves: open, reach above, descend, close, lift. Approaching from above is the thing beginners always forget, so the block does it for them until they know why.
Press Show me the C++ and the blocks become a complete Arduino sketch, a real one, with Servo.h, the joint limits, and the inverse kinematics written out.
Loops stay loops. A "repeat 3 times" block becomes for (int i = 0; i < 3; i++), not three copies. Seeing that next to the block they dragged is the moment blocks stop being necessary.
Describe the task in your own words and get a plan back as a numbered list of steps.
It never runs on its own. Steps that will not work are marked before the student reads them, and pressing Run is always a human decision. Finding the wrong step is the exercise, not an inconvenience.
Students are going to ask a language model to write their robot code. That is simply true now. We would rather it happened inside the lesson, where the plan is checked and the student has to sign off on it, than in another tab where it is pasted in unread.
So the Ask tab is built to be doubted. It returns a plan, not motion. Every coordinate is tested against the arm's real geometry before the student sees it, and unreachable steps are flagged. Then the student edits it in the Blocks tab and presses Run themselves.
From module 1 onward, each module includes one deliberately flawed plan to review, a coordinate in mid-air, a claw that closes before it arrives, a place before a pick. Spotting those is a graded skill. It is also, as it happens, exactly how you supervise any machine.
They are not redundant. Each one catches something the others cannot.
01 · In the browser
Every coordinate is solved against the arm's real geometry first. If there is no solution, nothing goes down the wire, whether a student typed it or a model proposed it.
02 · On the board
ArmOS clamps every joint to its safe travel and rejects out-of-range commands with an error. A servo told to go past its stop does not stop. It grinds.
03 · Always on screen
A red Stop button that is never scrolled off, plus Escape as a keyboard shortcut. Both clear the queue and release every servo. Closing the tab releases them too.
Before the first program that will move real hardware, the app asks the student to confirm the workspace is clear. Flashing asks again separately, because a flashed program starts running the instant the board reboots.
To drive a real arm
To learn without one
Web Serial, the standard that lets a web page talk to a USB device, exists in Chromium browsers and ChromeOS. We say so plainly rather than discovering it at the front of a classroom.
Simulate mode is the default. There is a program already on the canvas. Press Run.
Open Arm Studio