- Maker
- LeRobot community
- Actuators
- 5 joints plus gripper, 6 actuators
- Each one is a dimension in the action vector
- Servos
- Dynamixel XL330 and XL430
- Supply voltage
- 5 V and 12 V rails depending on the servo
- Dynamixel bus, so the rails are not the ones the Feetech arms use
- Parts cost
- roughly 250 to 350 euro per arm in parts
- Platform support
- Compatible
- Same data pipeline, the driver is the part that differs
- Also written as
- Alexander Koch arm, Koch arm
- Dataset format
- LeRobot v2.0 or v2.1
- What every model here reads. ACT, SmolVLA and Pi0.5 also take v3.0, GR00T does not.
The Koch v1.1 is a five joint arm with a gripper from the LeRobot community, built on Dynamixel XL330 and XL430 servos rather than the Feetech bus the SO-100 family uses. Parts run roughly 250 to 350 euro and it needs 5 V and 12 V rails depending on the servo. This platform lists it as compatible: the driver differs, the recording, training and deployment path does not.
What the Koch v1.1 is
The Koch v1.1 is a low cost five joint arm with a gripper out of the LeRobot community, usually written as the Alexander Koch arm or simply the Koch arm. Kinematically it lands where an SO-100 lands: six actuators, printed structure, smart serial servos. The parts bill differs, roughly 250 to 350 euro against 110 to 150, and the reason is the servos.
Where the SO-100 family uses Feetech STS3215 units on one chain at one voltage, the Koch uses Dynamixel XL330 and XL430 servos across 5 V and 12 V rails. That is not a footnote. It decides the wiring, the tooling for the chain, the connectors on your bench, and which hardware pages here you can follow line by line.
Specifications
| Item | Koch v1.1 |
|---|---|
| Maker | LeRobot community |
| Also written | Alexander Koch arm, Koch arm |
| Kinematics | 5 joints plus gripper, 6 actuators |
| Servos | Dynamixel XL330 and XL430 |
| Supply | 5 V and 12 V rails depending on the servo |
| Parts cost | roughly 250 to 350 euro per arm |
| Platform support | Compatible |
| Dataset format | LeRobot v2.0 |
Dynamixel instead of Feetech: the difference that matters
Feetech STS3215 and Dynamixel XL servos solve the same problem inside different ecosystems. Both are smart serial servos: you address a unit by id over a shared line and ask it for a position rather than feeding it a pulse width. What differs is the protocol, the connector, the USB interface that speaks it, the register names behind torque and position, and the voltage the motor expects.
All of that stops at the serial port. Above it, a joint angle is a joint angle. The client records the same six values per control step, writes the same LeRobot v2.0 layout and fine-tunes the same five policies. Nothing in a dataset records which brand of servo produced the numbers, which is why all four training guides exist for this arm as well.
Below the serial port almost nothing carries over from a Feetech build. Ids are written with Dynamixel tooling, the chain reaches the host through a Dynamixel USB interface rather than a Feetech bus adapter, and the limits you might inspect live in a different register map. Budget an evening for the parts that are muscle memory on one bus and unfamiliar on the other.
A LeRobot v2.0 dataset holds joint positions, camera frames and the task string. There is no servo field and no arm model field in it, so a Koch recording and an SO-100 recording are structurally identical. /glossary/lerobot-dataset has the layout, /glossary/episode explains what one recording contains, /glossary/teleoperation covers the driving half.
Power: two rails, and a warning that runs both ways
A Feetech arm is one supply into one chain. A Koch is not. Which rail a given servo wants depends on the model at that joint, and a Koch build mixes two families, so you cannot infer the voltage from the joint position.
Read the label on each servo rather than assuming, because 5 V and 12 V are both correct here depending on the unit. Then keep those supplies away from any Feetech hardware on the bench: the 12 V supply a Koch legitimately needs is the exact supply that destroys an SO-100, an SO-101 or a LeKiwi arm in seconds. A shared desk with unlabeled leads is how this goes wrong, and it goes wrong once.
What compatible support means in practice
The catalog marks the SO-100 and SO-101 as fully supported and the Koch v1.1 as compatible. That word is doing real work and is worth spelling out.
- Everything above the driver is identical: recording, review, LeRobot v2.0 datasets, upload, cloud training, checkpoint deployment and the MCP tools.
- All four training guides exist: /train/smolvla-on-koch-v1-1, /train/act-on-koch-v1-1, /train/groot-n1-7-on-koch-v1-1 and /train/pi0-5-on-koch-v1-1.
- New features are validated on an SO-100 first, so the Koch path is the second one checked rather than the first.
- Three of the six hardware fix pages assume a Feetech chain and are scoped to the SO-100, SO-101 and LeKiwi: /fix/arm-twitches-then-sags, /fix/joint-stops-early and /fix/gripper-does-not-close. Read them for the reasoning, then translate.
- The bus agnostic ones apply as written: /fix/arm-not-detected, /fix/servo-not-responding and /fix/camera-not-detected.
From the carton to the first movement
- 1Sort the servos by model, not by joint
Separate the XL330 units from the XL430 units first and note which rail each expects. This prevents the expensive mistake later, when everything is assembled and the labels are hidden.
- 2Write the ids with the Dynamixel tooling
Each servo needs its id set while the connector is reachable. The Feetech utility from an SO-100 build will not do this, and neither will the CLI.
- 3Follow the SO-100 build for the rhythm, not the parts
/learn/so-100-getting-started is written for a Feetech arm, but assemble, pair, list devices, calibrate is the same sequence here. Only the servo tooling and the wiring differ.
- 4Install the client and pair this machine
The installer from /download brings the CLI and the desktop client with the driver inside.
bashcurl -fsSL https://www.ay-robots.com/install.sh | sh ay-robots pair 4QD2-8HRM-1XV6 ay-robots status - 5Find the port and count six servos
Six units answering means the Dynamixel chain is sound. Reach that point before attaching cameras.
bashay-robots devices - 6Calibrate, then send it home
Guide the joints to the neutral pose, press Enter to store the zero, then command the home pose. The reference belongs to this physical arm.
bashay-robots calibrate ay-robots home
What the platform trains and runs on a Koch v1.1
The same four policy families with the same defaults, because the defaults come from the model rather than the arm. Nothing in the table changes because the bus is Dynamixel.
| Policy | Guide | GPU tier | Episodes to start | Inference per step |
|---|---|---|---|---|
| SmolVLA | /train/smolvla-on-koch-v1-1 | RTX 4090 or any 24 GB card | 30 | about 245 ms |
| ACT | /train/act-on-koch-v1-1 | RTX 4090 or any 24 GB card | 50 | about 20 ms |
| GR00T N1.7 | /train/groot-n1-7-on-koch-v1-1 | A100 80 GB or H100 80 GB | 50 | about 152 ms |
| Pi0.5 | /train/pi0-5-on-koch-v1-1 | A100 80 GB or H100 80 GB | 50 | about 485 ms |
# Record while you teleoperate. The command starts and stops the recording, it does not drive the arm.
ay-robots record --task "stack the small block on the large block" --episodes 50 --cameras wrist,top
ay-robots datasets list --local
ay-robots datasets upload block-stack --name block-stack-koch
# No training subcommand exists. Start the run under Training in the dashboard,
# or call the start_training tool on the MCP server.
ay-robots run --model smolvla --checkpoint s3://runs/block-stack-koch/step-20000 --task "stack the small block on the large block"
ay-robots stopModel detail sits at /policies/smolvla, /policies/act, /policies/groot-n1-7 and /policies/pi0-5. If a run dies as soon as it starts, the cause is usually memory or format rather than hardware: /fix/out-of-memory-training and /fix/dataset-rejected-v3 account for most of it.
Against the other three arms
- SO-100 and SO-101: one Feetech chain, one 7.4 V supply, roughly 110 to 170 euro in parts, full support. The cheaper and better trodden route, and the SO-100 is what /live actually runs.
- LeKiwi: a Feetech arm at 7.4 V on a 12 V three wheel base, roughly 400 to 500 euro, and the only supported machine whose action vector is wider than six values.
- Koch v1.1: the only Dynamixel arm here, the only one where a 12 V rail is correct rather than fatal, and the most expensive fixed arm on the list.
Frequently asked questions
Can I run a Koch v1.1 on a 7.4 V supply?▾
No, and the mistake runs opposite to the usual one. The Koch expects 5 V and 12 V rails depending on which servo sits at that joint, so check the label on each unit.
Do I need different training settings for a Koch?▾
No. Batch size, learning rate, step count and gradient accumulation are properties of the model, not the arm. The defaults are listed in /train/smolvla-on-koch-v1-1.
Can I train on Koch and SO-100 episodes mixed together?▾
The shapes line up, since both produce six values per control step, so a trainer accepts it. Whether it helps is another matter: link lengths and calibration zeros differ, so the same joint number means a different pose.
Does the Dynamixel bus change inference latency?▾
The figures here, about 20 ms for ACT up to about 485 ms for Pi0.5, are the time the model needs for one action step on the rented GPU. Transport on the servo bus is a separate cost. See /glossary/inference-latency.
Why is the Koch v1.1 more expensive than an SO-100?▾
The servos. A Koch build is roughly 250 to 350 euro against 110 to 150, and the Dynamixel units are where the difference sits.
Will compatible support stop working on me?▾
Compatible means the driver layer differs and the SO-100 is tested first. Recording, datasets, all five trainers, checkpoints and the MCP tools are shared code, so the surface where the two can diverge is the driver.
Was this page helpful?
Still choosing? The arm comparisons put two of them side by side, and /policies covers the models you can train on any of them.
Drive a real arm before you build one
The arm on /live is a real SO-100. Whenever it is online, anyone can drive it from the browser without a signup - the closest look at this class of hardware you can get without owning any.