# DSM

## Details

**Protocol Number:  6**\
**Autobind:**  No\
**Channel Re-mapping:**  Yes\
**Extended Limits:**  Yes\
**Failsafe Support:**  No\
**Receiver Match:**  Yes\
**Telemetry:**  Yes - for TSSI and plugins\
**Option Value:**  Number of channels (3 to 12)

## Notes

**Models:** Spektrum DSM2 and DSMX compatible receivers

{% hint style="danger" %}
Unless **Channel Re-mapping** is disabled, the radio model's channel order must match the Expected Channel Order of the MULTI-Module, which is **AETR** by default.  See the[ Channel Order page](https://www.multi-module.org/using-the-module/channel-order) for more details.
{% endhint %}

### Autodetect Format

**Autodetect Format** (a.k.a. the **Auto** sub-protocol) allows the radio to negotiate the correct protocol (DSM2 or DSMX), the correct number of channels, and the optimal data rate with the receiver.  Auto-detection relies on telemetry working between the radio and the receiver.

{% hint style="success" %}
When binding, **Autodetect Format** is strongly recommended to ensure that the optimal configuration for the receiver is used.
{% endhint %}

If autodetection isn't working properly with your receiver (for example the number of channels is set incorrectly), you can un-check **Autodetect Format** and manually select the sub-protocol and number of channels.

### Binding

For best results, set the sub-protocol to **Auto** for binding.  During the bind process the receiver will inform the radio of the optimal configuration for sub-protocol, number of channels and refresh rate.  When the bind ends the sub-protocol should have changed to one of the four DSM2 or DSMX options.

{% hint style="info" %}
If binding using the **Auto** sub-protocol fails, and the sub-protocol remains on **Auto**, the radio was not able to negotiate the settings with the receiver.  Try moving the radio closer or farther away from the receiver and trying again.
{% endhint %}

If you are unable to bind in Auto mode you can try all four sub-protocols manually.

{% hint style="warning" %}
When manually selecting the sub-protocol, your receiver may work correctly with more than one of them, or it may work correctly with one and erratically or not at all with others.

**Take care when testing sub-protocols and ensure your model is safe (e.g. propellers off).**
{% endhint %}

### Channel Order

Channel order is very important for DSM, and a common source of problems if not configured correctly.

By default the MULTI-Module will expect channels in the module's Expected Channel Order, and will convert them into TAER order automatically.

{% hint style="danger" %}
The model's channel order must match the Expected Channel Order of the MULTI-Module, which is **AETR** by default.  See the[ Channel Order page](https://www.multi-module.org/using-the-module/channel-order) for more details.
{% endhint %}

Unless you change the firmware on your MULTI-Module, your model should be configured with the channels assigned in **AETR** order, because this is the default Expected Channel Order.

![Channels in AETR Order](https://3357080223-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LwnWq9OVxVlVodwNBnH%2F-Lxjs4bDgALJqn2W9xi8%2F-LxjsepTV7UO06OwUCTU%2Fmixer_aetr.png?alt=media\&token=27c113e9-f791-4e2f-91f8-e9dcf12b3a9a)

If you change the firmware to expect a different channel order you must change the radio's default channel order and manually update any existing models.

See the [Channel Order page](https://www.multi-module.org/using-the-module/channel-order) for more details, including how to disable channel order remapping.

### Option Value

Sets the number of channels for the receiver (3-12).  The value is set automatically when using **Autodetect Format** or the **Auto** sub-protocol during binding.

### Receiver Output Range

{% hint style="info" %}
By default the MULTI-Module will scale receiver output to match the Spektrum standard throw, 1100µs to 1900µs.
{% endhint %}

Either one of the methods below can be used to increase the output range.  Usually one method is sufficient, but both methods can be combined to give even greater ranges or more customization if required.

#### Method 1 - Enable Max Throw

The easiest way to increase output ranges is by checking **Enable max. throw** in the model setup.  This will increase the output range of all channels to 1024µs to 1976µs.

![Enable max. throw](https://3357080223-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LwnWq9OVxVlVodwNBnH%2F-MFdUiK180jFJDbvEqZf%2F-MFdXFNDrymQEZUS_DVM%2Fmax_throw.jpg?alt=media\&token=c4b4aa7b-7447-4f65-9a66-0b9501499a97)

With **Enable max. throw** checked:

* The default weight of 100% will now give an output range of 1024µs to 1976µs
* A weight of 84% will give the Spektrum standard range of 1100µs to 1900µs

#### Method 2 - Extended Limits

Alternatively, output range can be increased by enabling **Extended Limits** in the model setup and configuring minimum and maximum output percentages for each channel in the **Outputs**.

This method allows each channel's range to be configured independently, and allows larger ranges than **Enable Max Throw**.

![Extended Limits Enabled](https://3357080223-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LwnWq9OVxVlVodwNBnH%2F-MFeMCFvyrf6LoOR7xzY%2F-MFeMyZDDbiFTtx0r8la%2Fextended_limits.jpg?alt=media\&token=f7ceda76-3204-49e5-9170-2120eda73d92)

With **Extended Limits** enabled:

* A range of -100% to 100% will give an output range of 1100µs to 1900µs
* A range of -125% to 125% will give an output range of 1000µs to 2000µs
* A range of -130% to 130% will give an output range of 980µs to 2020µs

![CH3 Output Range Extended to +/- 125%](https://3357080223-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LwnWq9OVxVlVodwNBnH%2F-MFeMCFvyrf6LoOR7xzY%2F-MFeN538nhn5hIbCOeha%2Fextended_min_max.jpg?alt=media\&token=e4355540-97c0-404a-ba82-68cf200ad6b8)

If you are using [PPM Mode](https://www.multi-module.org/using-the-module/ppm-mode), ensure that the `PPM_MIN_100` and `PPM_MAX_100` settings in \_Config.h match your radio's output.

### SAFE Select

To allow SAFE to be ON with a switch assignment you must remove the bind plug after powering up the RX but before turning on the TX to bind.&#x20;

If you use Autodetect Format during binding the MULTI-Module will choose DSMX 11ms and Channels 1-7 (change channels to 1-9 if you wish to assign switch above channel 7).&#x20;

In order to use the manuals diagram of both sticks 'Down-Inside' to set a SAFE Select Switch Designation, you must have **Throttle and Elevator** channels set to **Normal** direction but the **Aileron and Rudder** set to **Reverse** direction.&#x20;

If setting up a new model with all channels set to Normal you can hold both sticks 'Down-**Outside**' to assign the switch with 5x flips. This has been tested on a Mode 2 radio.

### Servo Refresh Rate

Servo refresh rate is 22ms unless 11ms is selected.  The option to select the refresh rate when binding will be available in OpenTX 2.3.10+.

### Telemetry Range

Some DSM receivers and many bind-and-fly (BNF) models with DSM receivers (e.g. E-flite UMX models) have 'fly-by' telemetry which has very limited range (less than 100' or 30m).

{% hint style="info" %}
Short-range telemetry is not a problem with the MULTI-Module or radio, it is a limitation of the receiver.
{% endhint %}

To avoid unnecessary 'telemetry lost' warnings when using a short-range-telemetry receiver, disable the telemetry warnings by checking the **Disable telemetry alarms** checkbox in the model's **Telemetry** configuration.

![Telemetry Alarms Disabled](https://3357080223-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LwnWq9OVxVlVodwNBnH%2F-MF57Zgh9QdrSXPYZ3i2%2F-MF68KNCKzFedFscqrHv%2Fdisable_telemetry_alarms.png?alt=media\&token=322f76a5-d053-4902-8787-8d0b7dfb0b92)

{% hint style="info" %}
For protocols other than DSM, checking Disable telemetry alarms will generate a warning when the model is activated.  This warning is not shown when the MULTI-Module protocol is DSM.
{% endhint %}

{% hint style="success" %}
Always perform a  manual Range Check to ensure that control range will be sufficient for your needs.
{% endhint %}

### Throttle Kill

**Throttle Kill** is available on **CH14** for models which need it (X-Vert, Blade 230S, etc.).  The output value in is derived from the weight applied to CH14, which must be between -50% and -100%

* A weight of -50% gives 1100µs output
* A weight of -80% gives 980µs output
* A weight of -100% gives 904µs output

{% hint style="success" %}
An output weight of **-80%** on **CH14** will instantly stop the motors on an X-Vert by setting the throttle channel to **980µs** (equivalent to **-130%** on a Spektrum radio)**.**
{% endhint %}

For example, **CH14** is configured with a weight of -80%, switch **SF** as the source, and **SF↓** as the switch

![X-Vert -130% Throttle Kill on CH14 using switch SF](https://3357080223-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LwnWq9OVxVlVodwNBnH%2F-M15iOsEYHFfFFTMvroH%2F-M15op_7kbJkv5OlyQPM%2Fth_kill.png?alt=media\&token=c0193b18-b6f0-4463-81d4-144eb72adde6)

* When switch **SF** is off, **CH14** is at 0%
* When switch **SF** is on, the MULTI-Module sends 980µs on the throttle channel, killing the motors

## Channel Assignment

| CH1 | CH2 | CH3 | CH4 | CH5 | CH6 | CH7 | CH8 | CH9 | CH10 | CH11 | CH12 | CH13 | CH14          |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | ---- | ---- | ---- | ---- | ------------- |
| A   | E   | T   | R   | CH5 | CH6 | CH7 | CH8 | CH9 | CH10 | CH11 | CH12 | -    | Throttle Kill |

{% hint style="info" %}
The Channel Assignment table assumes the MULTI-Module's default Expected Channel Order, **AETR**, is being used on the radio.

If you have changed the MULTI-Module's Expected Channel Order to something other than AETR you need to adjust CH1 to CH4 accordingly. See the[ Channel Order page](https://www.multi-module.org/using-the-module/channel-order) for more details.
{% endhint %}

## Sub Protocols

### 0 - DSM2 1F

DSM2, resolution 1024, servo refresh rate can only be 22ms.

**Note:** 'DSM2 1F' was previously labelled as 'DSM 2 22ms'.

### 1 - DSM2 2F

DSM2, resolution 2048, servo refresh rate can be 22ms or 11ms.  All servo outputs will be 22ms when more than seven channels are configured.

**Note:** 'DSM2 2F' was previously labelled as 'DSM 2 11ms'.

### 2 - DSMX 1F

DSMX, resolution 2048, servo refresh rate can only be 22ms.

**Note:** 'DSMX 1F' was previously labelled as 'DSM X 22ms'.

### 3 - DSMX 2F

DSMX, resolution 2048, refresh rate 22ms or 11ms.  All servo outputs will be 22ms when more than seven channels are configured.

**Note:** 'DSMX 2F' was previously labelled as 'DSM X 11ms'.

### 4 - Auto

The **Auto** sub-protocol enables the radio to negotiate the correct settings for the receiver.  Auto-negotiation is supported on OpenTX, erSkyTx, and er9x.

In OpenTX, **Auto** can be enabled by checking the **Autodetect format** box or selecting the **Auto** sub-protocol.

You must have telemetry enabled and working, and on erSkyTx you need to set the telemetry **Usr proto** to **DSMx**.
