# SET\_VALUE\_BY\_INDEX via RADIO, Command 3E

This command is currently only used for I/O board.

&#x20;

OUT

| 0C | 11 | 3E | GRP | ID | ID TO | CRC | S Index | T1 | T2 | T3 | CRC |
| -- | -- | -- | --- | -- | ----- | --- | ------- | -- | -- | -- | --- |

IN

| 0C | 10 | 4E | GRP | ID | ID TO | CRC | S Index | T1 | T2 | T3 | CRC |
| -- | -- | -- | --- | -- | ----- | --- | ------- | -- | -- | -- | --- |

&#x20;

This command will set the value for the specific value pointed to by Index via RADIO.

&#x20;

## I/O-board specific format, Analog-input mV (Type $30)

<table data-header-hidden><thead><tr><th width="107"></th><th width="127"></th><th></th></tr></thead><tbody><tr><td>T1</td><td>FILTER</td><td>Filter-value, # of samples that I/O-board shall take for each measurement</td></tr><tr><td>T2</td><td>INTERVAL</td><td>Interval between samples in ms, (0=disabled, as fast as possible)</td></tr><tr><td>T3</td><td>STORE</td><td>Store config in EEPROM (0=NO, 1=YES)</td></tr></tbody></table>

&#x20;

## I/O-board specific format, Analog-input mA (Type $31)

<table data-header-hidden><thead><tr><th width="93"></th><th width="141"></th><th></th></tr></thead><tbody><tr><td>T1</td><td>FILTER</td><td>Filter-value, # of samples that I/O-board shall take for each measurement</td></tr><tr><td>T2</td><td>INTERVAL</td><td>Interval between samples in ms, (0=disabled, as fast as possible)</td></tr><tr><td>T3</td><td>STORE</td><td>Store config in EEPROM (0=NO, 1=YES)</td></tr></tbody></table>

&#x20;

## I/O-board specific format, Analog-output mV (Type $32)

<table data-header-hidden><thead><tr><th width="94"></th><th width="149"></th><th></th></tr></thead><tbody><tr><td>T1</td><td>VALUE_MSB</td><td>High byte of 16-bit value</td></tr><tr><td>T2</td><td>VALUE_LSB</td><td>Low part of 16-bit value</td></tr><tr><td>T3</td><td>STORE</td><td>Store config in EEPROM (0=NO, 1=YES)</td></tr></tbody></table>

Note: VALUE is value in mV that should be outputted to the DAC. If storing in EEPROM is selected (STORE = 1), then the value should both be stored and sent to the DAC.&#x20;

## I/O-board specific format, Analog-output mA (Type $33)

| T1 | VALUE\_MSB | High byte of 16-bit value            |
| -- | ---------- | ------------------------------------ |
| T2 | VALUE\_LSB | Low part of 16-bit value             |
| T3 | STORE      | Store config in EEPROM (0=NO, 1=YES) |

Note: VALUE is value in mA that should be outputted to the DAC. If storing in EEPROM is selected (STORE = 1), then the value should both be stored and sent to the DAC.&#x20;

## I/O-board specific format, Digital-input (Type $34)

<table data-header-hidden><thead><tr><th width="89"></th><th width="189"></th><th></th></tr></thead><tbody><tr><td>T1</td><td>WEAK_PU_MSB</td><td>High byte of 16-bit input (1=weak pull-up enabled, 0=disabled)</td></tr><tr><td>T2</td><td>WEAK_PU_LSB</td><td>Low part of 16-bit input (1=weak pull-up enabled, 0=disabled)</td></tr><tr><td>T3</td><td>FILTER_MASK_MSB</td><td>High part of 16-bit field (enable/disable) filter function</td></tr><tr><td>T4</td><td>FILTER_MASK_LSB</td><td>High part of 16-bit field (enable/disable) filter function</td></tr><tr><td>T5</td><td>FILTER</td><td>Filter value, same filter-length for all (0=disabled)</td></tr><tr><td>T6</td><td>INTERVAL</td><td>Interval between samples in ms, (0=disabled, as fast as possible)</td></tr><tr><td>T6</td><td>STORE</td><td>Store config in EEPROM (0=NO, 1=YES)</td></tr></tbody></table>

Note: The filter works as follows. The controller has individual filter-accumulators for each input and these filter-accumulators are twice the size of the set filter-value. Each time the I/O-board reads the specific input it adds or subtracts 1 from the accumulator. The controller then checks if the accumulator is larger or smaller than the set filter-value, and if larger the input is considered 1, else 0.

Example: FILTER is set to 4 (accumulator (size=8) is empty, 0)

&#x20;               Input-pin = 0            ->             accumulator=0          ->             input-status = 0

&#x20;               Input-pin = 0            ->             accumulator=0          ->             input-status = 0

&#x20;               Input-pin = 0            ->             accumulator=0          ->             input-status = 0

&#x20;               Input-pin = 1            ->             accumulator=1          ->             input-status = 0

&#x20;               Input-pin = 1            ->             accumulator=2          ->             input-status = 0

&#x20;               Input-pin = 1            ->             accumulator=3          ->             input-status = 0

&#x20;               Input-pin = 0            ->             accumulator=2          ->             input-status = 0

&#x20;               Input-pin = 1            ->             accumulator=3          ->             input-status = 0

&#x20;               Input-pin = 1            ->             accumulator=4          ->             input-status = 0

&#x20;               Input-pin = 1            ->             accumulator=5          ->             input-status = 1

&#x20;               Input-pin = 1            ->             accumulator=6          ->             input-status = 1

&#x20;               Input-pin = 1            ->             accumulator=7          ->             input-status = 1

&#x20;               Input-pin = 1            ->             accumulator=8          ->             input-status = 1

&#x20;               Input-pin = 1            ->             accumulator=8          ->             input-status = 1

&#x20;               Input-pin = 1            ->             accumulator=8          ->             input-status = 1

&#x20;               Input-pin = 1            ->             accumulator=8          ->             input-status = 1

&#x20;               Input-pin = 0            ->             accumulator=7          ->             input-status = 1

&#x20;               Input-pin = 0            ->             accumulator=6          ->             input-status = 1

&#x20;               Input-pin = 0            ->             accumulator=5          ->             input-status = 1

&#x20;               Input-pin = 0            ->             accumulator=4          ->             input-status = 0

&#x20;               Input-pin = 0            ->             accumulator=3          ->             input-status = 0

&#x20;               Input-pin = 0            ->             accumulator=2          ->             input-status = 0

&#x20;               Input-pin = 0            ->             accumulator=1          ->             input-status = 0

&#x20;               Input-pin = 0            ->             accumulator=0          ->             input-status = 0

&#x20;               Input-pin = 0            ->             accumulator=0          ->             input-status = 0

&#x20;&#x20;

## I/O-board specific format, Digital-output (Type $35)

| T1 | VALUE\_MSB | High byte of 16-bit value            |
| -- | ---------- | ------------------------------------ |
| T2 | VALUE\_LSB | Low part of 16-bit value             |
| T3 | STORE      | Store config in EEPROM (0=NO, 1=YES) |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.boomerang3.com/s2-radio-system-manual/s2-system-description/s2-node/s2-communication-protocol/s2-commands-details/set_value_by_index-via-radio-command-3e.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
