Skip to content

Kiiroo Onyx+ drops BLE link after ~3 s of silence #947

Description

@lampanlampe

Describe the bug
The Kiiroo Onyx+ silently tears down its BLE link when no command has been written for roughly 3 seconds. The device flashes red and only a power-cycle brings it back. Any .funscript-style scripted driver that has a gap of more than ~3 s between actions disconnects the toy mid-scene.

The protocol is missing a keepalive_strategy() override on their ProtocolHandler, so they fall back to the default HardwareRequiredRepeatLastPacketStrategy, which only takes effect on iOS during backgrounding. On every other platform (Android, desktop, headless intiface-engine) the BLE link is therefore left to time out.

Expected behavior
ProtocolHandler::keepalive_strategy() for KiirooV21Initialized should return ProtocolKeepaliveStrategy::RepeatLastPacketStrategyWithTiming(Duration) with an interval comfortably under the device's ~3 s idle timeout, so that scripted playback with arbitrary gaps keeps the link alive without altering the toy's behaviour.

Additional context

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions