Wednesday, 2 October 2013

Some videos ...and AES encryption

Let's start with some videos:

Pairing InputStick with Android phone and InputStick Device Manager (Utility) application. As you can see takes about one minute.

USB Remote app in action.

USB Gamepad. Works with Linux (Ubuntu) out of the box. No need to configure anything. Game: TuxRacer.

USB Presentation Remote:

and finally, USB BarcodeScanner.

AES Encryption.

Recently I've been working on implementing AES-128 encryption in order to additionally secure communication with InputStick. Since one of use cases is using InputStick with Password Manager this is rather important, although InputStick is already using secured Bluetooth connection. 
At this moment AES encryption works on both ends: InputStick background service and device's firmware. There are still some performance issues, however some optimisation should solve this. Anyway, I was able to achieve about 30KBps data encryption/decryption rate @ 48 MHz MCU clock speed.
Since adding encryption will require firmware upgrade, I won't be including it in API for some time, until it is 100% tested.


  1. Functionality is looking really good - I have to say though I liked the "holo" style of the eariler demo apps (and buttons) a lot better: please don't fall into that trap, custom styled buttons are exactly the kind of unpleasant legacy "holo" tries to get away from. Also, there might be a problem with using a custom keyboard for typing: while I imagine nobody would want to type entire books into a PC by smartphone, many times it might be important to have language-specific characters available, which the default keyboard of the phone is probably already set up to do conveniently (aside of the fact that it just breaks style too).

    I'd be eager to ask about the envisioned start date of the impending funding / preorder campaign too, but I'm afraid at this point I'd have serious problems believing the answer whatever it would be... :(

  2. Designing interface for Android applications is a bit hard. I want my apps to be 2.3 compatible (surprisingly many people still use 2.3). Going for > 4.0 only would make my life a bit easier. Other problems are different display resolutions and aspect ratios.

    There are actually no significant modifications in the way buttons looks: rounded corners, gradient background and that's it. IMO they look better this way.

    Keyboard part needs some redesigning. At this moment it looks like majority of people are actually most interested in getting "PC specific" keys: F1-F12, Windows key, Context menu etc, which are obviously not a part of mobile keyboards. It looks like the only way out of this is to make this screen customizable. First, you choose between default and custom keyboard. If you go for the second choice you can additionally select what groups of keys (characters, digits, function keys, arrows etc) should be present on the screen,

    As for funding the answer is ... really soon. I know how long you're waiting.

  3. Thanks for the answer - I'd just like to add that in my experience, pretty much everyone with an Android phone interested in "funny" keys like "F1-12" / arrows / Esc / Ctrl etc. ends up installing and routinely using "Hacker's keyboard" which has all those keys (or another equivalent app) within weeks of getting their phone - how else would one telnet comfortably into one's Linux boxes without getting out of bed...? ;)

  4. Wow, thanks! I've totally forgotten about this keyboard although I'm 100% sure I've seen it before. Probably a long time ago while I was looking for a replacement of default keyboard. In the end I ended up using Swift Keyboard. Anyway I will definitely give it a try. Looks like a quick solution to some of my problems.

  5. Could you consider please adding navigation keys (up/down/left/right/ok or select) to the "consumer control" layout?

    The reason I'm asking is that I've just found out that while you _can_ remote control the MythTv frontend via WiFi through a telnet remote, this network remote _can not_ control any external players Mythfrontend might launch (which is a staggeringly braindead choice of the myth team if you ask me) - the moment you press play and mplayer launches, you _get disconnected_ !

    InputStick would be a very neat way to sidestep this - it would work wirelessly just as the other network remotes do, but could control anything under mythtv that can be set up to react to keypresses - it's a win-win...

    1. I think about merging "Macros application" with "RemoteController". This has already been done with NumericalKeyboard and MediaRemote apps.
      Consumer control layout will remain with only most basic functionality, while anyone wanting more will be able to define a custom preset.