Open source stroker robot by TempestMAx
OSR2 Funscripts: Setup Guide
The OSR2 is an open source stroker robot designed by TempestMAx that people build at home from 3D printed parts and servos. It speaks T-Code over USB and plays multi-axis funscripts, adding roll, pitch and twist to the usual stroke.
By the Funscripted team. Updated .
OSR2 at a glance
- Designer
- TempestMAx
- How to get one
- Build it from 3D printed and stock parts, or buy a pre-built unit
- Motors
- Two 180 degree servos. The OSR2+ adds a third for pitch.
- Controller
- Romeo BLE Mini or an ESP32 board
- Connection
- USB serial at 115200 baud. ESP32 boards can also use Wi-Fi.
- Protocol
- T-Code v0.3
- Axes
- Stroke and roll. Pitch with the OSR2+, twist with the T-wist add-on.
- Power
- Adjustable 3 to 12 V supply rated at 10 A
How to play funscripts on the OSR2
- 1Flash T-Code firmware. The official OSR2 firmware runs on the Romeo BLE Mini. ESP32 boards run TCodeESP32.
- 2Plug the OSR2 into your computer with USB and note its COM port.
- 3Install MultiFunPlayer. Add a Serial output and pick that COM port.
- 4Connect MultiFunPlayer to your video player. VLC needs its web interface turned on. DeoVR and HereSphere need remote control turned on.
- 5Put the scripts next to the video with the same name, such as
video.funscriptandvideo.roll.funscript, then press play.
Players that work with the OSR2
MultiFunPlayer
The main multi-axis player. Free, open source, and drives every OSR2 axis over serial, UDP or WebSocket.
XTPlayer
Free T-Code player for Windows, Linux and Mac.
Intiface Central
Supports T-Code v0.3 at 115200 baud, but only the stroke axis.
HereSphere and DeoVR
VR players that send their playback time to MultiFunPlayer, which moves the OSR2.
FapTap
Web player that drives the OSR2 over serial, stroke axis only.
OSR2, OSR2+ and T-wist
| Build | What it adds | Axes |
|---|---|---|
| OSR2 | The base robot with two servos | Stroke (L0) and roll (R1) |
| OSR2+ | A pitch module with a third servo | Adds pitch (R2) |
| T-wist | A twist receiver with a 270 degree servo | Adds twist (R0) |
The OSR2 cannot surge or sway. Those two axes, L1 and L2, need an SR6.
Which script file drives which axis
Each axis reads its own file. Players find them by the video name. See the multi-axis guide for the full list.
| File | Axis | Motion |
|---|---|---|
video.funscript | L0 | Stroke, up and down |
video.roll.funscript | R1 | Roll, tilt left and right |
video.pitch.funscript | R2 | Pitch, tilt forward and back |
video.twist.funscript | R0 | Twist, turn around the stroke axis |
T-Code in one minute
T-Code is a short text command sent over the USB serial line. Each command is a letter for the motion type, a channel number and a value. L means linear, R means rotate and V means vibrate.
L0500I1000
R1250I500The first line moves the stroke axis to the middle (0.500) over 1000 ms. The second tilts the roll axis to 0.25 over 500 ms. You never type these yourself. MultiFunPlayer turns your funscripts into T-Code for you.
Tips for better sync
- Set a speed limit per axis in MultiFunPlayer before your first run. It also has auto-home, a smart limit that ties one axis to another, and a soft start.
- On ESP32 boards, TCodeESP32 can store range limits on the device, so every player respects them.
- Servos are loud. The OSR parts list says brushed servos are the loudest.
- If moves feel early or late, change the offset in MultiFunPlayer. See how to fix sync problems.
Find scripts for the OSR2
Every script on Funscripted is a standard .funscript file, so it plays on the OSR2 with any of the players above.
Frequently asked questions
Can I buy an OSR2?
The OSR2 is made to be built at home from 3D printed parts and servos. A few shops also sell pre-built units, some with quieter brushless servos.
Is the OSR2 open source?
TempestMAx calls the original OSR2 design fully open source and free. The pitch, twist and suction add-ons are only for his Patreon supporters.
What is the difference between the OSR2 and the OSR2+?
The OSR2+ adds a pitch module with a third servo. That gives it a pitch axis (R2) on top of the stroke and roll of the base OSR2.
Does the OSR2 work with Intiface Central?
Yes, but only for the stroke axis. Intiface Central treats a T-Code device as a single linear axis. Use MultiFunPlayer to drive roll, pitch and twist.
What firmware does the OSR2 use?
The official OSR2 firmware speaks T-Code v0.3 over USB at 115200 baud and runs on the Romeo BLE Mini. Its repository is now archived. ESP32 boards use TCodeESP32.
Can the OSR2 surge or sway?
No. Surge (L1) and sway (L2) need the six-servo SR6.