Friday 28 December 2018

Important notice for Android app developers

Android version of InputStickUtility application will receive a major update in second half of January 2019. To make it compatible with latest Google Play requirements, InputStickService will now run as a foreground service.
If your Android application connects to InputStick using InputStickService, please make sure to build your app using latest version of InputStick API. 
If your Android application will still use old version of InputStickAPI it may crash once new version of InputStickUtility is released.
If you are not able to update your app in time, it will be possible to download current version of InputStickUtility app as .apk file.

InputStickUtility update will not affect applications that implement direct connection or broadcasts to communicate with InputStick receiver.

Friday 30 November 2018

iOS apps update

iOS versions of USB Remote and InputStickUtility apps will soon receive update making them compatible with the latest InputStick firmware (v1.00 beta and later).
New firmware introduces (among other improvements) better security of Bluetooth connection by protecting against "replay attack".

Thursday 1 November 2018

USB Remote v1.92

What's new in USB Remote v1.92:

Uses latest InputStick API:

contains latest security and performance updates. Supports v1.00 InputStick firmware. Application will no longer support older firmware versions (earlier than v0.99).


  •  bug fixes

Important info:

Latest version of InputStickUtility (v1.60) introduced new feature that prevents packet loss that could occur in some scenarios (what could result in skipped keyboard/mouse actions or firmware initialization failure). Unfortunately this introduces additional latency that can be particularly noticeable when using mousepad area. This affects only Bluetooth 4.0 InputStick devices. Firmware v1.00 introduced features that minimizes additional latency.

If mousepad area no longer works as "smoothly" as before:
  • disable transmission delays (works only for v0.99 firmware): InputStickUtility → Settings → Bluetooth section → Add transmission delays → Disable
  • update InputStick firmware to v1.00 (beta): InputStickUtility → My devices → select → more (dots) → Firmware Upgrade → Flash

InputStickUtility v1.60

What's new in InputStickUtility v1.60:

Optional firmware update (v1.00 beta):

you can now update your InputStick firmware to v1.00: InputStickUtility → My devices → select → more (dots) → Firmware Upgrade → Flash

Important! If password protection was enabled:

  • latest version of InputStickUtility is required (make sure it was updated on all your devices)
  • iOS apps are not supported yet (will be updated in next few days)

Uses latest InputStick API:

contains latest security and performance updates. Supports v1.00 InputStick firmware. Application will no longer support older firmware versions (earlier than v0.99).

Adds delays to prevent packet loss:

this change affects only Bluetooth 4.0 InputStick devices. Until now,  in some scenarios there was a small chance that a packet loss could occur, what could result in skipped keyboard/mouse actions or firmware initialization failure. In order to prevent this from happening, InputStickUtility will now introduce short delays when sending packets what prevents packet loss from happening. Unfortunately this results in additional latency that can be noticed when using mouse or touchscreen interfaces. Devices running firmware 0.99 or earlier are particularly affected by this. Firmware v1.00 introduced features that minimizes additional latency.

If you can notice additional latency when using mousepad areas try following solutions:
  • update InputStick firmware to v1.00:  InputStickUtility → My devices → select → more (dots) → Firmware Upgrade Flash
  • disable adding delays (this will work only if you are still using v0.99): InputStickUtility → Settings → Bluetooth section → Add transmission delays → Disable


  • minor UI changes
  • bug fixes

InputStick firmware v1.00 (beta)

What's new in v1.00 (beta):

  • increased size of HID buffers
  • added support for data authentication on protocol level (prevents replay attacks)
  • allows to generate encryption key in a more secure way (will be supported in next InputStickUtility update)
  • added support for packet loss prevention
  • allows to detect when USB host is ready for keyboard input in a more accurate way
  • removed old method of restoring factory defaults

How to update: 

  • make sure that you have latest version of InputStickUtility app (v1.60, currently Android only)
  • InputStickUtility → My devices → select → more (dots) → Firmware Upgrade → Flash

Important info:

if your device is password protected it will no longer work with previous versions of InputStickUtility (before v1.60) or iOS apps. Make sure that you have the latest version of InputStickUtility on all your Android devices before flashing latest firmware. If you also use iOS applications, do not update yet (apps will be updated within next few days).

This release is intended mainly for those that want to test new features. Within next two weeks new firmware update will be released. It will introduce support for macros (can be executed on startup or  when remote device disconnects), additional security and performance improvements.
Once ready it will be available on both Android and iOS versions of InputStickUtility and all users will get notification that will recommend to update firmware.

Tuesday 11 September 2018

USB Remote for iOS v1.30

What's new in USB Remote v1.30 (iOS): 

Remote tab:

Remote tab was completely redesigned:
  • keyboard and mouse can be controlled from a single screen
  • user interface can be quickly adjusted using toggle switches (top row)
  • you can use your system soft keyboard (virtual keyboard)
  • or in-app keys when requested key is not available on soft keyboard or when you need more customization options (more info below)

Remote tab (in-ap buttons)

Remote tab & virtual keyboard

Modifier keys (Shift, Ctrl, Alt, GUI keys) are now easier to use (behave like Shift keys on soft keyboard):
  • 1x click: press modifier key, it will be auto-released when any non-modifier key is pressed
  • 2x click: press & lock modifier key, it will remain pressed until manually released

New customization options (applies to in-app keys only):
  • mode: keys can behave like soft keyboard keys (always results in pressing & immediately releasing a key) or like physical buttons (allows for press & hold)
  • dynamic labels: when enabled, key labels are adjusted depending on currently pressed modifier keys
  • physical layout: you can force using ANSI (104 keys) or ISO (105 keys) physical layout
  • feedback: key click sound and vibrations can be enabled

Fullscreen mode:

It is now possible to run Remote tab in fullscreen mode:

  • allows to display more keys simultaneously
  • always displayed in landscape screen orientation
  • can be launched from Remote tab (Fullscreen button in top left screen corner)

Remote tab in fullscreen mode

Media tab:

Media tab was removed. Media buttons can now be accessed from Remote tab.

Presentation tab:

Added presentation tab with following features:
  • presentation software shortcuts (start & stop presentation), compatible with most popular presentation applications
  • control mouse pointer
  • change slides, jump to requested slide
  • slide counter
  • presentation timer: displays total presentation time (count up / count down mode)
  • slide timer: displays time spent on current slide (reset each time slide is changed)
  • time warning (when triggered, changes timer color to red and optionally vibrates & plays sound)

Presentation tab


Macro execution process can now be paused/resumed at any moment.

New macro execution dialog

Added new macro actions:
  • Pause - pause macro execution until it is manually resumed by user
  • Play sound - plays sound to notify user about macro execution progress
  • Vibrate - vibrates to notify user about macro execution progress
  • Display message - display message on macro execution popup to notify user about macro execution progress

Bar buttons:

Added QuickConnect bar button. Pressing the button connects to the most recently used InputStick device (if not connected) or disconnects from current device.

Added QuickMacro bar button that allows to quickly execute one of 8 pre-assigned QuickMacros (can be assigned in app settings).

Both bar buttons can be quickly accessed from any tab (top right screen corner).

QuickMacro and QuickConnet bar buttons

About & Help:

About & Help section was updated and contains more information. It is now split into multiple chapters for easier navigation.

About & Help section

Application will display tips when using certain features for the very first time. Each tip will be displayed only once.

Czech keyboard layouts:

Current Czech keyboard layout was renamed to Czech-Programmers. Added Czech and Czech-Linux compatible keyboard layouts.


  • bug fixes
  • multiple minor UI changes
  • multiple minor improvements

Thursday 23 August 2018

USB Remote v1.91

What's new in USB Remote v1.91:

Presentation tab:

Layout of the presentation tab was redesigned:

Redesigned Presentation tab

Presentation timer:

  • added count-down mode
  • added option to set time warning: when triggered, main timer will turn red (optionally you will also be notified with sound and vibrations)
  • application will now display notification when presentation timer is running

When you're about to start the timer, you can set timer mode and other parameters using Presentation Timer Setup screen:

Presentation timer options


  • fixed macro recorder bug (now it is no longer possible to go back while macro is being recorded)
  • changed macro recorder notification icons
  • fixed bugs in parsing Macro Panel files

Keyboard tab:

This update fixes a bug that caused some UI elements to gain focus while using soft keyboard on Keyboard tab/Full-screen keyboard screens (when Keyboard tab is set to use system keyboard). Both should now work 100% properly when using Gboard virtual keyboard. 
Some virtual keyboards may still cause problems, depending on Android OS version. For example: SwiftKey running on Android 8.0 doesn't work properly on System keyboard tab, however it works correctly when switched to full-screen mode.

Czech keyboard layouts:

  • current Czech keyboard layout was reamed to Czech Programmers
  • added Czech keyboard layout
  • added Czech Linux-compatible keyboard layout

Important: you've been using Czech keyboard layout and want to continue using the same layout, you will have to change keyboard layout to Czech (CZ Programmers.).

Thursday 19 July 2018

KP2A plugin v1.30

What's new in v1.30:

Modified plugin behavior:

In order to increase security the plugin will now behave in following way:

  • plugin is started once KP2A entry is opened.
  • plugin is stopped when KP2A database gets closed/locked. In some cases (when the plugin is in use and there is no access to entry data) it can run for up to 10 min longer. More details below
  • plugin will stop itself when there is no activity (opening entry, typing etc.) for more than 10 minutes. (even if KP2A database is still opened). This acts as a failsafe in case KP2A crashed or gets force-stopped.
  • dialogs that have access to KP2A entry fields will be automatically closed after 60 seconds or immediately closed when KP2A database gets locked/closed. This affects following dialogs: Masked password, All actions (Select action), Select template (macro), Execute macro.
  • dialogs that do NOT have access to KP2A entry fields can remain active for up to 10 minutes, even after KP2A database gets locked/closed. This affects following dialogs & actions: Type from SMS, Type from clipboard, OSX setup, Remote

Added Type from SMS dialog:

You can now use the plugin to type text (passwords, authentication codes, etc.) received via SMS. By default, this feature is disabled, you must enable it manually in plugin settings.

How to enable typing SMS:

  • open Settings (via Launcher icon or via Keepass2Android entry menu)
  • check Listen for incoming SMS
  • application will ask you for permission to read SMS (Android 6.0 and later)

How to use typing from SMS:

  • start the plugin by opening any KP2A entry
  • wait for SMS message, when received notification will be displayed
  • click on notification (you have 60 seconds to do that)
  • click on marked text to type it
  • click Done button to close dialog and dismiss SMS notification

Important remarks:

  • SMS must be received while the plugin is active. Make sure that KP2A database won't be locked before that (this can stop the plugin). If necessary, increase time after which database is auto-locked: Keepass2Android → Settings Application Security Application timeout
  • plugin never stores content of received messages
  • currently you can access only the most recently received SMS

Type from SMS dialog

Text that can be typed is marked in blue. Text that is most likely a password or authentication code is marked in green. Application will skip certain characters, that most likely should not be typed (colon, semicolon, coma, dot).

Plugin notification is now always displayed:

This is one of necessary steps that are required to make the plugin compatible with latest Android APIs. Option that allowed to hide the notification was removed from Settings.


Bug fixes, security improvements and minor adjustments.

Friday 20 April 2018

USB Remote for iOS v1.20

USB Remote v1.20 will be available on App Store in a few hours, here's what's new:

Support for encrypted InputStick connection:

USB Remote can be now used with password protected InputStick devices. To set password for your InputStick device, use InputStickUtility application. When USB Remote connects to a password protected InputStick for the very first time, you will be asked to provide the password. 

Support for touch-screen interface:

It is now possible to use touch-screen interface when using mousepad and macros. Touch-screen interface allows to move mouse pointer to desired position on screen (by providing X,Y coordinates). The result will always be the same, no matter what was the initial position of mouse pointer. 

To enable touch-screen interface for mousepad:
Control tab → Settings → Remote → Mode → Touch-screen
you should also set Mousepad ratio to match ratio of  screen resolution used by USB host.

Important: touch-screen interface will work only if it is supported by USB host and if your InputStick has firmware version 0.99 (or later). If necessary, use InputStickUtility app to flash the latest available firmware.

Touch-screen mode, 16:10 ratio is used to match 1920x1200 resolution

Touch-screen macro action:

moves mouse pointer to desired position on the screen:
  • X: 0 - 10000, where 0 corresponds to 0% of screen width and 10000 corresponds to 100% of screen width
  • Y: 0 - 10000, where 0 corresponds to 0% of screen height and 10000 corresponds to 100% of screen height 
  • button - select Move to option if you just want to move mouse pointer to location specified by X,Y parameters. Use Move to (pressed) to move mouse pointer while keeping button pressed

Important remarks:
  • it is highly recommended to use this macro action (instead of Move mouse action) for moving mouse pointer as it uses absolute screen coordinates and is independent from initial position of mouse pointer, giving you much more predictable results
  • keep in mind that depending on resolution, UI elements may be located at different position on the screen. It may be necessary to duplicate and modify a macro to adjust it to a different screen resolution
  • to click it is recommended to use Mouse click action
  • use Move to (pressed) option if you want to drag items. You must manually release button, by adding another action with Move to selected

Touch-screen macro action

Type from clipboard action:

types text from system clipboard. Text will not be typed if its length exceeds max allowed length (use 0 for unlimited text length).

Type from clipboard macro action

Managing multiple InputStick devices:

You can now see list of all InputStick devices that the app was used with:
Control tab → Saved devices
For each device you can assign a custom name (used by this app only), check details or remove it.

Tip: you can also modify Bluetooth name using InputStickUtility app. In that case it will affect all other apps/devices using particular InputStick.

Saved devices


  • minor UI changes
  • bug fixes

Thursday 19 April 2018

InputStickUtility for iOS

InputStickUtility is now available for iOS devices and can be downloaded from App Store.

The app can be used to:

  • manage security settings (encryption & password protection)
  • upgrade firmware via Bluetooth
  • configure InputStick (USB descriptors, Bluetooth name)
  • quickly go through macOS keyboard setup assistant
  • test typing

InputStickUtility for iOS

Android vs iOS:

If you have already used InputStick with Android devices, here are the key differences:
  1. if password protection settings are modified (set/change/remove password), on iOS it will be necessary to manually configure (provide password etc.) each individual InputStick-compatible app (like USB Remote)
  2. InputStickUtility is not required to use InputStick-compatible apps. The Utility app can be uninstalled, however it is recommended to keep it in case new firmware update becomes available
This is a result of how Android/iOS apps communicates with InputStick devices:

Android app ↔ InputStickUtility ↔ InputStick

iOS app ↔ InputStick

Tuesday 6 February 2018

USB Remote v1.90

What's new in USB Remote v1.90:

Shortcut Bar:

New, globally accessible Shortcut Bar allows you to quickly execute your favorite macros, keyboard shortcuts, multimedia actions, type text from clipboard, connect, disconnect and open app settings. All with just two clicks. Quick Macros 1, 2 and 3 have individual buttons (M1, M2, M3) - can be executed with just a single click.

You can see Shortcut bar just below tab bar.

To configure Quick Shortcuts and Quick Macros go to SettingsShortcut Bar.

Assign macros to Quick Macro slots.

Assign keyboard shortcuts to Quick Shortcut slots.

As a result of introducing the shortcut bar, M4 - M8 buttons were removed. Shortcut Bar is enabled by default but you can disable it in Settings Shortcut Bar)

Redesigned system keyboard screen:

System keyboard screen and its full-screen version were slightly redesigned.

Switching mousepad mode:

You can now quickly switch between mouse and touchscreen modes by clicking a button next to mousepad area.

When in touchscreen mode, click button above scroll bar to switch to mouse mode.

Now mouse mode is enabled.

Redesigned settings screen:

App settings were slightly redesigned: new sections were added: Typing options, Keyboard tab, Shortcut bar. Some preferences were moved from old sections to new ones.

Removed option to adjust position of control buttons (presentation tab):

This option did not work properly on many devices so it was removed.

Type from file macro action:

You can now type entire content of a text file when creating a macro. Type from file action can be inserted using Macro Editor or manually using following syntax:
%path - absolute path to a text file

this action will type entire content of file.txt 

It is necessary that you allow the application to access local storage.


  • bug fixes

Wednesday 31 January 2018

KP2A plugin v1.20

KP2A plugin v1.20  will be available on Google Play within 1-2 days. Here's what's new.

Remote controller:

This update adds a simple remote controller that allows you to send mouse and keyboard actions.

Launch remote controller from any KP2A entry

Use soft-keyboard and mousepad area

Function keys popup

Fixed macro delay bug:

Macro delay actions will now work as intended:

  • delays are executed when running macro in background 
  • delays are skipped when macro is being executed manually (step-by-step)