Working Co-Pilot (A21N)

I made a functional A21N copilot. I’m not here to advertise it or anything, as I initially made it for myself. I’m interested in what others might think.

Currently, it uses IF Connect to emulate realistic actions that a co-pilot would make, such as:

  • Starting the aircraft from cold & dark
  • Setting the flaps, arming the spoilers, setting the auto brakes, and so on
  • Performing flight control checks
  • Emulated brake pressure checking
  • Emulated 10,000 feet pass-through ops (as the call buttons don’t work, it pulses the no smoking sign then turns on/off the landing lights)
  • After-landing cleanup, including turning on the APU
  • Single-engine taxi procedures

Those are just a few of its capabilities. Right now, I use it on my pc and fly on my phone. Would anyone actually use this sort of thing? I personally find it better than using “check all” on the checklists, and I realized nobody else had made it, so I took the time to.

To clarify, I’m not advertising a third-party app.

3 Likes

Hey! Whether you are advertising or not, this should go in the ThirdParty category. Thanks! Sounds cool.

1 Like

1. PARKED / COLD & DARK

Started manually with the Cold & Dark flow.

Sequence:

  1. “Cold and dark flow.”
  2. Verify GPU/ground power.
  3. If GPU isn’t connected, command the GPU and verify it.
  4. External power ON → verify.
  5. Battery 1 ON → verify.
  6. Battery 2 ON → verify.
  7. Fuel pump left 1 ON → verify.
  8. Fuel pump left 2 ON → verify.
  9. Fuel pump right 1 ON → verify.
  10. Fuel pump right 2 ON → verify.
  11. ADIRS 1 → NAV → verify.
  12. ADIRS 2 → NAV → verify.
  13. ADIRS 3 → NAV → verify.
  14. NAV lights ON.
  15. Logo lights ON.
  16. No-smoking sign ON.
  17. “Cold and dark flow complete.”
  18. Wait for manual Start / before-pushback trigger.

There is about 0.75–1.0 s between individual ground actions.


2. BEFORE PUSHBACK

Started manually.

Sequence:

  1. “Before pushback flow.”
  2. APU MASTER ON → verify.
  3. Pause.
  4. Additional 2-second wait.
  5. “APU start.”
  6. APU START command.
  7. 65-second wait.
  8. APU BLEED ON → verify.
  9. “Before pushback flow complete.”
  10. Wait for parking-brake release.

3. PUSHBACK / START OF TAXI

Triggered by parking-brake release after the before-pushback flow.

Sequence:

  1. Beacon ON.
  2. Pause.
  3. “Pushback trigger complete. Next trigger: both engines running.”

Then, when both engines are running, the after-pushback flow begins.


4. TAXI OUT / AFTER PUSHBACK

Sequence:

  1. “Takeoff configuration X.”
  2. Pause.
  3. Set the selected takeoff flap configuration.
  4. Flap callout corresponding to that configuration.
  5. Pause.
  6. Autobrake → MAX.
  7. Pause.
  8. Spoilers → ARMED.
  9. Pause.
  10. “Trim minus fifteen percent.”
  11. Set elevator trim −15%.
  12. Verify trim.
  13. Pause.
  14. Select ECAM F/CTL.
  15. Pause.
  16. After-pushback complete.

Brake check

Once:

  • engines are running,
  • parking brake has been released,
  • after-pushback is complete,

the brake check starts.

  1. “Brake check”
  2. Wait until brake pressure is detected.
  3. “Pressure zero”
  4. 0.6 s pause.
  5. Wait for brake release.
  6. “Brake check complete”

Flight-controls check

Depending on your configured FC mode:

Taxi

  • Automatically begins once the aircraft is actually moving.
  • Can conduct it at any point during taxi.
  • Excludes the rudders from the flight controls check (to avoid nose-wheel conflict during taxi. Will remain this way until rudders and tillers have a separate control axis).

Stable

  • Automatically begins after the aircraft has been stationary on the ground for at least pushback and engine start.
  • Can conduct it at any point before taxi.
  • Includes the rudders in the flight controls check.

The FC check itself is separate from the procedural flows.


5. TAKEOFF

Flight attendant announcement

The copilot says:

“Flight attendants, prepare for takeoff please.”

This is triggered by the cockpit dome-light transition. Using this since strobes aren’t a good trigger due to runway crossings, and the dome light currently has no use.

Gear-up detection

When the aircraft becomes airborne, the system arms the departure gear detector.

When you physically select gear UP:

The copilot silently detects it and performs:

  1. Autobrake → OFF
  2. Verify
  3. Spoilers → DISARMED
  4. Verify
  5. Taxi lights → OFF
  6. Verify

This gear-up cleanup intentionally works during:

  • normal takeoff
  • go-around
  • any other airborne gear-up selection

6. CLIMB

10,000-ft climb

When the aircraft crosses from below 10,000 to 10,000 or above:

  1. “Ten thousand”
  2. No-smoking sign ON
  3. 0.08 s
  4. No-smoking sign OFF
  5. 0.08 s
  6. No-smoking sign ON
  7. Landing lights OFF

The tracker is seeded from your actual altitude when INITIATE/CRUISING is selected.

The flicking of the no-smoking sign is to simulate passing sterile cockpit altitude and notifying the flight attendants of such.

Might add a function to switch between FL100 and FL180, depending on how the user wants to do their ops.


7. CRUISE

The phase estimator enters CRUISE after sustained near-level flight.

No automatic flap or takeoff actions.

If you press CRUISING

Departure flows are explicitly skipped, but:

  • descent automation remains active
  • arrival automation remains active
  • 10K tracking remains active

So pressing CRUISING below 10,000 should still allow the eventual climb-through-10K sequence (no-smoking pulse and landing lights off).


8. DESCENT

The phase changes to DESCENT after sustained negative vertical speed.

10,000-ft descent

When crossing from above 10,000 to 10,000 or below:

  1. “Ten thousand”
  2. No-smoking sign pulse:
    • ON
    • OFF
    • ON
  3. Landing lights ON

Flaps

You handle all flap selections yourself.

Might add a voice control for flaps. For example:
You: “Flaps 1.”

CoPilot: “Speed checked, flaps 1.”


9. APPROACH

Approach can be entered through multiple signals.

Any of these can contribute:

  • sustained descent
  • flap extension while airborne in arrival context
  • gear down
  • AP approach mode
  • approach/runway metadata

So flap extension is one possible approach trigger, not the only one.

Callouts currently

With gear DOWN:

“Speed high”

when:

IAS > 195 kt

There is no dependency on flap setting.

Gear not down

Below 1,000 ft and below 190 kt while the gear isn’t down:

“Gear not down”

It has a cooldown to avoid spamming continuously.

Stable / Check approach

At the stable gate altitude:

If stable:

“Stable”

Otherwise:

“Check approach”

Stability checks include:

  • gear down
  • full landing configuration
  • final-speed range
  • vertical-speed limit

10. LANDING CONFIGURATION / GEAR DOWN

When an airborne UP → DOWN gear transition is detected during APPROACH/LANDING:

  1. Landing rollout becomes armed.
  2. “Flight attendants, prepare for landing.”
  3. Determine landing autobrake:
    • manual override LOW → LOW
    • manual override MED → MED
    • SimBrief AUTO LOW → LOW
    • SimBrief AUTO MED → MED
    • unsupported result → LOW fallback
  4. Set autobrake.
  5. Verify autobrake.
  6. Pause.
  7. Spoilers → ARMED.
  8. Verify.
  9. Pause.
  10. Taxi lights → ON.

No flap reconfiguration is commanded by the copilot.

SimBrief isn’t supported for landing autobrakes as it requires a token that can only be retrieved by contacting Navigraph for the user. The feature might change if it becomes publicly available data similar to their takeoff performance data.

Manual override still exists.


11. LANDING / TOUCHDOWN

At touchdown, the rollout detector is armed.

The rollout procedure waits for:

  • confirmed ground contact
  • strobes OFF

Spoken landing rollout sequence

Spoilers

When actual spoiler deployment is detected:

“Spoilers”

Reversers

After spoilers have been detected and both engines are in reverse:

“Reversers green”

Deceleration

After reversers green, the copilot requires sustained groundspeed decrease before saying:

“Decel”

So the intended sequence is:

Spoilers → Reversers green → Decel


12. ROLLOUT (Vacating)

Once rollout begins:

  1. Flaps → FULL UP
  2. Verify zero
  3. “Flaps zero”
  4. Spoilers → DISARMED
  5. Pause
  6. APU MASTER ON
  7. Verify
  8. Pause
  9. Additional 2-second wait
  10. “APU start”
  11. APU START
  12. 65-second wait
  13. APU BLEED ON
  14. Verify

Single-engine taxi

Single-engine taxi is ON by default.

After APU bleed:

  1. Wait 45 seconds
  2. Check engine 2 N1
  3. “Shutting down engine two”
  4. Pause
  5. Engine 2 master OFF
  6. Wait for N1 to fall below active threshold
  7. Verify engine 2 shutdown

Then:

“After landing flow complete.”


13. TAXI IN / PARKED

Once:

  • landing has been confirmed
  • parking brake is set
  • both engines are off

the gate shutdown flow can begin.

It can also start through the rollout failsafe even if the exact rollout trigger was missed.

Gate shutdown

  1. “Gate shutdown flow.”
  2. Fuel pump left 1 OFF
  3. Pause
  4. Fuel pump left 2 OFF
  5. Pause
  6. Fuel pump right 1 OFF
  7. Pause
  8. Fuel pump right 2 OFF
  9. Verify all pumps OFF
  10. Gate/ground-service connection command
  11. Service pause
  12. Ground power connect if necessary
  13. Verify GPU
  14. External power ON
  15. Verify
  16. APU bleed OFF
  17. Pause
  18. APU master OFF
  19. Pause
  20. “Gate shutdown flow complete. Aircraft on external power.”

14. GO-AROUND

The dedicated go-around detection is based on your specified Airbus configuration sequence.

While in APPROACH/LANDING:

Trigger 1

CONF 3 → CONF 2

and then:

Gear UP within 8 seconds

→

“Go around”

Trigger 2

FULL → CONF 3

and then:

Gear UP within 8 seconds

→

“Go around”

When detected:

  1. Landing-specific state is reset.
  2. Approach latches are reset.
  3. Landing/rollout latches are reset.
  4. Landing callout state is reset.
  5. The phase becomes GO AROUND.
  6. Gear-up cleanup runs separately:
    • Autobrake OFF
    • Spoilers DISARMED
    • Taxi lights OFF

The GO AROUND state won’t immediately turn back into APPROACH.

It requires a genuine climb.

After sustained positive climb:

GO AROUND → CLIMB

Then the normal state chain can happen again:

CLIMB → DESCENT → APPROACH → LANDING

This is what I’ve worked on so far. It works really well and functions beautifully. Didn’t think I’d see copilots come to IF.

5 Likes
  • Added maneuvering speed calculations (F, S, Green Dot)
  • Added auto throttle. Now manages speed in a realistic manner, contrary to the current Infinite Flight absolutes. Works for any phase of flight (takeoff thrust and landing). Abides by speed constraints set for waypoints.
  • Added checklists.
  • Added more realistic flight control check behavior.
  • Added realistic flaps behavior on approach. Can now be requested from the CoPilot and sent to Infinite Flight.
  • Changed the 10,000-foot gong pulse from the No-Smoking sign to a retrieved manifest entry for the A321neo.

Really discovered how much IF lets us use. I hope someone takes what I’ve worked on so far and makes it for public use.

Although we lack a lot of fundamental aspects in the simulator, it’s insane how much we can create on our own end to compensate.

5 Likes

Really good work. Autothrottle sounds interesting. Is this app available for us to try?

1 Like

It requires setup on the user end and some more fine-tuning, which makes me apprehensive about it. Along with that, it’s only made for PC at the moment. It connects via IF Connect using an IP address. Furthermore, I don’t think enough people would be interested in it to hash out those caveats.

1 Like

I’ve dabbled with the connect-api before with the intention of trying to make an autothrottle. Would be great to see how far you got

I’d love to try this, I think it’s a great idea as there’s a few 3rd party apps I use when playing IF

It sounds similar to “SkyYoke” a 3rd party app that’s relatively new and has a few really good features but it’s not a “co-pilot” as such and “IFAssistant” that has call-outs for things you do in the cockpit

1 Like

I might publish a video displaying some of the features. If I do, it’ll be in this thread.

1 Like

Unlike SkyYoke and most tools I’ve seen in IF, this performs the duties of an actual Pilot Monitoring. It’s most comparable to FS2Crew (Microsoft Flight Simulator). I originally wanted to stick with just the simulated First Officer, but there were more features to be automated.

Here’s what was made so far:

The autothrottle waits for a specific input (in my case, ~80%). Once that input is achieved on the IF throttle, it takes over and sets takeoff thrust (during testing, I used 90%). At 1500, it prompts a thrust reduction on the Thrust Assist. At this point, you decrease AOA and retard the throttles at least 3% from takeoff thrust. From there, the Thrust Assist manages throttle on climb, abiding by VFE speeds, automatically bringing the flaps from 1+F to 1 at 210 knots, and abiding by speed constraints if you set them for your flight plan. Once all constraints are passed, it proceeds to 250 knots, then 300 knots (or whatever speed you selected) when passing 10,000 feet. This differs from standard IF throttle, as it firewalls the throttles at 100% to gain speed, which is unrealistic. Thrust Assist has limited climb thrust permissible, only exceeding it in dire circumstances.

For VAPP, it maintains your approach speed during landing. IF doesn’t allow you to take over the throttles while you have autothrust on, which is unrealistic. With Thrust Assist, you can take over at any point. The aim with this is to simulate proper thrust management on approach, assuming you’re using auto thrust. When it’s time to retard the throttles, you can freely do so.

Ideally, the IF development team implements something that removes the need to develop third-party software for realistic applications of thrust and other features, but it’s what we have for now.

1 Like

Is that available to other aircraft like the A320 family because its very similar to A321NEO only changes the engines?

This can be done for IOS and Android? And will be done?

For the A320neo, once it is released, it will be. It’s currently only for the A321neo. It won’t be released to any other Airbus or Boeing variant unless they receive similar updates to the A320neo and A321neo, as those aircraft feature working cockpits and more factors to control. I’d also have to retrieve the FADEC data per engine type, which is already trivial and complicated as is just for the LEAP-1A32s on the 321.

1 Like

Thanks for the detailed response. That sounds really good - especially the auto throttle. I’d really enjoy giving it a go if you’re comfortable sharing on github?

Once I find the LEAP-1A32 and PW’s engine details, I have more to finish up. I could see it being complete and available for testing by other users then. Once I reach that point, I’ll be sure to let you know.

You’d need a laptop or desktop.
There’re additional setup steps to satisfy temporary flight control handling by the CoPilot. I’ll have to publish steps for setting up the API handler.

1 Like

Sounds good - I’m a software engineer myself so just out of curiosity I was wondering what you’ve used to make this? React frontend and a backend which uses sockets to establish the TCP communication with the connect api?

Yeah, finding engine/thrust information was an issue for me when I was trying to create an autothrottle.

Okay, thank you. But can we have It as an app now or we will have to wait?

It seems they currently have a prototype working on desktop only. I assume if there is enough interest a mobile app may be explored, but porting it to android/ios would take time.

1 Like

No React frontend or web backend. It uses PySide for the desktop UI, so I haven’t considered moving it to mobile. It connects over TCP sockets. Like most other apps here, it uses telemetry polling for data retrieval and Copilot control. For aircraft handling, such as the flight controls check, it uses a temporary socket, then closes it. I found an issue where it can’t give back control after doing the check, so I moved to the temp socket method.

1 Like

It’s proprietary info. There’s no guarantee that even IF uses 100% accurate performance metrics for its engines, I’ll probably have to get AI to take a bunch of data from my own flights and use it for engine ratings. I don’t know any A320 family pilots myself, and I don’t have access to an EFB/FlySmart.

1 Like