Home » Arduino flight sim connector + library documentation

Arduino flight sim connector + library documentation

by Bits and Droids

The Bits and Droids flight connector is a simple piece of software that lets you send and receive data from Microsoft Flight Simulator 2020 (or mfs2020 from now on). You can use any microcontroller that is capable of receiving Serial data over USB. To make your life easier you can pair it with my Arduino Library and create amazing DIY hardware with a minimal amount of coding.

You can use any microcontroller with the connector. To use the library you’d need a board that is capable of running Arduino code. The library has been tested (with success) on the following boards:

  • Uno
  • Nano
  • Pro-micro
  • Leonardo
  • Mega
  • Due
  • Teensy 4.1
  • Esp32
  • Esp8266
  • STM32

How does it work?

The Bits and Droids mfs2020 connector acts as a portal between your Arduino (or microcontrollers from other brands) and mfs2020. There are hundredths of different values that we can either send or receive from the game. From airspeed to speed brakes, from navigation lights to flaps, and many more. To understand what data it handles the connector packages the data with a prefix.

Mfs2020 connector data overview
Data flow overview

The connector exe

Once you’ve downloaded the .zip file it’s important to unpack the complete folder. From here on out you’re able to launch the application by running the Bitsanddroidsgui.exe. In the upper left corner, you are able to see if you have the latest version available. If a newer version is available a prompt is displayed with a link to https://www.bitsanddroids.com/downloads.

How to install the module?

If you want to access variables like the G1000/G3000 or other extra variables you need to install a WASM module. A WASM module can be installed like any other add-on for MFS2020 by putting the folder in the community folder.

An installer will be included with the connector down the road. For now, you need to:

  • Download the BitsAndDroidsModule from https://www.bitsanddroids.com/downloads.
  • Locate the community folder of Microsoft Flight Simulator 2020.
    For Windows store users:
    C:\Users\[Your User Name]\AppData\Local\Packages\Microsoft.FlightSimulator_8wekyb3d8bbwe\LocalCache\Packages\
    For Steam users:
    C:\Users\[Your User Name]\AppData\Local\Packages\Microsoft.FlightDashboard_8wekyb3d8bbwe\LocalCache\Packages\
  • Extract the contents of the zip file in the community folder
  • Make sure that the folder looks like this:

Settings

In the upper left corner, you’ll find a settings menu.

settings menu
settings menu

From this menu, you can fine-tune the connector to fit your needs.

Data rate

data rate settings
Data rate settings

The data rate settings affect the interval and speed at which data leaves or enters the connector.

The wait x ms before sending setting affects the interval between each message coming from the connector towards your microcontroller. A microcontroller can be fast but they are no gaming computers. Adding a slight delay can give our board a chance to breathe when the load increases.

Update every X frames has a similar goal but a different target. It determines per how many frames in mfs2020 it handles the data. If you set this to 1 you will receive an update every frame. lets say 10,1112,13,14,15,16 feet . If something changes rapidly like the altitude increasing the frame frequency might result in skipped variables i.e. 10,12,14,15,17 feet. In most cases, these skipped variables aren’t noticeable but can reduce the overhead by a lot. Depending on your FPS updated every 3 frames might still be 20 updates per second.

Baud rate alters the data transfer frequency. Make sure that this value matches the baud rate of your Ardunio/microcontroller. The higher this value the faster the transfer rate. If you go too high there is a chance there will be data corruption if your board can’t handle it. 115200 is the sweet spot for most boards.

Ranges

There are values that can be plotted on a scale. The ingame throttle moves on a scale from -16383 till 16383. By using a potentiometer (or any other analog component) we’re able to map the analog output to this value. So if we open the potentiometer to the fullest we want to go full speed. And when we close it we want it to be idle. There are many factors in play. Can your potentiometer move freely across his range? Where do you want the throttle to be idle. Or perhaps you’ve mounted the component backward. For all these cases you can alter the range settings. Some ranges have 2 variables (min, max). Most Arduino boards will read an analog component on a scale of 0 – 1023 (that’s why these are the default values). If you flip the component around your min value has to become 1023 and your max value 0. Did you block off a part of the potentiometer? Don’t worry just lower 1023 (or raise 0) to fit your new range.

Range settings
Range settings

For the engines, there are 3 metrics. Reverse, Idle cutoff, and max. Depending on the aircraft your might have a reverse thrust available. It’s important to note that not all third-party released DLC planes use the same systems. There is a chance this might not work for those. The Idle cutoff will be the point where your ingame throttle will be in the idle position. Match this with the idle position on your throttle or set it to your min value. The reverse value will determine the point where it’s fully reversed.

ReverseIdle cutoffMax
10238000
001023

In the table above( the first row) we can see that the range from 1023 – 800 will be mapped to the reverse range. Once we reach 800 till 0 is where we’ll find that the ingame throttle will be moving towards max thrust. Don’t want to use reverse thrusters? Don’t worry just match the idle cutoff and reverse value and you’re good to go.

Reverse range quantity
Reverse axis quantity

Not all planes have the same reverse range. Match yours by changing the radio buttons accordingly. In a future update, this will be automated.

Important note about 10uf capacitor (mega, uno, nano)

If you use a different Arduino than a Leonardo or Pro-micro (Atmega 32u4 chip-based Arduinos) this section may apply to you (i.e. the Uno, mega, or nano). it’s necessary to place a 10uf capacitor between the ground and reset button if you use these boards to retrieve data from the game. This ensures that the Arduino doesn’t reset every time it receives data. When uploading a new sketch it’s important to remove the capacitor from the board.

This doesn’t apply to boards from other brands like the STM32 or Teensy.

Create a connector object

In order to use the library, we first have to include the header file. In the Arduino IDE you’re able to navigate to sketch → manage libraries → include .Zip library to add the downloaded zip file. After this step, we’re able to include the library by adding the following line

#include<BitsAndDroidsFlightConnector.h>

After this we need to create a new connector

//For pro-micro / Leonardo
BitsAndDroidsFlightConnector connector(true);
//For all the other Arduinos
BitsAndDroidsFlightConnector connector(false);

Serial

Depending on the Arduino we’re using we need to set the Baudrate at 115200 and the timeout at a low value. This can be done by including the following lines in the setup block:

void setup(){
    //If you're using a Leonardo / Pro-micro this line can be left out.
    Serial.begin(115200);
    //If you notice some instability gradually increase this value with increments of 5.
    Serial.setTimeout(15);
}

The last step to get started is to start the datahandling. This can be done by calling the .dataHandling() function.

void loop(){
    connector.dataHandling();
}

Available functions

Depending on the data you’ve selected in the Connector.exe your able to receive the following data:

FunctionReturnsType
 getParkingBrakeIndicator()  Parking Brake Indicator  bool
 getFuelTankCenterLevel()  Fuel Tank Center Level  byte
 getFuelTankCenter2Level()  Fuel Tank Center2 Level  byte
 getFuelTankCenter3Level()  Fuel Tank Center3 Level  byte
 getFuelTankLeftMainLevel()  Fuel Tank Left Main Level  byte
 getFuelTankLeftAuxLevel()  Fuel Tank Left Aux Level  byte
 getFuelTankLeftTipLevel()  Fuel Tank Left Tip Level  byte
 getFuelTankRightMainLevel()  Fuel Tank Right Main Level  byte
 getFuelTankRightAuxLevel()  Fuel Tank Right Aux Level  byte
 getFuelTankRightTipLevel()  Fuel Tank Right Tip Level  byte
 getFuelTankExternal1Level()  Fuel Tank External1 Level  byte
 getFuelTankExternal2Level()  Fuel Tank External2 Level  byte
 getFuelTankCenter()  Fuel Tank Center  int
 getFuelTankCenter2()   Fuel Tank Center2 int
 getFuelTankCenter3()  Fuel Tank Center3int
 getFuelTankLeftMainCapacity()   Fuel Tank Left Main Capacity int
 getFuelTankLeftAuxCapacity()    Fuel Tank Left Aux Capacity  int
 getFuelTankLeftTipCapacity()    Fuel Tank Left Tip Capacity  int
 getFuelTankRightMainCapacity()    Fuel Tank Right Main Capacity  int
 getFuelTankRightAuxCapacity()    Fuel Tank Right Aux Capacity  int
 getFuelTankRightTipCapacity()    Fuel Tank Right Tip Capacity  int
 getFuelTankExternal1Capacity()    Fuel Tank External1 Capacity  int
 getFuelTankExternal2Capacity()   Fuel Tank External2 Capacity int
 getFuelTankLeftCapacity()    Fuel Tank Left Capacity  float
 getFuelTankRightCapacity()    Fuel Tank Right Capacity  float
 getFuelTankCenterQuantity()   Fuel Tank Center Quantity int
 getFuelTankCenter2Quantity()    Fuel Tank Center2 Quantity  int
 getFuelTankCenter3Quantity()   Fuel Tank Center3 Quantity int
 getFuelTankLeftMainQuantity()  Fuel Tank Left Main Quantityint
 getFuelTankLeftAuxQuantity()  Fuel Tank Left Aux Quantityint
 getFuelTankLeftTipQuantity()  Fuel Tank Left Tip Quantityint
 getFuelTankRightMainQuantity()  Fuel Tank Right Main Quantityint
 getFuelTankRightAuxQuantity()  Fuel Tank Right Aux Quantityint
 getFuelTankRightTipQuantity()  Fuel Tank Right Tip Quantityint
 getFuelTankExternal1Quantity()  Fuel Tank External1 Quantityint
 getFuelTankExternal2Quantity()  Fuel Tank External2 Quantityint
 getFuelTankLeftQuantity()  Fuel Tank Left Quantityfloat
 getFuelTankRightQuantity()  Fuel Tank Right Quantityfloat
 getFuelTankTotalQuantity()  Fuel Tank Total Quantityint
 getOnGround()  On Ground  bool
 getApVerticalSpeed()  Ap Vertical Speed  int
 getApAltLock()  Ap Alt Lock  int
 getGpsCourseToSteer()  Gps Course To Steer  int
 getApHeadingLock()  Ap Heading Lock  int
 getKohlmanAltimeter()  Kohlman Altimeter  int
 getBarPressure()  Bar Pressure  int
 getFuelTotalPercentage()  Fuel Total Percentage  byte
 getIndicatedAirspeed()  Indicated Airspeed  int
 getIndicatedAltitude()  Indicated Altitude  int
 getIndicatedHeading()  Indicated Heading  int
 getIndicatedGPSGroundspeed()  Indicated G P S Groundspeed  int
 getTrueVerticalSpeed()  True Vertical Speed  int
 getLightTaxiOn()  Light Taxi On  bool
 getLightStrobeOn()  Light Strobe On  bool
 getLightPanelOn()  Light Panel On  bool
 getLightRecognitionOn()  Light Recognition On  bool
 getLightWingOn()  Light Wing On  bool
 getLightLogoOn()  Light Logo On  bool
 getLightCabinOn()  Light Cabin On  bool
 getLightHeadOn()  Light Head On  bool
 getLightBrakeOn()  Light Brake On  bool
 getLightNavOn()  Light Nav On  bool
 getLightBeaconOn()  Light Beacon On  bool
 getLightLandingOn()  Light Landing On  bool
 getActiveCom1()  Active Com1  String
 getActiveCom2()  Active Com2  String
 getStandbyCom1()  Standby Com1  String
 getStandbyCom2()  Standby Com2  String
 getActiveNav1()  Active Nav1  String
 getActiveNav2()  Active Nav2  String
 getStandbyNav1()  Standby Nav1  String
 getStandbyNav2()  Standby Nav2  String
 getNavRadialError1()  Nav Radial Error1  String
 getNavVorLationalt1()  Nav Vor Lationalt1  String
 getNavObs1()  Nav Obs1  int
 getNavObs2()  Nav Obs2  int
 getStallWarningOn()  Stall Warning On  bool
 getOverspeedWarningOn()  Overspeed Warning On  bool
 getFlapsHandlePct()  Flaps Handle Pct  byte
 getFlapsHandleIndex()  Flaps Handle Index  byte
 getFlapsNumHandlePos()  Flaps Num Handle Pos  byte
 getTrailingEdgeFlapsLeftPercent()  Trailing Edge Flaps Left Percent  byte
 getTrailingEdgeFlapsRightPercent()  Trailing Edge Flaps Right Percent  byte
 getTrailingEdgeFlapsLeftAngle()  Trailing Edge Flaps Left Angle  int
 getTrailingEdgeFlapsRightAngle()  Trailing Edge Flaps Right Angle  int
 getLeadingEdgeFlapsLeftPct()  Leading Edge Flaps Left Pct  byte
 getLeadingEdgeFlapsRightPct()  Leading Edge Flaps Right Pct  byte
 getLeadingEdgeFlapsLeftAngle()  Leading Edge Flaps Left Angle  int
 getLeadingEdgeFlapsRightAngle()  Leading Edge Flaps Right Angle  int
 getGearHandlePos()  Gear Handle Pos  bool
 getGearHydraulicPressure()  Gear Hydraulic Pressure  int
 getTailWheelLock()  Tail Wheel Lock  bool
 getGearCenterPositionPct()  Gear Center Position Pct  byte
 getGearLeftPositionPct()  Gear Left Position Pct  byte
 getGearRightPositionPct()  Gear Right Position Pct  byte
 getGearTailPositionPct()  Gear Tail Position Pct  byte
 getGearAuxPosition()  Gear Aux Position  byte
 getGearTotalPct()  Gear Total Pct  byte
 getAileronTrimPct()  Aileron Trim Pct  byte
 getAileronTrimDegr()  Aileron Trim Degr  int
 getRudderTrimDegr()  Rudder Trim Degr  int
 getRudderTrimPct()  Rudder Trim Pct  byte
 getElevatorTrimPos()  Elevator Trim Pos  int
 getElevatorTrimPct()  Elevator Trim Pct  byte
 getNavDme1()  Nav Dme1  String
 getNavDme2()  Nav Dme2  String
 getNavDmeSpeed1()  Nav Dme Speed1  String
 getNavDmeSpeed2()  Nav Dme Speed2  String
 getAdfActiveFreq1()  Adf Active Freq1  String
 getAdfStandbyFreq1()  Adf Standby Freq1  String
 getAdfRadial1()  Adf Radial1  String
 getAdfSignal1()  Adf Signal1  String
 getAdfActiveFreq2()  Adf Active Freq2  String
 getAdfStandbyFreq2()  Adf Standby Freq2  String
 getAdfRadial2()  Adf Radial2  String
 getAdfSignal2()  Adf Signal2  String
 getTransponderCode1()  Transponder Code1  String
 getTransponderCode2()  Transponder Code2  String
 getAPAvailable()  A P Available  bool
 getAPMasterOn()  A P Master On  bool
 getAPWingLevelerOn()  A P Wing Leveler On  bool
 getAPNav1LockOn()  A P Nav1 Lock On  bool
 getAPHeadingLockOn()  A P Heading Lock On  bool
 getAPAltitudeLockOn()  A P Altitude Lock On  bool
 getAPAttitudeLockOn()  A P Attitude Lock On  bool
 getAPGlideslopeHoldOn()  A P Glideslope Hold On  bool
 getAPApproachHoldOn()  A P Approach Hold On  bool
 getAPBackcourseHoldOn()  A P Backcourse Hold On  bool
 getAPFlightDirectorOn()  A P Flight Director On  bool
 getAPAirspeedHoldOn()  A P Airspeed Hold On  bool
 getAPMachHoldOn()  A P Mach Hold On  bool
 getAPYawDampenerOn()  A P Yaw Dampener On  bool
 getAPAutothrottleArm()  A P Autothrottle Arm  bool
 getAPTakeoffPowerOn()  A P Takeoff Power On  bool
 getAPAutothrottleOn()  A P Autothrottle On  bool
 getAPVerticalHoldOn()  A P Vertical Hold On  bool
 getAPRPMHoldOn()  A P R P M Hold On  bool
 getFeetAboveGround()  Feet Above Groundint

These functions can be called to display or handle the return values in any way you’d like. This is a string example:

//prints current active com on LCD first row first 7 chars
lcd.setCursor(0,0);
lcd.print(connector.getActiveCom1());

This is a bool example:

//if true (so lights are on)
if(connector.getLightTaxiOn()){
    //do something like turn LED on
}
//if variable is false (lights are off)
if(!connector.getLightTaxiOn()){
    //do something like turn LED off
}

Handling inputs

It’s also possible to send data to the game (this is still very basic). It’s important to remember that it’s best practice to keep inputs and outputs separated. This is due to the way serial communication works. Because a serial line is only able to be occupied like a one-way street combining inputs and outputs could result in data loss when sending data simultaneously.

Unfortunately, we need a separate .exe for input handling(this will be merged into the main .exe in a future build).

3 main input modes

Simple:

.simpleInputHandling(int throttlepin);

The paramaters required are:

  • Pin where potentiometer 1 is connected
  • Min value (int) of the potentiometer
  • Max value (float) of the potentiometer value (which in the case of an Arduino will be 1023.0 most of the time)
  • Boolean reverse the open / close state (true = reversed where open = closed, false != reversed where closed = closed)

This function takes the analog pin of a potentiometer and its max value* as a parameter. The simple input mode will control all engines via a single potentiometer. You don’t have to worry about the number of engines or mixture in this mode.

*The max value can be found by wiring up the potentiometer to an analog port on your Arduino and write the following code:

int potentiometerPin = A0;
void setup(){
    pinMode(potentiometerPin, INPUT);
    Serial.begin(115200);
}
void loop(){
    int val = analogRead(potentiometerPin);
    Serial.printl(val);
}

If you open your potentiometer fully you’re able to retrieve the max value from the serial monitor. With a 10k potentiometer, the max value should be 1023 (due to the max value an Arduino is able to read from analog pins).

Advanced:

.advancedInputHandling(int eng1Pin, int eng2Pin, int eng3Pin, int eng4Pin, int minValue, float maxValue, bool reversed);

This mode gives you the freedom to handle each engine plus the mixture with a separate potentiometer. It’s also possible to use the same potentiometer for multiple outputs. i.e. use potentiometer 1 for engine 1 + 2 and use potentiometer 2 for engine 3 + 4. It’s important to note that you do need to assign a pin for each value to ensure the best results (this will be worked on in the future).

Super advanced:

.superAdvancedMode(int eng1%, int eng2%, int eng3%, int eng4%, int mixture%);

This mode gives you all the freedom to calculate your own percentages. By passing on the percentages via this function they will only get parsed in a readable way for our .exe. You have all the freedom to create your own functions around this. Keep in mind that this function has no build-in debouncing or delays like the previous modes.

Propeller inputs

The propellers can be controlled by the same technique as the throttles.

  connector.propsInputHandling(A0, A0);

The parameters required are:

  • Pin where potentiometer 1 is connected
  • Pin where potentiometer 2 is connected

Even though a plane might use only 1 propeller it’s important to pass 2 pins. These could also be the same pins as seen in the example above.

Mixture inputs

The mixture can be controlled by the same technique as the throttles.

  connector.mixtureInputHandling(A0, A0);

The parameters required are:

  • Pin where potentiometer 1 is connected
  • Pin where potentiometer 2 is connected

Even though a plane might use only 1 propeller it’s important to pass 2 pins. These could also be the same pins as seen in the example above.

Altering the input smoothnes

To minimize the amount of input jitter the library uses an algorithm to filter out noise. The intensity of the filter can be altered by setting the EMA_a value with the following code:

 connector.setEMA_a(0.1);

The parameter has to be a float between 0.0 and 1.0. Where 1 is no filtering and 0.01 would be an enormous filter.

Button commands

In this section you’re able to find the available input functions. These functions can be called like this.

#include <BitsAndDroidsFlightConnector.h>
BitsAndDroidsFlightConnector connector(false);
void setup(){
    Serial.begin(115200);
    Serial.setTimeout(15);
}
void loop(){
if(//Button X is pressed){
    connector.send(sendApMasterOn);
}

Available button commands

Coms

ActionLibrary function
Com 1 Mhz +sendCom1WholeInc()
Com 1 Mhz –sendCom1WholeDec()
Com 1 Khz +sendKhzComStandby1Plus()
Com 1 Khz –sendKhzComStandby1Min()
Com 1 SwapsendSwapCom1 ()
Com 1 Fract increasesendCom1FractInc()
Com 1 Fract increase carrysendCom1FractIncCarry()
Com 1 Fract decreasesendCom1FractDecr()
Com 1 Fract decrease carrysendCom1FractDecrCarry()
Com 2 Mhz +sendCom2WholeInc()
Com 2 Mhz –sendCom2WholeDec()
Com 2 Khz +sendKhzComStandby2Plus()
Com 2 Khz –sendKhzComStandby2Min()
Com 2 SwapsendSwapCom2 ()
Com 2 Fract increasesendCom2FractInc()
Com 2 Fract increase carrysendCom2FractIncCarry()
Com 2 Fract decreasesendCom2FractDecr()
Com 2 Fract decrease carrysendCom2FractDecrCarry()
Nav 1 Mhz +sendMhzNavStandby1Plus()
Nav 1 Mhz –sendMhzNavStandby1Min()
Nav 1 Khz +sendKhzNavStandby1Plus()
Nav 1 Khz –sendKhzNavStandby1Min()
Nav 1 SwapsendSwapNav1()
Nav 2 Mhz +sendMhzNavStandby2Plus()
Nav 2 Mhz –sendMhzNavStandby2Min()
Nav 2 Khz +sendKhzNavStandby2Plus()
Nav 2 Khz –sendKhzNavStandby2Min()
Nav 2 SwapsendSwapNav2()

AP

ActionLibrary function
Toggle AP Master onsendApMasterOn();
Toggle AP panel Heading locsendApPanelHeadingLock();
Toggle AP panel atlitude holdsendAPPanelAltitudeHold();
AP Altitude hold onsendAPAttitudeHoldOn();
AP Loc hold onsendAPLocHoldOn();
AP Apr hold onsendAPAprHoldOn();
AP Heading hold onsendAPHeadingHoldOn();
AP Altitude hold onsendAltitudeHoldOn();
AP Wing leveler onsendApWingLevelerOn();
AP BC hold onsendBCHoldOn();
AP Nav 1 hold onsendAPNav1HoldOn();
AP Attitude hold offsendAPAttitudeHoldOff();
AP Loc hold offsendAPLocHoldOff();
AP Apr hold offsendAprHoldOff();
AP heading hold offsendAPHeadingHoldOff();
AP Altitude hold offsendAPAltitudeHoldOff();
AP wing leveler offsendWingLevelerOff();
AP BC hold offsendAPBCHoldOff();
AP Nav 1 hold offsendAPNav1HoldOff();
toggle AP Airspeed holdsendAPAirspeedHold();
toggle AP panel speed holdsendAPPanelSpeedHold();
AP Altitude +sendAPAltitudeInc();
AP Altitude –sendAPAltitudeDec();
AP vs +sendAPVSInc();
AP vs –sendAPVSDec();
AP speed +sendAPSpeedInc();
AP speed –sendAPSpeedDec();
toggle AP Panel mach holdsendAPPanelMachHold();
AP Mach +sendAPMachInc();
AP Mach –sendAPMachDec();
toggle AP Mach holdsendAPMachHold();
set AP altitude metricsendAPAltitudeSetMetric();
set AP vs EnglishsendAPVSSetEnglish();
set AP speedsendAPSpeedSet();
set AP Mach varsendAPMachVarSet();
AP airspeed onsendAPAirspeedOn();
AP airspeed offsendAPAirspeedOff();
set AP airspeedsendAPAirspeedSet();
AP Mach onsendAPMachOn();
AP Mach offsendAPMachOff();
set AP MachsendAPMachSet();
AP panel Altitude onsendAPPanelAltitudeOn();
AP panel altitude offsendAPPanelAltitudeOff();
set AP Panel altitudesendAPPanelAltitudeSet();
AP panel heading onsendAPPanelHeadingOn();
AP panel heading offsendAPPanelHeadingOff();
set AP panel headingsendAPPanelHeadingSet();
AP panel Mach onsendAPPanelMachOn();
AP panel mach offsendAPPanelMachOff();
set AP panel MachsendAPPanelMachSet();
AP speed onsendAPPanelSpeedOn();
AP speed offsendAPPanelSpeedOff();
set AP speedsendAPPanelSpeedSet();
set AP alt var in EnglishsendAPPanelAltVarSetEnglish();
set AP alt var in MetricsendAPVSVarSetMetric();
toggle AP speed holdsendAPPanelSpeedHoldToggle();
toggle AP panel mach holdsendAPPanelMachHoldToggle();
set AP nav selectsendAPNavSelectSet();
AP pitch +sendAPPitchRefIncUp();
AP pitch –sendAPPitchRefIncDown();
AP pitch selectsendAPPitchRefSelect();
toggle AP attitude holdsendAPAttitudeHold();
toggle AP loc holdsendAPLocHold();
toggle AP apr holdsendAPAprHold();
toggle AP heading holdsendAPHeadingHold();
toggle AP Altitude holdsendAPAltitudeHold();
toggle AP wing levelersendAPWingLeveler();
toggle AP BC holdsendAPBCHold();
toggle AP Nav 1 holdsendAPNav1Hold();
Heading bug +sendHeadingBugInc();
Heading bug –sendHeadingBugDec();
toggle flight directorsendAPFlightDirector();
toggle AP VS holdsendAPVSHold();
Kohlsman +sendKohlsmanInc();
Kohlsman –sendKohlsmanDec();
//FlapsCodeReturn type + function
DEFINITION_FLAPS_UP501int sendFlapsUp()
DEFINITION_FLAPS_1502int sendFlaps1()
DEFINITION_FLAPS_2503int sendFlaps2()
DEFINITION_FLAPS_3504int sendFlaps3()
DEFINITION_FLAPS_DOWN505int sendFlapsDown()
DEFINITION_FLAPS_INCR506int sendFlapsInc()
DEFINITION_FLAPS_DECR507int sendFlapsDec()
//Coms
DEFINITION_COM_1_SET,100String   sendStandbyCom1Set(char*);
DEFINITION_COM_2_SET,102String   sendStandbyCom2Set(char* value);
DEFINITION_COM_STANDBY_SWAP,116byte   sendSwapCom1();
DEFINITION_COM_2_STANDBY_SWAP,117byte   sendSwapCom2();
DEFINITION_COM_RADIO_FRACT_DEC,124byte sendCom1FractDecr();
DEFINITION_COM_RADIO_FRACT_INC,125byte sendCom1FractInc();
DEFINITION_COM2_RADIO_FRACT_DEC,120byte sendCom2FractDecr();
DEFINITION_COM2_RADIO_FRACT_INC,121byte sendCom2FractInc();
DEFINITION_COM_RADIO_FRACT_DEC_CARRY,126byte sendCom1FractDecrCarry();
DEFiNITION_COM_RADIO_FRACT_INC_CARRY,127byte sendCom1FractIncCarry();
DEFINITION_COM2_RADIO_FRACT_DEC_CARRY,122byte sendCom2FractDecrCarry();
DEFINITION_COM2_RADIO_FRACT_INC_CARRY,123byte sendCom2FractIncCarry();
//Nav
DEFINITION_NAV_1_RADIO_FRACT_INC,128byte sendIncFractNav1();
DEFINITION_NAV_1_RADIO_FRACT_DEC,129byte sendDecFractNav1();
DEFINITION_NAV_1_STANDBY_SWAP,118byte sendSwapNav1();
DEFINITION_NAV_2_STANDBY_SWAP,119byte sendSwapNav2();
DEFINITION_NAV_2_RADIO_FRACT_INC,130byte sendIncFractNav2();
DEFINITION_NAV_2_RADIO_FRACT_DEC,131byte sendDecFractNav2();
DEFINITION_NAV_1_RADIO_WHOLE_INC,132byte sendIncWholeNav1();
DEFINITION_NAV_1_RADIO_WHOLE_DEC,133byte sendDecWholeNav1();
DEFINITION_NAV_2_RADIO_WHOLE_INC,134byte sendIncWholeNav2();
DEFINITION_NAV_2_RADIO_WHOLE_DEC,135byte sendDecWholeNav2();
//DME
DEFINITION_RADIO_SELECTED_DME1_IDENT_ENABLE,136byte sendSelectedDme1IdentEnable();
DEFINITION_RADIO_SELECTED_DME1_IDENT_DISABLE,137byte sendSeletedDme1IdentDisable ();
DEFINITION_RADIO_SELECTED_DME1_IDENT_SET,138byte sendSelectedDme1IdentSet ();
DEFINITION_RADIO_SELECTED_DM1E_IDENT_TOGGLE,139byte sendSelectedDme1IdentToggle ();
DEFINITION_RADIO_SELECTED_DME2_IDENT_ENABLE,140byte sendSelectedDme2IdentEnable ();
DEFINITION_RADIO_SELECTED_DME2_IDENT_DISABLE,141byte sendSelectedDme2IdentDisable();
DEFINITION_RADIO_SELECTED_DME2_IDENT_SET,142byte sendSelectedDme2IdentSet();
DEFINITION_RADIO_SELECTED_DME2_IDENT_TOGGLE,143byte sendSelectedDme2IdentToggle();
DEFINITION_TOGGLE_DME,144byte sendDmeToggle();
//VOR
DEFINITION_RADIO_SELECTED_VOR1_IDENT_ENABLE,145byte sendSelectedVor1IdentEnable();
DEFINITION_RADIO_SELECTED_VOR1_IDENT_DISABLE,146byte sendSelectedVor1IdentDisable();
DEFINITION_RADIO_SELECTED_VOR1_IDENT_SET,147byte sendSelectedVor1IdentSet();
DEFINITION_RADIO_SELECTED_VORE_IDENT_TOGGLE,148byte sendVor1IdentToggle();
DEFINITION_RADIO_SELECTED_VOR2_IDENT_ENABLE,149byte sendVor2IdentEnable();
DEFINITION_RADIO_SELECTED_VOR2_IDENT_DISABLE,150byte sendVor2IdentDisable();
DEFINITION_RADIO_SELECTED_VOR2_IDENT_SET,151byte sendVor2IdentSet();
DEFINITION_RADIO_SELECTED_VOR2_IDENT_TOGGLE,152byte sendVor2IdentToggle();
DEFINITION_TOGGLE_VOR,153byte sendVorToggle();
DEFINITION_VOR1_OBI_DEC,154byte sendVor1ObiDec();
DEFINITION_VOR1_OBI_INC,155byte sendVor1ObiInc();
DEFINITION_VOR2_OBI_DEC,156byte sendVor2ObiDec();
DEFINITION_VOR2_OBI_INC,157byte sendVor2ObiInc();
//ADF
DEFINITION_RADIO_SELECTED_ADF_IDENT_ENABLE,158byte sendSelectedAdfIdentEnable();
DEFINITION_RADIO_SELECTED_ADF_IDENT_DISABLE,159byte sendSelectedAdfIdentDisable();
DEFINITION_RADIO_SELECTED_ADF_IDENT_SET,160byte sendSelecetedAdfIdentSet();
DEFINITION_RADIO_SELECTED_ADF_IDENT_TOGGLE,161byte sendSelectedAdfIdentToggle();
DEFINITION_ADF_CARD_INC,162byte sendAdfCardIn();
DEFINITION_ADF_CARD_DEC,163byte sendAdfCardDec();
DEFINITION_ADF_CARD_SET,164byte sendAdfCardSet();
DEFINITION_ADF_100_INC,165byte sendAdf100Inc();
DEFINITION_ADF_10_INC,166byte sendAdf10Inc();
DEFINITION_ADF_1_INC,167byte sendAdf1Inc();
DEFINITION_ADF_100_DEC,168byte sendAdf100Dec();
DEFINITION_ADF_10_DEC,169byte sendAdf10Dec();
DEFINITION_ADF_1_DEC,170byte sendAdf1Dec();
DEFINITION_ADF_COMPLETE_SET,179byte sendAdfCompleteSet();
DEFINITION_ADF1_WHOLE_INC,180byte sendAdf1WholeInc();
DEFINITION_ADF1_WHOLE_DEC,181byte sendAdf1WholeDec();
DEFINITION_ADF2_100_INC,182byte sendAdf2100Inc();
DEFINITION_ADF2_10_INC,183byte sendAdf210Inc();
DEFINITION_ADF2_1_INC,184byte sendAdf21Inc();
DEFINITION_ADF2_RADIO_TENTHS_INC,185byte sendAdf2RadioThenthsInc();
DEFINITION_ADF2_100_DEC,186byte sendAdf2100Dec();
DEFINITION_ADF2_10_DEC,187byte sendAdf210Dec();
DEFINITION_ADF2_1_DEC,188byte sendAdf21Dec();
DEFINITION_ADF2_RADIO_TENTHS_DEC,189byte sendAdf2RadioThenthsDec();
DEFINITION_ADF2_WHOLE_INC,190byte sendAdf2WholeInc();
DEFINITION_ADF2_WHOLE_DEC,191byte sendAdf2WholeDec();
DEFINITION_ADF2_FRACT_DEC_CARRY,192byte sendAdf2FractDecCarry();
DEFINITION_ADF2_FRACT_INC_CARRY,193byte sendAdf2FractIncCarry();
DEFINITION_ADF2_COMPLETE_SET,194byte sendAdf2CompleteSet();
DEFINITION_RADIO_ADF2_IDENT_DISABLE,195byte sendAdf2IdentDisable();
DEFINITION_RADIO_ADF2_IDENT_ENABLE,196byte sendAdf2IdentEnable();
DEFINITION_RADIO_ADF2_IDENT_TOGGLE,197byte sendAdf2IdentToggle();
DEFINITION_RADIO_ADF2_IDENT_SET,200byte sendAdf2IdentSet();
//Xpndr
DEFINITION_XPNDR_1000_INC,171byte sendXpndr1000Inc();
DEFINITION_XPNDR_100_INC,172byte sendXpndr100Inc();
DEFINITION_XPNDR_10_INC,173byte sendXpndr10Inc();
DEFINITION_XPNDR_1_INC,174byte sendXpndr1Inc();
DEFINITION_XPNDR_1000_DEC,175byte sendXpndr1000Dec();
DEFINITION_XPNDR_100_DEC,176byte sendXpndr100Dec();
DEFINITION_XPNDR_10_DEC,177byte sendXpndr10Dec();
DEFINITION_XPNDR_1_DEC,178byte sendXpndr1Dec();
DEFINITION_XPNDR_SET,202String sendXpndrSet(char*);
//Avionics
DEFINITION_TOGGLE_AVIONICS1_MASTER_ON,401int sendAvionicsMaster1On();
DEFINITION_TOGGLE_AVIONICS1_MASTER_OFF,402int sendAvionicsMaster1Off();
DEFINITION_TOGGLE_AVIONICS2_MASTER_ON,403int sendAvionicsMaster2On();
DEFINITION_TOGGLE_AVIONICS2_MASTER_OFF,404int sendAvionicsMaster2Off();
DEFINITION_PARKING_BRAKE,420int sendParkingBrake();
//Battery
DEFINITION_TOGGLE_MASTER_1_BATTERY,405int sendToggleMasterBattery1 ();
DEFINITION_TOGGLE_MASTER_2_BATTERY,406int sendToggleMasterBattery2();
DEFINITION_TOGGLE_EXTERNAL_POWER,408int sendToggleExternalPower();
DEFINITION_TOGGLE_MASTER_ALTERNATOR,407int sendToggleMasterAlternator();
//G1000
DEFINITION_G1000_MFD_ZOOMIN_BUTTON,250byte sendG1000ZoomMapIn();
DEFINITION_G1000_MFD_ZOOMOUT_BUTTON,251byte sendG1000ZoomMapOut();

Nav

Nav 1 Mhz –int sendDecWholeNav1();
Nav 1 Mhz +int sendIncWholeNav1();
Nav 2 Mhz +int sendIncWholeNav2();
Nav 2 Mhz –int sendDecWholeNav2();
Nav 1 Khz +int sendIncFractNav1();
Nav 1 Khz –int sendDecFractNav1();
Nav 2 Khz +int sendIncFractNav2();
Nav 2 Khz –int sendDecFractNav2();

Pitot

FunctionCorresponding serial command
sendPitotHeatToggle508
sendPitotHeatOn509
sendPitotHeatOff510

Magneto

sendMagneto511
sendMagnetoDecr512
sendMagnetoIncr513
sendMagneto1Off514
sendMagneto1Right515
sendMagneto1Left516
sendMagneto1Both517
sendMagneto1Start518
sendMagneto1Left519
sendMagneto1Both520
sendMagneto1Start521
sendMagneto2Off522
sendMagneto2Right523
sendMagneto2Left524
sendMagneto2Both525
sendMagneto3Off526
sendMagneto3Right527
sendMagneto3Both528
sendMagneto3Start529
sendMagneto4Off530
sendMagneto4Right531
sendMagneto4Left532
sendMagneto4Both533
sendMagneto4Start534
sendMagnetoOff535
sendMagnetoRight536
sendMagnetoLeft537
sendMagnetoBoth538
sendMagnetoStart539
sendMagneto1Decr540
sendMagneto1Incr541
sendMagneto2Decr542
sendMagneto2Incr543
sendMagneto3Decr544
sendMagneto3Incr545
sendMagneto4Decr546
sendMagneto4Incr547
sendMagneto1Set548.inop by me
sendMagneto2Set549.inop by me
sendMagneto3Set550.inop by me
sendMagneto4Set551.inop by me

Anti ice

sendAntiIceOn552
sendAntiIceOff553
sendAntiIceSet554.inop by me
sendAntiIceToggle555
sendAntiIceToggleEng1556
sendAntiIceToggleEng2557
sendAntiIceToggleEng3558
sendAntiIceToggleEng4559
sendAntiIceSetEng1560.inop by me
sendAntiIceSetEng2561.inop by me
sendAntiIceSetEng3562.inop by me
sendAntiIceSetEng4563.inop by me
sendToggleStructuralDeice701
sendTogglePropellerDeice702

Fuel valve

sendToggleFuelValveAll564
sendToggleFuelValveEng1565
sendToggleFuelValveEng2566
sendToggleFuelValveEng3567
sendToggleFuelValveEng4568

Fuel selector

sendFuelSelectorOff569
sendFuelSelectorAll570
sendFuelSelectorLeft571
sendFuelSelectorRight572
sendFuelSelectorLeftAux573
sendFuelSelectorRightAux574
sendFuelSelectorCenter575
sendFuelSelectorSet576.inop by me
sendFuelSelector2Off577
sendFuelSelector2All578
sendFuelSelector2Left579
sendFuelSelector2Right580
sendFuelSelector2LeftAux581
sendFuelSelector2RightAux582
sendFuelSelector2Center583
sendFuelSelector2Set584.inop by me
sendFuelSelector3Off585
sendFuelSelector3All586
sendFuelSelector3Left587
sendFuelSelector3Right588
sendFuelSelector3LeftAux589
sendFuelSelector3RightAux590
sendFuelSelector3Center591
sendFuelSelector3Set592.inop by me
sendFuelSelector4Off593
sendFuelSelector4All594
sendFuelSelector4Left595
sendFuelSelector4Right596
sendFuelSelector4LeftAux597
sendFuelSelector4RightAux598
sendFuelSelector4Center599
sendFuelSelector4Set600.inop by me
sendFuelSelectorLeftMain664
sendFuelSelector2LeftMain665
sendFuelSelector3LeftMain666
sendFuelSelector4LeftMain667
sendFuelSelectorRightMain668
sendFuelSelector2RightMain669
sendFuelSelector3RightMain670
sendFuelSelector4RightMain671

Crossfeed

sendCrossFeedOpen601
sendCrossFeedToggle602
sendCrossFeedOff603

Elevator

sendElevTrimDn604
sendDown605
sendElevTrimUp606
sendElevUp607

Spoilers

sendSpoilersArmToggle608
sendSpoilersOn609
sendSpoilersOff610
sendSpoilersArmOn611
sendSpoilersArmOff612

Trim

sendAileronTrimLeft613
sendAileronTrimRight614
sendRudderTrimLeft615
sendRudderTrimRight616

Cowl flaps

sendCowFlap1Set617.inop by me
sendCowlFlap2Set618.inop by me
sendCowlFlap3Set619.inop by me
sendCowlFlap4Set620.inop by me
sendIncCowlFlaps621
sendDecCowlFlaps622
sendIncCowlFlaps1623
sendDecCowlFlaps1624
sendIncCowlFlaps2625
sendDecCowlFlaps2626
sendIncCowlFlaps3627
sendDecCowlFlaps3628
sendIncCowlFlaps4629
sendDecCowlFlaps4630

Fuel pump

sendFuelPump631
sendToggleElectFuelPump632
sendToggleElectFuelPump1633
sendToggleElectFuelPump2634
sendToggleElectFuelPump3635
sendToggleElectFuelPump4636

Primer

sendEnginePrimer637
sendToggleEnginePrimer638
sendTogglePrimer1639
sendTogglePrimer2640
sendTogglePrimer3641
sendTogglePrimer4642

Feather

sendToggleFeatherSwitches643
sendToggleFeatherSwitch1644
sendToggleFeatherSwitch2645
sendToggleFeatherSwitch3646
sendToggleFeatherSwitch4647
sendTogglePropellerSync648
sendToggleAutoFeatherArm649

Afterburner

sendToggleAfterburner650
sendToggleAfterburner1651
sendToggleAfterburner2652
sendToggleAfterburner3653
sendToggleAfterburner4654

Starter

sendToggleStarter1657
sendToggleStarter2658
sendToggleStarter3659
sendToggleStarter4660
sendToggleAllStarters661
sendEngineAutoStart662
sendEngineAutoShutdown663

APU

sendApuStarter672
sendApuOffSwitch673
sendApuGeneratorSwitchToggle674

Signs

sendCabinNoSmokingAlertSwitchToggle675.inop
sendCabinSeatbeltsAlertSwitchToggle676.inop

Lights

sendStrobesToggle677
sendAllLightsToggle678
sendPanelLightsToggle679
sendLandingLightsToggle680
sendLandingLightUp681
sendLandingLightDown682
sendLandingLightLeft683
sendLandingLightRight684
sendLandingLightHome685
sendStrobesOn686
sendStrobesOff687
sendPanelLightsOn688
sendPanelLightsOff689
sendLandingLightsOn690
sendLandingLightsOff691
sendToggleBeaconLights692
sendToggleTaxiLights693
sendToggleLogoLights694
sendToggleRecognitionLights695
sendToggleWingLights696
sendToggleNavLights697
sendToggleCabinLights698

Gear

sendGearUp699
sendGearDown700

Alternator

sendToggleAlternator1703
sendToggleAlternator2704
sendToggleAlternator3705
sendToggleAlternator4706

ATC

sendAtc707.inop (not sure)
sendATCMenu1708
sendATCMenu2709
sendATCMenu3710
sendATCMenu4711
sendATCMenu5712
sendATCMenu6713
sendATCMenu7714
sendATCMenu8715
sendATCMenu9716
sendATCMenu0717

Egt

sendEGT1Inc718
sendEGT1Dec719
sendEGT2Inc720
sendEGT2Dec721
sendEGT3Inc722
sendEGT3Dec723
sendEGT4Inc724
sendEGT4Dec725
sendEGTInc726
sendEGTDec727

GPS

sendToggleGPSDrivesNav1728.inop
sendGPSPowerButton729.inop
sendGPSNearestButton730.inop
sendGPSObsButton731.inop
sendGPSMsgButton732.inop
sendGPSMsgButtonDown733.inop
sendGPSMsgButtonUp734.inop
sendGPSFlightplanButton735.inop
sendGPSTerrainButton736.inop
sendGPSProcedureButton737.inop
sendGPSZoominButton738.inop
sendGPSZoomoutButton739.inop
sendGPSDirectToButton740.inop
sendGPSMenuButton741.inop
sendGPSClearButton742.inop
sendGPSClearAllButton743.inop
sendGPSClearButtonDown744.inop
sendGPSClearButtonUp745.inop
sendGPSEnterButton746.inop
sendGPSCursorButton747.inop
sendGPSGroupKnobInc748.inop
sendGPSGroupKnobDec749.inop
sendGPSPageKnobInc750.inop
sendGPSPageKnobDec751.inop

G1000 Pfd

sendG1000PfdFlightplanButton =  753,
sendG1000PfdProcedureButton =  754,
sendG1000PfdZoominButton =  755,
sendG1000PfdZoomoutButton =  756,
sendG1000PfdDirectToButton =  757,
sendG1000PfdMenuButton =  758,
sendG1000PfdClearButton =  759,
sendG1000PfdEnterButton =  760,
sendG1000PfdCursorButton =  761,
sendG1000PfdGroupKnobInc =  762,
sendG1000PfdGroupKnobDec =  763,
sendG1000PfdPageKnobInc =  764,
sendG1000PfdPageKnobDec =  765,
sendG1000PfdSoftkey1 =  766,
sendG1000PfdSoftkey2 =  767,
sendG1000PfdSoftkey3 =  768,
sendG1000PfdSoftkey4 =  769,
sendG1000PfdSoftkey5 =  770,
sendG1000PfdSoftkey6 =  771,
sendG1000PfdSoftkey7 =  772,
sendG1000PfdSoftkey8 =  773,
sendG1000PfdSoftkey9 =  774,
sendG1000PfdSoftkey10 =  775,
sendG1000PfdSoftkey11 =  776,
sendG1000PfdSoftkey12 =  777,
sendG1000MfdFlightPlanButton =  778,
sendG1000MfdProcedureButton =  779,
sendG1000MfdZoominButton =  780,
sendG1000MfdZoomoutButton =  781,
sendG1000MfdDirectToButton =  782,
sendG1000MfdMenuButton =  783,
sendG1000MfdClearButton =  784,
sendG1000MfdEnterButton =  785,
sendG1000MfdCursorButton =  786,
sendG1000MfdGroupKnobInc =  787,
sendG1000MfdGroupKnobDec =  788,
sendG1000MfdPageKnobInc =  789,
sendG1000MfdPageKnobDec =  790,
sendG1000MfdSoftkey1 =  791,
sendG1000MfdSoftkey2 =  792,
sendG1000MfdSoftkey3 =  793,
sendG1000MfdSoftkey4 =  794,
sendG1000MfdSoftkey5 =  795,
sendG1000MfdSoftkey6 =  796,
sendG1000MfdSoftkey7 =  797,
sendG1000MfdSoftkey8 =  798,
sendG1000MfdSoftkey9 =  799,
sendG1000MfdSoftkey10 =  800,
sendG1000MfdSoftkey11 =  801,
sendG1000MfdSoftkey12 =  802,

sendG3000HorizontalBottomKnobPush = 811,
sendG3000HorizontalBottomKnobSmallDec = 812,
sendG3000HorizontalBottomKnowSmallInc = 813,
sendG3000HorizontalSoftkey1 = 814,
sendG3000HorizontalSoftkey2 = 815,
sendG3000HorizontalSoftkey3 = 816,
sendG3000HorizontalTopKnobLargeDec = 817,
sendG3000HorizontalTopKnobLargeInc = 818,
sendG3000HorizontalTopKnobPush = 819,
sendG3000HorizontalTopKnobPushLong = 820,
sendG3000HorizontalTopKnobSmallDec = 821,
sendG3000HorizontalTopKnobSmallInc = 822,
sendG3000PFD1Softkey1 = 823,
sendG3000PFD1Softkey2 = 824,
sendG3000PFD1Softkey3 = 825,
sendG3000PFD1Softkey4 = 826,
sendG3000PFD1Softkey5 = 827,
sendG3000PFD1Softkey6 = 828,
sendG3000PFD1Softkey7 = 829,
sendG3000PFD1Softkey8 = 830,
sendG3000PFD1Softkey9 = 831,
sendG3000PFD1Softkey10 = 832,
sendG3000PFD1Softkey11 = 833,
sendG3000PFD1Softkey12 = 834,

sendG3000PFD2Softkey1 = 835,
sendG3000PFD2Softkey2 = 836,
sendG3000PFD2Softkey3 = 837,
sendG3000PFD2Softkey4 = 838,
sendG3000PFD2Softkey5 = 839,
sendG3000PFD2Softkey6 = 840,
sendG3000PFD2Softkey7 = 841,
sendG3000PFD2Softkey8 = 842,
sendG3000PFD2Softkey9 = 843,
sendG3000PFD2Softkey10 = 844,
sendG3000PFD2Softkey11 = 845,
sendG3000PFD2Softkey12 = 846,

sendG3000PFD3Softkey1 = 847,
sendG3000PFD3Softkey2 = 848,
sendG3000PFD3Softkey3 = 849,
sendG3000PFD3Softkey4 = 850,
sendG3000PFD3Softkey5 = 851,
sendG3000PFD3Softkey6 = 852,
sendG3000PFD3Softkey7 = 853,
sendG3000PFD3Softkey8 = 854,
sendG3000PFD3Softkey9 = 855,
sendG3000PFD3Softkey10 = 856,
sendG3000PFD3Softkey11 = 857,
sendG3000PFD3Softkey12 = 858,

sendG3000MFDSoftkey1 = 859,
sendG3000MFDSoftkey2 = 860,
sendG3000MFDSoftkey3 = 861,
sendG3000MFDSoftkey4 = 862,
sendG3000MFDSoftkey5 = 863,
sendG3000MFDSoftkey6 = 864,
sendG3000MFDSoftkey7 = 865,
sendG3000MFDSoftkey8 = 866,
sendG3000MFDSoftkey9 = 867,
sendG3000MFDSoftkey10 = 868,
sendG3000MFDSoftkey11 = 869,
sendG3000MFDSoftkey12 = 870,

sendG3000PFDSoftkey1 = 871,
sendG3000PFDSoftkey2 = 872,
sendG3000PFDSoftkey3 = 873,
sendG3000PFDSoftkey4 = 874,
sendG3000PFDSoftkey5 = 875,
sendG3000PFDSoftkey6 = 876,
sendG3000PFDSoftkey7 = 877,
sendG3000PFDSoftkey8 = 878,
sendG3000PFDSoftkey9 = 879,
sendG3000PFDSoftkey10 = 880,
sendG3000PFDSoftkey11 = 881,
sendG3000PFDSoftkey12 = 882,

sendG3000PFDBottomKnobLargeDec = 883,
sendG3000PFDBottomKnobLargeInc = 884,
sendG3000PFDBottomKnobPush = 885,
sendG3000PFDBottomKnobPushLong = 886,
sendG3000PFDBottomKnobSmallDec = 887,
sendG3000PFDBottomKnobSmallInc = 888,

sendG3000PFDTopKnobLargeDec = 889,
sendG3000PFDTopKnobLargeInc = 890,
sendG3000PFDTopKnobSmallDec = 891,
sendG3000PFDTopKnobSmallInc = 892,

sendG3000VerticalBottomKnobLargeDec = 893,
sendG3000VerticalBottomKnobLargeInc = 894,
sendG3000VerticalBottomKnobPush = 895,
sendG3000VerticalBottomKnobPushLong = 896,
sendG3000VerticalBottomKnobSmallDec = 897,
sendG3000VerticalBottomKnobSmallInc = 898,
sendG3000VerticalTopKnobLargeDec = 899,
sendG3000VerticalTopKnobLargeInc = 903,
sendG3000VerticalTopKnobSmallDec = 904,
sendG3000VerticalTopKnobSmallInc = 905,

sendMasterWarning = 906,
sendMasterCaution = 907,
sendSimPause = 908

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept