Ask Slashdot: Physical Input Devices For Developers?
First time accepted submitter paysonwelch writes "I am a developer and entrepreneur and I am considering developing a very graphically rich and custom interface for my latest application which does charting and analysis of large data sets. The application would feature lots of gauges, knobs and levers. As I was thinking about this I said to myself, why not hook up physical knobs and levers to my computer to control my application instead of designing them in 2D bitmaps? This could potentially save screen space and provide tactile feedback, and a new way of interacting digitally with one's application and data. So my question is whether or not anyone out there has advice for building a custom solution, perhaps starting with a mixing board, or if there are any pre-fab kits / controllers for achieving this?"
I would do some research into inputs for Flight Simulators and I'm not talking about the big commercial ones. The hardcore fans build quite sophisticated flight sim setups in their home all with custom controls to match their aircraft of choice with all the knobs, switches and levers. There are quite a few companies that cater to them as well.
Electronic musicians have been demanding high-quality tactile interfaces for many years. There are various USB MIDI controllers on the marked with various arrangements of knobs, buttons, keys and other moving things. Check out M-Audio and Alesis and other big names, and you might get some good ideas.
X-Keys or Monome or any one of a million Control Surfaces, for starters. Or Arduino obviously. Personally I think that for a lot of applications the best solution is to drop the knobs and switches, take apart an old USB keyboard, and build a custom button-based interface using the matrix board. Interface it with hotkeys built into your app, and this way it shows up as a regular HID without needing specialty drivers.
"Once in Hawaii I had sex with a 102 year old male turtle. It is difficult to argue that it was consensual." - Steve Ma
People who use software for music production like tactile controllers as well. There's a range of products out there from the korg nanokontrol (~59US) series up to the euphonix line (~1000US+). Most nowadays use USB and older ones tend to use MIDI. Motorized knobs are hard to come by in this market, but lots of products use LED rings to provide visual feedback since the encoder is endless. Motorized faders on the other hand (is this a lever? lol) are rather plentiful and not too expensive. Start your search with "control surfaces" and possibly some other terms like 'DAW' or 'MIDI' or 'USB'
The electronic music/DAW/DJ crowd has been all over this sort of stuff for some years.
Something like the Aurora is an open source hardware example; but there are a large number of devices at various price points and levels of openness that boil down to a whole bunch of knobs, buttons, and sliders, with some sort of computer-compatible interface(often MIDI or USB-MIDI device, sometimes with a driver or plugin for Ableton or Max specific to the device).
The audio guys may not map 100% to your requirements; but they have the advantage of being a reasonably large, reasonably active, community with a fair amount of existing hardware available off the shelf.
As an alternative, many contemporary microcontrollers are capable of serving as USB slaves. Something like a teensy is pretty cheap and makes it dead easy to turn inputs from buttons and sliders and rotary encoders and things into USB HID keycodes.
Yep. If you want to waste a couple of hours, read this story from a couple of days ago to get a taste of the difficulties of trying to cater to people. (For what it's worth, here's my contribution to the debate.)
I am curious about the details behind your thoughts. The only key to your target audience is that it does "charting and analysis of large data sets". Could be a number of industries, from finance to utilities looking at PMU data from the electric grid. It makes a difference - you're an entrepreneur and developer (although your home page says you're an artist), so it'd seem to be a safe assumption that you want to commercialize this. If that's the case, you want to consider the physical location of where this is going, how complicated it'll be to provide input and get output, how quickly people will need to react, how much space they'll have around them, how many will need to be installed at a location, etc., etc. All of those considerations make a big impact on whether this is even a workable idea in the first place.
As fidget42 said - hire someone who does this stuff for a living. That is, if I'm correct in my assumption you actually want to commercialize this.
While the Guitar Hero guitar was a PITA for retailers (huge box, took up space), it wasn't the game itself that sold people, nor the controller. It was when people put the controller on, that it conveyed a feeling of "I'm a rock star".
That feeling itself is what made GH a great game. Same holds true to flight sims, driving games with steering wheels and plastic guns. They add an emotion to the game that isn't there with a gamepad/joystick/keyboard+mouse.
I got a chance to meet Kai Huang at a class I was taking and he was telling me that when they brought the controller to the VC guys. The VC guy put on the controller and before even playing the game told Kai and his brother that he was sold on it. The VC guy said, "I don't know how to play guitar, but I feel like a rock star!"
http://www.trossenrobotics.com/p/phidgets-encoder.aspx?feed=Froogle
Griffin Powermate. Been around a while, affordable.
http://store.griffintechnology.com/powermate-1
Let the net do your shopping to save $bucks.
Lots more out there, this has easy interface via USB.
Red
Physical knobs work much better than touch screen 'knobs'. Also, red and green are the worse colors to use. Out of the color blind or partially colored blind people (and there's more than you think), red-green color blindness is highest percentage.
Making dynamic GUI in the sense that the controls move around is a great way to confuse users. They can't build muscle memory when you do that and have to take a moment and think about what they're trying to do instead of just doing it.
Vibration, really? Cheap touchscreens don't vibrate, it sounds like the user doesn't/shouldn't be holding the device (so they won't fell the vibrations only hear them), and if you mean visible vibrations in the GUI that's bad too: the user's finger will be covering the control and watching a whole screen vibrate is annoying (and gives some people headaches). Real controls provide real feedback. Knobs and slides can have notches or bumps in them.
Pop-ups are one of the best ways to annoy users. Avoid them as much as possible.
If you're concerned about needing to customize things after the product is build, create prototypes first. If your final product requires UI changes, it wasn't created properly.
Your way is much more complex with the additional software, sounds like it would cost more money, and requires high tech which has a greater change of breaking or having something go wrong. Stay with KISS, go with the hardware controls.
I'm developing features for software defined radio. Higher end radios, for those of you who don't know, tend to have a lot of controls. Bandwidths, IF shift, notch filter(s) with frequency and Q settings, AGC decay, intercept and knee, frequency, band, memories, panadaptor controls, waterfall controls, demodulator type, demodulator settings... it really goes on for quite a while.
Initially, I mapped a whole bunch of functions to keys, but eventually ran out of keys. Sure, there are on-screen controls, but they're not as nice as physical knobs. Essentially similar to the problem the submitter faces, at least in some respects.
So, my solution? First, a Griffin Tech Powermate knob for tuning -- because that's what you do most of with a radio. Big knob, very precise, easy to use. Then, a Behringer BCR2000 B-control rotary control deck. Cost was about $156 from Amazon. This is a MIDI device that can map any of 32 knobs and 24 buttons to arbitrary functions. Coding to the device was relatively simple; implement a MIDI learn function, then map whatever seemed fun to a physical knob or button. The board will remember several scenes, too, so you can set up a bunch of controls all at once. Works great. There's another version of the board with a somewhat similar price but a different complement of controls, works similarly, though I think it's a bit more biased towards audio concepts (faders, specifically.)
There are other physical control solutions that utilize MIDI out there as well, but I have found none as economical as the BCR2000. BTW, I don't have anything to do with Behringer other than as a satisfied customer.
I've fallen off your lawn, and I can't get up.
@kiwimate thanks for the response. I will definitely check those stories out. My thoughts about this are general in the sense that as developers we often only use keyboard / mice. If you think of AV professionals though they often use mixing boards to get work done more quickly and finely tuned. So why are generic components not more readily available for general development purposes? Surely by using a potentiometer it could provide much more precise resolution than a mouse, faster and easier than typing in decimal numbers. In a sense you answered your own question. Using physical input devices other than a keyboard and mouse could be expanded to many different industries. I'm not really looking to commercialize this, most of my work is for personal interest. As far as my website, I am working on bringing a blog online for my technical non-artistic interests. I considered combining them however art people usually don't get technology and vice versa. It's a turn-off for people visiting a single website with diverse interests. My opinion is that its better to specialize when presenting information. It's an idea and this is my starting point, to get input on possibilities. Perhaps I could hire someone to do it, but I enjoy the process of learning and adhere to the old adage that "if you want something done right do it yourself".
No, don't use knobs .. what's wrong with using a 2nd display .. with a touch based UI.
Touch based UIs only work if you are looking at them.
Car analogy: imagine a car with all of the controls on an iPad, which you put on your lap. Try driving while watching the road.
Since you say this is for personal interest, I shall link you to what I use for sliders/knobs.
This is rather useful. 30 knobs, 9 sliders, many buttons and doubles as a fully weighted piano. Whole thing is powered over usb bus and I picked mine up on special for $450. usb midi compliant so no drivers required, works nicely with whatever midi subsystem your os uses.
Trouble these days would be finding one, production stopped some years ago.
Programming wise midi support is probably the best way to go with this, large support for varying hardware much of which has knobs and sliders.