Cockpit Interface Electronics:
Part Two: Phidgets
For a number of years, the EPIC was the only commercially
available product that enabled the average person to interface a homebuilt
cockpit to their PC. This changed in 2002 with the arrival of Phidgets.
You'll note that this review is more detailed than the work I did
for the USB EPIC product. I have written it this way because I felt that
Phidgets are far less known than EPIC and a more detailed examination was
warranted.
A Phidget is literally a Physical Widget. The original design concept
behind them was to make physical interfaces as easy to build as graphical ones.
It just so happens that a number of the Phidgets that they make are a great fit
for the home cockpit builder.
With the discovery of Phidgets, the bar of entry to the homebuilt
simulator hobby fell nearly to the floor. Cockpit interfacing was now
well within even the most stringent of builder budgets. Instead of having
to pony up nearly $500 just to get started, you could "test the waters" as
it were for as little as $75!
Phidgets are made as simple as possible to both enable quick &
easy understanding by non-technical people as well as avoid "extras" that
most users don't need. This makes it a very good choice for our projects.
Keep in mind that a Phidget is not a "drop in" device like EPIC is. Like
EPIC, you have to write software to make it work. However, unlike EPIC
you only have to write software on the host computer and you can do it in
Visual Basic. There two things to note about this. First, the EPIC is
designed to be able to send keystrokes to the host as if a user pressed a
key on keyboard. The Phidgets are not.
To talk to a Phidget, you need to write software to handle this.
Fortunately, this is very easy to accomplish with the freely available SDK
or Software Development Kit. The SDK is aimed primarily at users of
Microsoft Visual Basic but you're not restricted to that as the only
option. I'll go more in-depth on this later.
I'm going to give you an overview of some of the common Phidgets
that I've used. these include:
Phidget InterfaceKits, 4/8/8, 0/32/32 and 0/256/0
Phidget Servos, single, 4 servo and 8 servo models
PhidgetLED
PhidgetPower
PhidgetStepper
Phidget InterfaceKits are easily identified by their feature
codes. The feature code will tell you at a glance what the particular
Phidget IK you're looking at can do. The feature code is a three part
number separated by the "/" character. The first position is the number
of analog inputs the device has. The second indicates the number of
digital inputs and the last indicates the number of digital outputs.
The first Phidget InterfaceKit is called a 4/8/8. It supports four analog
inputs, 8 digital outputs and 8 digital inputs. The device I have is the
S/N 1 prototype and doesn't reflect current production modules. The current
production version of this differs in several important ways:
The production version is an 8/8/8, four more analog inputs than
on the prototype. The 8/8/8 also supplies a 2 port USB hub and a common
ground output system. The 4/8/8 I have can only drive LEDs as there is no
common ground to allow the use of an external output power supply. The
8/8/8 device also requires an external power supply to handle the load
required by the 2 port USB Hub.
One thing to note about the analog inputs is that they do not
appear as joystick axes to the host. I've found this to be the only
down-side to utilizing Phidgets for cockpit interfacing. It should be
noted that when using an open simulator such as MSFS or FlightGear, you
can use the SDK to interface the Phidget analog channels just as if you
had a joystick connected. You can also utilize the analog channels for
non-joystick functions such as toe brakes while using a standard joystick
interface for the primary flight controls.
I would imagine that if there is enough of a call for it, Chester might be
open to modifying the Phidget InterfaceKit driver to allow it to be seen as a
joystick by the host.
This is the 0/32/32 Phidget InterfaceKit. It provides 32 digital
or switch inputs and 32 digital outputs. The board has a common ground
for both the inputs and outputs and each output channel can support up to
250ma of current draw. The common ground system will allow you to use
different voltages on different channels depending on your needs. For
instance, if you've got a mix of 5, 12 and 24 volt indicator lamps, you
can operate all three types simultaneously by joining the ground (negative
pole) of each power supply to the ground connector on the 0/32/32 module.
Next up is the 0/256/0 Phidget. Unfortunately, I don't have a
picture of this Phidget handy.
The 0/256/0 InterfaceKit presents a 16x16 input matrix on a DIP
header along the side of the board. It can be optionally configured as an
8x32 matrix for compatibility with EPIC input wiring. The input matrix is
diode-isolated in the same way the EPIC matrix is.
The Phidget Servo devices are nice and compact units that come
configured to drive a single servo up to 8 servos on a single board.
A
PhidgetServo can control just about any common 3 wire servo such
as those made by Futaba, JR Electronics or Tower Hobbies. Since a servo
is not capable of being driven 360 degrees, they're not much good for
continuous-rotation instruments like compasses, altimeters or ADIs.
However, they're a great fit for instruments such as vertical velocity
indicators, rpm gauges, airspeed indicators or other partial-rotation
gauges. If you really like the idea of using a servo, you can always
attach a server to a 2:1 gear set to obtain a nearly 330 degree rotation.
The single servo PhidgetServo obtains its power right off
the USB cable. The 4 and 8 servo versions require an external power supply
as the load is too high for a standard USB port or hub.
For building instruments that require a continuous rotation such as a
compass, you could use the Phidget Stepper.
This Phidget can control 2 bipolar stepper motors and has 2 digital inputs for
"home" sensing. An external power supply is required and it can handle a maximum
load of 2 Amps per coil. Stepper motors that require between 5V and 30V
are supported.
This is a PhidgetPower. This Phidget is designed to provide a variable DC power output. For instance, you could connect a DC motor to it and control the speed of the motor via software. This particular PhidgetPower is the external power version. It requires an external power supply to power the load and can control two devices. I've got a great use for this little thing, but I'm not going to tell anyone yet. :)
Finally, we have the PhidgetLED. This device will allow you to control up to 8 seven segment LED displays or 64 individual LEDs. This is a good choice for building transponder or radio frequency displays. It gets power from the USB cable, so it would be a good idea to use a powered USB hub with this device.
There are more Phidgets that you can check out by going over to the Phidget website. There is a lot of documentation there as well as programming examples and a Phidget community forum.
The cost and ease of use are big plusses with the various Phidgets. The only real down side is they do require some programming to use. This is not necessarily a bad thing however. The Phidget SDKs are very easy to use and understand and can be used with Visual Basic, Visual Basic .Net, C#, C++ and Delphi. The primary functional advantage over EPIC is you only have one software element to track. With EPIC, you've got to write EPL and if you want to take full advantage of EPIC, you need to write host-side software as well. With Phidgets, you only need the host-side software. There is also support Phidget support for Linux where there is none for EPIC. This can be especially important for those of you working with simulator software such as the Linux version of FlightGear.
Phidgets can be purchased directly from the Phidgets website. All prices shown are in Canadian Dollars. Non-Canadian customers should head over to the Currency Exchange to obtain up to date equivalent prices.
This has been Part Two of my Cockpit Interface Electronics series and I hope you've enjoyed reading it. If you have any questions, comments or corrections, please feel free to contact me at geneb@deltasoft.com.
Gene Buckle, February 12th, 2004
Last Updated: 12Feb04