AC/DC Meter Panel
By Pim van Vrijaldenhoven
The Hardware
Note if you use
Prosim737, you no longer need this!
Just like many other
cockpit builders who don’t like to have holes in the overhead panel, I looked
for a way to make the AC/DC Meter Panel functional. Since there are no
ready-made solutions available on the market as far as I know, I decided to do
it myself. I did this for a number of reasons:
- I had never done any
programming with MS Flight Simulator
- I gave me chance to
understand the workings of pmSystems better
- I have been employed most
of my working life with the market leader in hand held digital
multimeters, so I know about meters
- It would be fun
Then I started to look for what would
be available in terms of components that could be easily connected to pmSystems
and would be affordable. I wound up with the
PhidgetTextLCD with 8/8/8 card.
This card features a two-line 20 character display, plus 8 digital inputs, 8
digital output and 8 analog inputs and interfaces with the PC via a USB port.
It does not require an external power supply. In terms of width, the display
fits perfectly in the FlyEngravity overhead panel that I use. The only drawback
is that in a real panel the two display lines are much farther apart.
My intention was to provide as much
functionality as possible within the limitations of pmSystems. I got most of
the information from Pat Boone’s Boeing 737 Management Reference Guide, Edition
NG.
|
 |
There are three
switches that need to be interfaced to: the DC selector, the AC
selector and the Maintenance button. I wired them in parallel,
position 1 (STBY PWR) to DI0, position 2 (BAT BUS/ GRD PWR) to DI1 and so forth. The Maintenance button is wired to DI7. To
select the appropriate switch the common poles are connected each via a diode to
three digital outputs. The DC selector is connected to DO0, the AC selector to
DO1, and the Maintenance button to DO2. The cathodes of the diodes are
connected to the digital outputs of the Phidget board.
For
clarification use this wiring table:
|
DC |
AC |
MAINT |
AIR TEMP |
Input |
|
DO0 |
DO1 |
DO2 |
DO3 |
|
Position 1 |
STBY PWR |
STBY PWR |
- |
CONT CAB |
DI0 |
Position 2 |
BATBUS |
GRDPWR |
- |
FWD |
DI1 |
Position 3 |
BAT |
GEN1 |
- |
AFT |
DI2 |
Position 4 |
AUX BAT |
APU GEN |
- |
FWD |
DI3 |
Position 5 |
TR1 |
GEN2 |
- |
AFT |
DI4 |
Position 6 |
TR2 |
INV |
- |
R |
DI5 |
Position 7 |
TR3 |
TEST |
- |
L |
DI6 |
Position 8 |
TEST |
- |
X |
- |
DI7 |
The Phidgets board is mounted on a
120 x 60 mm piece of aluminum with a cutout for the display. It is
painted black and mounted on the overhead using doubly sticky tape.
Note that
the AIR TEMP selector was added later and is not needed for the proper
operation of the AC/DC panel. |
 |
After installing the Phidgets driver
software, the proper operation of the switches can be easily verified. Just run
the Phidget Interface Kit 8/8/8. To activate a switch the output
must be unchecked (pulled low) and the others checked (high).
In the image on
the right the AC switch is activated. The switch is set here to position
3 =
GEN 1.
|
 |
The Software
To make it all run a dedicated piece of
software must be written. This software must sense the settings of the switches,
pass them on to pmSystems via FSUIPC, read the pmSystems variables, format them
and display them on the Phidgets board. In addition it must implement the
Maintenance switch since it is not modeled in pmSystems.
The first question was kind of software
API’s are available for both the Phidgets board and FSUIPC. Both Phidgets and
FSUIPC feature quite a number of supported languages. I chose a Microsoft Visual
Basic 2005 Express approach. Reasons being the development tool is free of
charge and I am familiar with ASP.NET.
I started to download the
FSUIPC SDK
and studied the VB.NET code. It is written for .NET 1.1 so I imported it in the
.NET 2.0 environment. In addition I made some changes to the code so it is now a
class by itself.
I looked on the various pmSystems files
what variables were available. I found that the five values on the panel
have offsets and are:
Const ACAmps As Integer = &H57A2
Const DCVolt As Integer = &H57A4
Const DCAmps As Integer = &H57A6
Const ACVolt As Integer = &H57A8
Const GenHz As Integer = &H57AA
Const BusSelect1 As Integer =
&H56ED
Const BusSelect2 As Integer = &H56EE
Const PWR As Integer = &H5616
I also use PWR so the display is
blanked when no power is available. It is mystery to me how the five
variables are filled when the BusSelect values change. I could not find it
in the pmsys737.lgc file (build 110).
Normal Mode
With the two switches - DC left and AC right - you can
view the various voltages, currents and frequencies that the various sub system
deliver. This is only partially modeled by pmSystems. For example
the TR's (Transformers Rectifiers) show always 0 V and 0 A, the battery always
has an 8 A drain and the AC current has always the same value irregardless of
current loads like galley, lights and so on.
Maintenance Mode (no
faults)
By placing both switches in the Test position,
the unit enters in maintenance mode. It initially shows all the
pixels on the LCD display. |
 |
By pressing the MAINT buttons or after 15 seconds
it shows the message on the right if no electrical faults are present |
 |
In order to create some electrical faults I had to make
some modifications to both the pmsys737.lgc and pmsys737.txt files. In the
pmsys737.txt I added the following line:
textlightbox ELEC, -93,60.0,.6,o,ElecFault,7,3
in section Battery. This add the ELEC annunciator.
Since pmSystems only supports two electrical faults I added the following line
to pmsys737.lgc:
elecfault = gen1fault or gen2fault
This will illuminate the ELEC light if a generator fails.
In our simulator we can clear faults without the need for a service technician.
Maintenance Mode (faults -
ELEC light on)
By placing both switches in the Test position,
the unit enters in maintenance mode. It initially shows all the
pixels on the LCD display. |
 |
By pressing the MAINT buttons or after 15 seconds
it shows the first fault. By pressing the MAINT button, it will go
to the next fault. |
 |
If no more faults are present the following
message will show: |
 |
Now press the MAINT button for about 6 seconds or
until the message on the right appears. The fault conditions are
removed and the ELEC light should be extinguished. |
 |
Since there is no standard way to cause
any of the faults I have provided a small program to do just that. The
program also allows you to turn on ground power and start and stop a pushback.
For more
information about the software see the panel software page.
If you have any questions or remarks please send me an e-mail at:
pvrijald@planet.nl.
|