Jump to content
The simFlight Network Forums

Programmatically discovering whether the AutoThrottle is Active in the PMDG 747-400 v3

Recommended Posts

I am building a generic Boeing-style motorized throttle quadrant for use with my PMDG B744v3, B772 and B738 and maybe also the MD-11 (in FSX SP2, Win 7x64, with FSUIPC4).

The 4 throttle levers and the single speedbrake lever are each geared to a potentiometer which senses the current lever position (0 to 16384) and a NEMA 17 stepper motor which drives the lever when the autothrottle is active. Each throttle lever also supports a reverser lever, connected to a potentiometer sensing its position (0 to -4096). An AT disconnect button is mounted on lever 1, and a TOGA button on lever 2. The flaps lever will be added soon. Here's a photo of the test rig:


The hardware is controlled by a single Arduino Mega 2560 R3 in conjunction with five Big Easy Driver boards (to drive the steppers). When the autothrottle is "active", the coils of the stepper motors can be energised, and the throttle levers driven to their target positions.

Essentially the system needs to know at all times whether the autothrottle is active (or not), because that determines whether power is to be applied to the stepper motors driving the levers.

With the (PMDG) B777-200 this is easily done, because the B772 MCP has a green annunciator on the AT pushbutton switch, which lights up whenever the AT is active, with a corresponding FSUIPC offset (MCP_annunAT = 0x6572 BYTE) which one can read to determine this. So in the case of the PMDG B772 one simply applies power to the steppers whenever 0x6572 == 1, and removes it when it is zero. It seems to work reasonably well, though I am not absolutely certain about its behaviour during AT HOLD mode.

With the (PMDG) B747-400, however, there is no equivalent push-button switch or annunciator. In the real world, as I understand it, the pilot would learn about the state of the autothrottle from the AT mode displayed in the first column of the FMA. If the AT mode is one of: THR REF, SPD, THR, or IDLE, then the AT is active and power is to be applied to the stepper coils/servo motors. But if the AT mode is HOLD or blank, then power is to be removed from the coils as the thrust levers should now be able to be moved freely without any resistance.

Unfortunately, afaik, there is no way of discovering the AT mode on the FMA by programmatic means, i.e, this information appears not to be accessible by way of the PMDG SDK/FSUIPC offsets.

So my question is this: is there any other way of discovering, absolutely, whether the AT is active? I am particularly interested in the response of RW 747 pilots who have a deeper understanding of the system logic, and of cockpit-builders who might already have encountered this problem and maybe have a solution.

Here is the relevant information that is provided by the PMDG 744 SDK through readable FSUIPC offsets:

659D 1 BYTE MCP_IASBlank (=1 when IAS/M display blanked out)
65A7 1 BYTE MCP_ATArm_Sw_On
65C2 1 BYTE MCP_annunTHR
65C3 1 BYTE MCP_annunSPD
65C5 1 BYTE MCP_annunVNAV
65C6 1 BYTE MCP_annunFLCH
65C8 1 BYTE MCP_annunVS



(also posted on the PMDG 747v3 forum)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.