INTERFACING RUDDER PEDALS
to Flight Sim.



THE PREVIOUS PAGE IN THIS SERIES IS "RACK & PINION".

Having built a set of rudder pedals and brakes, the next thing was to interface them electrically to my FS programme.
After some research on the web, I was rather taken with the USBAxes IO card described on the OpenCockpits web site.
http:/www/opencockpits.com where there was sufficient documentation supplied to enable me to design a clone of their printed
circuit board (PCB) and adding a few ideas of my own. (I have some expertise in electronics and PCB design).


View of the first PCB prior to drilling and cutting to size.

For the switch input pairs, I used three 20 pin sockets wired so that each switch would connect to an opposite pair of pins.
Thus, I figured the 24 (digital input) switch wiring would be easier and more logical.
These sockets are on the bottom and left of the image.
The five 3 pin sockets for the analogue inputs are along the top of the image.

Some mistakes/improvements with that PCB became obvious as I started construction. I had designed it for the wide version
of the PIC16F745, but when I came to purchase these items, I found the narrow version was much less expensive. Also, I hadn't
left sufficient space for the five 3 pin sockets, so some had to be mounted on the rear of the board. Likewise, with the
three 20 pin sockets .. I had envisaged using the polarised "boxed headers", but I didn't allow enough space. So I used 20
pin sections cut from 40 pin dual inline 40 way headers. This means though, the respective plugs may be fitted either of
2 ways. To get over the problem of using the narrow PIC in the PCB designed for the wide version, I built up an adapter
fitted with a narrow 24 pin IC socket.

I had used PIC's previously, but my old PIC programmer wouldn't accommodate the rather new PIC16F745. I chose to build up a
PIC programmer kit (K149 or K5149) from Ocean Controls http:/www/oceancontrols.com.au. Now I was in a position to programme
my PIC.

EXPERIENCES WITH MY CLONED USBAxes IO CARD.
After some initial testing verifying a few things .. including voltages were correct etc., I took the plunge and connected
the board to a spare USB port on my computer. The usual caption appeared saying "new hardware had been detected", so I felt
confident. Another message appeard for a second or so .. something like "IO Card", then that changed to "USB Human Interface".
That also only lasted for about a second. In my ignorance, and lacking any other documentation, I thought there would be
"things" to be configured regarding that device. So I went looking with "control panel","new hardware". Nothing could be
found. I searched under "control panel", "system", "hardware", "device manager". Still nothing found that really identified
the new board. I was somewhat puzzled.

After some thought, I went and started my FS programme and looked under "settings", then "assignments". To my amazement, as
well as my existing Logitech joystick, I now had a device identified as "IOCa". It was possible to select either joystick
device, and then list a series of "events" (aircraft commnads). "Buttons/keys" or "Joystick axes" may be selected, then it
is possible to delete existing or assign "events" to various "Buttons/keys" or "axes".
Thus, the new IO Card appears as simply another joystick. And, it appears that one may add even more IO Cards and they will
appear and be used in a similar manner.

Suitably inspired, I then had to wire my rudder pedals, brakes etc. to the IO card.


View of the first PCB fitted inside an old plastic food container.
The ribbon cable exitting the box connects to the rudder pedals and brakes.
They connect to the PC board via three 3 way plugs to 3 of the 5 analogue inputs.


View of the plastic container.
I added 8 push buttons and wired them to 8 of the digital inputs. 2 potentiometers were wired to 2 of the analogue inputs.
These items were to experiment with. Rudder pedals and respective brakes are connected to the remaining 3 analogue inputs.


Close up view of the first PCB in plastic box.
The USB cable to the computer connects to the rectangular metal socket on the left of the PC board.

I noted that my Logitech joystick assignments were duplicated again under the IOCa joystick. So, the first thing I did was to
delete all those duplicated assignments allocated to the IOCa joystick.

ASSIGNING BRAKE PEDALS.
With Flight Sim. running, press "Alt" key, then "Options". then "Controls", "Assignments", then "Joystick Axes".
Under "events", highlight "left brake axis", then highlight "change assignment".
As instructed, (in this case) move left brake pedal. Message appears "assigns X axis". Select OK.
Repeat for right brake pedal. In this case, Y axis is assigned. Select OK.
REVERSING OPERATION (of an axis).
I found the brakes operated in reverse sense to what was required. ie maximum braking with no pressure on the pedals.
The is a "square", under "Assignments" which may be ticked to reverse their (and any other axis's) operation.
This is, in effect, the same as reversing the wiring to the outer ends of the potentiometer, but easier to do under software.
ADJUSTING SENSITIVITIES.
Under "Settings", select "Sensitivities", then "Advanced".
From experimentation, I found .. adjust "sensitivity" to maximum, adjust "null zone" to minimum.
TESTING BRAKES.
With stationary aircraft on ground, press either brake pedal. This should bring up the word "BRAKES" in the lower left hand
corner of the screen. At one stage, I had a problem in that "BRAKES" were indicated at all times. I found that cycling the
parking brake" ("Ctrl and period) fixed the problem. I am not sure what I did, but I did end up with no "BRAKE" indication
when the aircraft is initially loaded on the screen prior to flight. Though some flights seem to load with the parking brake
applied which seems a good starting point for a flight.
Further testing with taxying the aircraft, it should be possible to steer it with the brakes. They should also stop the
aircraft! I have noted that the rudder will steer the aircraft very effectively at low speed, I suspect it is, by some
default in the programme, also being used for nose wheel steering. I need to investigate this further or talk to someone
who has the answer.
ASSIGNING RUDDER PEDALS.
The first thing I did was to delete the "rudder" assignment to the Logiteck joystick.
Then, as per "assigning brake pedals" above, assign the rudder axis to the IOCa joystick. It appears as axis Z.
I used "not reversed", minimum sensitivity and minimum null zone.
Test rudder for correct operation with aircraft flying.
ASSIGNING THROTTLES.
I wished to assign throttles to 2 engines. For this test, I used the 2 pots shown fitted (above) to the plastic box.
First, delete existing Logitech assignment to slider.
Throttle 1 (left engine) was assigned to the "rudder" axis.
Throttle 2 (right engine) was assigned to "throttle" axis.
I found it necessary to use "reverse", maximum sensitivity and minimum null zone.
Test throttles on aircraft.
CALIBRATING JOYSTICK.
With Flight Sim. running and pressing (as above) "Alt", "Options", "Controls", then, in this case, "Calibrating joystick",
it is possible to test and calibrate any installed joystick. I dabbled with these settings this the first time I set up the
above system. The second time, after a computer rebuild, I didn't find it at all necessary.
One thing, I should have mentioned earlier, is that "test" position gives an extremely useful indication of the correct
operation of the "Axes" (analogue inputs) and "Buttons" (digital inputs) of any installed joystick. With "IOCa", then
"properties" selected, one has a pictorial view of the 24 IOCa Buttons and and indication of movement of the 5 axes.
With respect to the buttons, the respective button illuminates in the pictorial view, when a button is pushed.
To me, that "Test" position is extremely useful in showing the various inputs from the IO Card are working correctly.
ASSIGNING PUSH BUTTON (DIGITAL) INPUTS.
So, with the above information, it is a straight forward process of assigning "events" to the desired button.
In this case one selects "Buttons/keys", in lieu of "Joystick Axes".
Select the "Event" you wish to assign, highlight "Change assignment", as instructed, press the button you wish to assign
to that "Event". A message appears informing you of the button number, press OK if satisfied.
In that manner all "Events" may have buttons assigned to them, or have buttons deleted from their existing "Event".


I suggest you experiment with the above and become familar with the operation of those assignments, sensitivities etc.
You will probably find you need to use different settings to what I used .. fine tune "Sensitivities", "Null zones", use
"Reverse" when I didn't and so on.
Happy flying!

THE NEXT PAGE IN THIS SERIES IS "STARTING CONSOLE".

Click here to go to that page.


To send an e-mail to Ron, use the "Back to RONS HOMEPAGE" facility below.
There is a "Send an e-mail to Ron" link at the bottom of that HOMEPAGE.

Back to Rons home page.

29 August 2007.   ©Ron Graham 1997.