Wednesday, 4 October 2017

USB Remote v1.71

Added clipboard action:

<clipboard> macro action allows to type content of system clipboard. Content of the clipboard is loaded just before a macro is being executed and is NOT updated during the execution.


%max_length - max allowed text length - if text in clipboard exceeds this value it will not be typed. Use 0 for unlimited text length.

Example 1:
type content of clipboard only it it is no longer than 100 characters

Example 2:
type content of clipboard, no matter how much text is stored in the clipboard.

Example 3:
content of system clipboard is pre-loaded before first macro action. Both <clipboard> actions will type the same text even is content of system clipboard is modified during the 10 seconds delay.

Modified syntax for <keyboard> action:

  • it is now possible to use human readable key labels for <keyboard> macro actions. Use key labels from US keyboard layout. Always use "primary" label, for example, to get ! character you press shift+1 not "!" key.
  • when HID keycodes are used it is now possible to use shorter format: when a single key is pressed or when a single key is pressed together with modifier (ctrl, shift...) key(s).

<keyboard> action represents state of the keyboard at a given moment. Remember that you must manually release keys (use <keyboard> action with no parameters) or they will remain in pressed state until next macro action that affects keyboard state is executed or maco execution is finished.

macros containing <keyboard> actions with new syntax (key labels) are NOT compatible with previous app releases New syntax is now used when recording macros. Current app version is compatible with macros recorded using previous app versions.

<keyboard>%modifiers, 0x00, %key0, %key1*, %key2*, %key3*, %key4*, %key5*
(HID keycodes, before v1.70)

<keyboard>%modifiers, %key
(HID keycodes, v1.71 and later)

<keyboard>%modifiers + %key
(key labels)

%modifiers - pressed modifier keys: ctrl (0x01), shift (0x02), alt (0x04), GUI/Win key (0x08)
%key, %key0, ... - pressed non-modifier key(s): use HID keycodes, decimal/hex format or key labels from US keyboard layout
* - optional parameters

For a list of HID keycodes see this document.

Example 1:
(key labels)
(HID keycodes, a = 0x04, short format when just one non-modifier key is pressed)
press "A" key.

Example 2:
<keyboard>shift + a
(key labels)
<keyboard>0x02, 0x04
(HID keycodes, shift = 0x02, a = 0x04, short format when single non-modifier key is pressed together with modifier keys)
press "Shift+A" keys combination (to get capital "A").

Example 3:
(key labels)
<keyboard>0x05, 0x4C
(HID keycodes, hex format, ctrl = 0x01, alt = 0x04, delete = 0x4C)
press "Ctrl+Alt+Delete" keys combination.

Example 4:
press A key, wait 2 seconds (while keeping the key pressed), release all keys.

Example 5:
press "Shift+1" keys combination (to get "!" character)


  • bug fixes

Tuesday, 3 October 2017

KP2A plugin v1.12

New field actions

  • Type+Enter: type content of selected field, immediately press Enter key after typing
  • Type+Tab: type content of selected field, immediately press Tab key after typing (switch to next text field)

New field actions

New actions must be manually enabled: plugin settings → Displayed UI Actions → Field Actions

Added keys for Masked Password

Following keys can be pressed directly from Masked Password screen: Esc, Tab, left & right arrow keys, Enter.

Improved smart auto-connect

If smart auto-connect is enabled (plugin settings → Auto-connect → Smart), the plugin will try to connect every time an (KP2A) entry is opened. Application will temporarily disable smart auto-connect when:

  • connection attempt fails (InputStick out of range)
  • no device is selected (if you have more than once device added in InputStickUtility)
  • you refuse to enable Bluetooth

when disabled, application will no longer try to auto-connect when an (KP2A) entry is opened. Smart auto-connect will be re-enabled after you manually request typing.

Smart auto-connect works best when you use InputStick frequently (so most of the time you want it to auto-connect), but you don't take it with you when going for vacation, business trips or just forget to take it with you sometimes (and when that happens you don't want to be bugged with connection attempts that will fail anyway).


  • only single action will be queued if not connected (avoid executing multiple actions once connected)
  • bug fixes

Saturday, 30 September 2017

InputStickUtility v1.50

InputStickUtility v1.50 will be available on Google Play in a few hours. What's new:

Firmware update:

if you haven't already manually updated your firmware to v0.99 it will now be recommended by the application (once you connect to a device with older firmware version). More info about the v0.99 InputStick firmware. If necessary, it is always possible to flash previous firmware version (v0.98).


  • firmware upgrade improvements (additional dialog messages)
  • uses latest InputStick API (bug fixes, apps can now detect if user cancelled connection process by not selecting any InputStick device or did not allow to enable Bluetooth)
  • bug fixes 

Tuesday, 5 September 2017

KP2A plugin v1.10

KP2A plugin v1.10 will be available on Google Play in a few hours. What's new in this version:

*** Important ***

plugin will ask for KP2A database action notification access. It allows the plugin to know when KP2A database is opened, locked and closed. This allows the plugin to disconnect and stop once the database is locked or closed. It is highly recommended to grant the access to database actions, otherwise the plugin may not work as intended. 
To do this manually: open KP2A plugin settings -> click on Configure as plugin -> Accept    

Connection settings:

connection-related settings were completely redesigned, as a result configuration should be now easier and more intuitive:

Auto-connect: select option that best matches your plugin usage pattern. If you use the plugin often, you most likely want it to start connection process as soon as possible (so it is ready to type even before you select an action). Otherwise you most likely want to avoid connection-related messages (enable Bluetooth dialog screen, connection errors, etc.) until you actually decide to type using InputStick.

  • Disabled (default) - plugin will connect only when typing is requested. Recommended when the plugin is used occasionally.
  • Smart (default) - plugin will connect once KP2A entry is opened. If the plugin is unable to connect to InputStick (out of range connection error) it will assume that you don't have your InputStick with you and will temporarily disable auto-connect (you will no longer be bugged with connection messages and errors). Auto-connect will be re-enabled after next successful connection (when typing is requested). Recommended when the plugin is used frequently.
  • Always - plugin will connect once KP2A entry is opened. Recommended when the plugin is used all the time.
Max inactivity period: allows to specify how long the plugin will stay connected since last typing action. If you usually access only single entry, set shortest period (1 min) to reduce battery drain. If you often work with multiple KP2A entries (boot password, system password, email password, etc. all typed within a few minutes) consider selecting higher values to prevent the plugin form disconnecting too early.

The plugin will stay connected until max inactivity period is reached or KP2A database is locked or closed.

Important: old connection options are no longer used (will be ignored).


plugin will now display notification while active. Notification will disappear once plugin stops (when KP2A database is locked or closed). You can use the notification to disconnect and immediately stop the plugin. Notification can be disabled in settings.

Fixed delay bug:

the update fixes a bug that on some devices caused actions to be executed after a delay.


fixed bugs and potential security issues, several minor improvements.

Monday, 14 August 2017

USB Remote v1.70

What's new in USB Remote v1.70:

Text tab:

  • redesigned layout 
  • Paste, Speak, Scan, Settings actions can now be accessed by clicking on More & Help button
  • added detailed help (More & Help → Text Tab help)
  • added Keyboard Input mode and Dictation Input mode. When in Dictation Input mode, additional options can be activated
  • added toggle button for turning voice commands on/off. Voice commands can be activated only when in Auto Typing and Dictation Input mode.
  • added new voice commands (see below)

Text tab - new layout

New voice commands:

  • <erase> (default keyword "erase") - clear text area, delete text from PC 
  • <speech_clear> (default keyword "clear") - clear text area
  • <speech_delete_word> (default keyword "delete") - delete last word from text area (can be called multiple times)
  • <speech_undo> (default keyword "undo") - undo last text area change (only last change can be undone)
  • <speech_cancel> (default keyword "cancel") - cancel execution of any other commands from current voice input
  • <speech_run_macro>%path - run macro file (stored in USBRemote/Macros or use full path) specified by %path, for example: test<speech_run_macro>test.txt"

How to use new voice commands:

Macro Panels tab:

  • redesigned layout
  • added navigation buttons (Back - load previous panel, Home - load default panel)
  • buttons can now link to panels, what allows for fast and easy navigation
Click on a button to load another panel

Another panel loaded ("OS")

Custom keyboard screen:

  • long click to press and hold key: when "Press and hold action" (in Settings → Keyboard (custom) is set to "Nothing until key is released" it is now possible to enabled "Long-click" to press and hold button

Friday, 28 July 2017

Firmware 0.99

What's new in latest InputStick firmware:

Touchscreen interface:

Touchscreen interface allows to control mouse pointer in a different way than mouse interface. It uses absolute screen coordinates and allows to move the mouse pointer directly to desired point on the screen, no matter what is current position of the cursor. In case of mouse interface, relative coordinates are used, so the final position of the mouse cursor always depends on its initial position. It is also affected by mouse sensitivity and acceleration settings and even by Bluetooth latency.
Touchscreen is supported latest version of USB Remote app, it must be enabled in Settings Mouse → Mousepad mode → Touch-screen. It is also supported by InputStick API.

How does touchscreen mode work? When you touch mousepad area, X and Y coordinates are calculated as a percentage of width and height of the area and then sent to USB host. Example: if you touch center of the area (X = 50%, Y = 50%), mouse pointer will be moved directly to the center of your PC's screen.

Using touchscreen interface is recommended for:
  • macros: cursor will be always moved into exactly the same point, no matter its initial position
  • systems with high resolution screens: touchscreen will move cursor directly to desired position, without having to move finger multiple times across mousepad area
Using touchscreen interface is NOT recommended for:
tasks requiring very high precision, like clicking small UI elements

Supported by:
Windows 7 and later, Linux (most distributions), macOS

NOT supported by:
Windows XP and earlier, Fedora (Wayland), most embedded systems

Raw HID interface:

Raw HID interface allows to exchange raw data between USB host and Android smartphone using InputStick as a proxy. You will need your own application that can communicate directly with USB device. Raw HID must be manually enabled using InputStickUtility app (USB Configuration). It will replace consumer control interface (media and playback control, touchscreen, gamepad).  For more information about raw HID, examples and source code, please visit PJRC raw HID webpage.

Supported by:
Windows, Linux, macOS. In all cases custom software will be required.

Both touchscreen and raw HID interfaces have already been available since 0.98D version. Click here for more info.

Modified keyboard interface:

Keyboard interface was slightly modified to make InputStick compatible with more USB hosts.
If necessary, it is possible to go back to previous implementation by selecting different USB configuration using InputStickUtility app.


  • Bluetooth will be periodically restarted, in some cases this should help with connectivity issues
  • added missing USB features (GET_IDLE, SET_IDLE, GET_REPORT)
  • bug fixes

How to flash new firmware:

0.99 firmware can be flashed using latest version (v1.493 update will be available in a few hours) of InputStickUtility application:
Run InputStickUtility → My devices → Select device → More (dots icon) → Firmware upgrade → make sure that v0.99 is selected → Flash 

Important remarks:
  • if InputStick is NOT password protected, flashing process can be started only during first 30 seconds after plugging it into USB port. Plug InputStick into USB port just before pressing Flash button
  • do not interrupt flashing process until it is finished
  • if you discover any problems with the new firmware, please let me know
  • it is always possible to go back to previous firmware version

Saturday, 13 May 2017

KP2A plugin v1.09

What's new in KP2A plugin v1.09:

Launching custom app:

It is now possible to choose which app will be launched when "Type from clipboard" action is selected. Previously only Google Authenticator app was supported.

Check "Launch custom app" checkbox and click "Custom app" button to select app to launch.

Select one of installed apps.

When an entry is opened, "Clipboard/Messages" option will be available:

Select "Clipboard/Messages" to activate typing from clipboard and launch "Messages" app.

When "Clipboard/Messages" is selected, typing from clipboard will be activated and Messages app will be launched. If you are about to receive SMS with authentication code, select the code and copy it to clipboard: it will be automatically typed using InputStick.

In next update it should be possible to assign custom app for each entry.