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