Remote control interface protocol v1

  1. Reading from and writing to addresses
  2. Control Loading System external control

To understand the protocol and be able to avoid pitfalls, please read "General information" before attempting to build packets.
Go to top

Reading and writing values

The protocol can be used to read and write specific values of the hardware. Most of these values are normally controlled by the simulation and will be overwritten immediately after writing. The "OverrideBitmask" address can be used to detach the simulation from these variables, allowing third-party applications to take control. As the name implies, each variable is represented by one bit. If that bit is set, the simulation will release control of the variable.

Addresses for writing are not allowed to be read and will always return 0 when reading.

In a dual-seat set-up, all Data except force information (e.g. ElevatorForce, ElevatorForce2) and button presses (YokeButtons, YokeButton2) is synchronized. Therefore it is only exposed as a single value regardless if the hardware set-up is single- or dual-seat.

Packet format

Read from address



Write to address



Address table

ElevatorTrim 0x01 Int32 - Allowed values are 0 to 0xFFFF.
This setting controls the trim of the axis, defining the position it returns to. When writing the autopilot position, this value will be overwritten with the AP position value.
AileronTrim 0x02
RudderTrim 0x03
CollectiveTrim 0x04
ElevatorPos 0x05 Int32 - Allowed values are 0 to 0xFFFF.
This value returns the position of the axis. Writing to it will have no effect.
AileronPos 0x06
RudderPos 0x07
CollectivePos 0x08
ElevatorForce 0x09 Int32 - Full range.
Reading this address returns the force applied by the user to the axis. variables with the number 2 at the end, will read the value from the copilot device in a dual setup.
ElevatorForce2 0x0A
AileronForce 0x0B
AileronForce2 0x0C
RudderForce 0x0D
RudderForce2 0x0E
CollectiveForce 0x0F
CollectiveForce2 0x10
ElevatorScalefactor 0x11 Int32 - Allowed values are 25 to 999.
Force multiplicator for the axis. a value of 100 is 100% the force set in the force profile. This setting is used to increase and decrease force gradually during operation.
AileronScalefactor 0x12
RudderScalefactor 0x13
CollectiveScalefactor 0x14
ElevatorAPActive 0x15 Int32 - Allowed values are 0 or 1.
Activates/Deactivates the autopilot of the axis. The analog value <AXISNAME>APPos can be used to set desired yoke position.
AileronAPActive 0x16
RudderAPActive 0x17
CollectiveAPActive 0x18
ElevatorAPPos 0x19 Int32 - Allowed values are 0 to 0xFFFF.
This variable will set the position of the autopilot as well as the trim position.
AileronAPPos 0x1A
RudderAPPos 0x1B
CollectiveAPPos 0x1C
ElevatorAPSpeed 0x21 Int32 - Allowed values are 0 to 0x0BB8 (3000).
This variable will set the speed of the autopilot.
AileronAPSpeed 0x22
RudderAPSpeed 0x23
CollectiveAPSpeed 0x24
ElevatorAPForce 0x25 Int32 - Allowed values are 1 to 0x64 (100).
This variable will set the force of the autopilot.
AileronAPForce 0x26
RudderAPForce 0x27
CollectiveAPForce 0x28
Airspeed 0x1D Float32 - Full positive range, including 0.
Writing this address will recalculate the force scale factors of all axes, based on the active CLS2Sim profile. The formula is shown in the CLSProfile manager window. Writing this variable will override all <Axis>Scalefactor variables.
OverrideMask 0x1E Int32 - 32bit Bitmask.
The bits are defined in the "OverrideBitmask" enum. Each set bit releases control of a specific variable, allowing it to be controlled over the remote control interface.
YokeButtons 0x1F Int32 - 32bit Bitmask.
Each bit represents a button on the pilot yoke.
YokeButtons2 0x20 Int32 - 32bit Bitmask.
Each bit represents a button on the copilot yoke.


ElevatorScalefactor 0x0001
AileronScalefactor 0x0002
RudderScalefactor 0x0004
CollectiveScalefactor 0x0008
ElevatorAPActive 0x0010
AileronAPActive 0x0020
RudderAPActive 0x0040
CollectiveAPActive 0x0080
ElevatorTrim 0x0100
AileronTrim 0x0200
RudderTrim 0x0400
CollectiveTrim 0x0800
ElevatorAPPos 0x1000
AileronAPPos 0x2000
RudderAPPos 0x4000
CollectiveAPPos 0x8000

Go to top

Control Loading System external control

To use this feature. "External Control" in the connection settings window must be checked. All other commands as well as all other CLS2Sim functionality will be deactivated!

The CLS system consisting of yokes / cyclics and pedals is intended to be used over CLS2Sim with supported flight simulation software. If unsupported software is used, CLS2Sim has no way of communicating the steering values to the simulation. Remote Control allows a 3rd-party application to define directional force on all axes of the CLS hardware, while receiving position information for said axes. Using this, unsupported software can communicate with CLS2Sim and its hardware over a 3rd-party application.

Packet format

CLS external control



©2021 Brunner Elektronik AG
CH-8335 Hittnau