diff --git a/docs/fbw-a32nx/assets/flypados3/failures-all-systems.png b/docs/fbw-a32nx/assets/flypados3/failures-all-systems.png
new file mode 100644
index 000000000..43c3e15c8
Binary files /dev/null and b/docs/fbw-a32nx/assets/flypados3/failures-all-systems.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/failures-altitude.png b/docs/fbw-a32nx/assets/flypados3/failures-altitude.png
new file mode 100644
index 000000000..cdc333802
Binary files /dev/null and b/docs/fbw-a32nx/assets/flypados3/failures-altitude.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/failures-select.png b/docs/fbw-a32nx/assets/flypados3/failures-select.png
new file mode 100644
index 000000000..25f4e3f62
Binary files /dev/null and b/docs/fbw-a32nx/assets/flypados3/failures-select.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/failures-speed.png b/docs/fbw-a32nx/assets/flypados3/failures-speed.png
new file mode 100644
index 000000000..3833dbb7b
Binary files /dev/null and b/docs/fbw-a32nx/assets/flypados3/failures-speed.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/failures-takeoff-1.png b/docs/fbw-a32nx/assets/flypados3/failures-takeoff-1.png
new file mode 100644
index 000000000..45a9b803b
Binary files /dev/null and b/docs/fbw-a32nx/assets/flypados3/failures-takeoff-1.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/failures-takeoff-2.png b/docs/fbw-a32nx/assets/flypados3/failures-takeoff-2.png
new file mode 100644
index 000000000..0741f1ea9
Binary files /dev/null and b/docs/fbw-a32nx/assets/flypados3/failures-takeoff-2.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/failures-timed.png b/docs/fbw-a32nx/assets/flypados3/failures-timed.png
new file mode 100644
index 000000000..81855b662
Binary files /dev/null and b/docs/fbw-a32nx/assets/flypados3/failures-timed.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/flypad-failure-tab.png b/docs/fbw-a32nx/assets/flypados3/flypad-failure-tab.png
new file mode 100644
index 000000000..a002d9c36
Binary files /dev/null and b/docs/fbw-a32nx/assets/flypados3/flypad-failure-tab.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/flypad-failures-active1-view.png b/docs/fbw-a32nx/assets/flypados3/flypad-failures-active1-view.png
index 820fc758b..59b18ce80 100644
Binary files a/docs/fbw-a32nx/assets/flypados3/flypad-failures-active1-view.png and b/docs/fbw-a32nx/assets/flypados3/flypad-failures-active1-view.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/flypad-failures-active2-view.png b/docs/fbw-a32nx/assets/flypados3/flypad-failures-active2-view.png
index fcdc422c9..f65710cfb 100644
Binary files a/docs/fbw-a32nx/assets/flypados3/flypad-failures-active2-view.png and b/docs/fbw-a32nx/assets/flypados3/flypad-failures-active2-view.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/flypad-failures-compact-view.png b/docs/fbw-a32nx/assets/flypados3/flypad-failures-compact-view.png
index 3e0dec460..733e8ea5d 100644
Binary files a/docs/fbw-a32nx/assets/flypados3/flypad-failures-compact-view.png and b/docs/fbw-a32nx/assets/flypados3/flypad-failures-compact-view.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/flypad-failures-search-view.png b/docs/fbw-a32nx/assets/flypados3/flypad-failures-search-view.png
index 807c1a005..d92136fb1 100644
Binary files a/docs/fbw-a32nx/assets/flypados3/flypad-failures-search-view.png and b/docs/fbw-a32nx/assets/flypados3/flypad-failures-search-view.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/flypad-failures-system-view.png b/docs/fbw-a32nx/assets/flypados3/flypad-failures-system-view.png
index e85ab8027..7216edef5 100644
Binary files a/docs/fbw-a32nx/assets/flypados3/flypad-failures-system-view.png and b/docs/fbw-a32nx/assets/flypados3/flypad-failures-system-view.png differ
diff --git a/docs/fbw-a32nx/assets/flypados3/flypad-failures.png b/docs/fbw-a32nx/assets/flypados3/flypad-failures.png
index 23e66f1f7..a7a588349 100644
Binary files a/docs/fbw-a32nx/assets/flypados3/flypad-failures.png and b/docs/fbw-a32nx/assets/flypados3/flypad-failures.png differ
diff --git a/docs/fbw-a32nx/feature-guides/flypados3/failures.md b/docs/fbw-a32nx/feature-guides/flypados3/failures.md
index 0834aa560..c24ecb30c 100644
--- a/docs/fbw-a32nx/feature-guides/flypados3/failures.md
+++ b/docs/fbw-a32nx/feature-guides/flypados3/failures.md
@@ -1,4 +1,6 @@
-
+
+
+
# flyPad Failures
@@ -6,11 +8,27 @@
Although far from complete, some A32NX systems are already capable of simulating failures.
-To manage and trigger these failures, this flyPad page gives the user structured access to these systems and allows simple triggering of failures by mouse click.
+To manage and trigger these failures, this flyPad page gives the user structured access to two types of systems:
+
+- Simple on demand triggering of failures by mouse click.
+- A more complex failure generator that can be customized to create failures at certain points during your flight for a more "randomized" feel. [Jump to Failure Generator](#failure-generator).
+
+These two systems can be selected by clicking on the respective buttons in the top-right corner of the Failures page.
+
+![flypad-failure-tab.png](../../assets/flypados3/flypad-failure-tab.png){loading=lazy}
There are further extensions planned for the failures feature, incl. more systems and trigger-based failures. This page will therefore change alongside the implementation of the failure system.
-## Comfort view
+## On-Demand Failures
+
+The on-demand failures are triggered by clicking on the respective buttons in the "On-Demand Failures" section of the page.
+
+!!! info ""
+ Please ensure that you are on the Failures tab to trigger on-demand failures.
+
+ ![flypad-failure-tab.png](../../assets/flypados3/flypad-failure-tab.png){loading=lazy}
+
+### Comfort View
@@ -20,14 +38,14 @@ There are further extensions planned for the failures feature, incl. more system
Click on the menu icons in this image to see other flyPad pages.
-## Active Failure View
+### Active Failure View
When a failure is actively simulated, the system will be highlighted with a red color.
@@ -73,7 +91,7 @@ When a failure is actively simulated, the system will be highlighted with a red
Click on the menu icons in this image to see other flyPad pages.
-## Search
+### Search
Enter a search term to filter for specific systems.
@@ -107,10 +125,136 @@ Enter a search term to filter for specific systems.
Click on the menu icons in this image to see other flyPad pages.
+## Failure Generator
+
+The failure generator will trigger system failures automatically, depending on the rules set for the type of generator. There are several types of generators available that have
+different logics to trigger failures. Each generator has its own settings on its triggering conditions.
+
+They can be armed individually and can trigger a specific set of failures. You can verify the status of a generator based on the following symbol colors:
+
+| Symbol | Status |
+|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------|
+|
| The generator is not armed |
+|
| The generator is armed |
+
+These options are found on the "Failure Generators" tab on the Failure page.
+
+!!! info ""
+ Please ensure that you are on the correct tab to trigger or set up the correct generator.
+
+ ![flypad-failure-tab.png](../../assets/flypados3/flypad-failure-tab.png){loading=lazy}
+
+![failures-select.png](../../assets/flypados3/failures-select.png){loading=lazy}
+
+!!! info "Configuration Options"
+ Each generator can be configured in the following 4 modes:
+
+ | Symbol | Configuration | Description |
+ |:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+ | :bootstrap-toggle-off: | OFF | Generator is disabled but settings are kept |
+ | :bootstrap-repeat-1: | ONCE | The generator will trigger a set of failures only once and go to OFF mode |
+ |
| TAKE OFF | The generator will wait until FLEX or TOGA thrust is set while speed is low on the ground to arm itself |
+ | | | It will trigger a set of failures only once until the plane entirely stops and another take off event occurs |
+ | :bootstrap-repeat: | REPEAT | The generator will trigger a set of failures everytime the conditions are met |
+
+
+
+### Max Failures and Number of Failures
+
+Each generator defines a specific number of failures to be triggered at the same time, and a maximum number of failures.
+
+Failures will activate up to the total number of failures configured for the flight.
+
+### Failure Pool Selection
+
+Each failure generator allows to select specifically which failures can be triggered. You may select any combination of failures:
+
+- Individual failures
+- Entire systems
+- or all at once.
+
+Only a specified number of failures, randomly picked from this set, will be triggered by the generator.
+
+!!! tip ""
+ You can create several failure generators of the same type so that specific failures may happen at specific conditions different to other sets of failures.
+
+### Failure Generator Settings
+
+You can access the settings of each failure generator by pressing the following icon -> :bootstrap-sliders2-vertical:
+
+### Altitude Failure Generator
+
+This generator triggers a set of failures among the selected failure pool when the airplane reaches a random altitude set between the specified minimum and maximum altitude.
+
+It may be configured either to trigger while the plane climbs or descends.
+
+!!! info "Conditions"
+ This failure generator can only arm itself when the plane is outside the altitude activation range with an extra margin of 100 feet.
+
+ The generator mode icon will therefore stay white if the plane is within the altitude activation range.
+
+![failures-altitude.png](../../assets/flypados3/failures-altitude.png){loading=lazy}
+
+### Ground Speed Failure Generator
+
+This generator triggers a set of failures among the selected failure pool when the airplane reaches a random ground speed set between the specified minimum and maximum ground speed.
+
+It may be configured either to trigger while the plane accelerates or decelerates.
+
+!!! info "Conditions"
+ This failure generator can only arm itself when the plane is outside the speed activation range with an extra margin of 5 kts.
+
+ The generator mode icon will therefore stay white if the plane is within the speed activation range.
+
+![failures-speed.png](../../assets/flypados3/failures-speed.png){loading=lazy}
+
+### Timed Failure Generator
+
+This generator triggers a set of failures among the selected failure pool when the time since the arming of the generator reaches a random delay set between the specified minimum and maximum delay.
+
+- When configured in the "repeat" or "Once" arming modes, the timer will start right away.
+- When configured in the "Take Off" arming, the timer will start once FLEX or TOGA thrust is set for the first time and the plane moves.
+
+!!! info "Timer Condition"
+ The timer is running when the generator mode icon is Blue.
+
+![failures-timed.png](../../assets/flypados3/failures-timed.png){loading=lazy}
+
+### Probability Over Time Generator
+
+At any moment, this generator may trigger a set of failures among the selected failure pool by using the probability specified through the average number of failure per hour.
+The mean time to failure (MTTF) is provided as an indication of the delay it may take in average to trigger one failure for the probability of failure per hour specified.
+
+!!! note ""
+ Rates of failure in aviation vary between 10e-3 per hour and 10e-9 per hour depending on the criticality of the system.
+
+For simulation purposes, it is advised to set this value at a much higher level, up to 10e-1 (0.1 failure / hour or 1 failure every 10 hours) in order to experience failures once every simulator session.
+
+![failures-all-systems.png](../../assets/flypados3/failures-all-systems.png){loading=lazy}
+
+### Take Off Failure Generator
+
+This generator triggers a set of failures among the selected failure pool with a specified probability at each take off.
+If a failure occurs during the next take-off, it may happen at any moment, during one of these three take off phases:
+
+- Low ground speed phase :
+ - The take-off phase when the plane exceeds the minimum ground speed and is slower than the low-med transition ground speed.
+- Medium ground speed phase :
+ - The take-off phase when the plane exceeds the low-med transition ground speed and is slower than the med-high transition ground speed.
+- High ground speed & climb phase :
+ - The take-off phase when the plane exceeds the med-high transition ground speed and is lower than the specified height above the runway.
+
+The choice between the 3 phases will be random, using the probability of each phase defined in the settings.
+
+**Takeoff Settings TOP**
+![failures-takeoff-1.png](../../assets/flypados3/failures-takeoff-1.png){loading=lazy}
+
+**Takeoff Settings Scrolled**
+![failures-takeoff-2.png](../../assets/flypados3/failures-takeoff-2.png){loading=lazy}
diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css
index 5612535c9..1a91c8c67 100644
--- a/docs/stylesheets/extra.css
+++ b/docs/stylesheets/extra.css
@@ -127,3 +127,7 @@ tbody {
background-color: #00E0FE;
}
+/* Bootstrap Container */
+.icon-container {
+ margin-bottom: -5px;
+}
diff --git a/mkdocs.yml b/mkdocs.yml
index d54c4b907..de72427c8 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -86,6 +86,7 @@ plugins:
'discord-bot.md': 'dev-corner/development-projects/discord-bot.md'
'airframe.md': 'https://docs.flybywiresim.com/fbw-a32nx/installation/#simbrief-airframe'
'fdr.md': 'https://docs.flybywiresim.com/fbw-a32nx/support/#fdr-files'
+ 'failures.md': 'fbw-a32nx/feature-guides/flypados3/failures.md'
# Commented out in case we want to use this in the future
# 'exp.md': 'fbw-a32nx/support/exp.md'
'vnav.md': 'pilots-corner/advanced-guides/flight-guidance/vertical-guidance/overview.md'
@@ -161,5 +162,8 @@ markdown_extensions:
pymdownx.emoji: # Allows emoji style inline embeds for icons
emoji_index: !!python/name:materialx.emoji.twemoji
emoji_generator: !!python/name:materialx.emoji.to_svg
+ options:
+ custom_icons:
+ - overrides/.icons
md_in_html: {} # Allows markdown to be used in HTML
abbr: {} # Adds abbreviations
diff --git a/overrides/.icons/bootstrap/airplane.svg b/overrides/.icons/bootstrap/airplane.svg
new file mode 100644
index 000000000..2e04c928c
--- /dev/null
+++ b/overrides/.icons/bootstrap/airplane.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/overrides/.icons/bootstrap/arrow-bar-up.svg b/overrides/.icons/bootstrap/arrow-bar-up.svg
new file mode 100644
index 000000000..090b6bd4c
--- /dev/null
+++ b/overrides/.icons/bootstrap/arrow-bar-up.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/overrides/.icons/bootstrap/repeat-1.svg b/overrides/.icons/bootstrap/repeat-1.svg
new file mode 100644
index 000000000..07f4a8b95
--- /dev/null
+++ b/overrides/.icons/bootstrap/repeat-1.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/overrides/.icons/bootstrap/repeat.svg b/overrides/.icons/bootstrap/repeat.svg
new file mode 100644
index 000000000..0f6d54d86
--- /dev/null
+++ b/overrides/.icons/bootstrap/repeat.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/overrides/.icons/bootstrap/sliders2-vertical.svg b/overrides/.icons/bootstrap/sliders2-vertical.svg
new file mode 100644
index 000000000..c474281c7
--- /dev/null
+++ b/overrides/.icons/bootstrap/sliders2-vertical.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/overrides/.icons/bootstrap/toggle-off.svg b/overrides/.icons/bootstrap/toggle-off.svg
new file mode 100644
index 000000000..97d6dab37
--- /dev/null
+++ b/overrides/.icons/bootstrap/toggle-off.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/flypad/efb-crop-template.psd b/src/assets/flypad/efb-crop-template.psd
new file mode 100644
index 000000000..94c204e29
Binary files /dev/null and b/src/assets/flypad/efb-crop-template.psd differ
diff --git a/src/takeoff-icon.html b/src/takeoff-icon.html
new file mode 100644
index 000000000..8b533a8b3
--- /dev/null
+++ b/src/takeoff-icon.html
@@ -0,0 +1,14 @@
+
+