Skip to main content
The OSSM firmware provides three main operating modes, each designed for different use cases. This guide explains how to navigate the menu system and use each mode effectively. After homing completes, the OSSM displays the main menu on the remote’s OLED screen.
ActionResult
Rotate encoderScroll through menu options
Press encoderSelect the highlighted option
Long-press encoderReturn to menu (from any operating mode)
The menu wraps around—scrolling past the last item brings you back to the first.
OptionDescription
Simple PenetrationBasic operation with speed and stroke controls
Stroke EngineAdvanced pattern-based control with depth, stroke, and sensation
Streaming (experimental)External control mode for funscript playback and third-party applications
UpdateCheck for and install firmware updates (requires WiFi)
WiFi SetupConfigure wireless network connection
Get HelpDisplay QR code linking to setup documentation
RestartRestart the controller and re-home

Simple Penetration mode

Simple Penetration provides straightforward control with minimal parameters. It’s ideal for users who want reliable operation without complexity.

Default settings

ParameterDefault Value
Speed0%
Stroke0%
Depth50%
Sensation50%

Controls

The left knob (potentiometer) controls speed from 0% to 100%.
  • Turn clockwise to increase speed
  • Turn counterclockwise to decrease speed
  • Speed must be near zero to enter the mode (safety feature)

Session statistics

Simple Penetration tracks three statistics during your session:
StatisticDescription
Stroke countNumber of complete strokes performed
DistanceTotal distance traveled (displayed in meters or feet)
TimeDuration since the session started
These statistics display at the bottom of the screen and reset when you return to the menu.
Simple Penetration is best for straightforward use cases where you want consistent, predictable motion without pattern variations.

Stroke Engine mode

Stroke Engine provides advanced pattern-based control with four adjustable parameters. It uses the StrokeEngine library to generate varied motion patterns.

Default settings

ParameterDefault Value
Speed0%
Stroke50%
Depth10%
Sensation50%
Stroke Engine starts with different defaults than Simple Penetration—notably a lower depth (10%) and higher stroke (50%)—to provide a gentler initial experience with pattern-based motion.

Controls

The left knob (potentiometer) controls speed from 0% to 100%.Speed affects how fast the patterns execute, measured in cycles per minute.

Available patterns

Stroke Engine provides 7 motion patterns:
IndexPatternBehavior
0Simple StrokeBalanced acceleration, coasting, and deceleration
1Teasing PoundingSpeed shifts based on sensation; balances faster strokes
2Robo StrokeSensation varies acceleration from robotic to gradual
3Half’n’HalfAlternates between full and half depth strokes
4DeeperStroke depth increases each cycle; sensation sets cycle count
5Stop’n’GoPauses between strokes; sensation adjusts pause length
6InsistModifies stroke length while maintaining speed
For detailed pattern descriptions and sensation effects, see the Pattern documentation.

Streaming mode (experimental)

Streaming mode is experimental and not recommended for general play. The protocol and behavior may change in future firmware updates. Only use streaming with trusted applications from known sources.
Streaming mode allows external applications to send real-time position commands to the OSSM via BLE. Unlike Simple Penetration and Stroke Engine which generate motion patterns internally, Streaming mode receives exact position targets from an external source—enabling synchronized playback with video content, funscripts, or custom control applications.

How streaming works

  1. Select Streaming from the main menu (or send go:streaming via BLE)
  2. The OSSM homes to position 0 (fully retracted) and waits for commands
  3. External applications send stream:<position>:<time> commands
  4. The OSSM moves to each target position within the specified time
  5. The display shows the current streaming state

When to use Streaming mode

  • Funscript playback: Sync motion with video content using the Funscript Player
  • Third-party integrations: Applications that generate real-time position data
  • Custom automation: Developers building BLE control applications

Safety considerations

Streaming mode accepts commands from external sources. Only use applications you trust, and always test at low intensity before full engagement. Keep your physical stop controls accessible.
  • The OSSM validates incoming commands but relies on the external application for safe motion planning
  • If the BLE connection is lost, the OSSM ramps down speed over 2 seconds and stops
  • Local controls remain accessible—use the emergency stop (long-press encoder) if needed

Controls

While in Streaming mode:
  • Speed knob: Not used for streaming (external commands control motion)
  • Encoder rotation: Not used for streaming
  • Long-press encoder: Emergency stop and return to menu

Technical details

PropertyValue
Command formatstream:<position>:<time>
Position range0-100 (percentage of stroke)
Time unitMilliseconds
Minimum firmwareVersion 3.0+

Exiting any mode

From any operating mode, long-press the encoder for approximately 3 seconds to trigger an emergency stop and return to the main menu.
Emergency stop immediately halts motion and marks the device as “not homed.” You may need to restart and re-home before operating again.