> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canadava.com/llms.txt
> Use this file to discover all available pages before exploring further.

# De Havilland Dash 8‑400 Checklist

> Complete vACA Dash 8-400 Q400 normal and abnormal checklists with turboprop flows, prop RPM settings, and memory items

export const CockpitChecklist = ({sections = [], title, printLogoSrc = "/logo/light.svg", printNotice = "For flight-simulation training only - not for real-world aviation use."}) => {
  const allItems = sections.flatMap((s, si) => (s.items || []).map((_, ii) => `${si}-${ii}`));
  const [checked, setChecked] = useState({});
  const [isFullscreen, setIsFullscreen] = useState(false);
  const [backdropId] = useState(() => `cockpit-bd-${Math.random().toString(36).slice(2, 10)}`);
  const [printId] = useState(() => `cockpit-print-${Math.random().toString(36).slice(2, 10)}`);
  const fullscreenRootRef = useRef(null);
  const toggle = key => setChecked(prev => ({
    ...prev,
    [key]: !prev[key]
  }));
  const reset = () => setChecked({});
  const openFullscreen = () => setIsFullscreen(true);
  const closeFullscreen = () => setIsFullscreen(false);
  const clearPrintTarget = () => {
    if (typeof document === "undefined") return;
    const printNode = document.getElementById(printId);
    document.body.classList.remove("cockpit-printing");
    if (printNode) {
      printNode.setAttribute("data-print-active", "false");
    }
  };
  const printChecklist = () => {
    if (typeof window === "undefined" || typeof document === "undefined") return;
    const printNode = document.getElementById(printId);
    if (!printNode) return;
    printNode.setAttribute("data-print-active", "true");
    document.body.classList.add("cockpit-printing");
    window.addEventListener("afterprint", clearPrintTarget, {
      once: true
    });
    window.requestAnimationFrame(() => {
      window.print();
    });
  };
  const doneCount = Object.values(checked).filter(Boolean).length;
  const totalCount = allItems.length;
  useEffect(() => {
    if (typeof document === "undefined") return;
    [backdropId, printId].forEach(id => {
      const node = document.getElementById(id);
      if (node && node.parentNode !== document.body) {
        document.body.appendChild(node);
      }
    });
    return () => {
      [backdropId, printId].forEach(id => {
        const current = document.getElementById(id);
        if (current && current.parentNode) {
          current.parentNode.removeChild(current);
        }
      });
    };
  }, [backdropId, printId]);
  useEffect(() => {
    if (!isFullscreen) return;
    const onKey = e => {
      if (e.key === "Escape") setIsFullscreen(false);
    };
    document.addEventListener("keydown", onKey);
    const prevOverflow = document.body.style.overflow;
    document.body.style.overflow = "hidden";
    return () => {
      document.removeEventListener("keydown", onKey);
      document.body.style.overflow = prevOverflow;
    };
  }, [isFullscreen]);
  useEffect(() => {
    if (!isFullscreen) return;
    if (typeof window === "undefined") return;
    const root = fullscreenRootRef.current;
    if (!root) return;
    const MIN_SCALE = 0.7;
    const MAX_SCALE = 1;
    const MIN_LEADER_PX = 24;
    const GAP_PX = 16;
    const SAFETY_PX = 2;
    const measure = () => {
      root.style.setProperty("--cockpit-fs-font-scale", "1");
      void root.offsetWidth;
      const items = root.querySelectorAll(".cockpit-item");
      let worst = 1;
      items.forEach(item => {
        const label = item.querySelector(".cockpit-item-label");
        const value = item.querySelector(".cockpit-item-value");
        if (!label || !value) return;
        const cs = window.getComputedStyle(item);
        const padL = parseFloat(cs.paddingLeft) || 0;
        const padR = parseFloat(cs.paddingRight) || 0;
        const available = item.clientWidth - padL - padR;
        const needed = label.scrollWidth + value.scrollWidth + MIN_LEADER_PX + GAP_PX + SAFETY_PX;
        if (needed > available && available > 0) {
          const ratio = available / needed;
          if (ratio < worst) worst = ratio;
        }
      });
      const next = Math.max(MIN_SCALE, Math.min(MAX_SCALE, worst));
      root.style.setProperty("--cockpit-fs-font-scale", String(next));
    };
    measure();
    let raf = 0;
    const ro = new ResizeObserver(() => {
      cancelAnimationFrame(raf);
      raf = requestAnimationFrame(measure);
    });
    ro.observe(root);
    const backdrop = document.getElementById(backdropId);
    if (backdrop) ro.observe(backdrop);
    return () => {
      cancelAnimationFrame(raf);
      ro.disconnect();
    };
  }, [isFullscreen, sections, backdropId]);
  useEffect(() => clearPrintTarget, [printId]);
  const renderChart = (variant, rootRef) => <div ref={rootRef} className={`cockpit-checklist${variant === "fullscreen" ? " fullscreen" : ""}`}>
      <div className="cockpit-checklist-header">
        {title && <span className="cockpit-checklist-title">{title}</span>}
        <div className="cockpit-checklist-meta">
          <span className="cockpit-checklist-count">
            {doneCount}/{totalCount}
          </span>
          {doneCount > 0 && <button type="button" className="cockpit-checklist-btn" onClick={reset}>
              Reset
            </button>}
          <button type="button" className="cockpit-checklist-btn" onClick={printChecklist}>
            Print
          </button>
          {variant === "fullscreen" ? <button type="button" className="cockpit-checklist-btn" onClick={closeFullscreen} aria-label="Exit fullscreen">
              Close ✕
            </button> : <button type="button" className="cockpit-checklist-btn" onClick={openFullscreen} aria-label="Open fullscreen">
              Fullscreen ⤢
            </button>}
        </div>
      </div>

      <div className="cockpit-checklist-scroll">
        <div className="cockpit-checklist-grid">
          {sections.map((section, si) => <div key={si} className="cockpit-section">
              <div className="cockpit-section-header">
                <span className="cockpit-section-title">{section.title}</span>
                {section.subtitle && <span className="cockpit-section-subtitle">
                    {section.subtitle}
                  </span>}
              </div>
              <div className="cockpit-section-items">
                {(section.items || []).map((item, ii) => {
    const key = `${si}-${ii}`;
    const isChecked = !!checked[key];
    return <button key={key} type="button" className={`cockpit-item${isChecked ? " checked" : ""}${item.strong ? " strong" : ""}`} onClick={() => toggle(key)}>
                      <span className="cockpit-item-label">{item.label}</span>
                      <span className="cockpit-item-leader" aria-hidden="true" />
                      <span className="cockpit-item-value">{item.value}</span>
                    </button>;
  })}
              </div>
            </div>)}
        </div>
      </div>
    </div>;
  const renderPrintLayout = () => <div id={printId} className="cockpit-print-root" data-print-active="false" aria-hidden="true">
      <article className="cockpit-print-sheet">
        <header className="cockpit-print-header">
          <img className="cockpit-print-logo" src={printLogoSrc} alt="vACA" />
          <div className="cockpit-print-heading">
            {title && <h1>{title}</h1>}
            {printNotice && <div className="cockpit-print-notice">{printNotice}</div>}
          </div>
        </header>

        <div className="cockpit-print-grid">
          {sections.map((section, si) => <section key={si} className="cockpit-print-section">
              <div className="cockpit-print-section-header">
                <span className="cockpit-print-section-title">
                  {section.title}
                </span>
                {section.subtitle && <span className="cockpit-print-section-subtitle">
                    {section.subtitle}
                  </span>}
              </div>
              <div className="cockpit-print-section-items">
                {(section.items || []).map((item, ii) => <div key={`${si}-${ii}`} className={`cockpit-print-item${item.strong ? " strong" : ""}`}>
                    <span className="cockpit-print-item-label">
                      {item.label}
                    </span>
                    <span className="cockpit-print-item-leader" aria-hidden="true" />
                    <span className="cockpit-print-item-value">
                      {item.value}
                    </span>
                  </div>)}
              </div>
            </section>)}
        </div>
      </article>
    </div>;
  return <>
      {renderChart("inline")}
      {renderPrintLayout()}
      <div id={backdropId} className="cockpit-fullscreen-backdrop" data-open={isFullscreen ? "true" : "false"} onClick={e => {
    if (e.target === e.currentTarget) closeFullscreen();
  }}>
        {isFullscreen && renderChart("fullscreen", fullscreenRootRef)}
      </div>
    </>;
};

<div className="cover-image-frame">
  <Frame caption="Image source: Air Canada">
    <img src="https://mintcdn.com/virtualaircanada/iQJB1gDJzxYoDw5J/images/aops/fleet/dh4.png?fit=max&auto=format&n=iQJB1gDJzxYoDw5J&q=85&s=a7e34a8fab9e8a4c1ab5b27d246b0042" alt="De Havilland Dash 8-400" noZoom className="cover-image" width="800" height="460" data-path="images/aops/fleet/dh4.png" />
  </Frame>
</div>

# De Havilland Dash 8‑400 (Q400)

**Comprehensive Normal & Abnormal Checklist ASOP**

<Info>For flight‑simulation training only – NOT for real‑world aviation use.</Info>

**Version 1.1 - 23 May 2026**

***

## Legend

* **PF** – Pilot Flying  **PM** – Pilot Monitoring
* *Italic* – Call‑outs  **Bold** – Memory item/trigger
* (A) – Automatic call/alert  (M) – Manoeuvre

***

## Normal Operations Checklists

<CockpitChecklist
  title="Q400 Normal Operations"
  sections={[
{
  title: "Power-Up & Acceptance",
  items: [
    { label: "Parking Brake", value: "SET", strong: true },
    { label: "Battery Master", value: "ON (VERIFY >=24 V)" },
    { label: "External Power", value: "ON (IF AVAIL)" },
    { label: "APU", value: "START - ON BUS" },
    { label: "Avionics Master", value: "ON" },
    { label: "IRS", value: "NAV", strong: true },
    { label: "Oxygen", value: "TESTED, 100%" },
    { label: "Gear Pins / Covers", value: "REMOVED & STOWED" },
  ],
},
{
  title: "Preliminary Cockpit",
  items: [
    { label: "CVR", value: "TEST", strong: true },
    { label: "Emergency Exit Lights", value: "ARMED", strong: true },
    { label: "CAS Messages", value: "CHECKED (NO RED/AMBER)", strong: true },
    { label: "ELT", value: "ARMED", strong: true },
    { label: "Fire Extinguishers", value: "CHECKED" },
  ],
},
{
  title: "Cockpit Prep",
  subtitle: "Flows",
  items: [
    { label: "Overhead (W-pattern) - Forward Panel - Pedestal", value: "COMPLETE FLOW PATTERN", strong: true },
    { label: "Fuel Boost Pumps", value: "ON (VERIFY QTY)" },
    { label: "Hydraulic Pumps (#1 & #2)", value: "ON" },
    { label: "Bleed Air", value: "AUTO" },
    { label: "Pressurization", value: "AUTO" },
    { label: "Window / Pitot Heat", value: "OFF (UNTIL ENGINE START)" },
    { label: "FMS Preflight", value: "COMPLETE" },
    { label: "Radios / NAVAIDs", value: "SET" },
  ],
},
{
  title: "Cockpit Prep",
  subtitle: "Checklist (PM)",
  items: [
    { label: "Cockpit Prep Checklist", value: "PM INITIATES" },
    { label: "Gear Pins & Covers", value: "REMOVED" },
    { label: "IRS", value: "ALIGNED" },
    { label: "Fuel Qty", value: "___ KG, BALANCED" },
    { label: "Take-Off Briefing", value: "COMPLETED" },
    { label: "Checklist", value: "COMPLETE" },
  ],
},
{
  title: "Before Start",
  items: [
    { label: "Flight Deck Door", value: "CLOSED & LOCKED" },
    { label: "Fuel", value: "___ KGS, PUMPS ON" },
    { label: "Passenger Signs", value: "ON" },
    { label: "Condition Levers", value: "START & FEATHER" },
    { label: "Power Levers", value: "DISC" },
    { label: "Anti-Collision Beacon", value: "ON" },
    { label: "Parking Brake", value: "SET" },
  ],
},
{
  title: "Engine Start",
  subtitle: "PW150A - FADEC",
  items: [
    { label: "Condition Lever (Eng 1)", value: "START & FEATHER" },
    { label: "Start Button", value: "PUSH" },
    { label: "Monitor", value: "NG ROTATION RISING" },
    { label: "At ~52% Ng", value: "CONDITION LEVER - FLIGHT IDLE (FUEL INTRODUCTION)" },
    { label: "Monitor", value: "ITT RISE <10 S, OIL PRESSURE RISING" },
    { label: "FADEC Auto-Cutout", value: "~63% NG - STARTER DISENGAGES" },
    { label: "Engine 2", value: "REPEAT PROCEDURE" },
    { label: "Both Stable", value: "CONDITION LEVERS - MAX (1020 RPM)" },
  ],
},
{
  title: "After Start",
  subtitle: "Flows",
  items: [
    { label: "APU", value: "OFF (IF NOT REQUIRED)" },
    { label: "Generators", value: "ON" },
    { label: "Pitot / Stall Heat", value: "ON" },
    { label: "Anti-Ice", value: "AS REQD" },
    { label: "Flight Controls", value: "CHECKED (FULL TRAVEL)" },
    { label: "Flaps", value: "T/O CONFIG (5° OR 15°)" },
    { label: "Stabilizer Trim", value: "___ UNITS" },
    { label: "NWS", value: "ON" },
    { label: "Bleeds", value: "NORM" },
  ],
},
{
  title: "After Start",
  subtitle: "Checklist (PM)",
  items: [
    { label: "After-Start Checklist", value: "PM INITIATES" },
    { label: "Anti-Ice", value: "____" },
    { label: "Rudder & Aileron Trim", value: "ZERO" },
    { label: "Flaps", value: "__ / ____" },
    { label: "Stabilizer Trim", value: "__ UNITS" },
    { label: "Recall", value: "CHECKED" },
    { label: "Autobrake", value: "RTO" },
  ],
},
{
  title: "Taxi",
  items: [
    { label: "Condition Levers", value: "MAX (1020 RPM)" },
    { label: "Taxi Speed Straight", value: "<= 25 KT" },
    { label: "Turns", value: "<= 10 KT" },
    { label: "Nosewheel Steering", value: "TILLER / RUDDER PEDALS" },
  ],
},
{
  title: "Before Take-Off",
  subtitle: "Up to the Line",
  items: [
    { label: "Autofeather", value: "ARMED (GREEN LIGHT)" },
    { label: "Flight Controls", value: "CHECKED" },
    { label: "V-Speeds", value: "ANNOUNCED (V1 / VR / V2)" },
    { label: "Flaps", value: "CONFIRM SETTING, GREEN LIGHT" },
    { label: "Stabilizer Trim", value: "___ UNITS" },
    { label: "Cabin", value: "SECURE" },
  ],
},
{
  title: "Before Take-Off",
  subtitle: "Below the Line",
  items: [
    { label: "TCAS", value: "TA/RA" },
    { label: "Strobes", value: "ON" },
    { label: "Landing Lights", value: "ON" },
    { label: "Transponder", value: "TA/RA" },
    { label: "Completion Call", value: "CABIN READY, BELOW-THE-LINE COMPLETE" },
  ],
},
{
  title: "T.O. Roll & Initial Climb",
  subtitle: "Call-Out Memory",
  items: [
    { label: "PM \"80 Knots\"", value: "PF \"CHECKED\"" },
    { label: "PM \"V1\"", value: "-" },
    { label: "PM \"Rotate\"", value: "PF ROTATE TO ~10° PITCH" },
    { label: "PM \"Positive Climb\"", value: "PF \"GEAR UP\"" },
  ],
},
{
  title: "After Take-Off / Climb",
  items: [
    { label: "Acc Alt Reached", value: "CLIMB POWER", strong: true },
    { label: "Flap Retraction", value: "ON SCHEDULE (SPEED BUGS)" },
    { label: "Condition Levers", value: "900 RPM (CLIMB)" },
    { label: "Autofeather", value: "OFF (ABOVE 400 FT AGL)" },
    { label: "Bleeds", value: "NORM" },
    { label: "10 000 FT", value: "\"10 000 - LIGHTS OFF\"" },
    { label: "STD QNH", value: "SET BOTH (ABOVE TRANS ALT)" },
  ],
},
{
  title: "Cruise (Hourly)",
  items: [
    { label: "Condition Levers", value: "850 RPM (CRUISE)" },
    { label: "Fuel Check", value: "FOB VS PLAN (±300 KG)" },
    { label: "Systems", value: "CAS GREEN" },
    { label: "Waypoint Sequence", value: "NEXT & ETA COMPARE" },
  ],
},
{
  title: "Descent Preparation",
  items: [
    { label: "ATIS / STAR", value: "RECEIVED & INSERTED" },
    { label: "Approach Briefing", value: "COMPLETED" },
    { label: "Landing Data", value: "VREF ___, MINIMUMS ___" },
    { label: "Pressurization", value: "LAND ALT ___" },
    { label: "GPWS Flap Override", value: "AS REQD" },
    { label: "Recall", value: "CHECKED" },
  ],
},
{
  title: "Approach",
  items: [
    { label: "Altimeters", value: "SET (QNH)" },
    { label: "Minimums", value: "__ FT" },
    { label: "Condition Levers", value: "MAX (1020 RPM)" },
    { label: "Gear", value: "DOWN (BELOW 200 KIAS)" },
    { label: "Flaps 15", value: "SET (BELOW 172 KIAS)" },
    { label: "Flaps 35", value: "SET (BELOW 158 KIAS)" },
    { label: "Approach Briefing", value: "CONFIRMED" },
    { label: "Seat Belts", value: "ON" },
  ],
},
{
  title: "Landing",
  items: [
    { label: "1 000 FT", value: "STABLE/UNSTABLE - GEAR DOWN, FLAPS 35" },
    { label: "500 FT", value: "\"LANDING\" - FINAL SCAN" },
    { label: "50/40/30/20/10 FT", value: "(A) - FLARE" },
  ],
},
{
  title: "After Landing",
  items: [
    { label: "Power Levers", value: "DISC" },
    { label: "Flaps", value: "UP" },
    { label: "Autofeather", value: "OFF" },
    { label: "Pitot / Stall Heat", value: "AS REQD" },
    { label: "APU", value: "START (IF REQ)" },
    { label: "Strobes", value: "OFF" },
    { label: "Transponder", value: "STBY" },
    { label: "Weather Radar", value: "OFF" },
    { label: "Completion Call", value: "AFTER-LANDING CHECKLIST COMPLETE" },
  ],
},
{
  title: "Shutdown",
  items: [
    { label: "Parking Brake", value: "SET" },
    { label: "Condition Levers", value: "START & FEATHER (COOL 30 S)" },
    { label: "Condition Levers", value: "FUEL OFF" },
    { label: "NWS", value: "OFF" },
    { label: "Passenger Signs", value: "OFF" },
    { label: "Anti-Collision Beacon", value: "OFF" },
    { label: "Fuel Boost Pumps", value: "OFF" },
  ],
},
{
  title: "Securing the Aircraft",
  items: [
    { label: "IRS", value: "OFF" },
    { label: "Emergency Exit Lights", value: "OFF" },
    { label: "Window Heat", value: "OFF" },
    { label: "Avionics Master", value: "OFF" },
    { label: "Battery Master", value: "OFF" },
    { label: "Post-Flight Report", value: "SENT", strong: true },
  ],
},
]}
/>

### Cautions & Notes

<Warning>
  **Aborted Start** - Condition Lever FUEL OFF immediately. Max ITT start limit 920 °C for max 20 s. Min 30 s between start attempts.
</Warning>

<Note>
  **Taxi** - Brake check at first movement: *"Brakes checked, pressure \_\_\_"*.
</Note>

<Note>
  **Landing** - Touchdown: Power Levers DISC - GROUND RANGE - Reverse. Reverse idle at 60 kt.
</Note>

***

## Abnormal / Memory Items (Extract)

### ENGINE FIRE or SEVERE DAMAGE (In‑Flight)

| Step | Action                                              |
| ---- | --------------------------------------------------- |
| 1    | **Power Lever (affected)** → FLIGHT IDLE            |
| 2    | **Condition Lever (affected)** → CONFIRM → FUEL OFF |
| 3    | **Alternate Feather** → PUSH (if Np not decreasing) |
| 4    | **Fuel Firewall Shutoff** → CLOSED                  |
| 5    | **Engine Fire Handle** → CONFIRM → PULL             |
| 6    | **Extinguisher FWD** → PUSH, wait 30 s              |
| 7    | If fire persists → **Extinguisher AFT** → PUSH      |

### PROPELLER OVERSPEED

| Item                           | Action                       |
| ------------------------------ | ---------------------------- |
| **Power Lever (affected)**     | FLIGHT IDLE                  |
| **Condition Lever (affected)** | START & FEATHER              |
| If Np not decreasing           | **Alternate Feather** → PUSH |
| Monitor                        | Np decay toward feather      |

### EMERGENCY DESCENT

| Item                 | Action                                                |
| -------------------- | ----------------------------------------------------- |
| **Announce**         | *"EMERGENCY DESCENT"* (×3)                            |
| SIGNS                | ON                                                    |
| Oxygen Masks         | ON                                                    |
| **Condition Levers** | MAX (1020 RPM)                                        |
| **Power Levers**     | FLIGHT IDLE                                           |
| **Target Speed**     | VMO (altitude dependent, max \~286 KIAS at 18,000 ft) |
| Descend              | Lowest safe alt or 10 000 ft                          |

*(See QRH for full procedure.)*

***

## Quick‑Reference Flap Schedule (Dash 8‑400)

| Config   | Placard Limit          |
| -------- | ---------------------- |
| Flaps 0  | 245 KIAS (SL–8 000 ft) |
| Flaps 5  | 200 KIAS               |
| Flaps 10 | 181 KIAS               |
| Flaps 15 | 172 KIAS               |
| Flaps 35 | 158 KIAS               |

## Propeller RPM Settings

| Phase                | Np (RPM)   |
| -------------------- | ---------- |
| Take‑Off / Go‑Around | 1020 (MAX) |
| Climb                | 900        |
| Cruise               | 850        |

## Typical Speeds (\~56 000 lb / Flaps 15)

| Speed | KIAS  |
| ----- | ----- |
| V1    | \~108 |
| VR    | \~112 |
| V2    | \~118 |
| VREF  | \~116 |

## Gear Limits

| Limit                | Speed    |
| -------------------- | -------- |
| VLO (extend/retract) | 200 KIAS |
| VLE (extended)       | 215 KIAS |

***

### Revision History

| Rev | Date        | Note                                                                                                                 | Author    |
| --- | ----------- | -------------------------------------------------------------------------------------------------------------------- | --------- |
| 1.0 | 28 Mar 2026 | Initial checklist issue                                                                                              | ACVA Team |
| 1.1 | 23 May 2026 | Accuracy pass: PW150A ITT start limit corrected (920 °C / 20 s), emergency descent VMO clarified as altitude-stepped | ACVA Team |

***

<Note>
  ### Disclaimer

  These checklists are **abridged adaptations** of De Havilland / Bombardier public‑domain procedures for simulation. They do not replicate proprietary FCOM text and must **not** be used for commercial operations.
</Note>
