Constructing a duct pressure gauge

3D print a double hand gauge.

The 737 Duct pressure gauge has 2 hands. Obvious we will need 2 servo’s to drive the hands.

Servo’s only turn 180 degrees but the indicator scale is about 270 degrees. So we will need some gears with a 180/270 ratio. (18 on 12 gear teeth)

I made the entire mechanics of the gauge with my 3d printer.

I used these cheap small SG90 servo’s.

There are several parts to print

I designed all this using SketchUp. You will find all the files including the STL’s in the download.

Pictures say more than words. The picture below shows most of the elements.

Pessure Gauge 2.skp - SketchUp Make 2017

The brown coloured is what I call the base. The servo’s (light blue) are mounted on this base plate.

On the servo’s shaft I mount a gears with 18 teeth. There are 2 different gears.
The red gear on the picture has a short shaft and the yellow gear a long shaft.

In the centre there are 2 gears with 12 teeth each.

The green gear, with a long hollow axel, will drive one of the hands.

For the pink gear I used a metal nail to go through the green stem and drive the other hand.

In the centre of the base plate there is a hole. In that hole a tapped m3 thread and mounted a screw to support the inner axel (the nail)

The top plate is not shown in this picture above but you can see it on the photo.

In the the top plate there is a hole for the green axel. The actual scale will be glued to the top plate.

The top plate is mounted on the base. I tapped m3 thread in the 4 outer stems to mount all together

The 2 hands will fit one on the green other on the nail that is glued to the pink gear, going through centre of the green axel.

Below is the fully mounted gauge. Front with the 2 hands, the gears on the servo, the 2 gears driving the hands and the support M3 for the needle axels.

You can find the files here:

PMDG – SIOC script for Duct Pressure gauge.

Var 0200, name Needle0, Link IOCARD_SERVO, Device 1, Output 0, PosL 0, PosC 512, PosR 1023, Type 1 // SERVO ZERO
Var 0201, name Needle1, Link IOCARD_SERVO, Device 1, Output 1, PosL 0, PosC 512, PosR 1023, Type 1 // SERVO One

Var 0202, name D_Pressure0 // AIR_DuctPressNeedle_0
L1 = &D_Pressure0 * 810   // 810 will set servo at 180 degrees
&Needle0 = L1 / 80        // Max value from PMDG = 80 PSI

Var 0203, name D_Pressure1 // AIR_DuctPressNeedle_1
L1 = &D_Pressure1 * 820    // 820 will set servo at 180 degrees
L1 = L1 / 80               // Max value from PMDG = 80 PSI
&Needle1 = 820 - L1        // Subtract from 180 degrees

Var 0200 and 0201 configure the hardware servo’s. For FSIO the PosX entries do nothing but SIOC compiler expects them.

Var 0202 will recieve the integer value for DuctPressure_0 Needle ( left bleed )  The value will be between 0 and 80 (0 to 80 psi).
Var 0203 the same for DuctPressure_1 Needle ( right bleed )

Depending on the direction of turn you need either exampel var 202 of 203,

Var: 202
Servo turns counter clockwise. As we use one gear the needle will turn clockwise.
Servo’s have hight tolerances. My servo’s were on 180 degrees when I send the value 810 and 820 for the other one. So you need to calibrate.
Use IOCPConsole:

  • Send a value of 0 to the servo. Set your needle at 0.
  • Now send something like 800 and finetune that number. Now set that number in the script,

The script will recalculate the value to be between 0 and <your value> for a 180 degrees turn of the servo.

Servo turns clockwise, with one gear the needle will be at 0 when at 180 degrees turn.
Use IOCPConsole:

  • Send 00 and set your needle at 80 PSI.
  • Now send something like 800 and finetune that value to indication 0. Now set that number in the script.