Skip to content

Releases: RedMeKool/BmsLightBridge

v1.0.8

Choose a tag to compare

@RedMeKool RedMeKool released this 18 Jun 19:53

BmsLightBridge v1.0.8

DCS World support (F-16C Viper)

BmsLightBridge can now drive your cockpit hardware from DCS World as well as Falcon BMS — switch between the two with a single toggle in the toolbar, no separate install needed.

What's new

Simulator support

  • BMS/DCS toggle — a sliding switch in the toolbar lets you switch simulators on the fly; the choice is remembered between sessions (defaults to BMS on first run)
  • DCS-BIOS integration — BmsLightBridge listens to the standard DCS-BIOS UDP export stream (239.255.50.10:5010); requires DCS-BIOS installed in your DCS scripts folder
  • 130 F-16C Viper signals — all LED indicators exported by DCS-BIOS are available: eyebrow warnings, AOA indexer, caution panel, landing gear, EWS/RWR panel, ECM panel, electrical/EPU system
  • ICP/DED sync for DCS — the WinWing ViperAce ICP DED display mirrors the DCS F-16C DED pages in real time, including inverse-text fields
  • Reliable connection detection — connection status is based on whether DCS.exe is running (same approach as BMS), so AutoSync and Helios start as soon as DCS launches — not only once you're in the cockpit, and briefly pressing Escape no longer stops sync or shuts down Helios
  • Aircraft selector — dropdown in the toolbar when DCS is active; F-16C Viper only for now, more modules can be added in future releases
  • Per-simulator Helios profiles — separate profile paths for BMS and DCS; the correct profile loads automatically when sync starts

Independent mappings per simulator

  • BMS and DCS each have their own set of mappings — the same physical output (WinWing light or Arduino pin) can be mapped to different signals per simulator
  • Duplicate-output detection, Remove All, and Test All Mappings are all scoped to the active simulator
  • Switching simulators rebuilds the signal list automatically

Per-simulator status indicator

  • The connection banner shows "FALCON BMS" or "DCS WORLD" and the correct connected/disconnected state depending on which simulator is active

Toolbar layout

  • All toolbar elements (Start/Stop Sync, BMS/DCS toggle, aircraft selector, Auto Sync, Remove All, Test All Mappings, status indicators) are on a single row, always fully readable

Known limitations

  • Some BMS-specific signals have no DCS-BIOS equivalent and remain unmapped for DCS: AUX comm panel lamps, LE FLAPS, Chaff/Flare Lo, Gear Handle lamp, TFR Engaged/Standby
  • DED "big text" (b format marker) renders as normal text size — not yet differentiated
  • Only the F-16C Viper module is supported in DCS for now

Upgrade notes

  • Existing BMS mappings and configuration carry over unchanged
  • If you had a single Helios profile path configured, it is automatically migrated to the new "BMS" profile slot on first load
  • DCS requires DCS-BIOS to be installed — BmsLightBridge does not bundle it

v1.0.6

Choose a tag to compare

@RedMeKool RedMeKool released this 03 May 08:41

BmsLightBridge v1.0.6
New

COM port dropdown now shows the device name next to the port number (e.g. COM5 — F16 Misc G3). Names are resolved via DirectInput, Windows registry, and WMI — no hardcoding.
Mapping list shows the device name for Arduino mappings, consistent with WinWing mappings.
Automatic COM port recovery: if a driver update or USB re-enumeration changes a board's port number, BmsLightBridge detects it by USB hardware identifier (VID, PID, serial number) and updates all affected mappings silently on startup.

Fixed

Test Signal and Test All Mappings could activate the wrong pin when two signals were tested in the same session without restarting the app.
SharpDX exceptions no longer appear in the Visual Studio output when a configured joystick is disconnected.
ICP not connected exception is now handled silently instead of surfacing as an unhandled error.

Other

Global exception handler added — unhandled errors are written to BmsLightBridge_errors.log next to the executable.

v1.0.2

Choose a tag to compare

@RedMeKool RedMeKool released this 15 Mar 19:01

BmsLightBridge — Release Notes

v1.0.2

Changed: Removed hidapi.dll dependency

The native hidapi.dll has been removed. WinWing LED and brightness control now uses HidSharp (already present as a NuGet package for ICP/DED communication) for all HID writes. The application is now fully self-contained with no native DLL dependencies.

Improved: Internal code optimisations

Several performance improvements on the hot write path and background poll loop:

  • WinWing HID packets are now written into a pre-allocated buffer instead of allocating a new byte[] on every write cycle.
  • Shared memory light bits are now read using MemoryMarshal.Read<uint> instead of BitConverter.ToUInt32, avoiding unnecessary byte-level overhead.
  • The axis brightness poll callback now uses an O(1) dictionary lookup to update the UI slider, instead of a linear scan over all brightness channels.
  • Joystick devices with multiple brightness bindings are now polled exactly once per cycle instead of once per binding.

New: Menu bar

A menu bar has been added directly below the title bar, providing quick access to all major functions:

  • File — Import Config, Export Config, Exit
  • Actions — Start Sync, Stop Sync, Test All Mappings, Remove All Mappings, Refresh Devices
  • Settings — Auto Sync (checkbox), Start Minimized (checkbox)
  • Help — About, GitHub Repository

New: Configuration import and export

Configurations can now be saved to and loaded from an external JSON file via File → Export Config and File → Import Config. Useful for backups or sharing a setup between machines. Importing requires confirmation and fully replaces the active configuration.

New: Start minimized

A new option under Settings → Start Minimized causes BmsLightBridge to open minimized to the taskbar on startup. The setting is saved persistently.

New: Tooltips

All controls — buttons, checkboxes, sliders, comboboxes, and radio buttons — now show a short description when hovered with the mouse.

Changed: Window title

The application version is now shown in the title bar: BMS Light Bridge v1.0.2.

Changed: Auto Sync

The Auto Sync toggle remains visible as a checkbox in the main toolbar and is also accessible via Settings → Auto Sync in the menu bar.

BmsLightBridge v1.0.1

Choose a tag to compare

@RedMeKool RedMeKool released this 13 Mar 22:09

v1.0.1 — Bug Fixes

DED invert rendering fixed (CRUS/TOS mode)
Fixed an issue where inverted characters on the ICP DED LCD were not displayed correctly. Selecting TOS mode in the CRUS menu (via M-SEL) would not show the expected white-on-black highlighting on the physical ICP. The root cause was that BMS's Invert[] shared memory array is not null-terminated like the DEDLines[] array — reading it with the same logic caused invert markers to be silently dropped. The invert data is now read correctly across the full 24-column width.

First-launch config save error fixed
Fixed a crash on first launch where clicking AutoSync would show "Failed to save configuration: Unable to find the specified file". This happened because the save routine used File.Replace(), which requires the destination file to already exist. On a clean install there is no config.json yet, so the call failed. The app now correctly creates the file on first save.

The attached .exe now includes the NET 8.0 Desktop Runtime

BmsLightBridge v1.0.0

Choose a tag to compare

@RedMeKool RedMeKool released this 07 Mar 15:50

BmsLightBridge v1.0.0

First public release of BmsLightBridge — a direct hardware integration tool for Falcon BMS cockpit lighting and display synchronisation, without relying on middleware like SimAppPro.

What's included

Cockpit light signal mapping
Map individual Falcon BMS lamp signals directly to physical lights on WinWing controllers and Arduino boards. Supported signal groups include Caution Panel, Threat Warning (TWP), EWS, ECM, Landing Gear, and more.

Brightness synchronisation
Bind WinWing device brightness channels to BMS cockpit lighting variables in real time. Supports axis binding (e.g. a physical dimmer knob) and fixed brightness values per channel.

DED LCD synchronisation
Renders the Falcon BMS Data Entry Display (DED) directly onto the WinWing ViperAce ICP dot-matrix LCD via HID protocol — no SimAppPro required.

Arduino lighting control
Controls lights on Arduino boards via the F4TS protocol over a serial COM port.

Helios profile launcher
Automatically starts a configured Helios profile when BmsLightBridge launches.

Supported hardware

Hardware Capabilities
WinWing ViperAce ICP DED LCD sync, brightness, light mapping
WinWing CarrierAce PTO 2 Light mapping, brightness
WinWing Orion Throttle Base II + F16 Grip Light mapping, brightness
WinWing CarrierAce UFC + HUD Brightness (UFC, LCD & HUD backlight)
WinWing CarrierAce MFD C / L / R Brightness
Arduino (via F4TS) Light mapping

Requirements

  • Windows 10/11 (64-bit)
  • Falcon BMS 4.38.1 or later
  • .NET 8.0 Desktop Runtime (download here)
  • WinWing ViperAce ICP required for DED LCD sync

Installation

  1. Download BmsLightBridge.exe below
  2. Place it in a folder of your choice
  3. Run the application — no installer needed
  4. Start Falcon BMS and click Start Sync

Known limitations

  • UFD (Up-Front Display) support is not yet included — planned for a future release
  • Requires Falcon BMS to be running before starting sync