Devices
Technical documentation for developers adding new BLE devices to the remote.
Supported Devices
Research And Desire
OSSM: Supported
LKBX: Pending
DTT: Pending
Lovense
Domi 2: Pending
Registry Overview
Devices are discovered by their primary service UUID and instantiated via a factory registry.
Registry map:
src/devices/registry.hppKnown service UUIDs:
src/devices/serviceUUIDs.hDevice base class:
src/devices/device.h
How to Add a Device to the Registry
Obtain the service UUID
Use a Bluetooth sniffing/inspection tool (e.g., Bluetility on macOS) to find the device's primary service UUID.
Add the service UUID to
serviceUUIDs.h
Store the UUID as a PROGMEM string constant.
Register a factory in
registry.hpp
Include your device header and add an entry mapping the service UUID to a factory that returns a
Device*of your concrete class.
Provide a concrete
Deviceimplementation
Create a header/implementation pair for your device that derives from
Device(seesrc/devices/device.h).Preferred file structure: Place your files in
/src/devices/<brand_name>/<device_name>/<device>_device.h/src/devices/<brand_name>/<device_name>/<device>_device.cppFor example, for a "FooBar" device from "Acme", use:/src/devices/acme/foobar/foobar_device.h/src/devices/acme/foobar/foobar_device.cppImplement input handlers, drawing, and value sync methods as needed.
Last updated