Need WeVibe Chorus, Raspberry Pi 4, .Net Standard, and BlueTooth Pairing Help

How does one pair a WeVibe Chorus to a computer’s bluetooth? I’m not having any luck on Linux using bluetoothctl… Its documented to be impossible with Windows BTLE… I can see the device and the service but connection and pairing both fail. I can pair to a sync just fine though.

In general I’m struggling with this stupid toy. The Chorus doesn’t work with WeVibe’s iOS app (constantly resets the vibration to the same level) so I found Buttplug and this turned into a project. Basically from what I read on the Hardware list Windows cannot pair to the Chorus. So I wrote a .NET Core app that I can run on Ubuntu 20.04 x64 on a Raspberry Pi 4. I figured that way we could make a more sophisticated portable controller. Unfortunately there doesn’t seem to be a way to detect BlueTooth devices from .Net Core on the Pi, so I’m in the middle of writing a BlueTooth DeviceImpl and Manager that uses the DBus. I can now iterate devices and fetch the services for a Sync but I’m stuck at Buttplug IDevice creation where the manager is supposed to figure out what the device actually is and issue the commands. Is each Bluetooth service a separate device? I’ve never programmed in BlueTooth or Linux before so assume I’m doing it the hard way…

First off, if you have issues, please file them on github, or contact me on Discord or twitter. I don’t look at the forums as much as I should, and this seems like a monumental amount of work to embark on without contacting the project lead.

Anyways, the C# Server is on its way out. It’s not been updated most of this year, and is lagging far behind Rust, which is the new core implementation. This morning I just released new RPi Intiface CLI (the command line wrapper for Buttplug) binaries in Rust, you can pick those up at https://github.com/intiface/intiface-cli-rs, I even built RPi 3/4 and 0 binaries, they’re in the v8 release.

You can use the C# client code (which does work in .Net Core) to talk to the Rust executable, which may get you talking to your Chorus finally.