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.