While we're on the subject of input devices, I didn't want to derail the other thread. (JoyToKey is a great way to get more use from a controller!) But as somewhat of an input device junkie, it seemed like a great time to give a shout-out to another very versatile -- but definitely not cheap -- device.
This is the Elgato Stream Deck XL. A 4 x 8 programmable macro key device. (Click for bigger image)
StreamDeckSmall.jpg
What's different about it from the X-Keys from PI engineering (RailDriver folks) or the Genovation macro keypads that are popular with graphics and video pros and industrial users, is that the keys themselves are buttons on top of an LCD display, and the key legends are completely configurable in software. So you can have a custom key layout and key legends for any software you want, and switch between the layouts at will or automatically when an application is detected in the foreground.
In my picture, it's configured for Euro Truck Simulator/American Truck Simulator. The buttons are set up as simple mappings to key-presses. The graphics are from a collection that's on the Internet to be used with the old Roccat PowerGrid application that turned a smartphone into a configurable macro keypad. I modified some of the icons in Paint.net to make ones for additional functions. Others for game functions are completely new ones I created using clip art. It's not hard to do, and it lets you create a custom control layout for any game, with meaningful icons and text instead of generic keys or sticky labels on keys.
Simple hot-keys and macros are kind of the most basic function of the device; it was designed as a tool for Internet content streaming -- Twitch, YouTube, etc. and it has an API that allows it to integrate with other software for more advanced behavior. Entire workflows can be programmed for it, with the keys automatically changing as a sequence of actions runs.
Of course, since it has an API, it can connect to anything that can use it. There's already an X-Plane add-on that uses Python scripting to connect X-Plane's API with the StreamDeck, and exchange stateful information between X-Plane and the StreamDeck, so that buttons can match the state of the virtual cockpit's own on-screen buttons.
This could be really useful with a cutting-edge sim application like the upcoming new Microsoft Flight Simulator. It will be interesting to see if the new sim has an API to support devices like this. I've thought about getting some of the Saitek/Logitech flight sim panels, but the software is known to be troublesome, there are limitations even with alternate drivers for them, and they're still locked to generic layouts. The flexibility of the software-defined key functions and visual legends on the buttons is so much more flexible.
I really like that Open Rails has support for assigning the RailDriver's buttons in the Monogame experimental versions. Adding this device allows more functions -- like the additional key mappings needed for steam locomotives -- to be set up.
At $250 US on Amazon, it's not cheap, though. There are 3 x 5 and 2 x 3 button layout versions that are cheaper, but I went for the flexibility of the larger key layout while I could.
There's also an iPhone app version that mimics the 3 x 5 version in software on the phone touchscreen, but the software is sold as subscription-only -- which seems foolish to me.
There are also a number of "button box" apps for iOS and Android devices that do the same thing, and allow for custom icons and buttons, but not all of them are easy to design for and I've never liked touchscreens all that much. (They annoy me in real cars -- you HAVE to look at them to aim where you touch. I much prefer tacticle buttons you can locate by feel and a quick glance only if necessary.) Phone apps also need WiFi or Bluetooth connections to the PC, and I prefer the reliability of a wired USB connection.
Anybody else find anything useful like this?