{
  "formatVersion": 1,
  "kind": "ffb-bridge.profile",
  "id": "addon-rotorsim-ec135",
  "revision": 3,
  "metadata": {
    "title": "Rotorsim EC135",
    "description": "Rotorsim EC135: aircraft-owned cyclic neutral in the documented FFB mode; estimated spring and damping.",
    "author": {
      "name": "FFB-Bridge",
      "id": "rohsam"
    },
    "aircraft": [
      {
        "name": "EC135",
        "kind": "helicopter",
        "identifiers": [
          {
            "scheme": "airframedb",
            "value": "eurocopter-ec135"
          }
        ]
      }
    ],
    "sims": [],
    "hardware": [],
    "tags": [
      "starting-point",
      "estimated-feel",
      "third-party",
      "reviewed-configuration"
    ],
    "targets": [
      {
        "aircraftId": "eurocopter-ec135",
        "implementationId": null,
        "simulator": "xplane12",
        "scope": "addon-starting-point",
        "developer": "Rotorsim",
        "addonName": "Rotorsim EC135"
      }
    ],
    "evidence": {
      "basis": "research-derived-estimates",
      "summary": "Rotorsim EC135: aircraft-owned cyclic neutral in the documented FFB mode; estimated spring and damping.",
      "reviewedOn": "2026-09-24",
      "sourceUrls": [
        "https://www.rotorsim.de/de/manual/users-guide/installation",
        "https://www.rotorsim.de/de/manual/users-guide/change-log",
        "https://www.rotorsim.de/de/manual/users-guide/flight-manual/controls",
        "https://www.rotorsim.de/de/manual/users-guide/technical-information/preferences-file-format",
        "https://www.rotorsim.de/de/forum/englischsprachiges-forum?catid=4&id=103&start=0&view=topic",
        "https://skcrftrepo.rotorsim.de/aircraft/EC%20135%20V5/moza_ab9_ec135.preset",
        "https://developer.x-plane.com/wp-content/plugins/datarefs-app/datarefs.json",
        "https://skcrftrepo.rotorsim.de/aircraft/EC%20135%20V5/skunkcrafts_updater.cfg",
        "https://skcrftrepo.rotorsim.de/aircraft/EC%20135%20V5/plugins/ec135/lin.xpl",
        "https://skcrftrepo.rotorsim.de/aircraft/EC%20135%20V5/plugins/ec135/win.xpl",
        "https://skcrftrepo.rotorsim.de/aircraft/EC%20135%20V5/ec135.acf",
        "https://skcrftrepo.rotorsim.de/aircraft/EC%20135%20V5/skunkcrafts_updater_whitelist.txt",
        "https://airframedb.com/aircraft/eurocopter-ec135"
      ],
      "estimatedSettings": [
        "Force amplitudes, damping, friction, response curves and cue onset are engineering estimates, not measured hand forces.",
        "The indicated-airspeed tuning reference is a selected control-feel reference, not published cruise TAS."
      ],
      "limitations": [
        "Rotorsim EC135 XP12 v5.36. Original ACF identifies EC35 and EC 135 V5. The reader additionally requires the custom mode3; title/native trim alone cannot admit the integration.",
        "Hydraulically controlled four-blade helicopter with an artificial cyclic force-neutral point. Fixed nominal spring/damping; no airspeed-squared loading, body-rate torque or rotor-frequency inference.",
        "The add-on owns FTR, beep trim and AFCS neutral. Bridge follows fresh native pitch/roll trim in its FFB mode, independently of AP. Local FTR and trim relief remain disabled; no trim is added to simulator input.",
        "Custom AFCS/SAS transitions are version-dependent. Generic AP-follow is disabled because the developer requires trim following even with AP and servos off. No HPG H135/H145 interfaces are borrowed. AP servo-follow and neutral hold remain disabled; engagement indicators are not force-demand signals.",
        "Twin turbine, four-blade EC135 with skids and no flaps. Cockpit and mission equipment share this control architecture. Keep main-rotor periodic frequency off until shaft-speed semantics are accepted. ",
        "120 KIAS is an estimated feel reference, not cruise TAS or a certified limit. No invented Mach, VNE or weight scheduling.",
        "ADR-0113 read-only mode plus two independently fresh, bounded trim channels. Invalid/stale targets release follow and do not enable a competing local owner. Pause and aircraft change invalidate samples. Native PID or supported absolute-position follow remains inside Armed safety gates. No add-on or firmware configuration is applied.",
        "Spring 0.35; lateral scale 0.72; trim authorities 0/0; per-axis output cap .55. Editable engineering estimates, not measured hand forces. No body-rate torque, surface following or fabricated hydraulic-failure loads.",
        "Physical and installed-product checks remain deferred. Original files and static inspection establish the documentary contract, not observed in-flight FTR or AFCS behavior.",
        "Select the add-on FFB/MOZA joystick mode to supply its neutral contract. Other modes retain the conservative fixed-centering profile. Hardware spring travel and gains remain user calibration."
      ]
    },
    "derivedFrom": {
      "kind": "profile",
      "id": "addon-rotorsim-ec135",
      "version": 2
    },
    "createdWith": "FFB-Bridge 1.6",
    "createdAt": "2026-09-21",
    "updatedAt": "2026-09-24",
    "addon": {
      "developer": "Rotorsim",
      "product": "EC135",
      "simulator": "xplane12"
    }
  },
  "compatibility": {
    "minAppVersion": "1.6.0-beta.1"
  },
  "modules": [
    {
      "type": "force-model",
      "schemaVersion": 7,
      "data": {
        "Forces": {
          "SpringStrength": 0.35,
          "SpringDeadband": 0.02,
          "ForceGain": 0,
          "CruiseSpeedRefKnots": 120,
          "MaxOutputForce": 0.55,
          "MasterGain": 0.65,
          "QBlendEnabled": false,
          "QSpringStartKnots": 8,
          "QSpringFullKnots": 60.0,
          "QSpringMinimumFactor": 1,
          "HydraulicAeroLoadFactor": 0,
          "LoadShapingExponent": 1.4,
          "SpringAirspeedStiffenGain": 0,
          "SpringAirspeedStiffenCap": 5,
          "ElevatorForceScale": 1,
          "AileronForceScale": 0.72
        },
        "Ground": {
          "Enabled": true,
          "Rumble": {
            "MinSpeedKt": 2,
            "FullSpeedKt": 30,
            "Gain": 0
          },
          "Thump": {
            "ReferenceSinkFps": 6,
            "MinSinkFps": 1,
            "Gain": 0.5
          },
          "Bumps": {
            "StartSpeedKt": 15,
            "FullSpeedKt": 60,
            "Gain": 0
          },
          "Brake": {
            "MinSpeedKt": 3,
            "FullSpeedKt": 30,
            "BrakeDeadband": 0.05,
            "Gain": 0
          },
          "Reverse": {
            "MinSpeedKt": 30,
            "FullSpeedKt": 120,
            "Gain": 0
          },
          "NosewheelShimmy": {
            "MinSpeedKt": 5,
            "FullSpeedKt": 35,
            "Gain": 0
          },
          "GroundAccelPitch": {
            "Gain": 0,
            "DeadbandG": 0.03
          },
          "SkidScrape": {
            "MinSpeedKt": 2,
            "FullSpeedKt": 10,
            "MaxSpeedKt": 25,
            "Gain": 0.1
          },
          "SurfaceScalingEnabled": true,
          "Undercarriage": 3
        },
        "StickFeel": {
          "TrimFeelEnabled": false,
          "TrimFeel": {
            "ElevatorAuthority": 0.6,
            "AileronAuthority": 0.3
          },
          "GLoadEnabled": false,
          "GLoadStiffness": {
            "MinFactor": 0.6,
            "GGain": 0.06,
            "MaxFactor": 1.15
          },
          "DynamicDeadbandEnabled": false,
          "DynamicDeadband": {
            "LowSpeedWidening": 0.15,
            "FullSpeedRefKnots": 66.0
          },
          "ControlEdgeEnabled": false,
          "ControlEdge": {
            "EdgeStart": 0.85,
            "Gain": 0.3
          },
          "RateDampingEnabled": false,
          "RateDamping": {
            "PitchGain": 0,
            "RollGain": 0,
            "MaxForce": 0.2
          },
          "StickDropEnabled": false,
          "StickDrop": {
            "Force": 0.25,
            "FadeKts": 36.0
          },
          "TrimReliefEnabled": false,
          "TrimRelief": {
            "ElevatorAuthority": 0,
            "AileronAuthority": 0
          },
          "CyclicDampingEnabled": true,
          "CyclicDamping": {
            "Gain": 0.35,
            "MaxForce": 0.35,
            "VelocityNoiseFloor": 0.12,
            "SmoothingTimeConstantSeconds": 0.015,
            "PitchGain": null,
            "RollGain": null
          },
          "StickFrictionEnabled": false,
          "StickFriction": {
            "Strength": 0,
            "PitchStrength": null,
            "RollStrength": null
          },
          "ControlInertiaEnabled": false,
          "ControlInertia": {
            "PitchStrength": 0,
            "RollStrength": 0
          },
          "SoftStopsEnabled": false,
          "SoftStops": {
            "PitchStart": 0.85,
            "PitchStrength": 0,
            "RollStart": 0.85,
            "RollStrength": 0
          },
          "ForceTrimEnabled": false,
          "ForceTrim": {
            "HoldStrength": 0.55,
            "Deadband": 0.02,
            "BreakoutTravel": 0.3,
            "BeepTrimRate": 0.25,
            "FollowUpTrim": false,
            "FollowUpRate": 0.15,
            "FollowUpMaxAirspeedKt": 40,
            "FollowUpDeadband": 0.06
          },
          "HydraulicTrimCenteringEnabled": false
        },
        "Aero": {
          "Enabled": true,
          "Stall": {
            "Gain": 0
          },
          "Overspeed": {
            "Gain": 0.1
          },
          "Mach": {
            "MinMach": 0.9,
            "FullMach": 0.92,
            "Gain": 0
          },
          "Turbulence": {
            "MinStddev": 0.02,
            "FullStddev": 0.3,
            "Gain": 0.05,
            "AmbientGain": 0,
            "VerticalWindGain": 0,
            "VerticalWindStartFps": 1,
            "VerticalWindFullFps": 15
          },
          "Spoiler": {
            "MinDeploy": 0.1,
            "MinSpeedKt": 60,
            "FullSpeedKt": 200,
            "Gain": 0
          },
          "Flap": {
            "MaxFlapIndex": 1,
            "MinFlapIndex": 1,
            "MinSpeedKt": 48.0,
            "FullSpeedKt": 84.0,
            "Gain": 0
          },
          "Gear": {
            "MinSpeedKt": 80,
            "FullSpeedKt": 150,
            "Gain": 0
          },
          "Etl": {
            "StartKt": 12,
            "StopKt": 24,
            "Gain": 0.06
          },
          "Vrs": {
            "MaxIasKt": 28,
            "OnsetSinkFps": 5,
            "FullSinkFps": 15,
            "MinEngineRpmPct": 0.5,
            "Gain": 0,
            "MinCollectivePct": 0.4
          },
          "TwoPerRev": {
            "MinSpeedKt": 30,
            "FullSpeedKt": 100,
            "Gain": 0,
            "BladeCount": 2
          },
          "Rbs": {
            "VneKt": 130,
            "OnsetFraction": 0.85,
            "Gain": 0
          },
          "ShakerEnabled": false,
          "Shaker": {
            "Amplitude": 0.5
          },
          "TurbulenceWindowSamples": 20
        },
        "AeroDrag": {
          "Enabled": false,
          "Flap": {
            "MaxFlapIndex": 1,
            "Gain": 0,
            "MinKnots": 30.0,
            "FullKnots": 84.0
          },
          "Spoiler": {
            "Gain": 0,
            "MinKnots": 60,
            "FullKnots": 220,
            "MinDeploy": 0.05
          },
          "Gear": {
            "Gain": 0,
            "MinKnots": 70,
            "FullKnots": 200
          },
          "Propwash": {
            "Gain": 0,
            "MinRpm": 0.3,
            "WashoutKnots": 86.4
          }
        },
        "Mechanical": {
          "Enabled": true,
          "GearDeploy": {
            "Gain": 0
          },
          "FlapStep": {
            "Gain": 0
          },
          "FlapMotion": {
            "Gain": 0,
            "MinimumPositionDelta": 0.001,
            "PacketHoldSeconds": 0.12,
            "ArrivalSettleSeconds": 0.25
          },
          "GearMotion": {
            "Gain": 0,
            "MinimumPositionDelta": 0.001,
            "PacketHoldSeconds": 0.12,
            "ArrivalSettleSeconds": 0.25
          },
          "FlapArrival": {
            "Gain": 0
          }
        },
        "Watchdog": {
          "StaleSec": 5,
          "FadeMs": 500
        },
        "Autopilot": {
          "FollowEnabled": false,
          "FollowAuthority": 0.05,
          "FollowSpringStrength": 0.25,
          "FollowSpeed": 1,
          "NeutralHoldEnabled": false,
          "NeutralHoldStrength": 0.6
        },
        "Engine": {
          "Enabled": false,
          "Rumble": {
            "IdleRpmPct": 0.55,
            "FullRpmPct": 1,
            "Gain": 0,
            "IdleRoughnessGain": 0,
            "IdleSmoothRpmPct": 0.45,
            "FrequencyAtMaxRpmHz": 0
          },
          "Rotor": {
            "NominalRotorRpm": 0,
            "IdleRpmPct": 0.05,
            "FullRpmPct": 1,
            "Gain": 0,
            "GovernorDroopBelowPct": 0.97,
            "GovernorDroopFloorPct": 0.85,
            "GovernorDroopGain": 0
          }
        },
        "StickAlive": {
          "Enabled": true,
          "RotationKick": {
            "Enabled": false,
            "PitchGain": 0,
            "RollGain": 0,
            "MaxOutput": 0,
            "DeadbandRadPerSec2": 0.75
          },
          "SurfaceFollow": {
            "Enabled": false,
            "Gain": 0,
            "FullAirspeedKnots": 100,
            "MinAirspeedKnots": 30,
            "DeltaDeadband": 0.05,
            "MaxOutput": 0
          },
          "SideslipCoupling": {
            "Enabled": false,
            "Gain": 0,
            "FullAirspeedKnots": 110,
            "MinAirspeedKnots": 40,
            "BetaDeadbandRad": 0.02,
            "MaxOutput": 0
          },
          "UseSimEngineVibration": false,
          "UseTireLoadThump": false,
          "TireLoadGain": 0
        },
        "ControlInput": {
          "Mode": 0,
          "Pitch": {
            "CommandForce": 0.5,
            "ForceDeadZone": 0.05,
            "Travel": 0.25,
            "Positive": null,
            "Negative": null,
            "PositiveCommandForce": 0.5,
            "NegativeCommandForce": 0.5,
            "PositiveForceDeadZone": 0.05,
            "NegativeForceDeadZone": 0.05,
            "PositiveTravel": 0.25,
            "NegativeTravel": 0.25
          },
          "Roll": {
            "CommandForce": 0.5,
            "ForceDeadZone": 0.05,
            "Travel": 0.25,
            "Positive": null,
            "Negative": null,
            "PositiveCommandForce": 0.5,
            "NegativeCommandForce": 0.5,
            "PositiveForceDeadZone": 0.05,
            "NegativeForceDeadZone": 0.05,
            "PositiveTravel": 0.25,
            "NegativeTravel": 0.25
          },
          "OverRangeCue": true
        },
        "Hydraulics": {
          "LossLoadIncrease": 0
        },
        "ControlSystem": 3
      }
    }
  ]
}
