Connecting and configuring the OSR2

A full walkthrough for the OSR2 stroker. Install the Helper, connect over USB, set the stroke and twist range, and play multi-axis scripts.

The OSR2 ("Open Source Reciprocator") is the most popular do-it-yourself stroker, and it speaks the T-Code language. It does the main up-and-down stroke and can also rotate (twist), and some builds add more motion or a vibration motor. This page walks you through connecting one and setting it up.

The OSR2 connects by USB cable, not Bluetooth. A web browser cannot talk to a USB device on its own, so ToyControl uses a small companion program called the ToyControl Helper to bridge the two. Once the Helper is installed, connecting takes about a minute.

What you will need

Step 1: Install the Helper

The Helper is a small app that sits quietly in your system tray (the row of little icons near your clock) and passes messages between your OSR2 and ToyControl.

  1. Download the Helper for your computer:

    (ToyControl also shows a Download Helper button when you add a T-Code device, if you would rather grab it there.)

  2. Install it, then open it.

  3. First launch: allowing the unsigned Helper. The Helper is not yet code-signed, so your computer warns that it is from an unidentified developer. This is expected and safe. To allow it, just once:

    • macOS: in your Applications folder, right-click (or hold Control and click) ToyControl Helper and choose Open, then click Open again. On newer macOS, instead open the Apple menu > System Settings > Privacy & Security, scroll to Security, and click Open Anyway.
    • Windows: if you see "Windows protected your PC", click More info, then Run anyway.
    • Linux: make the AppImage executable (right-click > Properties > Permissions > allow executing, or chmod +x ToyControl-Helper.AppImage), then run it. For USB access you may also need to join the dialout group.
  4. Make sure the Helper is running. You should see its icon in your system tray, and a green dot on the Helper chip in the ToyControl sidebar.

Full details, including firewall and permission notes, are on the Helper app page.

Step 2: Plug in and connect

  1. Connect the OSR2 to your computer with the USB cable.
  2. In ToyControl, click the + button in the Devices section of the sidebar.
  3. From the catalog, choose T-Code (OSR2 / SR6 / SSR1 / DIY). The OSR2 uses this same card as the other T-Code machines.
  4. ToyControl asks the Helper for a list of connected USB devices. Pick your OSR2 from the list.
  5. Click Connect.
  6. The OSR2 appears in your sidebar with a green dot next to it. You are connected.

If the list is empty the first time, wait a couple of seconds and try again. Many OSR2 boards briefly restart the moment they are plugged in, and ToyControl will automatically take a second look.

Step 3: Test it safely

Before you test, make sure the OSR2 is mounted or secured. These machines move with real force and can shift themselves across a surface if they are not held down.

Click Test toy at the bottom of the screen. The OSR2 should run a short movement. If it moves, you are ready to go.

The OSR2's axes

Every OSR2 does the Stroke (the main up-and-down motion). On top of that, depending on how yours is built:

You do not need to know exactly which your machine has, because ToyControl shows you a control for each axis your OSR2 reports. If you only see a Stroke slider, that is all your build exposes. If you see Twist too, you have the rotation axis, and so on.

Setting the range for each axis

Each axis has its own range slider in the sidebar, one labelled Stroke, and others such as Twist if your machine has them. The slider has two handles and controls how far that axis moves:

Every axis starts at a safe, middle-of-the-road setting (20% to 80%) rather than its full travel. That is why the motion may feel a little short at first. Just widen the Stroke slider for a longer stroke, and the same for any other axis you want more movement from.

A safety note: dragging a handle all the way to 0% or 100% drives that axis to its physical end-stop, so it may bump or knock at the very ends of its travel. If you hear that, pull the handle in by a few percent. If your OSR2's firmware already has its limits set correctly, you can use the full range without worry, but backing off slightly is always safe.

Playing multi-axis scripts

A normal .funscript file controls only the stroke. To make the OSR2 also twist (or move on any other axis it has), a content creator provides a set of files that share the same name, one per axis. ToyControl finds them automatically.

For a video or script called scene, the common OSR2 pair is:

An OSR2+ set might also include scene.roll.funscript and scene.pitch.funscript, and some include scene.vib.funscript for vibration.

To load them: drag all of the matching files onto ToyControl at the same time (or keep them together in a folder you have added to your library). ToyControl loads the main stroke file and quietly attaches the others. When it works, you will see a small "multi-axis" note next to the file name showing which extra motions were found. Each axis then plays from its own track and respects the range slider you set for it.

If you only have a single .funscript, the OSR2 simply strokes, which is perfectly normal and by far the most common case.

Adjusting intensity

The main intensity control (and any pattern or script speed) sets how fast the OSR2 moves, while the range sliders set how far it moves. The two work together: pick a comfortable range for each axis, then use intensity to speed things up or slow them down.

Troubleshooting

Related