Contact support

For help with your account or playback, email support@motionstim.com. You can also copy this address into your email app.

Support phone: +359 889 786 127.

Describe what happened and which app and device you use. Include the error message if there is one. Keep passwords, sign-in links, QR codes and private media out of your message.

The MotionStim owner reads and replies to support email. There is no guaranteed response time.

Membership and payment questions

Paid memberships are coming soon. Online payments, automatic renewals and online billing management are not available yet. Premium features are temporarily free for all signed-in users while billing is being prepared. Read the planned membership offer and payment and service terms.

For the planned paid launch, access activates within 5 minutes after DSK confirms successful payment; if it is not activated within 24 hours, we will issue a full refund. You can request a full refund within 14 calendar days of any membership charge, including renewals, even after using the service. Refunds are issued to the original card within 14 calendar days of the request; bank posting may take longer. Statutory withdrawal and service-failure rights remain unaffected.

For access problems, cancellation questions, complaints, refunds or statutory withdrawal requests, email support or call the number above with your account email and, if applicable, the payment reference. Explain what happened and the resolution you are requesting. Do not send card numbers, security codes, passwords or private media. We will investigate and reply through the support inbox.

Have an idea or suggestion? Send feedback or join the community.

Save connection settings in Account → Device connections: browser/Android server addresses, Restim mapping, TCode baud and 2B channel. Test from this browser checks the connection without activating output or saving the draft. Android’s Connect / test checks the phone’s connection. These checks do not establish physical compatibility.

Android controls nearby toys locally: Handy FW4 over native BLE, supported USB serial adapters over USB-host/OTG, or Intiface/Lovense/Restim over the configured network connection. Keep toys near your phone and the desktop app running to access your library. Coyote and Audiostim are also supported.

Additional e-stim interfaces · Untested

These web interfaces have software checks but no physical hardware verification. PulseForge uses a separate E-stim device level / gate output. Classic output follows your motion source. Restim or device firmware generates the electrical pulses; graph detail is limited by command timing and hardware capabilities.

InterfaceSupported controlBoundary
Restim local WebSocketOne configured volume axis, up to 10 updates/sExplicit zero-to-silence mapping; no command acknowledgment
FOC-Stim V4 USB serialThreephase amplitude with calibrated mA ceiling, up to 10 updates/sMain API 1.1+ and threephase capability required; no fourphase or TCP control
2B Digital Link TTL serialOne A or B level, up to 5 updates/sFirmware 2.106 profile, low power, independent channels, modes 0–13
ET-312B RS232 serialBoth-channel mute gate, up to 5 updates/sFirmware 1.5.0/1.6.0 only; physical strength knobs; no MK312 derivative claim

For Restim, enable its local TCode WebSocket server and copy the address shown there. Configure a two-character volume axis such as V0 in Restim: its minimum must mean silence and its maximum must be your calibrated ceiling. Confirm this mapping before connecting. MotionStim sends only that volume axis, including zero on Connect and Stop; it does not send generic TCode DSTOP. Restim owns synthesis, routing and all other signal parameters. Browser access to a local WebSocket may be blocked by local-network or secure-page policies. Browser Restim connections accept loopback addresses only; Android uses its separate configured server address.

For USB serial, use desktop Chrome/Edge on HTTPS or localhost. Connect opens the browser's port picker; choose the correct manufacturer's adapter/device. 2B's Digital Link TTL adapter and ET-312's RS232 adapter are electrically different and are not interchangeable. Close other control software first. ET-312 may need a power-cycle after another encrypted link session; no key guessing or firmware/memory modification is attempted.

Start with physical controls low. FOC-Stim requires a calibrated current ceiling in mA and a separate local level limit, both initially zero. Activation resets pulse axes to firmware defaults: carrier 800 Hz, 50 pulses/s, width 6 cycles, rise 5 cycles, no random interval, centered threephase position. Device volume and hardware calibration remain under device control. 2B Connect zeros both channels, selects low power and unlinks them; choose modes 0–13 physically before connecting. Confirm firmware 2.106 from the device; its returned numeric firmware tag is displayed without inferring a dotted version. C/D remain mode-dependent parameters under physical control. Unexpected mode, power, channel or link changes disarm output.

ET-312 does not remotely set strength. Values at or above your gate threshold unmute both channels at the physical knob settings; lower values mute them. Confirm this behavior before activation. MotionStim changes only the runtime mute bit and preserves the remaining flags; it never disables strength knobs, writes EEPROM, selects modes or restores a previous nonzero level on disconnect.

Play video, set local limits and activate explicitly. Pause or temporarily missing motion sends zero without ending activation; output resumes with playback. Seeks, clock jitter and switching tabs do not require activation again. Stop toy output zeros Restim volume, 2B strength and FOC amplitude (also stopping its signal); ET-312 mutes output while its physical knobs remain unchanged. Stop stays stopped until you activate again. Changed designs, device faults, connection errors and shutdown still end activation. Reconnecting does not reactivate it. Serial replies/read-back confirm commands, not measured electrical silence. Restim cannot acknowledge Stop; a disconnected or frozen browser cannot guarantee hardware silence on any interface. Keep physical Stop accessible. Actual output, stop timing, browser access and adapter compatibility need physical checks; no model/platform combination is verified.

Report problem is available before connection. Add model, firmware, adapter/app version and reproduction steps, then review the editable email draft. No device identifiers, ports, addresses, credentials, media names or raw logs are included automatically or sent automatically. DG-LAB continues through the existing BLE driver; there is no added DG-LAB web/app route.

Mechanical toys · Untested

The web player and PulseForge can connect through the interfaces below. MotionStim has not verified these integrations with physical hardware. A device appearing in a bridge is upstream support, not a MotionStim compatibility guarantee.

InterfaceControlsMotionStim hardware status
Intiface / Buttplug v3Advertised vibration, oscillation, rotation and linear position; one actuator at a timeUntested · no model/firmware/platform verified
Lovense Remote local APIAdvertised Vibrate, Rotate and Oscillate; one function/device at a timeUntested · no model/firmware/platform verified
Handy FW4 direct BLEOne slider, timestamped HSP positions with local stroke/speed limitsUntested · FW4 Stop RPC required (4.0.13+); no legacy BLE
TCode USB serialAdvertised L0 only, local stroke bounds and native rate limitUntested · negotiated v0.3/v0.4 and D2 L0 preferences required

For Intiface Central, enable its server, connect your toys there, then choose Intiface in MotionStim, Connect and Refresh devices (or Scan devices). The usual local address is ws://127.0.0.1:12345. Compatible Handy/Kiiroo and other linear devices use this bridge where supported; direct Handy FW4 BLE is also available below.

For direct Handy, choose Handy FW4 BLE, enable its firmware-4 Bluetooth mode and select it in the browser picker. Use a Web Bluetooth capable Chrome/Edge browser on HTTPS or localhost; native Android companion support is separate. Legacy “The Handy” Bluetooth mode is not used. The dedicated service must expose write/notification support, one slider and the modern Stop RPC. Firmware or GATT packet-size incompatibilities reject connection/activation; no cloud account, connection key or script hosting is needed.

Calibrate Handy travel using the vendor app first, close other controllers, choose stroke start/end and set a low stroke scale and calibrated speed ceiling. Speed is percent of configured travel per second. Use the device controls to place the slider at the chosen stroke start, then confirm before each activation. MotionStim does not run motor calibration or move it home automatically. Startup holds that confirmed position while preparing the buffer. Changing the range or design clears this confirmation.

Handy sends points at 100 ms wall-time intervals into a short buffer of about 400 ms, with BLE clock synchronization and the video's starting playback rate (0.25–4×). Controls affect upcoming buffered points; stroke scale/range and speed stay fixed while active. Pauses, missing future motion, buffer exhaustion and changed video speed hold and refill the buffer without requiring activation again or returning to the starting position. Command failures and changed device settings still end output. There is no automatic looping or reconnect. Stop sends StopCurrentMode and clears the prepared HSP buffer. These are software commands and acknowledgments, not measured physical stop timing.

For TCode OSR/SR6/SSR-style hardware, choose TCode USB and the actual device baud rate (normally 115200; 250000/9600 are also selectable), then select its serial port in desktop Chrome/Edge on HTTPS or localhost. The device must answer D1 as TCode v0.3 or v0.4 and D2 with a valid L0 preferred range. MotionStim exposes only L0, initializes the stroke controls from those preferences and never writes them to firmware/EEPROM. Calibrate physical travel first: D2 preferences are guidance, not enforced hardware limits.

TCode's native S speed term moves toward each target from its current commanded position, bounded by the local speed ceiling. Fast patterns may use less travel. Stop sends DSTOP and holds position; it does not retract, disable power or confirm physical rest. Other axes, v0.2, raw motor commands, TCP/UDP/WebSocket/BLE TCode transport and auxiliary suction/lube controls are outside this integration. Unsupported discovery is rejected without guesses.

For Lovense, enable the local API in Lovense Remote and use its HTTPS address. The PC default is https://127-0-0-1.lovense.club:30010. The current API must advertise each supported function. Unknown functions and older responses without capability names are not guessed. Direct position control, pressure, inflation and multi-axis choreography are outside this release.

Allow local-network access if your browser requests it. Browser security, bridge configuration and certificates may block the connection. Remote Intiface servers require wss://. Connection errors appear in toy controls; use Report problem even if connection fails. The bridge runs on your device/network; video stays local.

Choose an actuator, set a low local limit, play motion-backed video and activate output explicitly. Classic output follows normalized motion directly. Mechanical PulseForge projects add mapping, smoothing and creative patterns, still subject to local limits, hardware resolution and command timing. High-frequency details may be lost; this does not reproduce e-stim waveforms. Rotation direction is not modulated; Intiface directional rotation uses clockwise. Stroke scale shortens travel from your chosen start position toward the end.

Pause or temporarily missing motion holds movement and resumes with playback, preserving activation and local limits. Seeks, clock jitter and switching tabs do not require activation again. Stop toy output halts movement and stays stopped until you activate again; disconnect also ends activation. Linear Stop holds position rather than retracting. A disconnected bridge cannot confirm a physical stop: keep the hardware Stop accessible. Lovense commands expire after two seconds. Intiface's optional ping timeout is respected when enabled; its default WebSocket setup cannot guarantee a stop during a browser freeze that leaves the connection open. Delayed networks and device behavior still require physical validation. No tested model or firmware claims have been made.

Report problem prepares an editable draft with interface, capability, browser family and a sanitized status code. Add model/firmware, bridge version and reproduction steps. Copy it or open an email draft; nothing is sent automatically.