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.


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.


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.


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.logand, 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.txton 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.


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.