DG-Labs Coyote GUI v1.0

This software is to allow easy playback of Funscripts on the DG-Labs Coyote while using common sources like MultiFunPlayer, FapTap, etc.

It’s a significantly improved upon version of my previous release here:
DG-Labs Coyote TCode Support

It accepts T-Code input from either a serial port or a WebSocket and outputs to the Coyote over bluetooth.

The GUI allows adjusting the frequency, intensity, etc. for both channels individually, similar to XToys but with more fine-grain control.

Channel A is mapped to axis L0 (up/down) and Channel B is mapped to R2 (pitch). Optionally if using a single axis source you can link both channels or mirror/invert the axis L0 and output that to Channel B.

It’s generally compatible with all the same tools/software the OSR2 & SR6 are.

Notes:

  • If using a WebSocket (like with MultiFunPlayer), it does not require any additional software.
  • If using a Serial Port, you need to create a virtual serial using software like com0com or Free Virtual Serial Ports. This lets software like FapTap connect to COM1 and the T-Code content gets routed out COM2 to the Coyote GUI.
  • The source .py files are posted as well, if running from source you’ll likely need to install some pip packages.
  • When using MultiFunPlayer, a -0.20s offset works best due to the slight lag in Bluetooth
  • In rare cases, not all Bluetooth adapters work properly. Some cause the output to significantly lag (many seconds) behind the input and progressively gets worse over time. Try a different Bluetooth USB dongle if you’re having issues.

Download:

Python source & exe compiled using PyInstaller are here:

6 Likes

fantastic, Coyote finally has funscripts done right! At least for stuff that isn’t too fast because the bluetooth packet rate for the Coyote is a little on the slow side, but if the intensity range isn’t too large it seems to handle this better than xtoys by a long shot! kudos to you, the Coyote is going to be collecting less dust for me now. Works well with MultiFunPlayer using websocket for me. I think there is something backwards with the pulse on time because the intensity is much higher if I reduce the pulse on time and less if I increase it. I remember the xtoys dev saying something about one(or more) of those values were documented in reverse in the protocol doc.

Some stuff to make MultiFunPlayer work better based on my very brief time playing with this tool - It seems like zero position on the funscript is max intensity and 100 position is minimum intensity which seems backwards but it’s easy enough to turn on invert in MultiFunPlayer to swap that around.
For two channel usage while using L0 and R2 with MultiFunPlayer - Set one as inverted and the leave the other normal and you’ve got stroking sensations if the electrode configuration is setup for it, or at least opposite behavior between the two channels connected to different places.
To bring the intensity down when the funscript stops moving(such as a long pause in an edging funscript or a break in a Cock Hero) - Enable auto home with the auto-home inside script turned on for both channels, set delay and duration to 1 second or whatever works for the funscript and set target value to 100% since that is the minimum intensity. This way both channels drop intensity instead of remaining at a potentially uncomfortable high intensity.

Hope this helps anyone else trying to get the best use out of their Coyote.

Increasing the “on” time decreases the frequency because of the way the variables are handled on the device. Since they’re inversely proportional, that’s why it seems a bit backwards.

I might change the GUI to allow adjusting the duty cycle and frequency independently rather than controlling the device variables directly.

The part that was documented backwards was the channel IDs, but it takes that into account.

1 Like


any idea? i am on windows

@Cardot How can i use/play Funscripts with videos with it? thx

I just cannot get it to work.

Im trying to play Funscripts with my DG-LAB Coyote and MultiFunPlayer.

@Cardot Can u please give me a Tutorial how to :pray: thxx

1 Like

Just run the program, choose the websocket option and open the socket:
image

It just uses the default settings in MFP for websocket output:
image

You need to open the websocket in the GUI before attempting to connect MFP.

the Option “WebSocket” doesnt appear in MFP and its not in the List either.