mirror of
https://github.com/meshtastic/meshtastic.git
synced 2024-11-11 08:04:26 -08:00
405 lines
10 KiB
Markdown
405 lines
10 KiB
Markdown
---
|
|
id: rotary-encoder-plugin
|
|
title: Rotary Encoder
|
|
sidebar_label: Rotary Encoder
|
|
---
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
|
|
<!--- TODO add link to hardware setup to admonition--->
|
|
:::note
|
|
This plugin requires attaching a peripheral accessory to your device. It will not work without one.
|
|
:::
|
|
|
|
## Overview
|
|
|
|
Meshtastic supports hardwired rotary encoders as input devices.
|
|
Currently, one rotary encoder (`rotary1`) is defined, but later more rotary encoders
|
|
can be added (if needed) the same way.
|
|
|
|
:::tip
|
|
Once plugin settings are changed, a **reset** is required for them to take effect.
|
|
:::
|
|
|
|
## Settings
|
|
|
|
| Setting | Acceptable Values | Default |
|
|
| :-----: | :---------------: | :-----: |
|
|
| rotary1_enabled | `true`, `false` | `false` |
|
|
| rotary1_event_cw | `InputEventChar` | (not defined) |
|
|
| rotary1_event_ccw | `InputEventChar` | (not defined) |
|
|
| rotary1_event_press | `InputEventChar` | (not defined) |
|
|
| rotary1_pin_a | `integer` | (not defined) |
|
|
| rotary1_pin_b | `integer` | (not defined) |
|
|
| rotary1_pin_press | `integer` | (not defined) |
|
|
|
|
### rotary1_enabled
|
|
Enable the rotary encoder #1
|
|
|
|
#### Enable/Disable rotary1
|
|
<Tabs
|
|
groupId="settings"
|
|
defaultValue="cli"
|
|
values={[
|
|
{label: 'CLI', value: 'cli'},
|
|
{label: 'Android', value: 'android'},
|
|
{label: 'iOS', value: 'iOS'},
|
|
{label: 'Web', value: 'web'},
|
|
]}>
|
|
<TabItem value="cli">
|
|
|
|
```bash title="Enable rotary1"
|
|
meshtastic --set rotary1_enabled true
|
|
```
|
|
```bash title="Disable rotary1"
|
|
meshtastic --set rotary1_enabled true
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="android">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="iOS">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="web">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
### rotary1_pin_a
|
|
GPIO pin for rotary encoder A port.
|
|
|
|
#### Specify rotary1 pin a
|
|
<Tabs
|
|
groupId="settings"
|
|
defaultValue="cli"
|
|
values={[
|
|
{label: 'CLI', value: 'cli'},
|
|
{label: 'Android', value: 'android'},
|
|
{label: 'iOS', value: 'iOS'},
|
|
{label: 'Web', value: 'web'},
|
|
]}>
|
|
<TabItem value="cli">
|
|
|
|
:::note
|
|
Replace `GPIO` below with the GPIO number from hardware setup.
|
|
:::
|
|
|
|
```bash title="Specify rotary1 pin a"
|
|
meshtastic --set rotary1_pin_a GPIO
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="android">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="iOS">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="web">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
### rotary1_pin_b
|
|
GPIO pin for rotary encoder B port.
|
|
|
|
#### Specify rotary1 pin b
|
|
<Tabs
|
|
groupId="settings"
|
|
defaultValue="cli"
|
|
values={[
|
|
{label: 'CLI', value: 'cli'},
|
|
{label: 'Android', value: 'android'},
|
|
{label: 'iOS', value: 'iOS'},
|
|
{label: 'Web', value: 'web'},
|
|
]}>
|
|
<TabItem value="cli">
|
|
|
|
:::note
|
|
Replace `GPIO` below with the GPIO number from hardware setup.
|
|
:::
|
|
|
|
```bash title="Specify rotary1 pin b"
|
|
meshtastic --set rotary1_pin_b GPIO
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="android">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="iOS">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="web">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
### rotary1_pin_press
|
|
GPIO pin for rotary encoder Press port.
|
|
|
|
#### Specify rotary1 pin press
|
|
<Tabs
|
|
groupId="settings"
|
|
defaultValue="cli"
|
|
values={[
|
|
{label: 'CLI', value: 'cli'},
|
|
{label: 'Android', value: 'android'},
|
|
{label: 'iOS', value: 'iOS'},
|
|
{label: 'Web', value: 'web'},
|
|
]}>
|
|
<TabItem value="cli">
|
|
|
|
:::note
|
|
Replace `GPIO` below with the GPIO number from hardware setup.
|
|
:::
|
|
|
|
```bash title="Specify rotary1 pin press"
|
|
meshtastic --set rotary1_pin_press GPIO
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="android">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="iOS">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="web">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
### rotary1_event_cw
|
|
Generate input event on CW of this kind.
|
|
|
|
:::tip
|
|
For using with CannedMessagePlugin you must choose value `KEY_UP` here.
|
|
:::
|
|
|
|
#### Specify rotary1 event cw
|
|
<Tabs
|
|
groupId="settings"
|
|
defaultValue="cli"
|
|
values={[
|
|
{label: 'CLI', value: 'cli'},
|
|
{label: 'Android', value: 'android'},
|
|
{label: 'iOS', value: 'iOS'},
|
|
{label: 'Web', value: 'web'},
|
|
]}>
|
|
<TabItem value="cli">
|
|
|
|
```bash title="Set rotary1 event cw to 'KEY_UP'"
|
|
meshtastic --set rotary1_event_press KEY_UP
|
|
```
|
|
```bash title="Unset rotary1 event cw"
|
|
meshtastic --set rotary1_event_press ""
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="android">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="iOS">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="web">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
### rotary1_event_ccw
|
|
Generate input event on CCW of this kind.
|
|
|
|
:::tip
|
|
For using with CannedMessagePlugin you must choose value `KEY_DOWN` here.
|
|
:::
|
|
|
|
#### Specify rotary1 event ccw
|
|
<Tabs
|
|
groupId="settings"
|
|
defaultValue="cli"
|
|
values={[
|
|
{label: 'CLI', value: 'cli'},
|
|
{label: 'Android', value: 'android'},
|
|
{label: 'iOS', value: 'iOS'},
|
|
{label: 'Web', value: 'web'},
|
|
]}>
|
|
<TabItem value="cli">
|
|
|
|
```bash title="Set rotary1 event ccw to 'KEY_DOWN'"
|
|
meshtastic --set rotary1_event_ccw KEY_DOWN
|
|
```
|
|
```bash title="Unset rotary1 event ccw"
|
|
meshtastic --set rotary1_event_ccw ""
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="android">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="iOS">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="web">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
### rotary1_event_press
|
|
Generate input event on Press of this kind.
|
|
|
|
:::tip
|
|
For using with CannedMessagePlugin you must choose value `KEY_SELECT` here.
|
|
:::
|
|
|
|
#### Specify rotary1 event press
|
|
<Tabs
|
|
groupId="settings"
|
|
defaultValue="cli"
|
|
values={[
|
|
{label: 'CLI', value: 'cli'},
|
|
{label: 'Android', value: 'android'},
|
|
{label: 'iOS', value: 'iOS'},
|
|
{label: 'Web', value: 'web'},
|
|
]}>
|
|
<TabItem value="cli">
|
|
|
|
```bash title="Set rotary1 event press to 'KEY_SELECT'"
|
|
meshtastic --set rotary1_event_press KEY_SELECT
|
|
```
|
|
```bash title="Unset rotary1 event press"
|
|
meshtastic --set rotary1_event_press ""
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="android">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="iOS">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="web">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
## Details
|
|
|
|
<!--- TODO add link to hardware page --->
|
|
|
|
Configuring the rotary encoder plugin require attaching the compatible hardware.
|
|
|
|
## Examples
|
|
|
|
### Configure rotary encoder for Canned Message Plugin
|
|
<Tabs
|
|
groupId="settings"
|
|
defaultValue="cli"
|
|
values={[
|
|
{label: 'CLI', value: 'cli'},
|
|
{label: 'Android', value: 'android'},
|
|
{label: 'iOS', value: 'iOS'},
|
|
{label: 'Web', value: 'web'},
|
|
]}>
|
|
<TabItem value="cli">
|
|
|
|
:::note
|
|
Replace each `GPIO` (x3) below with the GPIO numbers from hardware setup.
|
|
:::
|
|
|
|
```bash title="Canned Message Plugin - Required Rotary Encoder Plugin Settings"
|
|
meshtastic --set rotary1_pin_a GPIO
|
|
meshtastic --set rotary1_pin_b GPIO
|
|
meshtastic --set rotary1_pin_press GPIO
|
|
meshtastic --set rotary1_event_cw KEY_UP
|
|
meshtastic --set rotary1_event_ccw KEY_DOWN
|
|
meshtastic --set rotary1_event_press KEY_SELECT
|
|
meshtastic --set rotary1_enabled True
|
|
```
|
|
</TabItem>
|
|
<TabItem value="android">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="iOS">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
<TabItem value="web">
|
|
:::info
|
|
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
|
|
:::
|
|
|
|
</TabItem>
|
|
</Tabs>
|