Skip to content

Functional requirements

This document reviews the functional requirements for the ClickStick dongle and its companion apps.

Emulation

FR-KeyPress

Dongle shall accept any text from the mobile app and emit it as USB keyboard events to the host.

  • User shall be able to specify host's keyboard layout, so that the dongle emits correct key codes.
  • If some character is unreachable in the given layout, the app shall warn the user.

FR-Pause

Mobile app shall allow pausing an active text-injection for up to 1 minute.

FR-Interrupt

Mobile app shall allow the user to cancel an ongoing text injection or pause. In such a case, the dongle shall stop emitting keystrokes and return to the idle state without perceptible delay.

Interaction & Control

FR-MobileUI

Companion app should support interaction with multiple paired dongles.

FR-DongleUI

Dongle shall provide basic UI to support BLE pairing, interactive actions, factory reset, etc.

FR-FactoryReset

Dongle UI shall include an action to erase any stored pairing keys.

FR-PlugAndPlay

Dongle shall be powered only by the USB bus and enumerate as a standard USB HID device, to work immediately on any mainstream OS.

Firmware

FR-DeviceInfo

The dongle shall display its firmware version and BLE MAC address on user request via dongle's UI. The dongle shall also report its manufacturer and firmware version to the mobile app.

FR-FWUpdate

End users shall be able to update dongle's firmware over USB.

Future Extensions

FR-HostDetect (Future)

The dongle may passively detect the host operating system in order to adapt the HID behavior to OS-specific quirks (e.g. layout popups on macOS). No host-identifying data shall be stored.

FR-Passkey (Future)

System design shall reserve commands to enable future FIDO2 security‑key emulation using passkeys stored on the phone.