Why do some lights work and not others? - RoystonS/BetterBravoLights GitHub Wiki

I often get questions asking why some lights are working in a particular aircraft, but not all. Why can't BetterBravoLights (BBL) "just work" with all aircraft out of the box?

The simple answer is that Microsoft Flight Simulator (MSFS) doesn't tell us which Bravo lights should be on; it doesn't know anything about the Bravo at all. So, the BetterBravoLights program has to figure out which light should be on, based on the state of the simulator. Inside the simulator are thousands of pieces of data which tell us the current position of the flaps, the landing gear, the amount of flex in the left wing, and so on. We need to monitor the relevant bits of data (called variables) and decide, based on those values, whether to turn lights on.

Some bits are easy

For some pieces of state, this is very easy. For example, there is a standard MSFS variable that tells us whether the parking brake is on or not, called A:BRAKE PARKING POSITION. So in BetterBravoLights we have a little rule that basically says "If A:BRAKE PARKING POSITION is 1, turn on the parking brake light on the Bravo; otherwise turn the light off.". You'll typically find that the parking brake light will work correctly in almost every aircraft you try in MSFS.

If you're curious, the rule in BBL for the Parking Brake light looks like this:

ParkingBrake = A:BRAKE PARKING POSITION, bool == 1

That is, "The Parking Brake light is on if the value of A:BRAKE PARKING POSITION is equal to 1".

So far so simple. For others, it's a very different story. Let's look at the Low Oil Pressure light.

Some bits are harder

MSFS doesn't have a variable that indicates 'low oil pressure', so in order to decide whether to light up the Bravo 'LOW OIL PRESSURE' light, we need to check the actual oil pressure. On the Cirrus SR22, the oil pressure is considered to be low when it's below 30PSI. For the PC6, it's 80PSI, and so on. (In fact, in some variants it's 80PSI and in others it's 85PSI!) So, in order to make the 'LOW OIL PRESSURE' light work correctly, we need to know what 'low' is for each specific aircraft. If BBL doesn't have a specific configuration for the 'LOW OIL PRESSURE' light for the aircraft you're flying, it'll simply turn that light off completely because it's not possible to guess.

If you're curious, the rules in BBL for Low Oil Pressure look like this:

[Aircraft.Asobo_SR22]
LowOilPressure = A:GENERAL ENG OIL PRESSURE:1, psi < 30

[Aircraft.Microsoft_Pilatus_PC6_G950_Floats,Aircraft.Microsoft_Pilatus_PC6_G950_Wheels]
LowOilPressure = A:GENERAL ENG OIL PRESSURE:1, psi < 80

[Aircraft.Microsoft_Pilatus_PC6_Gauge_Skis,Aircraft.Microsoft_Pilatus_PC6_Gauge_Wheels]
LowOilPressure = A:GENERAL ENG OIL PRESSURE:1, psi < 85

Some bits are extremely hard, or even impossible

It gets worse, however. At least with low oil pressure we know that we should look at the A:GENERAL OIL PRESSURE:1 variable. Many third party planes add extra aircraft-specific variables that we need to look at.

For example, this works with most GA planes to turn the DOOR light on or off:

Door = A:CANOPY OPEN, percent > 0 OR A:EXIT OPEN:0, percent > 0

Some aircraft add a lot more doors, and they need special variables, so for the Aerosoft CRJ 550, we have:

Door = L:DOOR_MAIN_DOOR_POS > 0 OR L:DOOR_SERVICE_POS > 0 OR L:DOOR_FWD_CARGO_POS > 0 OR L:DOOR_AFT_CARGO_POS > 0

However, some aircraft basically ignore all the standard MSFS variables and don't use them at all, so you have to find out, value by value, exactly where all the state is for every light for an individual aircraft sometimes.

The PMDG 737 is a prime example of this: almost every single Bravo light has to be explicitly defined. They don't expose the fuel pressure using the standard variables so we have to monitor some special internal variables (named things like L:switch_41_73X) that represent their in-cabin low fuel pressure lights. For the oil pressure light, they don't expose the actual oil pressure anywhere, and don't expose any variable for the low oil pressure status, so it's not even possible to make the 'LOW OIL PRESSURE' light work.

So...?

So, if you're using an aircraft that doesn't have specific configuration in BetterBravoLights, some of the lights might work. Others won't.

I can't buy all third party aircraft (but if you sponsor me, I can buy more!) so sometimes all I can do is to help you develop or test configuration for aircraft I don't have. I'm very happy to do that, but neither BBL nor any other software can ever support every aircraft automatically out of the box.