View Full Version : Need help understand potentiometers vs. rotary encoders for trim wheel experiment
xCav8r
06-28-2008, 02:08 AM
I'm new here and new to cockpit building. I'm trying to design a first experiment in making controllers, and I need some help. Hopefully I've posted this to the correct forum.
I want to make trim controllers that will work in IL-2 and FSX. IL-2 supports axes and keystrokes for trim, but FSX only supports an axis for elevator trim and requires keystrokes (or DirectX buttons) for adjustments to aileron and rudder trim. I want to use axes where possible and keystrokes where I can't.
I would like to actuate trim adjustments by turning a wheel. If it's IL-2, then I want it to be via an analog axis; if it's FSX (and not the elevator trim), then I need it to send the correct keystroke. To accomplish this without a lot of software voodoo I think I need to connect the wheel to both a potentiometer and an incremental rotary encoder. The potentiometer is the axis and the incremental rotary encoder detects the direction and speed of the movement which enables the keystrokes. (1) Do I have that right?
(I have four questions in this post. They're numbered parenthetically like above.)
Let me set up a series of related questions. I have a Saitek X52. In the software that comes with the stick, I can treat the controller's axes as something other than analog. I may not have phrased that accurately, so let me give you two examples to explain what I mean. First, I can program the X52 to send a keystroke based on the direction of movement of an axis. For example, if I rotate my rotary dial clockwise, it will send keystroke A; if I rotate my rotary dial counterclockwise, it will send keystroke B. Second, I can send a keystroke based on the position of the axis. For example, if I position my throttle from 0-50% along its axis, it will send keystroke C; if I position my throttle from 51%-100%, it will send keystroke D. Hopefully that all makes sense.
I have no idea how they accomplish this, but I assume that it's a software capability built on the pot info. Its position is checked at such and such an interval, but instead of sending the positional data to the game, the stick's software interprets the data and sends the desired keystroke. Of course, how they do it doesn't really matter to me. (2) I just want to know if it's possible to mimic this functionality in my homebrewed controllers with just a pot, or do I actually need both a potentiometer and a rotary encoder?
If it is possible, then... (3) do some I/O cards come with software with capabilities similar to what I described in the preceding paragraph? (4) Alternatively, are there any freeware or shareware programs out there that conditionally interpret controller data to transmit keystrokes?
Trevor Hale
06-28-2008, 10:01 AM
Regarding IL2, Someone else will need to assist you with that.
However regarding FSX.
Download and purchase FSUIPC (FOR FSX)
This software will allow you to assign any (Potentiometer) attached to any joystick or controller, to any function you would like to do.
You can assign keystrokes for different ranges of the pot, or you can use the pot to adjust your axis themselves.
Good luck.
Trev
xCav8r
06-28-2008, 12:41 PM
Thanks for the reply.
Based on what I had been reading on the web, I suspected that FSUIPC offered some abilities similar to what I had described is available in Saitek's software. But do I understand correctly that with (registered) FSUIPC I can actually use an axis for rudder trim and an axis for aileron trim for FSX? That's what I understood when you said "you can use the pot to adjust your axis themselves."
I know I only mentioned IL-2 and FSX in the original posting, but what I actually want to know is if there is some software that does the stuff like Saitek's software allows--and like FSUIPC has the ability to do for Flight Simulator--but without being tied to one game? I'm hoping for something more generic. I have a long list of games that I'd like to support. That's why I had thought of connecting the wheel to both a potentiometer and incremental rotary encoder, because it seems to me, if I understand things correctly, that the addition of the incremental rotary encoder gives me the keystroke capability without having to rely on software that can read and conditionally interpret pot positions.
Thanks again for the reply.
If you want to do it the easy way, buy a Leo Bodnar Joystick card.
http://www.leobodnar.com/products/BU0836X/
With this card you can either connect Pots, rotaries , switches or buttons.
That way you can decide your self which way to go if you want to do your own panel.
I also have have the X-52 and fly both IL-2,FSX as well as Lockon.
The rotaries on the are analoge pots, but with the saitek software you can actually configure keys. But that is not the best way to use them.
Just set it as axis (analogue) and adjust sensitivity.
With FSX you can use the pots on the Saitek, it's just a correct setup that is needed if you use FSUIPC
I use the Leo card with rotaries (digital) as trim on FSX.
It gives me better sensitivity and easy access to reset as the rotaries also have a push button.
Another good thing with the Leo card is that you can use toggle switches.
For instance, having a gear switch that toggles in correct position.
Trevor Hale
07-06-2008, 09:49 AM
Thanks for the reply.
Based on what I had been reading on the web, I suspected that FSUIPC offered some abilities similar to what I had described is available in Saitek's software. But do I understand correctly that with (registered) FSUIPC I can actually use an axis for rudder trim and an axis for aileron trim for FSX? That's what I understood when you said "you can use the pot to adjust your axis themselves."
I know I only mentioned IL-2 and FSX in the original posting, but what I actually want to know is if there is some software that does the stuff like Saitek's software allows--and like FSUIPC has the ability to do for Flight Simulator--but without being tied to one game? I'm hoping for something more generic. I have a long list of games that I'd like to support. That's why I had thought of connecting the wheel to both a potentiometer and incremental rotary encoder, because it seems to me, if I understand things correctly, that the addition of the incremental rotary encoder gives me the keystroke capability without having to rely on software that can read and conditionally interpret pot positions.
Thanks again for the reply.
I know that you can assign keypress keystrokes to different positions of a potentiometer in FSUIPC.
I doubt that you will ever find a software that will allow Interface devices to work will all programs, as the interface software needs to be able to communicate with the internal game commands. Just because landing gear in flightsim is "G" doesn't mean to raise or lower you landing gear in Falcon 4.0 would be a "G" as well
if you know what I mean. But good luck and keep us posted.
Trev
xCav8r
07-06-2008, 08:28 PM
I think it would have been better to have placed this thread in the I/O Interfacing Hardware and Software (http://www.mycockpit.org/forums/forumdisplay.php?f=83). Would someone capable move it there for me?
If you want to do it the easy way, buy a Leo Bodnar Joystick card.
http://www.leobodnar.com/products/BU0836X/
With this card you can either connect Pots, rotaries , switches or buttons.
That way you can decide your self which way to go if you want to do your own panel.
I have been looking very seriously at his cards, and you're not the first person to recommend them to me. It's reassuring to hear opinions from more people, so thank you for mentioning it.
I also have have the X-52 and fly both IL-2,FSX as well as Lockon.
The rotaries on the are analoge pots, but with the saitek software you can actually configure keys. But that is not the best way to use them.
Just set it as axis (analogue) and adjust sensitivity.
With FSX you can use the pots on the Saitek, it's just a correct setup that is needed if you use FSUIPC
I'm glad that you mentioned this. As I'm sure you already know, IL-2 allows you to create a response curve for each analog axis, and the rotary dials (with small diameters and rotations limited to 120 degrees) are virtually unusable until they're tweaked down considerably. FSX, on the other hand, only has a sensitivity slider. I assume that it does something similar to the response curve adjustment that IL-2 allows me to set directly, but I have no idea what specifically happens when I adjust the slider. Do you know what FSX actually does when this is moved? And does FSUIPC provide a response curve feature similar to that in IL-2?
I don't mean to make it sound like I'm not going to buy FSUIPC. Everyone here seems to have it, so it makes sense for FSX. Microsoft Flight Simulator, unfortunately, isn't my only concern. My goal is a multi-plane, multi-game, multi-game genre cockpit. This is why I had asked if any cards come with software with abilities like we've been discussing. If I'm not mistaken, Leo Bodnar's cards don't.
I use the Leo card with rotaries (digital) as trim on FSX.
It gives me better sensitivity and easy access to reset as the rotaries also have a push button.
Do you mean that you're using incremental rotary encoders? If not, could you tell me what you're using and how? If so, could you explain how and tell me the make and model encoder that you're using? It still seems to me that I want to use both for each trim control.
Another good thing with the Leo card is that you can use toggle switches.
For instance, having a gear switch that toggles in correct position.
Is this a special feature that his cards have that others lack? If so, what should I be looking for in the card that gives me this ability?
I know that you can assign keypress keystrokes to different positions of a potentiometer in FSUIPC.
Do you know if FSUIPC transmits these keystrokes continuously or just when the axis changes position?
I doubt that you will ever find a software that will allow Interface devices to work will all programs, as the interface software needs to be able to communicate with the internal game commands. Just because landing gear in flightsim is "G" doesn't mean to raise or lower you landing gear in Falcon 4.0 would be a "G" as well
Since posting my original questions here in this thread, I've been searching around the web for controller profiling software. I've found a few. Some are freeware; some, shareware. Of those that I've looked at to date, the most sophisticated has been Pinnacle Game Profiler (http://www.pinnaclegameprofiler.com/). It can be used to profile multiple controllers at once, automatically detecting when a game runs and applying the profiles to all of the controllers that you set up for each game. It's on par with the profiling software you get with Saitek, but somewhat less functional than Ch Products. In particular, it lacks support for complex scripting, combining controllers, and setting response curves.
Perhaps I'm being overly optimistic about generic software in this space, but I do think it's possible in virtually every game that I have to create my own keybindings. For example, I could make landing gear be "G" in every sim. So, if I wanted, I could use the same profile in my profiling software for every sim. Only, in all the profiling programs that I've looked at (even the freeware ones), there is the ability to create profiles for separate games (and usually separate controllers as well), so I think they can work generically without problems. They just can't do software specific stuff like allow you to use a pot to send something to a game that can't take pot info (except via keystrokes). Anyway, I'll keep up the search and evaluation, and if anyone is interested, I'll post the results here so that others might benefit from the time I invest. It seems to me that a software tool like this would be important to most cockpit builders, but maybe I'm missing something obvious. If that's the case, please help me out. I'm struggling to wrap my head around all this stuff.
OK, here goes a long one.
I have been thinking about what you are trying to acheave here, which is pretty much the same as me. A generic cockpit that you can use with different simulators.
The problem as you say it your self is that they all have different keys and ways to be controlled.
I can directly say that all functions will never be possible to have with a generic cockpit....sad but true. You either do like the big boys and decide which simulator you ant to fly and then which aircraft. That's the only way to have the "full monty".
As I want to have a bit of each, I need to compromise.
If you have a x-52, you have a great start as it's programmable.
I have all functions needed for flying IL-2 on 2 profiles.
One for fighters and one for bombers.
With lockon, things get a bit more complicated.
I use the touchbuddy software with a touchscreen.
http://www.touch-buddy.com/forums/index.php
That way I still don't use any physical buttons.
And finally for FSX, as touchbuddy does not work with FSX..yet
(fs2004 is ok though) I use my OC cockpit.
The only reason I started using OC is that
1. It looks cool
2. It have digits and light.
3. no soldering and 3 zillions of cables and buttons to connect.
4. I thought it would be easier to set it up and use it with different aircrafts....which it's not....
My first cockpit was built with 2 joystick cards, One OC and one Leo (first model without posibillities for rotaries and toggles).
The problem was that I could not get rotaries and toggel switches to work with these.
So I started with other solutions and finally ended up where I am today.
Still not being able to use all functions!!!
Why?
Because the OC Generic Panel is not programmable
which mean that when I for instance switch on the fuel pump, it works
fine with on singel engine planes ...but not with twins.
The other I need to start by a mouse click.
Then the EFIS...flying the default FSX 737, only 2 functions are obviously modeled with offest id's, so you cannot program any FSUIPC
to work with it. The MCP...several of the functions are not modelled on the default FSX 737.
The list is long.
Bored yet? :roll:
OK, in your situation (or If I would have known what I know now) and if you don't need digits, leds, and stuff like that, I would choose the easy and cheap way.
Buy 2 or 3 Leo cards and run them with the in game commands.
That is, don't set that G is gear and configure that for all simulators you use. In IL-2, set that button X on card1 is gear button, then do the same on FSX. That way when you start which ever simulator, it will always work as long as you have connected the card to the PC. the simulators will just se it as several more joysticks.
Now for some quick answers on your questions that I can answer.
1.Yes I'm aware that Il2 need a good tweak for the X-52 not to be oversensitive using the rotaries (which actually are pots). I use il2-joycontrol for that.
If you want to use real rotaries, then with the Leo card you have two options, either you use a pot and set it up just like with the X-52
or you use a true rotary.
A digital rotary sends pulses, one for each way they are turned.
If you use a rotary, you simply say to the simulator: turn clockwise = the same button you have assigned for that task. Then every puls will be a push of this key. The backside of this is that you cannot actually on the dial how much trim you have, but that is usually not an issue if you look at the instruments. Also, different rotaries have different pulses. some send 1 "klick" for every 2 "notches" ..some 1 for every 4:th
For FSX you can do exactly the same. It's up to you.
2. the sensitivity slider just decreases the output of the input.
Easy test...fly with the sliders on Min. "In game" the joystick will hardly move. a roll will take half a minute. set it on max and it will be as twitchy as ever. It has more or less the same effect as in IL2. It's just another way to set it.
3. don't know if the rotaries are called incremental.
Here is two example of what I'm using.
http://www.opencockpits.com/catalog/encoder-p-100.html?cPath=24
http://www.opencockpits.com/modules.php?name=Content2&pa=showpage&pid=51
4. yes most simple "joystick cards" don't have this possibility built in.
It's possible with a diode on every toggle switch to get it to work.
Without it, when 3 switches are in on position , it will start pressing othe buttons in the same "grid"
This is just my 5 cents...or half a dollar with the current rating ;-)