Sabertooth Movement Panel icon Sabertooth Movement Panel Sabertooth movement panel: control two motors via Simplified Serial with variable speed sliders, movement buttons, and serial port options. Try it →
 

How To Use

Why this matters: The AI does not see your wiring, your servo limits, or what your skills are for. It sees the names and descriptions you write. A port called d2 with no description is just d2. A port called d2 described as “left shoulder servo, range 30–150” becomes a precise, hard constraint the AI will respect.

Project Configuration

1

Describe Your Global Variables

When you call setVar(), pass a third argument that explains what the variable means. The assistant reads this description as authoritative meaning. Without it, the AI is left guessing what $mode or $batt represents.

// Weak — AI has no idea what this is for setVar("$mode", "idle"); // Strong — AI now knows the purpose AND the valid values setVar("$mode", "idle", "Current robot behavior mode. One of: idle, patrol, follow, sleep."); setVar("$batt", 12.4, "Current battery voltage in volts, sampled every 5 seconds.");
2

Fill Out the AI Description on Every Script

Every script in ARC has an AI Description field in its configuration screen. Use it to write one or two plain sentences describing what the script does and when it runs. This is what the AI sees when it considers calling, modifying, or referencing that script.

× Weak: (empty) ✓ Strong: "Runs when the bumper sensor triggers. Stops all motors, backs up 30cm, then turns 90 degrees right."
3

Describe Auto Position Actions

Every Auto Position action has a description field. Fill it in. The AI uses these descriptions to choose the right action when a prompt asks for a pose or motion — without them, it can’t tell Wave from Salute from Point.

× Weak: Action1 ✓ Strong: Wave — "Raises right arm to shoulder height and waves the hand left-right twice. Returns to home pose. Takes ~3 seconds."
4

Describe EZ-Bits in the Robot Designer

If your robot is built from EZ-Bits, open each bit in the Robot Designer and describe what its servos do, where they’re located, and what ports they use. The EZ-Robot JD Humanoid template is a great reference — you’ll see entries like “D4 — left arm elbow”, “D5 — left arm wrist rotate.”

✓ Good descriptions look like: D0 — head pan (left/right), center=90, range 20–160 D1 — head tilt (up/down), center=90, range 60–120 D4 — left arm elbow, straight=90, fully bent=30 D12 — right gripper, open=70, closed=145
5

Use the Port Descriptions Tab (No EZ-Bits Needed)

Not using EZ-Bits? Open Project → Properties → Port Descriptions. Add each port you use and write a description of what it does. The AI reads this list the same way it reads EZ-Bit descriptions — it’s the canonical “what is plugged into what” reference.

✓ Example port descriptions: D0 — pan servo, scanning lidar mount, range 0–180 D1 — tilt servo, scanning lidar mount, range 30–120 D8 — relay for headlight LEDs ADC0 — battery voltage divider, multiply by 3.2 for volts v0 — left drive motor, −100=full reverse, 100=full forward v1 — right drive motor, −100=full reverse, 100=full forward
6

Rename Robot Skills to Match What They Do

Robot skills are addressed by name through controlCommand(). Generic names (“Servo Movement Panel,” “Soundboard 1”) tell the AI nothing — descriptive names tell it everything. Right-click any skill’s title bar and choose Rename, then give it a name that describes its purpose.

× Generic: "Servo Movement Panel" → controlCommand("Servo Movement Panel", "Run") ✓ Descriptive: "HeadServo" → controlCommand("HeadServo", "Run") × Generic: "Soundboard 1" ✓ Descriptive: "GreetingSounds"

Prompting Tips

Project setup gets the AI the facts. Good prompting gets the AI the intent. The clearer your request, the closer the first reply lands to what you actually wanted.

1. Be specific about what the script should do

State the action, the inputs, the outputs, and any timing. “Move the arm” is ambiguous. “Sweep the left elbow from 30 to 150 degrees over 2 seconds, then back” is buildable.

× Weak: "make the robot wave" ✓ Strong: "Use the Auto Position 'Wave' action, then return to home pose. Speak 'hello' through the SayEZB skill while waving."

2. Name the skills, ports, or variables you want used

If you already know which skill or port should do the job, say so. The AI will use exactly what you named instead of guessing.

✓ Strong: "Read ADC0, convert to volts using the formula in the port description, and store it in $batt every 10 seconds."

3. State the trigger and the stop condition

Tell the AI when the script starts, when it stops, and what should happen in between. Loops without exit conditions are the #1 source of bad generated scripts.

× Weak: "patrol the room" ✓ Strong: "Drive forward at speed 40 until the front sonar reads under 30cm, then stop and turn right 90 degrees. Repeat until $mode is no longer 'patrol'."

4. Ask for a fix on the existing script — don’t start from scratch

If you have working code that’s almost right, leave it in the editor and ask for the specific change. The assistant gets the current script as context — it will modify what you have instead of rewriting it.

✓ Strong: "This script works but the head jitters at the end. Slow the last servo move down to take 1 second."

5. Ask for one thing at a time

Long compound requests confuse the AI and produce monolithic scripts that are hard to debug. Build behavior in small turns — get a working sweep, then ask to add a sensor check, then ask to wrap it in a loop. Each turn produces tested, focused code.

6. Use follow-up turns to iterate

The assistant remembers the conversation. After the first reply, just say “make it slower,” “add a check for the bumper,” or “use Python instead.” You don’t need to restate the whole problem.

7. Ask the assistant to explain code you didn’t write

Inherited a script from a community project? Paste it in and ask “explain what this script does, line by line.” The assistant will walk through it using your project’s real variable and port descriptions.

8. Pick the right model for the job

Use a small, fast model for quick fixes and one-line changes. Use a larger reasoning model when you need multi-step logic, careful constraint handling, or a refactor across a long script. You only pay for the tokens you use — matching model to task saves credits.

Quick Checklist

  • Every global variable has a description in its setVar() call
  • Every script’s AI Description field is filled in
  • Every Auto Position action has a description
  • EZ-Bits or Port Descriptions list every port you use, with purpose and range
  • Every robot skill is renamed to describe what it does
  • You write specific prompts that name the inputs, outputs, and stop conditions
  • You iterate one change at a time in the same conversation

Project Configured. Time to Build.

Open any script in ARC, click the AI Script Assistant button, and describe what you want. The work you just did makes every reply better.

Get ARC → View AI Credits