Current release. FFB-Bridge v1.1.2 is live. These docs track the current app described by the release manifest. If a section reads stale, flag it via the feedback form.

Diagnostics tab

The Diagnostics tab lives inside the Support page (Sidebar → Support → Diagnostics). It's the deeper triage surface: a one-glance triage summary at the top, live runtime counters and a searchable event log below, and the support-bundle export we ask for when you open a feedback ticket.

Diagnostics tab inside the Support page. Triage summary at the top, runtime signals and searchable event log below, support-bundle export in the header bar. Diagnostics tab inside the Support page. Triage summary at the top, runtime signals and searchable event log below, support-bundle export in the header bar.
Figure 1. Diagnostics tab inside the Support page. Triage summary at the top, runtime signals and searchable event log below, support-bundle export in the header bar.

Triage summary

Cards at the top answer the first support question: which part of the bridge is healthy, suspicious, or failed right now.

  • Device — whether the supported joystick is open and the runtime can send force commands.
  • Data source — Live, Mock, or Idle, with a reminder when the app is intentionally using the demo/mock source.
  • Force output — whether the pipeline is driving the stick and how many allocated effects are active.
  • Log health — whether the current session log contains exceptions, errors, or warnings that need attention.
  • Hardware — shown only when a hardware compatibility override is in effect (software compatibility mode, axis invert / swap, the DirectInput backend, or an experimentally allowed unlisted device), so support can see at a glance which non-default hardware setting is active.
Diagnostics triage close-up. The cards separate device state, data source, force output, and log health before you dig into details. Diagnostics triage close-up. The cards separate device state, data source, force output, and log health before you dig into details.
Figure 2. Diagnostics triage close-up. The cards separate device state, data source, force output, and log health before you dig into details.

Runtime signals

The runtime panel is the live counter set for the current session: uptime, data age, UI telemetry rate, control-loop rate, target rate, active / allocated effects, reassertions, and exception count. Use it when the stick feels stale, intermittent, or weaker than expected; it tells you whether telemetry, the control loop, or the HID/PID, DirectInput fallback, or evdev output path is the likely suspect.

Event log

The event log is searchable and level-filtered. It shows the visible rolling session log, while the full on-disk session log is still available through the header actions. Levels are colour-coded:

  • Info — normal lifecycle and connection events.
  • Warn — amber. Usually recoverable, but useful context.
  • Error — red. Something failed or fell back.

Type a plain-text match into Search log to narrow the visible rows: simconnect, pipeline, device, or any other substring. The Info / Warn / Error toggles trim by severity, and the count in the corner tells you how many visible rows remain.

Event log strip. Warnings and errors stay readable, the text filter narrows the view, and Copy visible exports exactly the rows currently shown. Event log strip. Warnings and errors stay readable, the text filter narrows the view, and Copy visible exports exactly the rows currently shown.
Figure 3. Event log strip. Warnings and errors stay readable, the text filter narrows the view, and Copy visible exports exactly the rows currently shown.

Copying and exporting logs

Use Copy visible when you want to quote only the filtered rows. Use Copy full log or Export full log... when support needs the whole session, including lines that are currently filtered out or scrolled away. Clipboard and file exports are plain UTF-8 text.

Support-bundle export

The Support bundle button — top-right of the Diagnostics header — produces a single ZIP containing the files that let us reproduce your problem without access to your machine. What's in it:

  • sysinfo.txt — OS, kernel, distro, CPU model, RAM, .NET runtime version, locale.
  • session.log — the current session's complete event log (not just what's on screen).
  • last-crash.log and, when available, previous-session.log — crash/restart context from the last run.
  • doctor.json — the most recent Support-page scan results in machine-readable form.
  • tunables.json — the active profile's values at the moment of export.
  • hardware-settings.json — hardware backend, smoothing, polarity, axis-swap, and compatibility settings at the moment of export.
  • simconnect.txt — the XML the bridge last read from MSFS, with non-localhost IP addresses redacted.
  • Platform extras — hid-devices.txt on Windows, or USB/input stack files on Linux.

The bundle is written locally. Diagnostics then shows the filename, size, a feedback-form link, and, where the desktop can reveal the file location, a Reveal file action. The bundle never leaves your machine automatically; you choose whether to attach it to a feedback report.

After export, a banner shows the bundle filename, size, and feedback-form link. The support bundle never leaves your machine automatically. After export, a banner shows the bundle filename, size, and feedback-form link. The support bundle never leaves your machine automatically.
Figure 4. After export, a banner shows the bundle filename, size, and feedback-form link. The support bundle never leaves your machine automatically.
What it does NOT contain

No personal identifiers, no cloud credentials, no network traffic capture. The full list of allow-listed filenames the bundle is permitted to include lives in the source; anything outside that list is omitted. See Support bundles for the complete list.