Merge pull request #355 from meshtastic/13_settings_updates

1.3 configuration split from existing blended docs, existing docs reverted to 1.2
This commit is contained in:
Garth Vander Houwen 2022-06-25 08:14:03 -07:00 committed by GitHub
commit 1b14ad4249
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
39 changed files with 3725 additions and 386 deletions

22
.pnpm-debug.log Normal file
View file

@ -0,0 +1,22 @@
{
"0 debug pnpm:scope": {
"selected": 1
},
"1 error pnpm": {
"code": "ELIFECYCLE",
"errno": "ENOENT",
"syscall": "spawn",
"file": "sh",
"pkgid": "meshtastic@0.0.0",
"stage": "build",
"script": "docusaurus build",
"pkgname": "meshtastic",
"err": {
"name": "pnpm",
"message": "meshtastic@0.0.0 build: `docusaurus build`\nspawn ENOENT",
"code": "ELIFECYCLE",
"stack": "pnpm: meshtastic@0.0.0 build: `docusaurus build`\nspawn ENOENT\n at ChildProcess.<anonymous> (/opt/homebrew/Cellar/pnpm/7.3.0/libexec/lib/node_modules/pnpm/dist/pnpm.cjs:94974:22)\n at ChildProcess.emit (node:events:537:28)\n at maybeClose (node:internal/child_process:1091:16)\n at ChildProcess._handle.onexit (node:internal/child_process:302:5)"
}
},
"2 warn pnpm:global": " Local package.json exists, but node_modules missing, did you mean to install?"
}

View file

@ -1,7 +1,7 @@
--- ---
id: channel-advanced id: channel-advanced
title: Channel Settings - Advanced title: 1.2 Channel Settings - Advanced
sidebar_label: Channel sidebar_label: 1.2 Channel - Advanced
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';

View file

@ -1,7 +1,7 @@
--- ---
id: channel id: channel
title: Channel Settings title: 1.2 Channel Settings
sidebar_label: Channel sidebar_label: 1.2 Channel
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';

View file

@ -0,0 +1,110 @@
---
id: device
title: Device Configuration
sidebar_label: Device
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
The device config options are: Role, Serial Output, Debug Log, NTP Server and Factory Reset. Device config uses an admin message sending a `Config.Device` protobuf.
## Device Config Values
### Role
Sets the role of node.
Acceptable values:
| Value | Description |
| :-------: | :---------------------------------------------------------------------------------------: |
| `client` | Client (default) - App connected client. |
| `clientMute` | Client Mute - Same as a client except packets will not hop over this node, does not contribute to routing packets for mesh. |
| `router` | Router - Mesh packets will prefer to be routed over this node. This node will not be used by client apps. The wifi/ble radios and the oled screen will be put to sleep. |
| `routerClient` | Router Client - Mesh packets will prefer to be routed over this node. The Router Client can be used as both a Router and an app connected Client. |
### Serial Console
Acceptable values: `true` or `false`
On by default. If set to true this will disable the serial console by not initilizing the StreamAPI.
### Debug Log
Acceptable values: `true` or `false`
By default we turn off logging as soon as an API client connects Set this to true to leave the debug log outputting even when API is active.
### NTP Server
Acceptable value: `string`
NTP server to use if WiFi is conneced, defaults to `0.pool.ntp.org`
### Factory Reset
Acceptable values: `true` or `false`
This setting is never saved to disk, but if set, all device settings will be returned to factory defaults.
## Device Config Client Availability
<Tabs
groupId="settings"
defaultValue="flasher"
values={[
{label: 'Android', value: 'android'},
{label: 'Apple', value: 'apple'},
{label: 'Command Line', value: 'cli'},
{label: 'Flasher', value: 'flasher'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="android">
:::info
Device config is not available for Android.
:::
</TabItem>
<TabItem value="apple">
:::info
All device config options other than NTP Server are available on iOS, iPadOS and macOS at Settings > Radio Configuration > Device.
WiFi related settings are not available on Apple OS's.
:::
</TabItem>
<TabItem value="cli">
All device config options are available in the python CLI. Example commands are below:
```shell title="Set the role to client"
meshtastic --set role client
```
```shell title="Disable serial console"
meshtastic --set serial_disabled true
```
```shell title="Enable debug logging"
meshtastic --set debug_log_enabled true
```
```shell title="Factory reset your radio"
meshtastic --set factory_reset true
```
</TabItem>
<TabItem value="flasher">
:::info
Device config is not available in the Flasher.
:::
</TabItem>
<TabItem value="web">
:::info
Device config is not available for the Web UI.
:::
</TabItem>
</Tabs>

View file

@ -0,0 +1,100 @@
---
id: display
title: Display Configuration
sidebar_label: Display
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
The display config options are: Screen On Duration, Auto Carousel Interval, and GPS Format. Display config uses an admin message sending a `Config.Display` protobuf.
## Device Config Values
### Screen On Duration
How long the screen remains on after the user button is pressed or messages are received.
### Auto Carousel Interval
Automatically toggles to the next page on the screen like a carousel, based the specified interval.
### GPS Format
The format used to display GPS coordinates on the device screen.
Acceptable values:
| Value | Description |
| :-------: | :--------------------------: |
| `gpsFormatDec` | Decimal Degrees |
| `gpsFormatDms` | Degrees Minutes Seconds |
| `gpsFormatUtm` | Universal Transverse Mercator |
| `gpsFormatMgrs` | Military Grid Reference System |
| `gpsFormatOlc` | Open Location Code (Plus Codes) |
| `gpsFormatOsgr` | Ordnance Survey Grid Reference |
## Device Config Client Availability
<Tabs
groupId="settings"
defaultValue="flasher"
values={[
{label: 'Android', value: 'android'},
{label: 'Apple', value: 'apple'},
{label: 'Command Line', value: 'cli'},
{label: 'Flasher', value: 'flasher'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="android">
:::info
Display config is not available for Android.
:::
</TabItem>
<TabItem value="apple">
:::info
All display config options are available on iOS, iPadOS and macOS at Settings > Radio Configuration > Display.
:::
</TabItem>
<TabItem value="cli">
All display config options are available in the python CLI. Example commands are below:
```shell title="Set display_screen_on_secs to default (10 minutes)"
meshtastic --set screen_on_secs 0
```
```shell title="Set display_screen_on_secs to 120 seconds (2 minutes)"
meshtastic --set screen_on_secs 120
```
```shell title="Set display_auto_screen_carousel_secs to default value of off"
meshtastic --set auto_screen_carousel_secs 0
```
```shell title="Set display_auto_screen_carousel_secs to 120 seconds (2 minutes)"
meshtastic --set auto_screen_carousel_secs 120
```
```shell title="Specify GPS format on device screen"
meshtastic --set gps_format GpsFormatUTM
```
</TabItem>
<TabItem value="flasher">
:::info
Display config is not available in the Flasher.
:::
</TabItem>
<TabItem value="web">
:::info
Display config is not available in the Web UI.
:::
</TabItem>
</Tabs>

View file

@ -0,0 +1,21 @@
---
id: config
title: 1.3 Configuration Sections
sidebar_label: 1.3 Config Sections
sidebar_position: 1
---
There are six config sections in the Meshtastic firmware, these are broken out so they can be sent as small admin messages over the mesh.
Default settings values are prefered whenever possible as they consume no bandwidth when sent over the mesh.
| Name | Description |
|:----:|:-----------:|
| Device | Device config options are: Device Role, Serial Output, Debug Log and Factory Reset. |
| Display | Display config options are: Screen On Duration, Auto Carousel Interval, and GPS Format. |
| LoRa | LoRa config options are: Region, Modem Preset, and Number of Hops. |
| Positon | Positon config options are: GPS Enabled, GPS Update Interval, GPS Attempt Time, Fixed Postion, Smart Broadcast, Broadcast Interval and Position Packet Flags. |
| Power | Power config options are: Charge Current, Power Saving, Shutdown after losing power, ADC Multiplier Override Wait Bluetooth Interval, Mesh Super Deep Sleep Timeout, Super Deep Sleep Interval, Light Sleep Interval and Minimum Wake Interval. |
| WiFi | WiFi config options are: AP Mode, Hidden AP, SSID and Password. |

View file

@ -0,0 +1,94 @@
---
id: lora
title: LoRa Configuration
sidebar_label: LoRa
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
The LoRa config options are: Region, Modem Preset, and Number of Hops. LoRa config uses an admin message sending a `Config.LoRa` protobuf.
## LoRa Config Values
:::note
It is very important that you set your device's `lora_region` setting. This will ensure that you are operating within the legal limits for your area.
:::
### Region
Sets the region for your node. Default is `unset`.
| Region Code | Description |
| :-------: | :---------------------------------------------------------------------------------------: |
| `unset` | Unset |
| `us` | United States |
| `eu433` | European Union 433mhz |
| `eu868` | European Union 868mhz |
| `cn` | China |
| `jp` | Japan |
| `anz` | Australia & New Zealand |
| `kr` | Korea |
| `tw` | Taiwan |
| `ru` | Russia |
| `in` | India |
| `nz865` | New Zealand 865mhz |
| `th` | Thailand |
### Modem Preset
### Max Hops
## LoRa Config Client Availability
<Tabs
groupId="settings"
defaultValue="flasher"
values={[
{label: 'Android', value: 'android'},
{label: 'Apple', value: 'apple'},
{label: 'Command Line', value: 'cli'},
{label: 'Flasher', value: 'flasher'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="android">
:::info
Region and Modem Preset can be configured on Android.
:::
</TabItem>
<TabItem value="apple">
:::info
Configuration of Region, Modem Preset and Hop Limit is available on iOS, iPadOS and macOS at Settings > Radio Configuration > LoRa.
:::
</TabItem>
<TabItem value="cli">
Select LoRa config conmmands are available in the python CLI. Example commands are below:
| Setting | Acceptable Values | Default |
| :----------: | :---------------------------------------------------------------------------: | :---------------: |
| modem_preset | `longFast`, `longSlow`, `vlongSlow`, `medSlow`, `medFast`, `shortSlow`, `shortFast` | `longFast` |
| region | `Unset`, `us`, `eu433`, `eu868`, `cn`, `jp`, `anz`, `kr`, `tw`, `ru` ,`in`, ` nz865`, `th` | `Unset` |
| hop_limit | `1`,`2`,`3`,`4`,`5`,`6`,`7` | `3`
</TabItem>
<TabItem value="flasher">
:::info
LoRa config is not available in the Flasher.
:::
</TabItem>
<TabItem value="web">
:::info
LoRa config is not available for in the Web UI.
:::
</TabItem>
</Tabs>

View file

@ -0,0 +1,200 @@
---
id: position
title: Position Configuration
sidebar_label: Position
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
The positon config options are: GPS Enabled, GPS Update Interval, GPS Attempt Time, Fixed Postion, Smart Broadcast, Broadcast Interval and Position Packet Flags. Position config uses an admin message sending a `Config.Position` protobuf.
Position data from GPS is provided by either the radio or your paired phone. Position data is not required to use Meshtastic but time calculations require at least one device on the mesh have either a gps or internet connection for time.
## Position Config Values
### GPS Enabled
Acceptable values: `true` or `false`
Enabled by default. Should the device GPS be enabled for this node?
### GPS Update Interval
How often should we try to get GPS position (in seconds), or zero for the default of once every 30 seconds, or a very large value (maxint) to update only once at boot.
### GPS Attempt Time
How long should we try to get our position during each GPS update interval attempt? (in seconds) Or if zero, use the default of 30 seconds.
### Fixed Position
Acceptable values: `true` or `false`
Off by default
If set, this node is at a fixed position. The device will generate GPS updates at the regular GPS update interval, but use whatever the last lat/lon/alt it saved for the node. The lat/lon/alt can be set by an internal GPS or with the help of the mobile device's GPS.
### Smart Broadcast
Acceptable values: `true` or `false`
On by default
Smart broadcast will send out your position at an increased frequency only if your location has changed enough for a position update to be useful.
Smart broadcast complements broadcast interval (doesn't override that setting) but will apply an algorithm to more frequently update your mesh network if you are in motion and then throttle it down when you are standing still. If you use this feature, it's best to leave broadcast interval at the default.
Smart broadcast will calculate an ideal position update interval based on the data rate of your selected channel configuration.
### Broadcast Interval
Default of `0` is 15 minutes
If smart broadcast is of we should send our position this often (but only if it has changed significantly)
The GPS updates will be sent out every Broadcast Interval, with either the actual GPS location, or an empty location if no GPS fix was achieved. This defaults to broadcast every 15 minutes.
### Position Flags
Bit field of boolean configuration options for POSITION messages (bitwise OR of PositionFlags)
| Value | Description |
| :-----------: | :---------------------------------------------------------: |
| POS_UNDEFINED | Required for compilation |
| POS_ALTITUDE | Include an altitude value (if available) |
| POS_ALT_MSL | Altitude value is MSL |
| POS_GEO_SEP | Include geoidal separation |
| POS_DOP | Include the DOP value ; PDOP used by default, see below |
| POS_HVDOP | If POS_DOP set, send separate HDOP / VDOP values instead of PDOP |
| POS_SATINVIEW | Include number of "satellites in view" |
| POS_SEQ_NOS | Include a sequence number incremented per packet |
| POS_TIMESTAMP | Include positional timestamp (from GPS solution) |
| POS_HEADING | Include positional heading (from GPS solution) |
| POS_SPEED | Include positional speed (from GPS solution) |
## Position Config Client Availability
<Tabs
groupId="settings"
defaultValue="flasher"
values={[
{label: 'Android', value: 'android'},
{label: 'Apple', value: 'apple'},
{label: 'Command Line', value: 'cli'},
{label: 'Flasher', value: 'flasher'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="android">
:::info
Position config is not available for Android.
:::
</TabItem>
<TabItem value="apple">
:::info
All position config values except for postion flag are available on iOS, iPadOS and macOS at Settings > Radio Configuration > Position.
:::
</TabItem>
<TabItem value="cli">
All Position config conmmands are available in the python CLI. Example commands are below:
| Setting | Acceptable Values | Default |
| :----------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------: |
| gps_enabled | `true`, `false` | `true` |
| gps_update_interval | `integer` (seconds) | Default `0` is 30 Seconds |
| gps_attempt_time | `integer` (seconds) | Default of `0` is 30 Seconds |
| fixed_position | `true`, `false` | `false` |
| position_broadcast_smart | `true`, `false` | `true` |
| position_broadcast_secs | `integer` (seconds) | Default of `0` is 15 Minutes |
| position_flags | `POS_UNDEFINED`, `POS_ALTITUDE`, `POS_ALT_MSL`, `POS_GEO_SEP`, `POS_DOP`, `POS_HVDOP`, `PDOP`, `POS_BATTERY`, `POS_SATINVIEW`, `POS_SEQ_NOS`, `POS_TIMESTAMP` | `POS_UNDEFINED` |
```shell title="Set GPS update interval to default settings (every 30 seconds)"
meshtastic --set gps_update_interval 0
```
```shell title="Set GPS update interval to every 45 seconds"
meshtastic --set gps_update_interval 45
```
```shell title="Set GPS attempt time to default (30 seconds)"
meshtastic --set gps_attempt_time 0
```
```shell title="Set GPS attempt time to 45 seconds"
meshtastic --set gps_attempt_time 45
```
```shell title="Set Fixed Position - Current Location"
meshtastic --set fixed_position true
```
:::note
The device will continue to acquire GPS coordinates according to the `gps_update_interval`, but will use the last saved coordinates as its fixed point.
:::
```shell title="Set Fixed Position - User Defined"
meshtastic --setlat 37.8651 --setlon -119.5383
```
```shell title="Unset Fixed Position"
meshtastic --set fixed_position false
```
```shell title="Enable smart position broadcast (default)"
meshtastic --set position_broadcast_smart true
```
```shell title="Disable smart position broadcast"
meshtastic --set position_broadcast_smart false
```
```shell title="Set GPS update interval to default settings (every 15 minutes)"
meshtastic --set position_broadcast_secs 0
```
```shell title="Set GPS update interval to every 60 seconds"
meshtastic --set position_broadcast_secs 60
```
:::note
It may take some time to see that the change has taken effect. The GPS location is updated according to the value specified on `gps_update_interval` and the mesh will be notified of the new position in relation to the `position_broadcast_secs` value.
:::
:::tip
Include each flag desired separated by a single space.
:::
```shell title="Set Position Flags"
meshtastic --pos-fields POS_ALTITUDE POS_ALT_MSL
```
```shell title="Unset Position Flags"
meshtastic --pos-fields POS_UNDEFINED
```
</TabItem>
<TabItem value="flasher">
:::info
Position config is not available in the Flasher.
:::
</TabItem>
<TabItem value="web">
:::info
Position config is not available in the Web UI.
:::
</TabItem>
</Tabs>
:::caution
Altering/disabling the GPS functionality does not mean that you will be unable to be found. Via triangulation of your radio, location may be given up to someone if they are determined enough.
:::

View file

@ -0,0 +1,199 @@
---
id: power
title: Power Configuration
sidebar_label: Power
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
The power config options are: Charge Current, Power Saving, Shutdown after losing power, ADC Multiplier Override Wait Bluetooth Interval, Mesh Super Deep Sleep Timeout, Super Deep Sleep Interval, Light Sleep Interval and Minimum Wake Interval. Power config uses an admin message sending a `Config.Power` protobuf.
Power settings are advanced configuration, most users should choose a role under Device Config to manage power for their device.
## Power Config Values
### Charge Current
**Tbeam 1.1 only setting**
Sets the current of the battery charger using the AXP power chip on the Tbeam 1.1
### Power Saving
If set, we are powered from a low-current source (i.e. solar), so even if it looks like we have power flowing in we should try to minimize power consumption as much as possible.
### Shutdown after losing power
Automatically shut down a device after a defined time period if power is lost.
### ADC Multiplier Override
**Fixes issues on Heltec v2**
Ratio of voltage divider for battery pin eg. 3.20 (R1=100k, R2=220k)
Overrides the ADC_MULTIPLIER defined in the firmware device variant file for battery voltage calculation.
Should be set to floating point value between 2 and 4
### Wait Bluetooth Interval
How long wait before turning off BLE in no Bluetooth states
`0` for default of 1 minute
### Mesh Super Deep Sleep Timeout
While in Light Sleep if this value is exceeded we will lower into super deep sleep
or Super Deep Sleep Interval (default 1 year) or a button press
`0` for default of two hours, MAXUINT for disabled
### Super Deep Sleep Interval
While in Light Sleep if Mesh Super Deep Sleep Timeout Seconds is exceeded we will lower into super deep sleep or this value (default 1 year) or a button press
`0` for default of one year
### Light Sleep Interval
**ESP32 Only Setting**
In light sleep the CPU is suspended, LoRa radio is on, BLE is off an GPS is on
`0` for default of five minutes
### Minimum Wake Interval
While in light sleep when we receive packets on the LoRa radio we will wake and handle them and stay awake in no Bluetooth mode for this interval
`0` for default of 10 seconds
## Power Config Client Availability
<Tabs
groupId="settings"
defaultValue="flasher"
values={[
{label: 'Android', value: 'android'},
{label: 'Apple', value: 'apple'},
{label: 'Command Line', value: 'cli'},
{label: 'Flasher', value: 'flasher'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="android">
:::info
Light Sleep Interval and Wait Bluetooth Interval are available under advanced settings for Android.
:::
</TabItem>
<TabItem value="apple">
:::info
Power config is not available on Apple OS's.
:::
</TabItem>
<TabItem value="cli">
All Power config options are available in the python CLI.
| Setting | Acceptable Values | Default |
| :----------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------: |
| charge_current | `MAUnset`, `MA100`, `MA190`, `MA280`, `MA360`, `MA450`, `MA550`, `MA630`, `MA700`, `MA780`, `MA880`, `MA960`, `MA1000`, `MA1080`, `MA1160`, `MA1240`, `MA1320`: | `MAUnset` |
| is_power_saving | `true`, `false` | `false` |
| on_battery_shutdown_after_secs | `integer` (seconds) | Default of `0` is off |
| adc_multiplier_override | `2-4` (floating point value) | Default of `0` uses firmware values |
| wait_bluetooth_secs | `integer` (seconds) | Default of `0` is 1 minute |
| mesh_sds_timeout_secs | `integer` (seconds) | Default of `0` is 2 hours |
| sds_secs | `integer` (seconds) | Default of `0` is 1 year |
| ls_secs | `integer` (seconds) | Default of `0` is 1 hour |
| min_wake_secs | `integer` (seconds) | Default of `0` is 10 seconds |
```shell title="Unset charge current"
meshtastic --set charge_current MAUnset
```
```shell title="Set charge current"
meshtastic --set charge_current MA100
```
```shell title="Enable is_power_saving"
meshtastic --set is_power_saving true
```
```shell title="Disable is_power_saving"
meshtastic --set is_power_saving false
```
```shell title="Disable on_battery_shutdown_after_secs"
meshtastic --set on_battery_shutdown_after_secs 0
```
```shell title="Set device to shutdown after 120 seconds on battery"
meshtastic --set on_battery_shutdown_after_secs 120
```
```shell title="Set wait_bluetooth_secs to default (60 seconds)"
meshtastic --set wait_bluetooth_secs 0
```
```shell title="Set wait_bluetooth_secs to 120 seconds"
meshtastic --set wait_bluetooth_secs 120
```
```shell title="Set mesh_sds_timeout_secs to default (2 hour/7200 seconds)"
meshtastic --set mesh_sds_timeout_secs 0
```
```shell title="Set mesh_sds_timeout_secs to 120 seconds"
meshtastic --set mesh_sds_timeout_secs 120
```
```shell title="Disable mesh_sds_timeout_secs (using MAXUINT)"
meshtastic --set mesh_sds_timeout_secs 4294967295
```
```shell title="Set sds_secs to default (1 year)"
meshtastic --set sds_secs 0
```
```shell title="Set sds_secs to 120 seconds"
meshtastic --set sds_secs 120
```
```shell title="Set ls_secs to default (5 minutes 300 seconds)"
meshtastic --set ls_secs 0
```
```shell title="Set ls_secs to 120 seconds"
meshtastic --set ls_secs 120
```
```shell title="Set min_wake_secs to default (10 seconds)"
meshtastic --set min_wake_secs 0
```
```shell title="Set min_wake_secs to 120 seconds"
meshtastic --set min_wake_secs 120
```
</TabItem>
<TabItem value="flasher">
:::info
Power config is not available in the Flasher.
:::
</TabItem>
<TabItem value="web">
:::info
Power config is not available in the Web UI.
:::
</TabItem>
</Tabs>

View file

@ -0,0 +1,341 @@
---
id: wifi
title: WiFi Configuration
sidebar_label: WiFi
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
The WiFi config options are: AP Mode, Hidden AP, SSID and Password. WiFi config uses an admin message sending a `Config.WiFi` protobuf.
:::info
Enabling WiFi will disable bluetooth. Only one connection method will work at a time.
:::
ESP32 devices have the ability to connect to WiFi as a client and also are able to create a software based access point (SoftAP). WiFi can be configured in either mode.
:::note
The device can be either a WiFi client or a software access point. It **cannot** operate as both at the same time.
:::
You can [force the device to boot into SoftAP mode](#software-access-point) by rebooting the device with the program switch depressed. If forced into AP mode, it will revert to previous settings after a reboot.
## WiFi Config Values
### Software Access Point (AP)
A boolean value that toggles the [Software Access Point](#software-access-point)
Acceptable values are `true` or `false`
### Hidden Access Point (AP)
A boolean value that toggles the hidden access point
Acceptable values are `true` or `false`
If set, the node AP will broadcast as a hidden SSID
### WiFi SSID
In [SoftAP](#software-access-point) mode, this is the SSID broadcast to access your device's WiFi. In [Client](#wifi-client) mode, this is your WiFi Networks SSID. This string is case sensitive.
### WiFi Password
In [SoftAP](#software-access-point) mode, this is the password to access your device's WiFi. In [Client](#wifi-client) mode, this is your WiFi Networks password. This string is case sensitive.
:::tip
The first time your device restarts after enabling the WiFi access point, it will take an additional 20-30 seconds to boot. This is to generate self-signed SSL keys. The keys will be saved for future reuse.
:::
## WiFi Config Client Availability
<Tabs
groupId="settings"
defaultValue="flasher"
values={[
{label: 'Android', value: 'android'},
{label: 'Apple', value: 'apple'},
{label: 'Command Line', value: 'cli'},
{label: 'Flasher', value: 'flasher'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="android">
:::info
WiFi config is not available for Android.
:::
</TabItem>
<TabItem value="apple">
:::info
WiFi config is not available on Apple OS's.
:::
</TabItem>
<TabItem value="cli">
All WiFi config options are available in the python CLI.
| Setting | Acceptable Values | Default |
| :-----------: | :---------------: | :-----: |
| wifi_ap_mode | `true`, `false` | `false` |
| wifi_ap_hidden | `true`, `false` | `false` |
| wifi_password | string | `""` |
| wifi_ssid | string | `""` |
```shell title="Enable SoftAP"
meshtastic --set wifi_ap_mode true
```
```shell title="Disable SoftAP"
meshtastic --set wifi_ap_mode false
```
```shell title="Make Access Point Hidden"
meshtastic --set wifi_ap_hidden false
```
```shell title="Set WiFi network"
meshtastic --set wifi_ssid mynetwork
```
```shell title="Set WiFi network (with spaces)"
meshtastic --set wifi_ssid "my network"
```
```shell title="Set WiFi password"
meshtastic --set wifi_password mypassword
```
```shell title="Set WiFi password (with spaces)"
meshtastic --set wifi_password "my password"
```
</TabItem>
<TabItem value="flasher">
:::info
Available in the flasher.
:::
</TabItem>
<TabItem value="web">
:::info
Available in the web ui.
:::
</TabItem>
</Tabs>
## Details
### Software Access Point
With the SoftAP enabled, a DNS server will run on the device. The DNS server will respond to all DNS requests with the IP address of your device. This will simplify device discovery because you will not have to remember the device's IP any unencrypted HTTP request will direct you to the right location.
If you set your SoftAP up using a client like the CLI and have a screen attached to your device, the final page will display something similar to the following:
```
WiFi: Software AP
IP: 192.168.42.1 (0/4)
SSID: myNetwork / PWD: myPassword (alternating)
http://meshtastic.local
* * * * *
```
You should then be able to connect to the node using either the displayed IP address or the HTTP link.
#### Force SoftAP
You can also enable the SoftAP by following these directions:
- Hold down the user button
- Press and release the reset button
- Count to two
- Let go of the user button
This will reboot the device with the SSID set to `meshtasticAdmin` and the password set to `12345678`. Using the Force SoftAP method, once you reboot, the SoftAP will be turned off.
If you have a screen attached to your device, the final page will display something similar to the following:
```
WiFi: Software AP (Admin)
IP: 192.168.42.1 (0/4)
SSID: meshtasticAdmin / PWD: 12345678 (alternating)
http://meshtastic.local
* * * * *
```
You should then be able to connect to the node using either the displayed IP address or the HTTP link.
### WiFi Client
With `wifi_ssid` & `wifi_password` populated, the device will now to connect to your network. Make sure you are in range of your WiFi. If you have a single device on your local network it's easy to connect to your device `http://meshtastic.local`. If you have multiple devices you will need to connect using their respective IP addresses.
If you have a screen attached to your device, the final page will display something similar to the following:
```
WiFi: Software AP (Admin)
IP: 192.168.42.1 (0/4)
SSID: myNetwork
http://meshtastic.local
* * * * *
```
You should then be able to connect to the node using either the displayed IP address or the HTTP link.
### Disable WiFi
To disable WiFi completely, set `wifi_ap_mode` to `false`, and both `wifi_ssid` & `wifi_password` to an empty string `""`.
## Examples
### Enable WiFi (as client)
<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">
```shell title="Enabling WiFi Client"
meshtastic --set wifi_ap_mode false --set wifi_ssid mywifissid --set wifi_password mywifipassword
```
:::note
If your `wifi_ssid` or `wifi_password` contain spaces, be sure to put quotation marks around the whole thing:
```shell title="Example with spaces"
meshtastic --set wifi_ssid "my wifi ssid" --set wifi_password "my wifi password"
```
:::
</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>
In the above example, the device will join a network with the SSID `mywifissid` and the password `mywifipassword`.
### Enable WiFi (as SoftAP)
<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">
```shell title="Software Access Point Example"
meshtastic --set wifi_ap_mode true --set wifi_ssid mywifissid --set wifi_password mywifipassword
```
:::note
If your `wifi_ssid` or `wifi_password` contain spaces, be sure to put quotation marks around the whole thing:
```shell title="Example with spaces"
meshtastic --set wifi_ssid "my wifi ssid" --set wifi_password "my wifi password"
```
:::
</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>
In the above example, the device will broadcast a network with the SSID `mywifissid` and the password `mywifipassword`.
### Disable WiFi Completely
<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">
```shell title="Example - Disabling WiFi"
meshtastic --set wifi_ap_mode false --set wifi_ssid "" --set wifi_password ""
```
</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>

View file

@ -1,7 +1,7 @@
--- ---
id: gps id: gps
title: GPS Settings title: 1.2 GPS Settings
sidebar_label: GPS sidebar_label: 1.2 GPS
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';

View file

@ -1,7 +1,7 @@
--- ---
id: ham id: ham
title: Licensed (HAM) Operation title: 1.2 Licensed (HAM) Operation
sidebar_label: Licensed (HAM) Operation sidebar_label: 1.2 Licensed (HAM) Operation
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';

View file

@ -8,73 +8,16 @@ sidebar_position: 5
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
Customization of your settings is vital to configuring your own mesh. Changing settings is currently most reliably done using the command line interface available within `Meshtastic-python`. Setting support is being added to all other methods of interfacing with your device. Configuration for Meshtastic devices has been completely overhauled in version 1.3.
## Settings In order to facilitate a more stable admin channel for remote management of nodes we have broken our large monolithic config structure into six sections that can be saved individually, protecting our precious mesh bandwidth.
Below are some of the most common settings that a new user will want to become acquainted with, but it isn't an exhaustive list. Make sure to take a look at the sidebar for additional settings. If you find something missing or incorrect, please help us improve our docs by filing an issue, creating a pull request, or mentioning it in our forum. Default settings values are prefered whenever possible as they consume no bandwidth when sent over the mesh.
### Channel Settings ## Config Sections
Channel settings are very important, if channels are misconfigured between devices they won't be able to communicate! A freshly flashed device will use the default channel settings. Depending on your use case you may want to change your encryption using `psk`, your range of communication by setting one of the four pre-set bands using `modem_config`, or even just the name of your channel! Before you begin, don't forget to set your `region` correctly! Take a look at the [basic channel configuration](settings/channel) and if you're tech savvy or a radio head check out the [advanced channel settings](settings/channel-advanced). Meshtastic config is now broken into 6 sections. Device, Display, LoRa, Position, Power and WiFi.
:::note ## Module Config
It is very important that you set your device's `region` setting. This will ensure that you are operating within the legal limits for your area.
:::
### GPS Settings Meshtastic includes the following modules: Canned Messages, External Notification, Range Test, Serial, Store & Forward and Telemetry (sensors).
For most, GPS is a really cool, desirable feature. Knowing where everyone on your local mesh is has some major advantages. However, it's possible you want to hide the location of a particular device (like a router mounted on your home). All of the settings related to GPS are located [here](settings/gps).
### WiFi Settings
Whether you're using the upcoming [web interface](software/web) or you're interested in broadcasting messages to/from the internet using [MQTT](settings/mqtt), the [WiFi settings](settings/wifi) are your first stop towards an IoT radio.
## Examples
At the bottom of each setting page, examples will be available displaying how to adjust settings using the various platforms available to interface with your device. The examples will look like this:
### Introducing Examples
<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
The CLI examples will require you to utilize the Command line Interface that is available through Meshtastic-python. Installation instructions can be found [here](software/python/python-installation).
:::
```shell title="Example - Set Region (an important first step!)"
meshtastic --set region Unset
```
</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>

View file

@ -1,7 +1,7 @@
--- ---
id: misc id: misc
title: Miscellaneous Settings title: 1.2 Miscellaneous Settings
sidebar_label: Miscellaneous sidebar_label: 1.2 Miscellaneous
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';

View file

@ -0,0 +1,274 @@
---
id: canned-message
title: Canned Message Module Configuration
sidebar_label: Canned Message
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
:::warning
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
:::
:::note
This module requires attaching a peripheral accessory to your device. It will not work without one. It also requires use of the [Rotary Encoder Module](input-broker) to configure the input source.
:::
## Overview
The CannedMessage Module will allow you to send messages to the mesh network from the device without using the phone app. You can predefine text messages to choose from.
:::tip
Once module settings are changed, a **reset** is required for them to take effect.
:::
## Settings
| Setting | Acceptable Values | Default |
| :--------------------------------------: | :---------------: | :-----: |
| canned_message_module_allow_input_source | `rotEnc1`, `_any` | `_any` |
| canned_message_module_enabled | `true`, `false` | `false` |
| canned_message_module_messages | `string` | `""` |
| canned_message_module_send_bell | `true`, `false` | `false` |
| (Messages)\* | `string` | `""` |
- Messages can be set with a dedicated option:
`--set-canned-message "<messages>"`
### canned_message_module_allow_input_source
Input event source accepted by the canned message module.
| Value | Description |
| :-------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| `_any` | Default. Allows any peripheral input device connected to the device. |
| `rotEnc1` | Hardcoded value naming the input device that this module listens to. This could allow multiple input devices to be named with future software development. At present, this doesn't do anything differently than the default setting. |
#### Set input source
<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">
```shell title="Set Allowed Input Source"
meshtastic --set canned_message_module_allow_input_source "_any"
```
```shell title="Specify Allowed Input Source"
meshtastic --set canned_message_module_allow_input_source "rotEnc1"
```
</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>
### canned_message_module_enabled
Enables the module.
:::tip
Using the canned message module requires you set up the [Rotary Encoder Module](input-broker). See [prerequisites](#prerequisites) below.
:::
#### Enable/Disable the module
<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">
```shell title="Enable Canned Message Module"
meshtastic --set canned_message_module_enabled true
```
```shell title="Disable Canned Message Module"
meshtastic --set canned_message_module_enabled false
```
</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>
### canned_message_module_send_bell
CannedMessageModule also sends a "bell character" with the messages.
The [External Notification Module](external-notification) can benefit from this feature as it utilizes the bell character.
_We have an "External Notification Module", that can be set up to beep, when new message arrives.
This module can also be configured to beep only when message contains the "bell character".
See module documentation (link above) for details._
#### Enable/Disable bell character
<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">
```shell title="Enable Bell Character"
meshtastic --set canned_message_module_send_bell true
```
```shell title="Disable Bell Character"
meshtastic --set canned_message_module_send_bell false
```
</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>
### Messages
CLI has a dedicated option for canned message module to set predefines messages: `--set-canned-message <message>`
Predefined messages separated by `|` characters.
You can define up to 50 messages with a total length 800 bytes.
Existing configuration can be queried with CLI option: `--get-canned-message`
#### Set canned messages
<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">
```shell title="Set Canned Messages"
meshtastic --set canned_message_module_messages "I'm fine|I'm out|I'm back|Need helping hand|Help me with saw|I need an alpinist|I need ambulance|Keep Calm|On my way|I will be late|I'm already waiting|We have company|Beer is cold|Roger"
```
</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
### Prerequisites
<!--- TODO add link to hardware pages to first bullet point --->
- Attach a compatible peripheral device. Take note of the GPIO numbers you use, as they will be used in the following step.
- Once attached, configure peripheral device with [Rotary Encoder Module](input-broker) Settings.
:::note
Replace each `GPIO` (x3) below with the GPIO numbers from hardware setup.
```shell title="Canned Message Module - Required Rotary Encoder Module 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
```
:::
That's it! With a functioning and enabled rotary encoder, you're ready to begin configuring the Canned Message Module.

View file

@ -0,0 +1,337 @@
---
id: external-notification
title: External Notification Module Settings
sidebar_label: External Notification
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
:::warning
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
:::
:::note
This module requires attaching a peripheral accessory to your device. It will not work without one.
:::
## Overview
The External Notification Module will allow you to connect a speaker, LED, or other device to notify you when a message has been received from the mesh network.
:::tip
Once module settings are changed, a **reset** is required for them to take effect.
:::
## Settings
| Setting | Acceptable Values | Default |
| :-----------------------------------: | :----------------------: | :-----: |
| ext_notification_module_active | `true`, `false` | `false` |
| ext_notification_module_alert_bell | `true`, `false` | `false` |
| ext_notification_module_alert_message | `true`, `false` | `false` |
| ext_notification_module_enabled | `true`, `false` | `false` |
| ext_notification_module_output | `integer` | `0` |
| ext_notification_module_output_ms | `integer` (milliseconds) | `0` |
### ext_notification_module_active
Specifies whether the external circuit is triggered when the device's GPIO is low or high.
:::caution
To prevent damaging your device, double check your device's schematics before attaching to the GPIO pins and setting this value.
:::
#### Specify High/Low GPIO triggers circuit
<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">
```shell title="GPIO active high"
meshtastic --set ext_notification_module_active true
```
```shell title="GPIO active low (default)"
meshtastic --set ext_notification_module_active false
```
</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>
### ext_notification_module_alert_bell
Specifies if an alert should be sent when receiving an incoming bell.
#### Enable/Disable alert on incoming bell
<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">
```shell title="Enable alert on incoming bell"
meshtastic --set ext_notification_module_alert_bell true
```
```shell title="Disable alert on incoming bell"
meshtastic --set ext_notification_module_alert_bell false
```
</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>
### ext_notification_module_alert_message
Specifies if an alert should be sent when receiving an incoming message.
#### Enable/Disable Alert on incoming message
<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">
```shell title="Enable alert on incoming message"
meshtastic --set ext_notification_module_alert_message true
```
```shell title="Disable alert on incoming message"
meshtastic --set ext_notification_module_alert_message false
```
</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>
### ext_notification_module_enabled
Enables the module.
#### Enable/Disable the module
<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">
```shell title="Enable Module"
meshtastic --set ext_notification_module_enabled true
```
```shell title="Disable Module"
meshtastic --set ext_notification_module_enabled false
```
</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>
### ext_notification_module_output
Specifies the GPIO that your external circuit is attached to on the device.
:::caution
To prevent damaging your device, double check your device's schematics before attaching to the GPIO pins and setting this value.
:::
#### Specify GPIO for circuit to monitor
<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` in the below command with the GPIO number your circuit is attached to.
:::
```shell title="Specify GPIO that circuit is connected to"
meshtastic --set ext_notification_module_output 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>
### ext_notification_module_output_ms
Specifies how long in milliseconds you would like your external circuit triggered. Default is `1000`. (Because of the way that defaults are handled in the protobufs `0` is interpreted as `1000`)
#### Specify how many milliseconds to trigger circuit
<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">
```shell title="Set to default (1000ms)"
meshtastic --set ext_notification_module_output_ms 0
```
```shell title="Set to other value"
meshtastic --set ext_notification_module_output_ms 1500
```
</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>

View file

@ -0,0 +1,18 @@
---
id: module-config
title: 1.3 Module Configuration
sidebar_label: 1.3 Module Config
sidebar_position: 2
---
Modules are included in the firmware and allow users to extend the functionality of their mesh or device.
The list of current modules is as follows:
| Name | Description |
|:----:|:-----------:|
| [Range Test Module](/docs/settings/moduleconfig/range-test-module) | Send messages with GPS location at an interval to test the distance your devices can communicate. Requires (at least) one device set up as a sender and one as a receiver. The receiver(s) will log all incoming messages to a CSV. |
:::tip
Once module settings are changed, a **reset** is required for them to take effect.
:::

View file

@ -0,0 +1,468 @@
---
id: input-broker
title: Input Broker
sidebar_label: Input Broker
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
:::warning
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
:::
<PluginModule name="inputbroker_" rename="rotary1_" />
<!--- TODO add link to hardware setup to admonition--->
:::note
This module 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 module settings are changed, a **reset** is required for them to take effect.
:::
## Settings
| Setting | Acceptable Values | Default |
| :-----------------: | :---------------: | :-----------: |
| inputbroker_enabled | `true`, `false` | `false` |
| inputbroker_event_cw | `InputEventChar` | (not defined) |
| inputbroker_event_ccw | `InputEventChar` | (not defined) |
| inputbroker_event_press | `InputEventChar` | (not defined) |
| inputbroker_pin_a | `integer` | (not defined) |
| inputbroker_pin_b | `integer` | (not defined) |
| inputbroker_pin_press | `integer` | (not defined) |
### inputbroker_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">
```shell title="Enable rotary1"
meshtastic --set inputbroker_enabled true
```
```shell title="Disable rotary1"
meshtastic --set inputbroker_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>
### inputbroker_event_cw
Generate input event on CW of this kind.
:::tip
For using with CannedMessageModule 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">
```shell title="Set rotary1 event cw to 'KEY_UP'"
meshtastic --set inputbroker_event_press KEY_UP
```
```shell title="Unset rotary1 event cw"
meshtastic --set inputbroker_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>
### inputbroker_event_ccw
Generate input event on CCW of this kind.
:::tip
For using with CannedMessageModule 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">
```shell title="Set rotary1 event ccw to 'KEY_DOWN'"
meshtastic --set inputbroker_event_ccw KEY_DOWN
```
```shell title="Unset rotary1 event ccw"
meshtastic --set inputbroker_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>
### inputbroker_event_press
Generate input event on Press of this kind.
:::tip
For using with CannedMessageModule 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">
```shell title="Set rotary1 event press to 'KEY_SELECT'"
meshtastic --set inputbroker_event_press KEY_SELECT
```
```shell title="Unset rotary1 event press"
meshtastic --set inputbroker_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>
### inputbroker_pin_a
GPIO pin for rotary encoder A port.
:::caution
To prevent damaging your device, double check your device's schematics before attaching to the GPIO pins and setting this value.
:::
#### 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.
:::
```shell title="Specify rotary1 pin a"
meshtastic --set inputbroker_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>
### inputbroker_pin_b
GPIO pin for rotary encoder B port.
:::caution
To prevent damaging your device, double check your device's schematics before attaching to the GPIO pins and setting this value.
:::
#### 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.
:::
```shell title="Specify rotary1 pin b"
meshtastic --set inputbroker_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>
### inputbroker_pin_press
GPIO pin for rotary encoder Press port.
:::caution
To prevent damaging your device, double check your device's schematics before attaching to the GPIO pins and setting this value.
:::
#### 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.
:::
```shell title="Specify rotary1 pin press"
meshtastic --set inputbroker_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>
## Details
<!--- TODO add link to hardware page --->
Configuring the rotary encoder module require attaching the compatible hardware.
## Examples
### Configure rotary encoder for Canned Message Module
<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.
:::
```shell title="Canned Message Module - Required Rotary Encoder Module Settings"
meshtastic --set inputbroker_pin_a GPIO
meshtastic --set inputbroker_pin_b GPIO
meshtastic --set inputbroker_pin_press GPIO
meshtastic --set inputbroker_event_cw KEY_UP
meshtastic --set inputbroker_event_ccw KEY_DOWN
meshtastic --set inputbroker_event_press KEY_SELECT
meshtastic --set inputbroker_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>

View file

@ -0,0 +1,222 @@
---
id: range-test-module
title: Range Test Module Configuration
sidebar_label: Range Test
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
The range test module config options are: Enabled, Save, and Sender. Range Test Module config uses an admin message sending a `ConfigModule.RangeTest` protobuf.
This module allows you to test the range of your Meshtastic nodes. It requires at least two nodes, a sender and a receiver. The receiving node then saves the messages along with the GPS coordinates at which they were received into a .csv file. This .csv file can then be integrated into [Google Earth](https://earth.google.com), [Google Maps - My Maps](https://mymaps.google.com), or any other program capable of processing .csv files. This can enable you to visualize your mesh.
## Range Test Module Config Values
### Enabled
Enables the range test module.
### Save CSV File
**ESP32 Only Setting**
If enabled, we will save a log of all received messages to a file named rangetest.csv which you can access from the web server Extensions > File Browser > rangetest.csv. The file will be created after receiving messages. The device will abort writing if there is less than 50k of space on the filesystem to prevent filling up the storage.
### Sender Interval
How long to wait between sending test packets. 0 is default which disables sending messages.
## Range Test Module Config Client Availability
<Tabs
groupId="settings"
defaultValue="flasher"
values={[
{label: 'Android', value: 'android'},
{label: 'Apple', value: 'apple'},
{label: 'Command Line', value: 'cli'},
{label: 'Flasher', value: 'flasher'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="android">
:::info
Range Test features are available for Android.
:::
</TabItem>
<TabItem value="apple">
:::info
Range test module config is not yet available on Apple OS's.
:::
</TabItem>
<TabItem value="cli">
All range test module config options are available in the python CLI. Example commands are below:
| Setting | Acceptable Values | Default |
| :-----------------------: | :-----------------: | :-----: |
| range_test_module_enabled | `true`, `false` | `false` |
| range_test_module_save | `true`, `false` | `false` |
| range_test_module_sender | `integer` (Seconds) | `0` |
```shell title="Enable the module"
meshtastic --set range_test_module_enabled true
```
```shell title="Disable the module"
meshtastic --set range_test_module_enabled true
```
```shell title="Enable range test save"
meshtastic --set range_test_module_save true
```
```shell title="Disable range test save"
meshtastic --set range_test_module_save false
```
```shell title="Enable range test sender (send every 60 seconds)"
meshtastic --set range_test_module_sender 60
```
```shell title="Disable range test sender"
meshtastic --set range_test_module_sender 0
```
</TabItem>
<TabItem value="flasher">
:::info
Range test module config is not available in the Flasher.
:::
</TabItem>
<TabItem value="web">
:::info
Range test module config is not available for the Web UI.
:::
</TabItem>
</Tabs>
## Details
While a minimum of two radios is required, more can be used. You can have any number of receivers and senders that your mesh is able to handle. You can test having a single sender with multiple receivers or a single receiver with multiple senders. Let us know on the [forum thread](https://meshtastic.discourse.group/t/new-plugin-rangetestplugin/2591) the results of your configuration.
Be sure to turn off either the module configured as a sender or the device where the module setup as sender when not in use. This will use a lot of time on air and will spam your channel.
Also be mindful of your space usage on the file system. It has protections from filling up the space but it's best to delete old range test results.
:::note
Leaving this module on can slow down your mesh. Currently, the messages are sent using the same `TEXT_MESSAGE_APP` [port that all other messages](/docs/developers/protobufs/api#portnumsproto) are sent on.
:::
### Accessing your CSV
Connect to your device over WiFi, either using the [software access point](/docs/settings/wifi#software-access-point) or [WiFi Client](/docs/settings/wifi#wifi-client). Then navigate to `meshtastic.local` (or your IP address). Your file will be available for download under `Extensions > File Browser > rangetest.csv` once it has been created by receiving messages.
```plaintext title="Example URLs"
http://meshtastic.local
http://198.168.0.15
```
### Recommended Sender Settings
| Radio Setting | `range_test_module_sender` |
| :-----------: | :------------------------: |
| Long Slow | 60 |
| Long Alt | 30 |
| Medium | 15 |
| Short Fast | 15 |
## Examples
### Sender Node
<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">
```shell title="Example - Sender Node"
meshtastic --set range_test_module_enabled true
meshtastic --set range_test_module_sender 60
```
</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>
### Receiver Node
<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">
```shell title="Example - Receiver Node"
meshtastic --set range_test_module_enabled true
meshtastic --set range_test_module_save 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>

View file

@ -0,0 +1,146 @@
---
id: serial
title: Serial Module Configuration
sidebar_label: Serial
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
The serial module config options are: Enabled, Echo, Mode, Receive GPIO, Transmit GPIO and Sender. Serial Module config uses an admin message sending a `ConfigModule.Serial` protobuf.
This is a simple interface to send messages over the mesh network by sending strings over a serial port. Anything you send the node will be turned into a message sent out over the mesh, and anything received from the mesh will be sent to the serial port. Note that this module does not (yet) allow arbitrary protobuf commands to be sent over the serial connection.
:::warning
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
:::
:::note
This module requires attaching a peripheral accessory to your device. It will not work without one.
:::
## Serial Module Config Values
### Enabled
Enables the serial module.
### Echo
If set, any packets you send will be echoed back to your device.
### Mode
### Receive GPIO Pin
Set the GPIO pin to the RXD pin you have set up.
### Transmit GPIO Pin
Set the GPIO pin to the RXD pin you have set up.
:::tip
Connect the TX pin to the other device's RX pin, and vice versa. Connect their grounds to each other (not necessary if they're both plugged into the same USB power source.)
:::
### Baud Rate
The serial baud rate.
### Timeout
The amount of time to wait before we consider your packet as "done".
:::tip
Once module settings are changed, a **reset** is required for them to take effect.
:::
## Serial Module Config Client Availability
<Tabs
groupId="settings"
defaultValue="flasher"
values={[
{label: 'Android', value: 'android'},
{label: 'Apple', value: 'apple'},
{label: 'Command Line', value: 'cli'},
{label: 'Flasher', value: 'flasher'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="android">
:::info
Serial module config is not available for Android.
:::
</TabItem>
<TabItem value="apple">
:::info
Serial module config is not yet available on Apple OS's.
:::
</TabItem>
<TabItem value="cli">
All serial module config options are available in the python CLI. Example commands are below:
| Setting | Acceptable Values | Default |
| :-------------------: | :-----------------: | :-----: |
| serial_module_enabled | `true`, `false` | `false` |
| serial_module_echo | `true`, `false` | `false` |
| serial_module_mode | `modeDefault` `modeSimple` `modeProto` | `modeDefault` |
| serial_module_rxd | GPIO Pin Number 1-39 | Default of `0` is Unset |
| serial_module_txd | GPIO Pin Number 1-39 | Defaunlt of `0` is Unset |
| serial_module_baud | `baudDefault` `baud110` `baud300` `baud600` `baud1200` `baud2400` `baud4800` `baud9600` `baud19200` `baud38400` `baud57600` `baud115200` `baud230400` `baud460800` `baud576000` `baud921600` | `baudDefault` |
| serial_module_timeout | `integer` (seconds) | `0` |
```shell title="Enable / Disable Module"
meshtastic --set serial_module_enabled true
meshtastic --set serial_module_enabled false
```
```shell title="Enable / Disable Echo"
meshtastic --set serial_module_echo true
meshtastic --set serial_module_echo false
```
```shell title="Set Mode"
meshtastic --set serial_module_mode modeDefault
meshtastic --set serial_module_mode modeProto
```
```shell title="Set RXD to GPIO pin number 7"
meshtastic --set serial_module_rxd 7
```
```shell title="Set TXD to GPIO pin number 28"
meshtastic --set serial_module_txd 28
```
```shell title="Set Baud Rate"
meshtastic --set serial_module_baud baudDefault
meshtastic --set serial_module_baud baud576000
```
```shell title="Set Timeout to 15 seconds"
meshtastic --set serial_module_timeout 15
```
</TabItem>
<TabItem value="flasher">
:::info
Serial module config is not available in the Flasher.
:::
</TabItem>
<TabItem value="web">
:::info
Serial module config is not available for the Web UI.
:::
</TabItem>
</Tabs>

View file

@ -0,0 +1,336 @@
---
id: store-and-forward
title: Store & Forward Module Configuration
sidebar_label: Store & Forward
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
:::info
Currently only available for ESP32 based devices with external PSRAM. Requires the device to be set as a router.
**Don't enable Store and Forward Module on multiple [routers](/docs/settings/router).**
:::
## Overview
:::caution
This is a work in progress and is partially available. Stability is not guaranteed.
:::
The Store Forward Module is an implementation of a Store and Forward system to enable resilient messaging in the event that a client device is disconnected from the main network.
Because of the increased network traffic for this overhead, it's not advised to use this if you are duty cycle limited for your airtime usage nor is it advised to use this for SF12 (Long Range / Slow).
:::tip
Once module settings are changed, a **reset** is required for them to take effect.
:::
## Settings
| Setting | Acceptable Values | Default |
| :----------------------------------------: | :---------------: | :-----: |
| store_forward_module_enabled | `true`, `false` | `false` |
| store_forward_module_heartbeat | `true`, `false` | `false` |
| store_forward_module_history_return_max | `integer` | `0` |
| store_forward_module_history_return_window | `integer` | `0` |
| store_forward_module_records | `integer` | `0` |
### store_forward_module_enabled
Enables the module.
<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">
```shell title="Enable the module"
meshtastic --set store_forward_module_enabled true
```
```shell title="Disable the module"
meshtastic --set store_forward_module_enabled false
```
</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>
### store_forward_module_heartbeat
The Store & Forward Router sends a periodic message onto the network. This allows connected devices to know that a router is in range and listening to received messages. A client like Android, iOS, or Web can (if supported) indicate to the user whether a store and forward router is available.
<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">
```shell title="Set store_forward_module_heartbeat to default"
meshtastic --set store_forward_module_heartbeat 0
```
</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>
### store_forward_module_history_return_max
Sets the maximum number of messages to return to a client device.
<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">
```shell title="Set store_forward_module_history_return_max to default"
meshtastic --set store_forward_module_history_return_max 0
```
```shell title="Set store_forward_module_history_return_max to 100 messages"
meshtastic --set store_forward_module_history_return_max 100
```
</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>
### store_forward_module_history_return_window
Limits the time period (in minutes) a client device can request.
<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">
```shell title="Set store_forward_module_history_return_window to default"
meshtastic --set store_forward_module_history_return_window 0
```
```shell title="Set store_forward_module_history_return_window to 1 day (1440 minutes)"
meshtastic --set store_forward_module_history_return_window 1440
```
</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>
### store_forward_module_records
Set this to the maximum number of records to save. Best to leave this at the default (`0`) where the module will use 2/3 of your device's available PSRAM. This is about 11,000 records.
<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">
```shell title="Set store_forward_module_records to default (≈11,000 records)"
meshtastic --set store_forward_module_records 0
```
```shell title="Set store_forward_module_records to 100 records"
meshtastic --set store_forward_module_records 100
```
</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
### How it works
![Store & Forward - Overview](/img/modules/store_and_forward/store_and_forward-overview.png)
### Requirements
Initial Requirements:
- Must be installed on a router node.
- This is an artificial limitation, but is in place to enforce best practices.
- Router nodes are intended to be always online. If this module misses any messages, the reliability of the stored messages will be reduced.
- Esp32 Processor based device with external PSRAM. (tbeam v1.0 and tbeamv1.1, and maybe others)
### Usage Overview
- To use / test this you will want at least 3 devices
- One device will (currently) need be a tbeam v1.0 and tbeamv1.1 configured as a Meshtastic router. Other devices with built in PSRAM will be supported at some point.
- Two others will be regular clients. Nothing special required.
### Meshtastic channel configuration
Don't use this on the "Long Range / Slow" or "Long Range / Fast" channel settings. You're welcome to try and report back, but those channels have a [very low bitrate](/docs/developers/firmware/radio-settings#pre-defined).
Either use a custom channel configuration with at an at least 1kbit data rate or use "Medium Range / Fast".
Recommended channel setting is for 1.343kbps:
```shell title="Recommended channel setting for S&F module"
meshtastic --setchan spread_factor 11 --setchan coding_rate 5 --setchan bandwidth 500
```
With an aftermarket coaxial antenna or moxon antenna, that will give you roughly the same range as "Long Range / Slow" and 5x the bitrate.
### Router setup
:::warning
Don't enable the Store and Forward module on multiple routers!
:::
- Configure your device as a [meshtastic router](/docs/settings/router).
- Name your router node something that makes it easily identifiable, aka "Router".
- Configure the Store and Forward module
```shell title="Required - Enable the module"
meshtastic --set store_forward_module_enabled true
```
```shell title="Optional - Set maximum number of records to save to device"
meshtastic --set store_forward_module_records 100
```
:::tip
Best to leave `store_forward_module_records` at the default (`0`) where the module will use 2/3 of your device's available PSRAM. This is about 11,000 records.
:::
### Client Usage
Currently, no special configuration is required. To request your history sent to you, send the command into the message field "SF". That's it. This will eventually change to make it easier. At the moment, that message will be sent to everyone on the mesh but we'll (eventually) make it easier to use where there'll be a button (or maybe it'll be transparent) and the command isn't sent as a text message to the mesh.
Available Commands:
| Command | Definition |
| :-----: | :------------------------------------------: |
| SF | Send the last few messages I may have missed |
| SFm | Send a 240 byte payload (Used for testing) |
The Store and Forward module will only service one client at a time. If a second client requests messages while the S&F is busy, the S&F will send a private message to the second client that they will need to wait.

View file

@ -0,0 +1,506 @@
---
id: telemetry
title: Telemetry Module Configuration
sidebar_label: Telemetry
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
:::warning
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
:::
<PluginModule
name="telemetry_module_environment"
rename="environmental_measurement_plugin"
/>
<!--- TODO add link to hardware setup to admonition--->
:::note
The environment metrics feature of this module requires attaching a peripheral accessory to your device. It will not work without one.
:::
## Overview
In addition to key device metrics such as battery level, the Telemetry Module will also allow nodes to send environmental metrics from externally connected sensors. Currently supported sensors are BME280, BME680, DHT11, DHT12, DHT21, DHT22, Dallas 1-wire DS18B20 and MCP9808.
:::tip
Once module settings are changed, a **reset** is required for them to take effect.
:::
## Settings
| Setting | Acceptable Values | Default |
| :-----------------------------------------------------: | :-----------------: | :-----: |
| telemetry_module_device_update_interval | `integer` (seconds) | `0` |
| telemetry_module_environment_display_fahrenheit | `true`, `false` | `false` |
| telemetry_module_environment_measurement_enabled | `true`, `false` | `false` |
| telemetry_module_environment_read_error_count_threshold | `integer` | `0` |
| telemetry_module_environment_recovery_interval | `integer` (seconds) | `0` |
| telemetry_module_environment_screen_enabled | `true`, `false` | `0` |
| telemetry_module_environment_sensor_pin | `integer` | `0` |
| telemetry_module_environment_sensor_type | `0-6` | `0` |
| telemetry_module_environment_update_interval | `integer` (seconds) | `0` |
### telemetry_module_device_update_interval
Interval in seconds of how often we should try to send our measurements to the mesh.
<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">
```shell title="Set module update interval to default"
meshtastic --set telemetry_module_device_update_interval 0
```
```shell title="Set module update interval to 120 seconds"
meshtastic --set telemetry_module_device_update_interval 120
```
</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>
### telemetry_module_environment_display_fahrenheit
The sensor is always read in Celsius, but the user can opt to view the temperature display in Fahrenheit using this setting.
#### Display Farenheit/Celsius
<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">
```shell title="Display Farenheit"
meshtastic --set telemetry_module_environment_display_fahrenheit true
````
```shell title="Display Celsius"
meshtastic --set telemetry_module_environment_display_fahrenheit false
```
</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>
### telemetry_module_environment_measurement_enabled
Enables the module to utilize environmental metrics.
#### Enable/Disable the module
<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">
```shell title="Enable Module"
meshtastic --set telemetry_module_environment_measurement_enabled true
````
```shell title="Disable Module"
meshtastic --set telemetry_module_environment_measurement_enabled false
```
</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>
### telemetry_module_environment_read_error_count_threshold
Sometimes sensor reads can fail. If this happens, we will retry a configurable number of attempts. Each attempt will be delayed by the minimum required refresh rate for that sensor
#### Configure telemetry_module_environment_read_error_count_threshold
<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">
```shell title="Configure telemetry_module_environment_read_error_count_threshold to 3 tries"
meshtastic --set telemetry_module_environment_read_error_count_threshold 3
````
</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>
### telemetry_module_environment_recovery_interval
Sometimes we can end up with more than read_error_count_threshold failures. In this case, we will stop trying to read from the sensor for a while. Wait this long until trying to read from the sensor again.
#### Configure telemetry_module_environment_recovery_interval
<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">
```shell title="Configure telemetry_module_environment_recovery_interval to 120 seconds"
meshtastic --set telemetry_module_environment_recovery_interval 120
````
</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>
### telemetry_module_environment_screen_enabled
Enable/Disable the Telemetry Module on-device display.
#### Enable/Disable the module on device screen
<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">
```shell title="Enable on device screen"
meshtastic --set telemetry_module_environment_screen_enabled true
````
```shell title="Disable on device screen"
meshtastic --set telemetry_module_environment_screen_enabled false
```
</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>
### telemetry_module_environment_sensor_pin
:::note
The preferred setup is using I2C, so the `telemetry_module_environment_sensor_pin` may not be needed.
:::
Specify the preferred GPIO Pin for sensor readings. May not be needed if using I2C.
:::caution
To prevent damaging your device, double check your device's schematics before attaching to the GPIO pins and setting this value.
:::
#### Set module sensor pin
<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">
```shell title="Set module sensor pin"
meshtastic --set telemetry_module_environment_sensor_pin PINNUMBER
````
</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>
### telemetry_module_environment_sensor_type
Specify the sensor type.
:::important
The sensor values changed between 1.2 and 1.3. The docs represent the 1.3 values. When configuring devices on 1.2, please subtract 1 from the numbers below for the appropriate sensor.
:::
| Value | Description | Sensor Features |
| :---: | :---------------------: | :--------------------------------------: |
| `1` | DHT11 | Temperature, Humidity |
| `2` | DS18B20 (Dallas 1-wire) | Temperature |
| `3` | DHT12 | Temperature, Humidity |
| `4` | DHT21 | Temperature, Humidity |
| `5` | DHT22 | Temperature, Humidity |
| `6` | BME280 | Temperature, Humidity, Pressure |
| `7` | BME680 | Temperature, Humidity, Pressure, VOC Gas |
| `8` | MCP9808 | Precision Temperature |
#### Set sensor type
:::important
The sensor values changed between 1.2 and 1.3. The docs represent the 1.3 values. When configuring devices on 1.2, please subtract 1 from the numbers on the table above for the appropriate sensor.
:::
<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
The CLI is able to take the `value` or the `name` of the sensor from the table above.
:::
```shell title="Set sensor type to DS18B20"
meshtastic --set telemetry_module_environment_sensor_type 2
````
```shell title="Set sensor type to DS18B20"
meshtastic --set telemetry_module_environment_sensor_type DS18B20
```
</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>
#### Set module update interval
<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">
```shell title="Set module update interval to 120 seconds"
meshtastic --set telemetry_module_environment_update_interval 120
````
</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
### Hardware
The sensors can be wired differently, here's [one example](https://randomnerdtutorials.com/esp32-ds18b20-temperature-arduino-ide) for sensor DS18B20.
### Known Problems
- No default configuration values are currently set, so this must be done when enabling the module.

View file

@ -1,55 +1,50 @@
--- ---
id: canned-message-module id: canned-message-module
title: Canned Message Module title: Canned Message Plugin Settings
sidebar_label: Canned Message Module sidebar_label: Canned Message Plugin
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
:::warning :::warning
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk. GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
::: :::
<PluginModule name="canned_message_module" rename="canned_message_plugin" />
<!--- TODO add link to hardware setup to admonition--->
:::note :::note
This module requires attaching a peripheral accessory to your device. It will not work without one. It also requires use of the [Rotary Encoder Module](input-broker-module) to configure the input source. This plugin requires attaching a peripheral accessory to your device. It will not work without one. It also requires use of the [Rotary Encoder](input-broker-module) to configure the input source.
::: :::
## Overview ## Overview
The CannedMessage Module will allow you to send messages to the mesh network from the device without using the phone app. You can predefine text messages to choose from. The CannedMessage Plugin will allow you to send messages to the mesh network from the device without using the phone app. You can predefine text messages to choose from.
:::tip :::tip
Once module settings are changed, a **reset** is required for them to take effect. Once plugin settings are changed, a **reset** is required for them to take effect.
::: :::
## Settings ## Settings
| Setting | Acceptable Values | Default | | Setting | Acceptable Values | Default |
| :--------------------------------------: | :---------------: | :-----: | | :--------------------------------------: | :---------------: | :-----: |
| canned_message_module_allow_input_source | `rotEnc1`, `_any` | `_any` | | canned_message_plugin_allow_input_source | `rotEnc1`, `_any` | `_any` |
| canned_message_module_enabled | `true`, `false` | `false` | | canned_message_plugin_enabled | `true`, `false` | `false` |
| canned_message_module_messages | `string` | `""` | | canned_message_plugin_messages | `string` | `""` |
| canned_message_module_send_bell | `true`, `false` | `false` | | canned_message_plugin_send_bell | `true`, `false` | `false` |
| (Messages)\* | `string` | `""` | | (Messages)\* | `string` | `""` |
- Messages can be set with a dedicated option: - Messages can be set with a dedicated option:
`--set-canned-message "<messages>"` `--set-canned-message "<messages>"`
### canned_message_module_allow_input_source ### canned_message_plugin_allow_input_source
Input event source accepted by the canned message module. Input event source accepted by the canned message plugin.
| Value | Description | | Value | Description |
| :-------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | :-------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| `_any` | Default. Allows any peripheral input device connected to the device. | | `_any` | Default. Allows any peripheral input device connected to the device. |
| `rotEnc1` | Hardcoded value naming the input device that this module listens to. This could allow multiple input devices to be named with future software development. At present, this doesn't do anything differently than the default setting. | | `rotEnc1` | Hardcoded value naming the input device that this plugin listens to. This could allow multiple input devices to be named with future software development. At present, this doesn't do anything differently than the default setting. |
#### Set input source #### Set input source
@ -65,11 +60,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set Allowed Input Source" ```shell title="Set Allowed Input Source"
meshtastic --set canned_message_module_allow_input_source "_any" meshtastic --set canned_message_plugin_allow_input_source "_any"
``` ```
```shell title="Specify Allowed Input Source" ```shell title="Specify Allowed Input Source"
meshtastic --set canned_message_module_allow_input_source "rotEnc1" meshtastic --set canned_message_plugin_allow_input_source "rotEnc1"
``` ```
</TabItem> </TabItem>
@ -96,15 +91,15 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### canned_message_module_enabled ### canned_message_plugin_enabled
Enables the module. Enables the plugin.
:::tip :::tip
Using the canned message module requires you set up the [Rotary Encoder Module](input-broker-module). See [prerequisites](#prerequisites) below. Using the canned message plugin requires you set up the [Rotary Encoder](input-broker-module). See [prerequisites](#prerequisites) below.
::: :::
#### Enable/Disable the module #### Enable/Disable the plugin
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -117,12 +112,12 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable Canned Message Module" ```shell title="Enable Canned Message Plugin"
meshtastic --set canned_message_module_enabled true meshtastic --set canned_message_plugin_enabled true
``` ```
```shell title="Disable Canned Message Module" ```shell title="Disable Canned Message Plugin"
meshtastic --set canned_message_module_enabled false meshtastic --set canned_message_plugin_enabled false
``` ```
</TabItem> </TabItem>
@ -149,14 +144,14 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### canned_message_module_send_bell ### canned_message_plugin_send_bell
CannedMessageModule also sends a "bell character" with the messages. CannedMessagePlugin also sends a "bell character" with the messages.
The [External Notification Module](external-notification-module) can benefit from this feature as it utilizes the bell character. The [External Notification Plugin](external-notification-module) can benefit from this feature as it utilizes the bell character.
_We have an "External Notification Module", that can be set up to beep, when new message arrives. _We have an "External Notification Plugin", that can be set up to beep, when new message arrives.
This module can also be configured to beep only when message contains the "bell character". This plugin can also be configured to beep only when message contains the "bell character".
See module documentation (link above) for details._ See plugin documentation (link above) for details._
#### Enable/Disable bell character #### Enable/Disable bell character
@ -172,11 +167,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable Bell Character" ```shell title="Enable Bell Character"
meshtastic --set canned_message_module_send_bell true meshtastic --set canned_message_plugin_send_bell true
``` ```
```shell title="Disable Bell Character" ```shell title="Disable Bell Character"
meshtastic --set canned_message_module_send_bell false meshtastic --set canned_message_plugin_send_bell false
``` ```
</TabItem> </TabItem>
@ -205,7 +200,7 @@ Configuring this setting is not yet available for the selected platform. If this
### Messages ### Messages
CLI has a dedicated option for canned message module to set predefines messages: `--set-canned-message <message>` CLI has a dedicated option for canned message plugin to set predefines messages: `--set-canned-message <message>`
Predefined messages separated by `|` characters. Predefined messages separated by `|` characters.
You can define up to 50 messages with a total length 800 bytes. You can define up to 50 messages with a total length 800 bytes.
@ -226,7 +221,7 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set Canned Messages" ```shell title="Set Canned Messages"
meshtastic --set canned_message_module_messages "I'm fine|I'm out|I'm back|Need helping hand|Help me with saw|I need an alpinist|I need ambulance|Keep Calm|On my way|I will be late|I'm already waiting|We have company|Beer is cold|Roger" meshtastic --set canned_message_plugin_messages "I'm fine|I'm out|I'm back|Need helping hand|Help me with saw|I need an alpinist|I need ambulance|Keep Calm|On my way|I will be late|I'm already waiting|We have company|Beer is cold|Roger"
``` ```
</TabItem> </TabItem>
@ -260,12 +255,12 @@ Configuring this setting is not yet available for the selected platform. If this
<!--- TODO add link to hardware pages to first bullet point ---> <!--- TODO add link to hardware pages to first bullet point --->
- Attach a compatible peripheral device. Take note of the GPIO numbers you use, as they will be used in the following step. - Attach a compatible peripheral device. Take note of the GPIO numbers you use, as they will be used in the following step.
- Once attached, configure peripheral device with [Rotary Encoder Module](input-broker-module) Settings. - Once attached, configure peripheral device with [Rotary Encoder](input-broker-module) Settings.
:::note :::note
Replace each `GPIO` (x3) below with the GPIO numbers from hardware setup. Replace each `GPIO` (x3) below with the GPIO numbers from hardware setup.
```shell title="Canned Message Module - Required Rotary Encoder Module Settings" ```shell title="Canned Message Plugin - Required Rotary Encoder Settings"
meshtastic --set rotary1_pin_a GPIO meshtastic --set rotary1_pin_a GPIO
meshtastic --set rotary1_pin_b GPIO meshtastic --set rotary1_pin_b GPIO
meshtastic --set rotary1_pin_press GPIO meshtastic --set rotary1_pin_press GPIO
@ -276,4 +271,4 @@ meshtastic --set rotary1_enabled True
``` ```
::: :::
That's it! With a functioning and enabled rotary encoder, you're ready to begin configuring the Canned Message Module. That's it! With a functioning and enabled rotary encoder, you're ready to begin configuring the Canned Message Plugin.

View file

@ -1,45 +1,41 @@
--- ---
id: external-notification-module id: external-notification-module
title: External Notification Module Settings title: External Notification Plugin Settings
sidebar_label: External Notification Module sidebar_label: External Notification Plugin
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
:::warning :::warning
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk. GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
::: :::
<PluginModule name="ext_notification_module" rename="ext_notification_plugin" />
<!--- TODO add link to hardware setup to admonition--->
:::note :::note
This module requires attaching a peripheral accessory to your device. It will not work without one. This plugin requires attaching a peripheral accessory to your device. It will not work without one.
::: :::
## Overview ## Overview
The External Notification Module will allow you to connect a speaker, LED, or other device to notify you when a message has been received from the mesh network. The External Notification Plugin will allow you to connect a speaker, LED, or other device to notify you when a message has been received from the mesh network.
:::tip :::tip
Once module settings are changed, a **reset** is required for them to take effect. Once plugin settings are changed, a **reset** is required for them to take effect.
::: :::
## Settings ## Settings
| Setting | Acceptable Values | Default | | Setting | Acceptable Values | Default |
| :-----------------------------------: | :----------------------: | :-----: | | :-----------------------------------: | :----------------------: | :-----: |
| ext_notification_module_active | `true`, `false` | `false` | | ext_notification_plugin_active | `true`, `false` | `false` |
| ext_notification_module_alert_bell | `true`, `false` | `false` | | ext_notification_plugin_alert_bell | `true`, `false` | `false` |
| ext_notification_module_alert_message | `true`, `false` | `false` | | ext_notification_plugin_alert_message | `true`, `false` | `false` |
| ext_notification_module_enabled | `true`, `false` | `false` | | ext_notification_plugin_enabled | `true`, `false` | `false` |
| ext_notification_module_output | `integer` | `0` | | ext_notification_plugin_output | `integer` | `0` |
| ext_notification_module_output_ms | `integer` (milliseconds) | `0` | | ext_notification_plugin_output_ms | `integer` (milliseconds) | `0` |
### ext_notification_module_active ### ext_notification_plugin_active
Specifies whether the external circuit is triggered when the device's GPIO is low or high. Specifies whether the external circuit is triggered when the device's GPIO is low or high.
@ -61,11 +57,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="GPIO active high" ```shell title="GPIO active high"
meshtastic --set ext_notification_module_active true meshtastic --set ext_notification_plugin_active true
``` ```
```shell title="GPIO active low (default)" ```shell title="GPIO active low (default)"
meshtastic --set ext_notification_module_active false meshtastic --set ext_notification_plugin_active false
``` ```
</TabItem> </TabItem>
@ -92,7 +88,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### ext_notification_module_alert_bell ### ext_notification_plugin_alert_bell
Specifies if an alert should be sent when receiving an incoming bell. Specifies if an alert should be sent when receiving an incoming bell.
@ -110,11 +106,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable alert on incoming bell" ```shell title="Enable alert on incoming bell"
meshtastic --set ext_notification_module_alert_bell true meshtastic --set ext_notification_plugin_alert_bell true
``` ```
```shell title="Disable alert on incoming bell" ```shell title="Disable alert on incoming bell"
meshtastic --set ext_notification_module_alert_bell false meshtastic --set ext_notification_plugin_alert_bell false
``` ```
</TabItem> </TabItem>
@ -141,7 +137,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### ext_notification_module_alert_message ### ext_notification_plugin_alert_message
Specifies if an alert should be sent when receiving an incoming message. Specifies if an alert should be sent when receiving an incoming message.
@ -159,11 +155,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable alert on incoming message" ```shell title="Enable alert on incoming message"
meshtastic --set ext_notification_module_alert_message true meshtastic --set ext_notification_plugin_alert_message true
``` ```
```shell title="Disable alert on incoming message" ```shell title="Disable alert on incoming message"
meshtastic --set ext_notification_module_alert_message false meshtastic --set ext_notification_plugin_alert_message false
``` ```
</TabItem> </TabItem>
@ -190,11 +186,11 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### ext_notification_module_enabled ### ext_notification_plugin_enabled
Enables the module. Enables the plugin.
#### Enable/Disable the module #### Enable/Disable the plugin
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -207,13 +203,12 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable Module" ```shell title="Enable / Disable Plugin"
meshtastic --set ext_notification_module_enabled true meshtastic --set ext_notification_plugin_enabled true
meshtastic --set ext_notification_plugin_enabled false
``` ```
```shell title="Disable Module"
meshtastic --set ext_notification_module_enabled false
```
</TabItem> </TabItem>
<TabItem value="android"> <TabItem value="android">
@ -239,7 +234,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### ext_notification_module_output ### ext_notification_plugin_output
Specifies the GPIO that your external circuit is attached to on the device. Specifies the GPIO that your external circuit is attached to on the device.
@ -265,7 +260,7 @@ Replace `GPIO` in the below command with the GPIO number your circuit is attache
::: :::
```shell title="Specify GPIO that circuit is connected to" ```shell title="Specify GPIO that circuit is connected to"
meshtastic --set ext_notification_module_output GPIO meshtastic --set ext_notification_plugin_output GPIO
``` ```
</TabItem> </TabItem>
@ -292,7 +287,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### ext_notification_module_output_ms ### ext_notification_plugin_output_ms
Specifies how long in milliseconds you would like your external circuit triggered. Default is `1000`. (Because of the way that defaults are handled in the protobufs `0` is interpreted as `1000`) Specifies how long in milliseconds you would like your external circuit triggered. Default is `1000`. (Because of the way that defaults are handled in the protobufs `0` is interpreted as `1000`)
@ -310,11 +305,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set to default (1000ms)" ```shell title="Set to default (1000ms)"
meshtastic --set ext_notification_module_output_ms 0 meshtastic --set ext_notification_plugin_output_ms 0
``` ```
```shell title="Set to other value" ```shell title="Set to other value"
meshtastic --set ext_notification_module_output_ms 1500 meshtastic --set ext_notification_plugin_output_ms 1500
``` ```
</TabItem> </TabItem>

View file

@ -1,8 +1,22 @@
--- ---
id: modules id: modules
title: Firmware Modules Overview title: 1.2 Plugin Configuration
sidebar_label: Firmware Modules sidebar_label: 1.2 Plugin Config
--- ---
import ModuleOverviewText from '@site/docs/_blocks/_module_overview_text.mdx'; Modules are included in the firmware and allow users to extend the functionality of their mesh or device.
<ModuleOverviewText/> The list of current modules is as follows:
| Name | Description |
|:----:|:-----------:|
| Canned Message Plugin | Set a number of predefined messages to send out directly from the device with the use of an input device like a rotary encoder. |
| External Notification Plugin | Incoming messages are able to alert you using circuits you attach to the device (LEDs, Buzzers, etc) |
| Rotary Encoder Plugin | Attach and define input devices such as external keyboards and rotary encoders. |
| Range Test Plugin | Send messages with GPS location at an interval to test the distance your devices can communicate. Requires (at least) one device set up as a sender and one as a receiver. The receiver(s) will log all incoming messages to a CSV. |
| Serial Plugin | Send messages across the mesh by sending strings over a serial port. |
| Store and Forward Plugin | Set a designated node to store messages and resend them to nodes with intermittent connection to a mesh. |
| Telemetry Plugin | Attach sensors to the device and transmit readings on a regular interval to the mesh. |
:::tip
Once Plugin settings are changed, a **reset** is required for them to take effect.
:::

View file

@ -1,21 +1,16 @@
--- ---
id: input-broker-module id: input-broker-module
title: Input Broker title: Rotary Encoder
sidebar_label: Input Broker sidebar_label: Rotary Encoder
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
:::warning :::warning
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk. GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
::: :::
<PluginModule name="inputbroker_" rename="rotary1_" />
<!--- TODO add link to hardware setup to admonition--->
:::note :::note
This module requires attaching a peripheral accessory to your device. It will not work without one. This module requires attaching a peripheral accessory to your device. It will not work without one.
::: :::
@ -34,15 +29,15 @@ Once module settings are changed, a **reset** is required for them to take effec
| Setting | Acceptable Values | Default | | Setting | Acceptable Values | Default |
| :-----------------: | :---------------: | :-----------: | | :-----------------: | :---------------: | :-----------: |
| inputbroker_enabled | `true`, `false` | `false` | | rotary1_enabled | `true`, `false` | `false` |
| inputbroker_event_cw | `InputEventChar` | (not defined) | | rotary1_event_cw | `InputEventChar` | (not defined) |
| inputbroker_event_ccw | `InputEventChar` | (not defined) | | rotary1_event_ccw | `InputEventChar` | (not defined) |
| inputbroker_event_press | `InputEventChar` | (not defined) | | rotary1_event_press | `InputEventChar` | (not defined) |
| inputbroker_pin_a | `integer` | (not defined) | | rotary1_pin_a | `integer` | (not defined) |
| inputbroker_pin_b | `integer` | (not defined) | | rotary1_pin_b | `integer` | (not defined) |
| inputbroker_pin_press | `integer` | (not defined) | | rotary1_pin_press | `integer` | (not defined) |
### inputbroker_enabled ### rotary1_enabled
Enable the rotary encoder #1 Enable the rotary encoder #1
@ -60,11 +55,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable rotary1" ```shell title="Enable rotary1"
meshtastic --set inputbroker_enabled true meshtastic --set rotary1_enabled true
``` ```
```shell title="Disable rotary1" ```shell title="Disable rotary1"
meshtastic --set inputbroker_enabled true meshtastic --set rotary1_enabled true
``` ```
</TabItem> </TabItem>
@ -91,7 +86,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### inputbroker_event_cw ### rotary1_event_cw
Generate input event on CW of this kind. Generate input event on CW of this kind.
@ -113,11 +108,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set rotary1 event cw to 'KEY_UP'" ```shell title="Set rotary1 event cw to 'KEY_UP'"
meshtastic --set inputbroker_event_press KEY_UP meshtastic --set rotary1_event_press KEY_UP
``` ```
```shell title="Unset rotary1 event cw" ```shell title="Unset rotary1 event cw"
meshtastic --set inputbroker_event_press "" meshtastic --set rotary1_event_press ""
``` ```
</TabItem> </TabItem>
@ -144,7 +139,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### inputbroker_event_ccw ### rotary1_event_ccw
Generate input event on CCW of this kind. Generate input event on CCW of this kind.
@ -166,11 +161,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set rotary1 event ccw to 'KEY_DOWN'" ```shell title="Set rotary1 event ccw to 'KEY_DOWN'"
meshtastic --set inputbroker_event_ccw KEY_DOWN meshtastic --set rotary1_event_ccw KEY_DOWN
``` ```
```shell title="Unset rotary1 event ccw" ```shell title="Unset rotary1 event ccw"
meshtastic --set inputbroker_event_ccw "" meshtastic --set rotary1_event_ccw ""
``` ```
</TabItem> </TabItem>
@ -197,7 +192,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### inputbroker_event_press ### rotary1_event_press
Generate input event on Press of this kind. Generate input event on Press of this kind.
@ -219,11 +214,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set rotary1 event press to 'KEY_SELECT'" ```shell title="Set rotary1 event press to 'KEY_SELECT'"
meshtastic --set inputbroker_event_press KEY_SELECT meshtastic --set rotary1_event_press KEY_SELECT
``` ```
```shell title="Unset rotary1 event press" ```shell title="Unset rotary1 event press"
meshtastic --set inputbroker_event_press "" meshtastic --set rotary1_event_press ""
``` ```
</TabItem> </TabItem>
@ -250,7 +245,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### inputbroker_pin_a ### rotary1_pin_a
GPIO pin for rotary encoder A port. GPIO pin for rotary encoder A port.
@ -276,7 +271,7 @@ Replace `GPIO` below with the GPIO number from hardware setup.
::: :::
```shell title="Specify rotary1 pin a" ```shell title="Specify rotary1 pin a"
meshtastic --set inputbroker_pin_a GPIO meshtastic --set rotary1_pin_a GPIO
``` ```
</TabItem> </TabItem>
@ -303,7 +298,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### inputbroker_pin_b ### rotary1_pin_b
GPIO pin for rotary encoder B port. GPIO pin for rotary encoder B port.
@ -329,7 +324,7 @@ Replace `GPIO` below with the GPIO number from hardware setup.
::: :::
```shell title="Specify rotary1 pin b" ```shell title="Specify rotary1 pin b"
meshtastic --set inputbroker_pin_b GPIO meshtastic --set rotary1_pin_b GPIO
``` ```
</TabItem> </TabItem>
@ -356,7 +351,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### inputbroker_pin_press ### rotary1_pin_press
GPIO pin for rotary encoder Press port. GPIO pin for rotary encoder Press port.
@ -382,7 +377,7 @@ Replace `GPIO` below with the GPIO number from hardware setup.
::: :::
```shell title="Specify rotary1 pin press" ```shell title="Specify rotary1 pin press"
meshtastic --set inputbroker_pin_press GPIO meshtastic --set rotary1_pin_press GPIO
``` ```
</TabItem> </TabItem>
@ -435,13 +430,13 @@ Replace each `GPIO` (x3) below with the GPIO numbers from hardware setup.
::: :::
```shell title="Canned Message Module - Required Rotary Encoder Module Settings" ```shell title="Canned Message Module - Required Rotary Encoder Module Settings"
meshtastic --set inputbroker_pin_a GPIO meshtastic --set rotary1_pin_a GPIO
meshtastic --set inputbroker_pin_b GPIO meshtastic --set rotary1_pin_b GPIO
meshtastic --set inputbroker_pin_press GPIO meshtastic --set rotary1_pin_press GPIO
meshtastic --set inputbroker_event_cw KEY_UP meshtastic --set rotary1_event_cw KEY_UP
meshtastic --set inputbroker_event_ccw KEY_DOWN meshtastic --set rotary1_event_ccw KEY_DOWN
meshtastic --set inputbroker_event_press KEY_SELECT meshtastic --set rotary1_event_press KEY_SELECT
meshtastic --set inputbroker_enabled True meshtastic --set rotary1_enabled True
``` ```
</TabItem> </TabItem>

View file

@ -1,7 +1,7 @@
--- ---
id: range-test-module id: range-test-module
title: Range Test Module Settings title: Range Test Plugin Settings
sidebar_label: Range Test Module sidebar_label: Range Test Plugin
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
@ -12,8 +12,6 @@ import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
This module allows you to test the range of your Meshtastic nodes. It requires at least two nodes, a sender and a receiver. The receiving node then saves the messages along with the GPS coordinates at which they were received into a .csv file. This .csv file can then be integrated into [Google Earth](https://earth.google.com), [Google Maps - My Maps](https://mymaps.google.com), or any other program capable of processing .csv files. This can enable you to visualize your mesh. This module allows you to test the range of your Meshtastic nodes. It requires at least two nodes, a sender and a receiver. The receiving node then saves the messages along with the GPS coordinates at which they were received into a .csv file. This .csv file can then be integrated into [Google Earth](https://earth.google.com), [Google Maps - My Maps](https://mymaps.google.com), or any other program capable of processing .csv files. This can enable you to visualize your mesh.
<PluginModule name="range_test_module" rename="range_test_plugin" />
:::tip :::tip
Once module settings are changed, a **reset** is required for them to take effect. Once module settings are changed, a **reset** is required for them to take effect.
::: :::
@ -22,15 +20,15 @@ Once module settings are changed, a **reset** is required for them to take effec
| Setting | Acceptable Values | Default | | Setting | Acceptable Values | Default |
| :-----------------------: | :-----------------: | :-----: | | :-----------------------: | :-----------------: | :-----: |
| range_test_module_enabled | `true`, `false` | `false` | | range_test_plugin_enabled | `true`, `false` | `false` |
| range_test_module_save | `true`, `false` | `false` | | range_test_plugin_save | `true`, `false` | `false` |
| range_test_module_sender | `integer` (Seconds) | `0` | | range_test_plugin_sender | `integer` (Seconds) | `0` |
### range_test_module_enabled ### range_test_pluigin_enabled
Enables the module. Enables the plugin.
#### Enable/Disable the module #### Enable/Disable the plugin
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -44,11 +42,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable the module" ```shell title="Enable the module"
meshtastic --set range_test_module_enabled true meshtastic --set range_test_plugin_enabled true
``` ```
```shell title="Disable the module" ```shell title="Disable the module"
meshtastic --set range_test_module_enabled true meshtastic --set range_test_plugin_enabled true
``` ```
</TabItem> </TabItem>
@ -75,7 +73,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### range_test_module_save ### range_test_plugin_save
If enabled, we will save a log of all received messages to a file named `rangetest.csv` which you can access from the web server `Extensions > File Browser > rangetest.csv`. The file will be created after receiving messages. The device will abort writing if there is less than 50k of space on the filesystem to prevent filling up the storage. If enabled, we will save a log of all received messages to a file named `rangetest.csv` which you can access from the web server `Extensions > File Browser > rangetest.csv`. The file will be created after receiving messages. The device will abort writing if there is less than 50k of space on the filesystem to prevent filling up the storage.
@ -93,11 +91,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable range test save" ```shell title="Enable range test save"
meshtastic --set range_test_module_save true meshtastic --set range_test_plugin_save true
``` ```
```shell title="Disable range test save" ```shell title="Disable range test save"
meshtastic --set range_test_module_save false meshtastic --set range_test_plugin_save false
``` ```
</TabItem> </TabItem>
@ -124,7 +122,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### range_test_module_sender ### range_test_plugin_sender
Number of seconds to wait between sending packets. Using the long_slow channel configuration, it's best not to go more frequent than once every 60 seconds. You can be more aggressive with faster settings. `0` is default which disables sending messages. Number of seconds to wait between sending packets. Using the long_slow channel configuration, it's best not to go more frequent than once every 60 seconds. You can be more aggressive with faster settings. `0` is default which disables sending messages.
@ -142,11 +140,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable range test sender (send every 60 seconds)" ```shell title="Enable range test sender (send every 60 seconds)"
meshtastic --set range_test_module_sender 60 meshtastic --set range_test_plugin_sender 60
``` ```
```shell title="Disable range test sender" ```shell title="Disable range test sender"
meshtastic --set range_test_module_sender 0 meshtastic --set range_test_plugin_sender 0
``` ```
</TabItem> </TabItem>
@ -177,12 +175,12 @@ Configuring this setting is not yet available for the selected platform. If this
While a minimum of two radios is required, more can be used. You can have any number of receivers and senders that your mesh is able to handle. You can test having a single sender with multiple receivers or a single receiver with multiple senders. Let us know on the [forum thread](https://meshtastic.discourse.group/t/new-plugin-rangetestplugin/2591) the results of your configuration. While a minimum of two radios is required, more can be used. You can have any number of receivers and senders that your mesh is able to handle. You can test having a single sender with multiple receivers or a single receiver with multiple senders. Let us know on the [forum thread](https://meshtastic.discourse.group/t/new-plugin-rangetestplugin/2591) the results of your configuration.
Be sure to turn off either the module configured as a sender or the device where the module setup as sender when not in use. This will use a lot of time on air and will spam your channel. Be sure to turn off either the plugin configured as a sender or the device where the plugin setup as sender when not in use. This will use a lot of time on air and will spam your channel.
Also be mindful of your space usage on the file system. It has protections from filling up the space but it's best to delete old range test results. Also be mindful of your space usage on the file system. It has protections from filling up the space but it's best to delete old range test results.
:::note :::note
Leaving this module on can slow down your mesh. Currently, the messages are sent using the same `TEXT_MESSAGE_APP` [port that all other messages](/docs/developers/protobufs/api#portnumsproto) are sent on. Leaving this plugin on can slow down your mesh. Currently, the messages are sent using the same `TEXT_MESSAGE_APP` [port that all other messages](/docs/developers/protobufs/api#portnumsproto) are sent on.
::: :::
### Accessing your CSV ### Accessing your CSV
@ -196,7 +194,7 @@ http://198.168.0.15
### Recommended Sender Settings ### Recommended Sender Settings
| Radio Setting | `range_test_module_sender` | | Radio Setting | `range_test_plugin_sender` |
| :-----------: | :------------------------: | | :-----------: | :------------------------: |
| Long Slow | 60 | | Long Slow | 60 |
| Long Alt | 30 | | Long Alt | 30 |
@ -219,8 +217,8 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Example - Sender Node" ```shell title="Example - Sender Node"
meshtastic --set range_test_module_enabled true meshtastic --set range_test_plugin_enabled true
meshtastic --set range_test_module_sender 60 meshtastic --set range_test_plugin_sender 60
``` ```
</TabItem> </TabItem>
@ -261,8 +259,8 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Example - Receiver Node" ```shell title="Example - Receiver Node"
meshtastic --set range_test_module_enabled true meshtastic --set range_test_plugin_enabled true
meshtastic --set range_test_module_save true meshtastic --set range_test_plugin_save true
``` ```
</TabItem> </TabItem>

View file

@ -1,29 +1,26 @@
--- ---
id: serial-module id: serial-module
title: Serial Module Settings title: Serial Plugin Settings
sidebar_label: Serial Module sidebar_label: Serial Plugin
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
:::warning :::warning
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk. GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
::: :::
<PluginModule name="serial_module" rename="serial_plugin" />
:::note :::note
This module requires attaching a peripheral accessory to your device. It will not work without one. This plugin requires attaching a peripheral accessory to your device. It will not work without one.
::: :::
## Overview ## Overview
This is a simple interface to send messages over the mesh network by sending strings over a serial port. Anything you send the node will be turned into a message sent out over the mesh, and anything received from the mesh will be sent to the serial port. Note that this module does not (yet) allow arbitrary protobuf commands to be sent over the serial connection. This is a simple interface to send messages over the mesh network by sending strings over a serial port. Anything you send the node will be turned into a message sent out over the mesh, and anything received from the mesh will be sent to the serial port. Note that this plugin does not (yet) allow arbitrary protobuf commands to be sent over the serial connection.
:::tip :::tip
Once module settings are changed, a **reset** is required for them to take effect. Once plugin settings are changed, a **reset** is required for them to take effect.
::: :::
:::tip :::tip
@ -34,16 +31,16 @@ Connect the TX pin to the other device's RX pin, and vice versa. Connect their g
| Setting | Acceptable Values | Default | | Setting | Acceptable Values | Default |
| :-------------------: | :-----------------: | :-----: | | :-------------------: | :-----------------: | :-----: |
| serial_module_enabled | `true`, `false` | `false` | | serial_plugin_enabled | `true`, `false` | `false` |
| serial_module_echo | `true`, `false` | `false` | | serial_plugin_echo | `true`, `false` | `false` |
| serial_module_mode | `integer` | `0` | | serial_plugin_mode | `integer` | `0` |
| serial_module_rxd | `integer` (GPIO) | `0` | | serial_plugin_rxd | `integer` (GPIO) | `0` |
| serial_module_timeout | `integer` (seconds) | `0` | | serial_plugin_timeout | `integer` (seconds) | `0` |
| serial_module_txd | `integer` (GPIO) | `0` | | serial_plugin_txd | `integer` (GPIO) | `0` |
### serial_module_enabled ### serial_plugin_enabled
Enables the module. Enables the plugin.
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -56,12 +53,12 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable module" ```shell title="Enable plugin"
meshtastic --set serial_module_enabled true meshtastic --set serial_plugin_enabled true
``` ```
```shell title="Disable module" ```shell title="Disable plugin"
meshtastic --set serial_module_enabled false meshtastic --set serial_plugin_enabled false
``` ```
</TabItem> </TabItem>
@ -88,7 +85,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### serial_module_echo ### serial_plugin_echo
If set, any packets you send will be echoed back to your device. If set, any packets you send will be echoed back to your device.
@ -103,12 +100,12 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable serial_module_echo" ```shell title="Enable serial_plugin_echo"
meshtastic --set serial_module_echo true meshtastic --set serial_plugin_echo true
``` ```
```shell title="Disable serial_module_echo" ```shell title="Disable serial_plugin_echo"
meshtastic --set serial_module_echo false meshtastic --set serial_plugin_echo false
``` ```
</TabItem> </TabItem>
@ -135,7 +132,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### serial_module_mode ### serial_plugin_mode
<!--- TODO ---> <!--- TODO --->
@ -178,7 +175,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### serial_module_rxd ### serial_plugin_rxd
Set the GPIO pin to the RXD pin you have set up. Set the GPIO pin to the RXD pin you have set up.
@ -202,7 +199,7 @@ Replace `GPIO` in the below command with the GPIO number your circuit is attache
::: :::
```shell title="Set RXD to GPIO pin number" ```shell title="Set RXD to GPIO pin number"
meshtastic --set serial_module_rxd GPIO meshtastic --set serial_plugin_rxd GPIO
``` ```
</TabItem> </TabItem>
@ -229,7 +226,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### serial_module_timeout ### serial_plugin_timeout
The amount of time to wait before we consider your packet as "done". The amount of time to wait before we consider your packet as "done".
@ -244,8 +241,8 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set serial_module_timeout to 15 seconds" ```shell title="Set serial_plugin_timeout to 15 seconds"
meshtastic --set serial_module_timeout 15 meshtastic --set serial_plugin_timeout 15
``` ```
</TabItem> </TabItem>
@ -272,7 +269,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### serial_module_txd ### serial_plugin_txd
Set the GPIO pin to the TXD pin you have set up. Set the GPIO pin to the TXD pin you have set up.
@ -296,7 +293,7 @@ Replace `GPIO` in the below command with the GPIO number your circuit is attache
::: :::
```shell title="Set TXD to GPIO pin number" ```shell title="Set TXD to GPIO pin number"
meshtastic --set serial_module_txd GPIO meshtastic --set serial_plugin_txd GPIO
``` ```
</TabItem> </TabItem>

View file

@ -1,17 +1,16 @@
--- ---
id: store-and-forward-module id: store-and-forward-module
title: Store and Forward Settings title: Store & Forward Plugin Settings
sidebar_label: Store and Forward sidebar_label: Store & Forward Plugin
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
:::info :::info
Currently only available for ESP32 based devices with external PSRAM. Requires the device to be set as a router. Currently only available for ESP32 based devices with external PSRAM. Requires the device to be set as a router.
**Don't enable Store and Forward Module on multiple [routers](/docs/settings/router).** **Don't enable Store and Forward Plugin on multiple [routers](/docs/settings/router).**
::: :::
## Overview ## Overview
@ -20,29 +19,27 @@ Currently only available for ESP32 based devices with external PSRAM. Requires t
This is a work in progress and is partially available. Stability is not guaranteed. This is a work in progress and is partially available. Stability is not guaranteed.
::: :::
<PluginModule name="store_forward_module" rename="store_forward_plugin" /> The Store Forward Plugin is an implementation of a Store and Forward system to enable resilient messaging in the event that a client device is disconnected from the main network.
The Store Forward Module is an implementation of a Store and Forward system to enable resilient messaging in the event that a client device is disconnected from the main network.
Because of the increased network traffic for this overhead, it's not advised to use this if you are duty cycle limited for your airtime usage nor is it advised to use this for SF12 (Long Range / Slow). Because of the increased network traffic for this overhead, it's not advised to use this if you are duty cycle limited for your airtime usage nor is it advised to use this for SF12 (Long Range / Slow).
:::tip :::tip
Once module settings are changed, a **reset** is required for them to take effect. Once plugin settings are changed, a **reset** is required for them to take effect.
::: :::
## Settings ## Settings
| Setting | Acceptable Values | Default | | Setting | Acceptable Values | Default |
| :----------------------------------------: | :---------------: | :-----: | | :----------------------------------------: | :---------------: | :-----: |
| store_forward_module_enabled | `true`, `false` | `false` | | store_forward_plugin_enabled | `true`, `false` | `false` |
| store_forward_module_heartbeat | `true`, `false` | `false` | | store_forward_plugin_heartbeat | `true`, `false` | `false` |
| store_forward_module_history_return_max | `integer` | `0` | | store_forward_plugin_history_return_max | `integer` | `0` |
| store_forward_module_history_return_window | `integer` | `0` | | store_forward_plugin_history_return_window | `integer` | `0` |
| store_forward_module_records | `integer` | `0` | | store_forward_plugin_records | `integer` | `0` |
### store_forward_module_enabled ### store_forward_plugin_enabled
Enables the module. Enables the plugin.
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -55,12 +52,12 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable the module" ```shell title="Enable the plugin"
meshtastic --set store_forward_module_enabled true meshtastic --set store_forward_plugin_enabled true
``` ```
```shell title="Disable the module" ```shell title="Disable the plugin"
meshtastic --set store_forward_module_enabled false meshtastic --set store_forward_plugin_enabled false
``` ```
</TabItem> </TabItem>
@ -87,7 +84,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### store_forward_module_heartbeat ### store_forward_plugin_heartbeat
The Store & Forward Router sends a periodic message onto the network. This allows connected devices to know that a router is in range and listening to received messages. A client like Android, iOS, or Web can (if supported) indicate to the user whether a store and forward router is available. The Store & Forward Router sends a periodic message onto the network. This allows connected devices to know that a router is in range and listening to received messages. A client like Android, iOS, or Web can (if supported) indicate to the user whether a store and forward router is available.
@ -102,8 +99,8 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set store_forward_module_heartbeat to default" ```shell title="Set store_forward_plugin_heartbeat to default"
meshtastic --set store_forward_module_heartbeat 0 meshtastic --set store_forward_plugin_heartbeat 0
``` ```
</TabItem> </TabItem>
@ -130,7 +127,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### store_forward_module_history_return_max ### store_forward_plugin_history_return_max
Sets the maximum number of messages to return to a client device. Sets the maximum number of messages to return to a client device.
@ -145,12 +142,12 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set store_forward_module_history_return_max to default" ```shell title="Set store_forward_plugin_history_return_max to default"
meshtastic --set store_forward_module_history_return_max 0 meshtastic --set store_forward_plugin_history_return_max 0
``` ```
```shell title="Set store_forward_module_history_return_max to 100 messages" ```shell title="Set store_forward_plugin_history_return_max to 100 messages"
meshtastic --set store_forward_module_history_return_max 100 meshtastic --set store_forward_plugin_history_return_max 100
``` ```
</TabItem> </TabItem>
@ -177,7 +174,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### store_forward_module_history_return_window ### store_forward_plugin_history_return_window
Limits the time period (in minutes) a client device can request. Limits the time period (in minutes) a client device can request.
@ -192,12 +189,12 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set store_forward_module_history_return_window to default" ```shell title="Set store_forward_plugin_history_return_window to default"
meshtastic --set store_forward_module_history_return_window 0 meshtastic --set store_forward_plugin_history_return_window 0
``` ```
```shell title="Set store_forward_module_history_return_window to 1 day (1440 minutes)" ```shell title="Set store_forward_plugin_history_return_window to 1 day (1440 minutes)"
meshtastic --set store_forward_module_history_return_window 1440 meshtastic --set store_forward_plugin_history_return_window 1440
``` ```
</TabItem> </TabItem>
@ -224,9 +221,9 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### store_forward_module_records ### store_forward_plugin_records
Set this to the maximum number of records to save. Best to leave this at the default (`0`) where the module will use 2/3 of your device's available PSRAM. This is about 11,000 records. Set this to the maximum number of records to save. Best to leave this at the default (`0`) where the plugin will use 2/3 of your device's available PSRAM. This is about 11,000 records.
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -239,12 +236,12 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set store_forward_module_records to default (≈11,000 records)" ```shell title="Set store_forward_plugin_records to default (≈11,000 records)"
meshtastic --set store_forward_module_records 0 meshtastic --set store_forward_plugin_records 0
``` ```
```shell title="Set store_forward_module_records to 100 records" ```shell title="Set store_forward_plugin_records to 100 records"
meshtastic --set store_forward_module_records 100 meshtastic --set store_forward_plugin_records 100
``` ```
</TabItem> </TabItem>
@ -283,7 +280,7 @@ Initial Requirements:
- Must be installed on a router node. - Must be installed on a router node.
- This is an artificial limitation, but is in place to enforce best practices. - This is an artificial limitation, but is in place to enforce best practices.
- Router nodes are intended to be always online. If this module misses any messages, the reliability of the stored messages will be reduced. - Router nodes are intended to be always online. If this plugin misses any messages, the reliability of the stored messages will be reduced.
- Esp32 Processor based device with external PSRAM. (tbeam v1.0 and tbeamv1.1, and maybe others) - Esp32 Processor based device with external PSRAM. (tbeam v1.0 and tbeamv1.1, and maybe others)
### Usage Overview ### Usage Overview
@ -300,7 +297,7 @@ Either use a custom channel configuration with at an at least 1kbit data rate or
Recommended channel setting is for 1.343kbps: Recommended channel setting is for 1.343kbps:
```shell title="Recommended channel setting for S&F module" ```shell title="Recommended channel setting for S&F plugin"
meshtastic --setchan spread_factor 11 --setchan coding_rate 5 --setchan bandwidth 500 meshtastic --setchan spread_factor 11 --setchan coding_rate 5 --setchan bandwidth 500
``` ```
@ -309,20 +306,20 @@ With an aftermarket coaxial antenna or moxon antenna, that will give you roughly
### Router setup ### Router setup
:::warning :::warning
Don't enable the Store and Forward module on multiple routers! Don't enable the Store and Forward plugin on multiple routers!
::: :::
- Configure your device as a [meshtastic router](/docs/settings/router). - Configure your device as a [meshtastic router](/docs/settings/router).
- Name your router node something that makes it easily identifiable, aka "Router". - Name your router node something that makes it easily identifiable, aka "Router".
- Configure the Store and Forward module - Configure the Store and Forward plugin
```shell title="Required - Enable the module" ```shell title="Required - Enable the plugin"
meshtastic --set store_forward_module_enabled true meshtastic --set plugin true
``` ```
```shell title="Optional - Set maximum number of records to save to device" ```shell title="Optional - Set maximum number of records to save to device"
meshtastic --set store_forward_module_records 100 meshtastic --set store_forward_plugin_records 100
``` ```
:::tip :::tip
Best to leave `store_forward_module_records` at the default (`0`) where the module will use 2/3 of your device's available PSRAM. This is about 11,000 records. Best to leave `store_forward_plugin_records` at the default (`0`) where the plugin will use 2/3 of your device's available PSRAM. This is about 11,000 records.
::: :::
### Client Usage ### Client Usage
@ -336,4 +333,4 @@ Available Commands:
| SF | Send the last few messages I may have missed | | SF | Send the last few messages I may have missed |
| SFm | Send a 240 byte payload (Used for testing) | | SFm | Send a 240 byte payload (Used for testing) |
The Store and Forward module will only service one client at a time. If a second client requests messages while the S&F is busy, the S&F will send a private message to the second client that they will need to wait. The Store and Forward plugin will only service one client at a time. If a second client requests messages while the S&F is busy, the S&F will send a private message to the second client that they will need to wait.

View file

@ -1,51 +1,44 @@
--- ---
id: telemetry-module id: telemetry-module
title: Telemetry Module Settings title: Environmental Measurement Plugin Settings
sidebar_label: Telemetry Module sidebar_label: Environmental Measurement Plugin
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
:::warning :::warning
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk. GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
::: :::
<PluginModule
name="telemetry_module_environment"
rename="environmental_measurement_plugin"
/>
<!--- TODO add link to hardware setup to admonition--->
:::note :::note
The environment metrics feature of this module requires attaching a peripheral accessory to your device. It will not work without one. The environment metrics feature of this plugin requires attaching a peripheral accessory to your device. It will not work without one.
::: :::
## Overview ## Overview
In addition to key device metrics such as battery level, the Telemetry Module will also allow nodes to send environmental metrics from externally connected sensors. Currently supported sensors are BME280, BME680, DHT11, DHT12, DHT21, DHT22, Dallas 1-wire DS18B20 and MCP9808. In addition to key device metrics such as battery level, the Environment Monitoring Plugin will also allow nodes to send environmental metrics from externally connected sensors. Currently supported sensors are BME280, BME680, DHT11, DHT12, DHT21, DHT22, Dallas 1-wire DS18B20 and MCP9808.
:::tip :::tip
Once module settings are changed, a **reset** is required for them to take effect. Once plugin settings are changed, a **reset** is required for them to take effect.
::: :::
## Settings ## Settings
| Setting | Acceptable Values | Default | | Setting | Acceptable Values | Default |
| :-----------------------------------------------------: | :-----------------: | :-----: | | :-----------------------------------------------------: | :-----------------: | :-----: |
| telemetry_module_device_update_interval | `integer` (seconds) | `0` | | environmental_measurement_plugin_device_update_interval | `integer` (seconds) | `0` |
| telemetry_module_environment_display_fahrenheit | `true`, `false` | `false` | | environmental_measurement_plugin_display_fahrenheit | `true`, `false` | `false` |
| telemetry_module_environment_measurement_enabled | `true`, `false` | `false` | | environmental_measurement_plugin_measurement_enabled | `true`, `false` | `false` |
| telemetry_module_environment_read_error_count_threshold | `integer` | `0` | | environmental_measurement_plugin_read_error_count_threshold | `integer` | `0` |
| telemetry_module_environment_recovery_interval | `integer` (seconds) | `0` | | environmental_measurement_plugin_recovery_interval | `integer` (seconds) | `0` |
| telemetry_module_environment_screen_enabled | `true`, `false` | `0` | | environmental_measurement_plugin_screen_enabled | `true`, `false` | `0` |
| telemetry_module_environment_sensor_pin | `integer` | `0` | | environmental_measurement_plugin_sensor_pin | `integer` | `0` |
| telemetry_module_environment_sensor_type | `0-6` | `0` | | environmental_measurement_plugin_sensor_type | `0-6` | `0` |
| telemetry_module_environment_update_interval | `integer` (seconds) | `0` | | environmental_measurement_plugin_update_interval | `integer` (seconds) | `0` |
### telemetry_module_device_update_interval ### environmental_measurement_plugin_device_update_interval
Interval in seconds of how often we should try to send our measurements to the mesh. Interval in seconds of how often we should try to send our measurements to the mesh.
@ -60,12 +53,12 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set module update interval to default" ```shell title="Set plugin update interval to default"
meshtastic --set telemetry_module_device_update_interval 0 meshtastic --set environmental_measurement_plugin_device_update_interval 0
``` ```
```shell title="Set module update interval to 120 seconds" ```shell title="Set plugin update interval to 120 seconds"
meshtastic --set telemetry_module_device_update_interval 120 meshtastic --set environmental_measurement_plugin_device_update_interval 120
``` ```
</TabItem> </TabItem>
@ -92,7 +85,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### telemetry_module_environment_display_fahrenheit ### environmental_measurement_plugin_display_fahrenheit
The sensor is always read in Celsius, but the user can opt to view the temperature display in Fahrenheit using this setting. The sensor is always read in Celsius, but the user can opt to view the temperature display in Fahrenheit using this setting.
@ -110,11 +103,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Display Farenheit" ```shell title="Display Farenheit"
meshtastic --set telemetry_module_environment_display_fahrenheit true meshtastic --set environmental_measurement_plugin_display_fahrenheit true
```` ````
```shell title="Display Celsius" ```shell title="Display Celsius"
meshtastic --set telemetry_module_environment_display_fahrenheit false meshtastic --set environmental_measurement_plugin_display_fahrenheit false
``` ```
</TabItem> </TabItem>
@ -141,11 +134,11 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### telemetry_module_environment_measurement_enabled ### environmental_measurement_plugin_measurement_enabled
Enables the module to utilize environmental metrics. Enables the plugin to utilize environmental metrics.
#### Enable/Disable the module #### Enable/Disable the plugin
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -158,12 +151,12 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable Module" ```shell title="Enable Plugin"
meshtastic --set telemetry_module_environment_measurement_enabled true meshtastic --set environmental_measurement_plugin_measurement_enabled true
```` ````
```shell title="Disable Module" ```shell title="Disable Plugin"
meshtastic --set telemetry_module_environment_measurement_enabled false meshtastic --set environmental_measurement_plugin_measurement_enabled false
``` ```
</TabItem> </TabItem>
@ -190,11 +183,11 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### telemetry_module_environment_read_error_count_threshold ### environmental_measurement_plugin_read_error_count_threshold
Sometimes sensor reads can fail. If this happens, we will retry a configurable number of attempts. Each attempt will be delayed by the minimum required refresh rate for that sensor Sometimes sensor reads can fail. If this happens, we will retry a configurable number of attempts. Each attempt will be delayed by the minimum required refresh rate for that sensor
#### Configure telemetry_module_environment_read_error_count_threshold #### Configure environmental_measurement_plugin_read_error_count_threshold
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -207,8 +200,8 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Configure telemetry_module_environment_read_error_count_threshold to 3 tries" ```shell title="Configure environmental_measurement_plugin_read_error_count_threshold to 3 tries"
meshtastic --set telemetry_module_environment_read_error_count_threshold 3 meshtastic --set environmental_measurement_plugin_read_error_count_threshold 3
```` ````
</TabItem> </TabItem>
@ -235,11 +228,11 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### telemetry_module_environment_recovery_interval ### environmental_measurement_plugin_recovery_interval
Sometimes we can end up with more than read_error_count_threshold failures. In this case, we will stop trying to read from the sensor for a while. Wait this long until trying to read from the sensor again. Sometimes we can end up with more than read_error_count_threshold failures. In this case, we will stop trying to read from the sensor for a while. Wait this long until trying to read from the sensor again.
#### Configure telemetry_module_environment_recovery_interval #### Configure environmental_measurement_plugin_recovery_interval
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -252,8 +245,8 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Configure telemetry_module_environment_recovery_interval to 120 seconds" ```shell title="Configure environmental_measurement_plugin_recovery_interval to 120 seconds"
meshtastic --set telemetry_module_environment_recovery_interval 120 meshtastic --set environmental_measurement_plugin_recovery_interval 120
```` ````
</TabItem> </TabItem>
@ -280,11 +273,11 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### telemetry_module_environment_screen_enabled ### environmental_measurement_plugin_screen_enabled
Enable/Disable the Telemetry Module on-device display. Enable/Disable the Environmental Measurement Plugin on-device display.
#### Enable/Disable the module on device screen #### Enable/Disable the plugin on device screen
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -298,11 +291,11 @@ values={[
<TabItem value="cli"> <TabItem value="cli">
```shell title="Enable on device screen" ```shell title="Enable on device screen"
meshtastic --set telemetry_module_environment_screen_enabled true meshtastic --set environmental_measurement_plugin_screen_enabled true
```` ````
```shell title="Disable on device screen" ```shell title="Disable on device screen"
meshtastic --set telemetry_module_environment_screen_enabled false meshtastic --set environmental_measurement_plugin_screen_enabled false
``` ```
</TabItem> </TabItem>
@ -329,10 +322,10 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### telemetry_module_environment_sensor_pin ### environmental_measurement_plugin_sensor_pin
:::note :::note
The preferred setup is using I2C, so the `telemetry_module_environment_sensor_pin` may not be needed. The preferred setup is using I2C, so the `environmental_measurement_plugin_sensor_pin` may not be needed.
::: :::
Specify the preferred GPIO Pin for sensor readings. May not be needed if using I2C. Specify the preferred GPIO Pin for sensor readings. May not be needed if using I2C.
@ -341,7 +334,7 @@ Specify the preferred GPIO Pin for sensor readings. May not be needed if using I
To prevent damaging your device, double check your device's schematics before attaching to the GPIO pins and setting this value. To prevent damaging your device, double check your device's schematics before attaching to the GPIO pins and setting this value.
::: :::
#### Set module sensor pin #### Set plugin sensor pin
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -354,8 +347,8 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set module sensor pin" ```shell title="Set plugin sensor pin"
meshtastic --set telemetry_module_environment_sensor_pin PINNUMBER meshtastic --set environmental_measurement_plugin_sensor_pin PINNUMBER
```` ````
</TabItem> </TabItem>
@ -382,7 +375,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
### telemetry_module_environment_sensor_type ### environmental_measurement_plugin_sensor_type
Specify the sensor type. Specify the sensor type.
@ -423,11 +416,11 @@ The CLI is able to take the `value` or the `name` of the sensor from the table a
::: :::
```shell title="Set sensor type to DS18B20" ```shell title="Set sensor type to DS18B20"
meshtastic --set telemetry_module_environment_sensor_type 2 meshtastic --set environmental_measurement_plugin_sensor_type 2
```` ````
```shell title="Set sensor type to DS18B20" ```shell title="Set sensor type to DS18B20"
meshtastic --set telemetry_module_environment_sensor_type DS18B20 meshtastic --set environmental_measurement_plugin_sensor_type DS18B20
``` ```
</TabItem> </TabItem>
@ -454,7 +447,7 @@ Configuring this setting is not yet available for the selected platform. If this
</TabItem> </TabItem>
</Tabs> </Tabs>
#### Set module update interval #### Set plugin update interval
<Tabs <Tabs
groupId="settings" groupId="settings"
@ -467,8 +460,8 @@ values={[
]}> ]}>
<TabItem value="cli"> <TabItem value="cli">
```shell title="Set module update interval to 120 seconds" ```shell title="Set plugin update interval to 120 seconds"
meshtastic --set telemetry_module_environment_update_interval 120 meshtastic --set environmental_measurement_plugin_update_interval 120
```` ````
</TabItem> </TabItem>
@ -503,4 +496,4 @@ The sensors can be wired differently, here's [one example](https://randomnerdtut
### Known Problems ### Known Problems
- No default configuration values are currently set, so this must be done when enabling the module. - No default configuration values are currently set, so this must be done when enabling the plugin.

View file

@ -1,7 +1,7 @@
--- ---
id: mqtt id: mqtt
title: MQTT Settings title: 1.2 MQTT Settings
sidebar_label: MQTT sidebar_label: 1.2 MQTT
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';

View file

@ -1,7 +1,7 @@
--- ---
id: power id: power
title: Power Settings title: 1.2 Power Settings
sidebar_label: Power sidebar_label: 1.2 Power
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';

View file

@ -1,7 +1,7 @@
--- ---
id: router id: router
title: Router Settings title: 1.2 Router Settings
sidebar_label: Router sidebar_label: 1.2 Router
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';

View file

@ -1,7 +1,7 @@
--- ---
id: wifi id: wifi
title: WiFi Settings title: 1.2 WiFi Settings
sidebar_label: WiFi sidebar_label: 1.2 WiFi
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
@ -19,7 +19,7 @@ The ESP32 based devices have the ability to connect to WiFi as a client and also
The device can be either a WiFi client or a software access point. It **cannot** operate as both at the same time. The device can be either a WiFi client or a software access point. It **cannot** operate as both at the same time.
::: :::
:::info :::tip
The first time your device restarts after enabling the WiFi access point, it will take an additional 20-30 seconds to boot. This is to generate self-signed SSL keys. The keys will be saved for future reuse. The first time your device restarts after enabling the WiFi access point, it will take an additional 20-30 seconds to boot. This is to generate self-signed SSL keys. The keys will be saved for future reuse.
::: :::

View file

@ -1,17 +1,15 @@
--- ---
id: ios-development id: ios-development
title: iOS application development title: Apple Applications
sidebar_label: iOS & MacOS Apps sidebar_label: Apple Apps
--- ---
The Meshtastic iOS app is currently available in TestFlight as a public beta with a projected App Store release in the fall of 2022 alongside iOS 16. The Meshtastic Apple Apps are currently available in TestFlight as public betas with a projected App Store release in the fall of 2022 alongside iOS 16.
There are 1000 remaining beta spaces available and there are no codes. There are lesss than 1000 remaining beta spaces available and there are no codes.
iOS 15 is required and you can sign up by opening the following link on any iOS device with TestFlight installed. iOS 15 or macOS 12 is required and you can sign up by opening the following link on any iOS, iPadOS or macOS device with TestFlight installed.
Both 1.2 Legacy and 1.3 Preview builds are available. Both 1.2 Legacy and 1.3 Preview builds are available for iOS and iPadOS.
https://testflight.apple.com/join/c8nNl8q1 https://testflight.apple.com/join/c8nNl8q1
An alpha MacOS application is available in the beta TestFlight app for MacOS using the same link.

View file

@ -1,5 +1,11 @@
--- ---
id: ios id: ios
title: iOS title: iOS & iPadOS
sidebar_label: iOS sidebar_label: iOS & iPadOS
--- ---
## iOS and iPadOS TestFlight
A beta iOS and iPadOS application is available in the TestFlight app using the following link:
https://testflight.apple.com/join/c8nNl8q1

View file

@ -1,5 +0,0 @@
---
id: ipados
title: iPadOS
sidebar_label: iPadOS
---

View file

@ -1,5 +1,12 @@
--- ---
id: macos id: macos
title: MacOS title: macOS
sidebar_label: MacOS sidebar_label: macOS
--- ---
## macOS TestFlight
A beta macOS application is available in the TestFlight app for macOS using the following link:
https://testflight.apple.com/join/c8nNl8q1

View file

@ -0,0 +1,12 @@
---
id: offline-maps
title: Offline Maps
sidebar_label: Offline Maps
---
## macOS TestFlight
A beta macOS application is available in the TestFlight app for macOS using the following link:
https://testflight.apple.com/join/c8nNl8q1