Skip to content

[feat] enable Octavi IFR-1 shift mode indicator support#2845

Open
eFloh wants to merge 2 commits intoMobiFlight:mainfrom
eFloh:feature/enable-octavi-ifr-shift-btn
Open

[feat] enable Octavi IFR-1 shift mode indicator support#2845
eFloh wants to merge 2 commits intoMobiFlight:mainfrom
eFloh:feature/enable-octavi-ifr-shift-btn

Conversation

@eFloh
Copy link
Contributor

@eFloh eFloh commented Mar 20, 2026

When applying this PR, the Octavi IFR-1 interface will have two new functions:

  • added output for the blinking context LED (output bit 6 causes the current active context LED to flash starting in firmware ver. 1.2)
  • added virtual Shift/Unshift-Mode Buttons that will be "pressed" when the IFR-1 is switching the shift context mode.
    these can be used to set the new output pin to make the context blink or to control a variable to detect the shift mode in Mobiflight.

Sample mobiflight rules:

{
  "Name": "Test Shiftmode",
  "ConfigFiles": [
    {
      "Label": "New file",
      "FileName": null,
      "ReferenceOnly": false,
      "EmbedContent": true,
      "ConfigItems": [
        {
          "Source": {
            "MobiFlightVariable": {
              "TYPE": "number",
              "Name": "IsIFRShifted",
              "Number": 0.0,
              "Text": "",
              "Expression": "$"
            },
            "Type": "VariableSource"
          },
          "TestValue": {
            "type": 1,
            "Float64": 1.0,
            "String": null
          },
          "Device": {
            "Name": "Blink Context",
            "Pin": "Blink Context",
            "Brightness": 255,
            "PwmMode": false,
            "Type": "Output"
          },
          "DeviceType": "Output",
          "DeviceName": "Blink Context",
          "GUID": "aaa0b5d2-1e55-4048-a2b1-939fe9a845de",
          "Active": true,
          "Name": "blinky",
          "Type": "OutputConfigItem",
          "Controller": {
            "Name": "IFR1",
            "Serial": "JS-439ed980-c5f4-11ee-8001-444553540000"
          },
          "RawValue": "0",
          "Value": "0"
        },
        {
          "button": {
            "onPress": {
              "Type": "VariableInputAction",
              "Variable": {
                "TYPE": "number",
                "Name": "IsIFRShifted",
                "Number": 0.0,
                "Text": "0",
                "Expression": "0"
              }
            },
            "onRelease": null,
            "onLongRelease": null,
            "onHold": null,
            "LongReleaseDelay": 350,
            "HoldDelay": 350,
            "RepeatDelay": 0
          },
          "Device": {
            "Type": "Button",
            "Name": "Button_UNSHIFT_SW"
          },
          "DeviceType": "Button",
          "DeviceName": "Button_UNSHIFT_SW",
          "GUID": "43931555-2f52-4acb-ac1c-25582934624f",
          "Active": true,
          "Name": "unshifted",
          "Type": "InputConfigItem",
          "Controller": {
            "Name": "IFR1",
            "Serial": "JS-439ed980-c5f4-11ee-8001-444553540000"
          },
          "RawValue": "RELEASE",
          "Value": " "
        },
        {
          "button": {
            "onPress": {
              "Type": "VariableInputAction",
              "Variable": {
                "TYPE": "number",
                "Name": "IsIFRShifted",
                "Number": 1.0,
                "Text": "1",
                "Expression": "1"
              }
            },
            "onRelease": null,
            "onLongRelease": null,
            "onHold": null,
            "LongReleaseDelay": 350,
            "HoldDelay": 350,
            "RepeatDelay": 0
          },
          "Device": {
            "Type": "Button",
            "Name": "Button_SHIFT_SW"
          },
          "DeviceType": "Button",
          "DeviceName": "Button_SHIFT_SW",
          "GUID": "083bca71-9a85-4a13-87cf-56471d3ecc5d",
          "Active": true,
          "Name": "Neue Eingabe-Konfiguration",
          "Type": "InputConfigItem",
          "Controller": {
            "Name": "IFR1",
            "Serial": "JS-439ed980-c5f4-11ee-8001-444553540000"
          },
          "RawValue": "RELEASE",
          "Value": " "
        }
      ]
    }
  ],
  "Sim": "msfs",
  "Aircraft": [],
  "Features": {
    "FSUIPC": false,
    "ProSim": false
  },
  "_version": "0.9"
}

@felixc7 this may be a present for you, thanks for letting me join the beta group...

@eFloh eFloh requested a review from DocMoebiuz as a code owner March 20, 2026 22:50
@eFloh eFloh force-pushed the feature/enable-octavi-ifr-shift-btn branch from 28d75b8 to 576d2d0 Compare March 20, 2026 22:55
@github-actions
Copy link

Build for this pull request:
MobiFlightConnector.zip

@eFloh eFloh marked this pull request as draft March 21, 2026 15:23
@eFloh
Copy link
Contributor Author

eFloh commented Mar 21, 2026

this is currently broken (DuplicateKeyException - update will follow.

@eFloh eFloh force-pushed the feature/enable-octavi-ifr-shift-btn branch from cea790c to 714a690 Compare March 21, 2026 15:45
@github-actions
Copy link

Build for this pull request:
MobiFlightConnector.zip

@github-actions
Copy link

Build for this pull request:
MobiFlightConnector.zip

@eFloh eFloh force-pushed the feature/enable-octavi-ifr-shift-btn branch from 1895a2b to 96e5bf1 Compare March 21, 2026 16:27
@github-actions
Copy link

Build for this pull request:
MobiFlightConnector.zip

@eFloh eFloh marked this pull request as ready for review March 21, 2026 16:49
@eFloh
Copy link
Contributor Author

eFloh commented Mar 21, 2026

this is now tested and working together with MS FS 2022 and IFR-1 Firmware v1.2 and from my perspective ready to merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant