Merge branch 'master' into patch-1

This commit is contained in:
charminULTRA 2023-07-05 14:04:33 -04:00 committed by GitHub
commit de9200fa4f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
49 changed files with 463 additions and 696 deletions

View file

@ -4,14 +4,16 @@ sidebar_label: Contributing
slug: /contributing slug: /contributing
sidebar_position: 3 sidebar_position: 3
--- ---
### Volunteer Based Development
Meshtastic is a team of volunteers, and as such there is always plenty of ways to help. This project gets great contributions from people in their off hours. Those contributors work on the features they are interested in. It is a very open and welcoming developer community, and we are always looking for help to improve Meshtastic. Meshtastic is a team of volunteers, and as such there are always plenty of ways to help. This project gets great contributions from people in their off hours. Those contributors work on the features they are interested in. It is a very open and welcoming developer community, and we are always looking for help to improve Meshtastic.
- If you're a developer, there's plenty stuff to do. Dig in! - If you're a developer, there's plenty stuff to do. Dig in!
- If you're interacting with Meshtastic radios, we could use help with testing, documenting, and providing feedback. - If you're interacting with Meshtastic radios, we could use help with testing, documenting, and providing feedback.
- If you're into Web Development, check out the different web repos. - If you're into Web Development, check out the different web repos.
- If you're into Kotlin and Android, check out the link to the repo below. - If you're into Kotlin and Android, check out the link to the repo below.
- If you're into Python, check out the link to the repo below - If you're into Python, check out the link to the repo below
- If you're into SwiftUI, check out the link to the repo below
- If you're into Ham Radio and LoRa, then this is a great project for you! - If you're into Ham Radio and LoRa, then this is a great project for you!
- ... basically... we would love to have your help and feedback - ... basically... we would love to have your help and feedback
@ -27,20 +29,20 @@ Most communication and interactions happen with protocol buffers. The [Meshtasti
### Device Firmware ### Device Firmware
The [firmware](https://github.com/meshtastic/firmware) is where all of the firmware development happens. This is where the code for the ESP32 and nRF52 based devices is developed. It is mainly C and C++ code. Think Arduino. It is where the first level of hardware interaction begins and ends. The [firmware repo](https://github.com/meshtastic/firmware) is where all of the device firmware development happens. This is where the code for the ESP32 and nRF52 based devices is developed. It is mainly C and C++ code. Think Arduino. It is where the first level of hardware interaction begins and ends.
### Firmware Modules ### Firmware Modules
[Modules](/docs/settings/moduleconfig) are also implemented mainly in the firmware repo above. Typically, you would add functionality in the protobufs repo and the device repo to implement module functionality. You probably also want to have some client/device use/interact with the module and that is where the Device support comes into play. [Modules](/docs/settings/moduleconfig) extend device and mesh functionality beyond core functions. These are also implemented mainly in the firmware repo above. Typically, you would add functions in the protobufs repo and the device repo to implement module functionality. You probably also want to have some client or device, use or interact with the module. This is where Device Interface support comes into play.
### CLI Apps (Device Interface) ### CLI Apps (Device Interface)
- **Meshtastic Python CLI** - The [meshtastic/Meshtastic-python](https://github.com/meshtastic/Meshtastic-python) repository is typically where the first device interaction takes place, but that is not a requirement. This repo has a command line utility that allows you to interact with most functionality with the devices. This python library can also be consumed for other applications. - **Meshtastic Python CLI** - The [meshtastic/Meshtastic-python repository](https://github.com/meshtastic/Meshtastic-python) is a command line utility that allows you to interact with most of the device settings and functionality. This python library can also be consumed for other applications. See [Meshtastic Python Development](/docs/development/python/) for more details
### Web Apps (Device Interface) ### Web Apps (Device Interface)
- **Meshtastic Web** - The [meshtastic/web](https://github.com/meshtastic/web) repository is where the hosted web server on the ESP32 devices in Typescript is developed. See the [Web interface overview](/docs/software/web-client) for more details. - **Meshtastic Web** - The [meshtastic/web repository](https://github.com/meshtastic/web) is where the hosted web server on the ESP32 devices in Typescript is developed. See the [Web Development Overview](/docs/development/web/) for more details.
- **Meshtastic JS** - The [meshtastic/meshtastic.js](https://github.com/meshtastic/meshtastic.js) repository is a JavaScript library that provides an interface for Meshtastic devices. - **Meshtastic JS** - The [meshtastic/meshtastic.js](https://github.com/meshtastic/meshtastic.js) repository is a JavaScript library that provides an interface for Meshtastic devices. See [Javascript Development](/docs/development/js) for more details
@sachaw has been making tons of progress on the web app and would love help with: @sachaw has been making tons of progress on the web app and would love help with:
@ -49,13 +51,13 @@ The [firmware](https://github.com/meshtastic/firmware) is where all of the firmw
- Chat scroll lock - Chat scroll lock
- Various module support - Various module support
### Mobile Apps (Device Interface) ### Mobile and Desktop Apps (Device Interface)
There are two phone apps that interact with the Meshtastic devices: There are Android, iOS, iPadOS, and macOS apps that interact with Meshtastic devices:
- **Android App** - The [meshtastic/Meshtastic-Android](https://github.com/meshtastic/Meshtastic-Android) repository repo contains the Kotlin code for Android based interactions with Meshtastic devices. See the [Android development instructions](/docs/development/android) on how to create a development environment and build the Meshtastic Android App. - **Android App** - The [meshtastic/Meshtastic-Android](https://github.com/meshtastic/Meshtastic-Android) repository contains the Kotlin code for Android based interactions with Meshtastic devices. See the [Android development instructions](/docs/development/android) on how to create a development environment and build the Meshtastic Android App.
- **Apple Apps** - The iOS applications are in the process of a complete re-write in Swift and will have the new repo published soon. Note: There are a couple of earlier implementations. - **Apple Apps** - The [meshtastic/Meshtastic-Apple](https://github.com/meshtastic/Meshtastic-Apple) repository contains the SwiftUI client applications code for iPhone, iPad and Mac.
### Documentation ### Documentation
This website is in the [Meshtastic](https://github.com/meshtastic/meshtastic) repository. The Meshtastic website (the one you are looking at right now) is in the [meshtastic/Meshtastic](https://github.com/meshtastic/meshtastic) repository. See [Maintaining Documentation](docs/development/docs) for more details.

View file

@ -97,11 +97,11 @@ Push the left PWR button for about 1 second.
### Where do I purchase the device hardware? ### Where do I purchase the device hardware?
Each [supported device](/docs/hardware/devices/tbeam) has a "Purchase Link". Each [supported device](/docs/supported-hardware) has a "Purchase Link".
### I have my hardware. How do I install the firmware and any required drivers? ### I have my hardware. How do I install the firmware and any required drivers?
[See our guide here](/docs/getting-started/flashing-firmware). [See our guide here](/docs/getting-started).
### How do I update the firmware to the latest version? ### How do I update the firmware to the latest version?
@ -117,8 +117,7 @@ Once the node wakes up from sleep, your phone will relay any delayed messages th
### How can I tell the device not to sleep? ### How can I tell the device not to sleep?
- Android instructions see: [Android Usage](/docs/software/android/usage#configuration-options) See [Device Power Configuration](/docs/settings/config/power) options.
- Python CLI instructions see: [Python Usage](/docs/software/python/cli/usage#changing-settings)
### I am in Europe and my device seems to stop transmitting after a while, what is going on? ### I am in Europe and my device seems to stop transmitting after a while, what is going on?
@ -148,21 +147,15 @@ If you use your HAM radio license with Meshtastic, consider both the privileges
#### Restrictions #### Restrictions
- Plain-Text Only - Plain-Text Only
- On amateur radio bands, encryption is illegal. [FCC Part 97.113.C](https://www.ecfr.gov/current/title-47/chapter-I/subchapter-D/part-97/subpart-B/section-97.113) - On amateur radio bands, encryption is illegal. [FCC Part 97.113.A.4](https://www.ecfr.gov/current/title-47/chapter-I/subchapter-D/part-97/subpart-B/section-97.113#p-97.113(a)(4))
- Lack of Privacy - Lack of Privacy
- As a HAM operator, it is a requirement that you identify yourself by your call sign periodically when transmitting. Your call sign will be publicly transmitted at least once every 10 minutes at minimum. [FCC Part 97.119.A](https://www.ecfr.gov/current/title-47/chapter-I/subchapter-D/part-97/subpart-B/section-97.119) - As a HAM operator, it is a requirement that you identify yourself by your call sign periodically when transmitting. Your call sign will be publicly transmitted at least once every 10 minutes at minimum. [FCC Part 97.119.A](https://www.ecfr.gov/current/title-47/chapter-I/subchapter-D/part-97/subpart-B/section-97.119#p-97.119(a))
### How do I set my HAM call sign? ### How do I set my HAM call sign?
Please see instructions for [Enabling HAM License from the Python CLI](/docs/software/python/cli/usage#ham-radio-support) - On Android navigate to Radio configuration -> User and set Long name to your Ham Radio callsign, then activate the slider for 'Licensed amateur radio'.
- On iPhone navigate to Settings -> User and set Long Name to your Ham Radio callsign, then activate the slider for 'Licensed Operator'.
<!-- Flasher --> - Instructions for Enabling HAM License from the Python CLI can be found [here](/docs/software/python/cli/usage#ham-radio-support).
## Flasher
### Why does my operating system flag Meshtastic Flasher as having malware?
The flasher contains no malware and completely passed the Microsoft malware scanning. It appears that a lot of file download services are using the Windows Defender data, so if you're seeing alerts of a detected trojan please [update your Windows Defender definitions](https://www.microsoft.com/en-us/wdsi/defenderupdates).
### What if I'm still having issues on Windows 10? ### What if I'm still having issues on Windows 10?

View file

@ -10,6 +10,8 @@ sidebar_position: 2
The routing protocol for Meshtastic is really quite simple (and sub-optimal). If you want to test its theoretical performance, you can have a look at the [simulator](https://github.com/GUVWAF/Meshtasticator). The protocol is heavily influenced by the mesh routing algorithm used in [RadioHead](https://www.airspayce.com/mikem/arduino/RadioHead) (which was used in very early versions of this project). It has four conceptual layers. The routing protocol for Meshtastic is really quite simple (and sub-optimal). If you want to test its theoretical performance, you can have a look at the [simulator](https://github.com/GUVWAF/Meshtasticator). The protocol is heavily influenced by the mesh routing algorithm used in [RadioHead](https://www.airspayce.com/mikem/arduino/RadioHead) (which was used in very early versions of this project). It has four conceptual layers.
<object data="https://www.youtube.com/embed/7v6UbC5blJU?autohide=1&autoplay=0" width="100%" height="400"></object>
### A Note About Protocol Buffers ### A Note About Protocol Buffers
Because we want our devices to work across various vendors and implementations, we use [Protocol Buffers](https://github.com/meshtastic/protobufs) pervasively. For purposes of this document you mostly only Because we want our devices to work across various vendors and implementations, we use [Protocol Buffers](https://github.com/meshtastic/protobufs) pervasively. For purposes of this document you mostly only

View file

@ -88,11 +88,7 @@ The link budget used by these calculations assumes a transmit power of 17dBm and
### Custom Settings ### Custom Settings
You may want to select other channels for your usage. The other settings can be set by using the Python API. Custom settings can be applied by using [supported software](/docs/software).
```shell
meshtastic --ch-set spread_factor 10 --ch-set coding_rate 4 --ch-set bandwidth 125 --ch-index 0
```
After applying the settings, you will need to restart the device. After your device is restarted, it will generate a new crypto key and you will need to share the newly generated QR Code or URL to all your other devices. After applying the settings, you will need to restart the device. After your device is restarted, it will generate a new crypto key and you will need to share the newly generated QR Code or URL to all your other devices.
@ -113,18 +109,8 @@ Some example settings:
The link budget used by these calculations assumes a transmit power of 17dBm and an antenna with 0dB gain. Adjust your link budget assumptions based on your actual devices. The link budget used by these calculations assumes a transmit power of 17dBm and an antenna with 0dB gain. Adjust your link budget assumptions based on your actual devices.
These channel settings may have not been tested. Use at your own discretion. Share on <https://meshtastic.discourse.group> with your successes or failure. These channel settings may not have been tested. Use at your own discretion. Share on <https://meshtastic.discourse.group> with your successes or failure.
## Cryptography ## Cryptography
The pre-shared key (PSK) used by the devices can be modified. The pre-shared key (PSK) used by the devices can be an AES128 or AES256 sequence. Alternatively, encryption can be turned off, which may be useful if you are operating under a Ham Radio license.
- 0 = No crypto
- 1 = Default channel key
- 2 - 10 = The default channel key, except with 1 through 9 added to the last byte
Use of cryptography can also be modified. To disable cryptography (maybe useful if you have Ham radio license):
```shell
meshtastic --setchan psk 0
```

View file

@ -28,16 +28,16 @@ Specify pairing mode.
`FIXED_PIN` uses the fixed PIN that should then be additionally specified. `FIXED_PIN` uses the fixed PIN that should then be additionally specified.
Finally, `NO_PIN` disables PIN authentication. Finally, `NO_PIN` disables PIN authentication.
### Fixed PIN
If your pairing mode is set to `FIXED_PIN`, the default value is 123456. For all other pairing modes, this number is ignored. A custom integer (6 digits) can be set via the Bluetooth config options.
### Default Pairing Mode ### Default Pairing Mode
The default pairing mode will be determined based on whether the device has or does not have a screen attached to it during the first boot (or with a stale device state) unless manually configured via the Bluetooth config options. The default pairing mode will be determined based on whether the device has or does not have a screen attached to it during the first boot (or with a stale device state) unless manually configured via the Bluetooth config options.
- **Screen Attached:** If your device boots up for the first time (or with a stale device state), and a screen is detected, the default pairing mode will be set to `RANDOM_PIN`. Should the attached screen be removed after the device has already been booted, the default pairing mode of `RANDOM_PIN` will remain unless manually changed to `FIXED_PIN` or `NO_PIN`. It is recommended the pairing mode be updated prior to removing the attached screen. - **Screen Attached:** If your device boots up for the first time (or with a stale device state), and a screen is detected, the default pairing mode will be set to `RANDOM_PIN`. Should the attached screen be removed after the device has already been booted, the default pairing mode of `RANDOM_PIN` will remain unless manually changed to `FIXED_PIN` or `NO_PIN`. It is recommended the pairing mode be updated prior to removing the attached screen.
- **No Screen Attached:** If your device boots up for the first time (or with a stale device state), and no screen is detected, the default paring mode will be set to `FIXED_PIN` with the aforementioned default value unless manually configured to a custom value. - **No Screen Attached:** If your device boots up for the first time (or with a stale device state), and no screen is detected, the default paring mode will be set to `FIXED_PIN` with the default value listed below unless manually configured to a custom value.
### Fixed PIN
If your pairing mode is set to `FIXED_PIN`, the default value is 123456. For all other pairing modes, this number is ignored. A custom integer (6 digits) can be set via the Bluetooth config options.
## Configure Bluetooth Config ## Configure Bluetooth Config
@ -57,7 +57,7 @@ values={[
All Bluetooth config options are available for Android. All Bluetooth config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Device Settings > Bluetooth Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Bluetooth**
::: :::

View file

@ -62,17 +62,7 @@ To ensure devices with different PRIMARY channel name transmit on the same frequ
## Channel Settings Values ## Channel Settings Values
The Channel Settings options are: ID, Name, PSK, Downlink Enabled, and Uplink Enabled. Channel settings are embedded in the `Channel` protobuf as a `ChannelSettings` protobuf and sent as an admin message. The Channel Settings options are: Name, PSK, Downlink Enabled, and Uplink Enabled. Channel settings are embedded in the `Channel` protobuf as a `ChannelSettings` protobuf and sent as an admin message.
:::note
The full globally unique ID will be constructed from the Name and ID (`<name>.<id>`) where ID is base36 encoded. Assuming that the number of Meshtastic users is below 20K (true for a long time) the chance of this 64 bit random number colliding with anyone else is super low. The penalty for collision is low as well.
:::
### ID
Used to construct a globally unique channel ID.
Set to `0` by default.
### Name ### Name
@ -103,6 +93,8 @@ If enabled, messages from the mesh will be sent to the **public** internet throu
Set to `false` by default for all channels. Set to `false` by default for all channels.
## Examples
<Tabs <Tabs
groupId="settings" groupId="settings"
defaultValue="cli" defaultValue="cli"
@ -116,8 +108,25 @@ values={[
<TabItem value="android"> <TabItem value="android">
:::info :::info
Limited Channel Config options are available on Android. QR code scanning is available. Channel Config options are available on Android.
::: :::
![Android Menu Tabs](/img/android/android-menu-channel.png)
The Radio Configuration tab can be used for common tasks:
1. View your current channel configuration QR code and URL.
2. Quickly create or modify your primary channel.
3. Select a modem preset for all your channels i.e. `Long Range / Fast`.
See [Android App Usage](/docs/software/android/usage#setup-a-channel) for more further instruction on setting up your primary channel.
[![Channel Editor](/img/android/android-channel-edit-sm.png)](/img/android/android-channel-edit.png)
Tap the Channel Name (or the pen icon) to access the Channel Menu:
1. Add, remove, or modify secondary channels
2. Create or modify encryption keys
3. Enable uplink and downlink for individual channels
</TabItem> </TabItem>
@ -145,11 +154,6 @@ meshtastic --ch-set name "My Channel" --ch-set psk random --ch-set uplink_enable
::: :::
### Id
```shell title="Set the PRIMARY channel ID"
meshtastic --ch-set id 1234 --ch-index 0
```
### Name ### Name

View file

@ -88,7 +88,7 @@ values={[
Device Config is available for Android. Device Config is available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Device Settings > Device Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Device**
::: :::

View file

@ -8,7 +8,7 @@ sidebar_label: Display
import Tabs from "@theme/Tabs"; import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem"; import TabItem from "@theme/TabItem";
The display config options are: Screen On Duration, Auto Carousel Interval, Always Point North and GPS Format. Display config uses an admin message sending a `Config.Display` protobuf. The display config options are: Screen On Duration, Auto Carousel Interval, Always Point North, GPS Format, Preferred Display Units, OLED Definition, Display Mode, Heading Bold, and Wake on Tap or Motion. Display config uses an admin message sending a `Config.Display` protobuf.
## Device Config Values ## Device Config Values
@ -18,7 +18,7 @@ How long the screen remains on after the user button is pressed or messages are
### Auto Carousel Interval ### Auto Carousel Interval
Automatically toggles to the next page on the screen like a carousel, based the specified interval. Automatically toggles to the next page on the screen like a carousel, based on the specified interval.
### Always Point North ### Always Point North
@ -39,15 +39,15 @@ Acceptable values:
| `OLC` | Open Location Code (Plus Codes) | | `OLC` | Open Location Code (Plus Codes) |
| `OSGR` | Ordnance Survey Grid Reference | | `OSGR` | Ordnance Survey Grid Reference |
### Prefered display units ### Preferred Display Units
switch between `METRIC` (default) and `IMPERIAL` units Switch between `METRIC` (default) and `IMPERIAL` units
### Flip Screen ### Flip Screen
If enabled, the screen will be rotated 180 degrees, for cases that mount the screen upside down If enabled, the screen will be rotated 180 degrees, for cases that mount the screen upside down
### OLED Defintion ### OLED Definition
The type of OLED Controller is auto-detected by default, but can be defined with this setting if the auto-detection fails. For the SH1107, we assume a square display with 128x128 Pixels like the GME128128-1. The type of OLED Controller is auto-detected by default, but can be defined with this setting if the auto-detection fails. For the SH1107, we assume a square display with 128x128 Pixels like the GME128128-1.
@ -62,7 +62,7 @@ Acceptable values:
### Display Mode ### Display Mode
The display mode can be set to `NORMAL` (default), `TWOCOLOR` or `INVERTED`. The `TWOCOLOR` mode is intended for OLED displays with the first line of output being a different color than the rest of the display. The `INVERTED` mode will invert that bicolor area, resulting in a white background headline on monochrome displays. The display mode can be set to `DEFAULT` (default), `TWOCOLOR`, `INVERTED` or `COLOR`. The `TWOCOLOR` mode is intended for OLED displays with the first line of output being a different color than the rest of the display. The `INVERTED` mode will invert that bicolor area, resulting in a white background headline on monochrome displays.
### Heading Bold ### Heading Bold
@ -90,7 +90,7 @@ values={[
Display Config is available for Android. Display Config is available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Device Settings > Display Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Display**
::: :::
@ -114,12 +114,12 @@ All display config options are available in the python CLI. Example commands are
| --------------------------------- | --------------------------------------------------------- | ----------------------------- | | --------------------------------- | --------------------------------------------------------- | ----------------------------- |
| display.auto_screen_carousel_secs | `integer` | Default of `0` is off. | | display.auto_screen_carousel_secs | `integer` | Default of `0` is off. |
| display.compass_north_top | `false`, `true` | `false` | | display.compass_north_top | `false`, `true` | `false` |
| display.flip_screen | `fasle`, `true` | `false` | | display.flip_screen | `false`, `true` | `false` |
| display.gps_format | `DEC`, `DMS`, `UTM`, `MGRS`, `OLC`, `OSGR` | `DEC` | | display.gps_format | `DEC`, `DMS`, `UTM`, `MGRS`, `OLC`, `OSGR` | `DEC` |
| display.oled | `OLED_AUTO`, `OLED_SSD1306`, `OLED_SH1106`, `OLED_SH1107` | `OLED_AUTO` | | display.oled | `OLED_AUTO`, `OLED_SSD1306`, `OLED_SH1106`, `OLED_SH1107` | `OLED_AUTO` |
| display.screen_on_secs | `integer` | Default of `0` is 10 minutes. | | display.screen_on_secs | `integer` | Default of `0` is 10 minutes. |
| display.units | `METRIC`, `IMPERIAL` | `METRIC` | | display.units | `METRIC`, `IMPERIAL` | `METRIC` |
| display.displaymode | `NORMAL`, `TWOCOLOR`, `INVERTED` | `NORMAL` | | display.displaymode | `DEFAULT`, `TWOCOLOR`, `INVERTED`, `COLOR` | `DEFAULT` |
| display.heading_bold | `false`, `true` | `false` | | display.heading_bold | `false`, `true` | `false` |
| display.wake_on_tap_or_motion | `false`, `true` | `false` | | display.wake_on_tap_or_motion | `false`, `true` | `false` |

View file

@ -9,7 +9,7 @@ import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem"; import TabItem from "@theme/TabItem";
import LoRaRegions from "../../blocks/_lora-regions.mdx"; import LoRaRegions from "../../blocks/_lora-regions.mdx";
The LoRa config options are: Region, Modem Preset, Max Hops, Transmit Power, Bandwidth, Spread Factor, Coding Rate, Frequency Offset, Transmit Enabled, Channel Number and Ignore Incoming Array. LoRa config uses an admin message sending a `Config.LoRa` protobuf. The LoRa config options are: Region, Modem Preset, Max Hops, Transmit Power, Bandwidth, Spread Factor, Coding Rate, Frequency Offset, Transmit Enabled, Channel Number, Ignore Incoming Array, Override Duty Cycle Limit, SX126x RX Boosted Gain, and Override Frequency. LoRa config uses an admin message sending a `Config.LoRa` protobuf.
:::note :::note
In order to communicate fully, devices within a mesh must have identical settings for Region and Modem Preset, or identical custom Modem settings. In order to communicate fully, devices within a mesh must have identical settings for Region and Modem Preset, or identical custom Modem settings.
@ -128,17 +128,16 @@ values={[
{label: 'Android', value: 'android'}, {label: 'Android', value: 'android'},
{label: 'Apple', value: 'apple'}, {label: 'Apple', value: 'apple'},
{label: 'CLI', value: 'cli'}, {label: 'CLI', value: 'cli'},
{label: 'Flasher', value: 'flasher'},
{label: 'Web', value: 'web'}, {label: 'Web', value: 'web'},
]}> ]}>
<TabItem value="android"> <TabItem value="android">
:::info :::info
LoRa Config options such as Region, Modem Preset, and Hop Limit can be configured on Android. LoRa Config options are available on Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Device Settings > LoRa Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > LoRa**
::: :::
@ -146,7 +145,7 @@ LoRa Config options such as Region, Modem Preset, and Hop Limit can be configure
<TabItem value="apple"> <TabItem value="apple">
:::info :::info
Configuration of Region, Modem Preset and Hop Limit is available on iOS, iPadOS and macOS at Settings > Radio Configuration > LoRa. Configuration of Region, Modem Preset, Transmit Enabled, Hop Limit, Channel Number and RX Boosted gain is available on iOS, iPadOS and macOS at Settings > Radio Configuration > LoRa.
::: :::
</TabItem> </TabItem>
@ -169,7 +168,7 @@ LoRa config commands are available in the python CLI. Example commands are below
| lora.frequency_offset | `0` to `1000000` | `0` | | lora.frequency_offset | `0` to `1000000` | `0` |
| lora.hop_limit | `1`,`2`,`3`,`4`,`5`,`6`,`7` | `3` | | lora.hop_limit | `1`,`2`,`3`,`4`,`5`,`6`,`7` | `3` |
| lora.tx_power | `0` to `30` | `0` | | lora.tx_power | `0` to `30` | `0` |
| lora.tx_enabled | `false`, `false` | `true` | | lora.tx_enabled | `false`, `true` | `true` |
| lora.channel_num | `0`, `1` to `NUM_CHANNELS` | `0` | | lora.channel_num | `0`, `1` to `NUM_CHANNELS` | `0` |
| lora.override_duty_cycle | `false`, `true` | `false` | | lora.override_duty_cycle | `false`, `true` | `false` |
| lora.sx126x_rx_boosted_gain | `false`, `true` | `false` | | lora.sx126x_rx_boosted_gain | `false`, `true` | `false` |
@ -205,15 +204,6 @@ meshtastic --set lora.override_duty_cycle true
meshtastic --set lora.override_duty_cycle false meshtastic --set lora.override_duty_cycle false
``` ```
</TabItem>
<TabItem value="flasher">
:::info
Only `lora.region` can be set via the GUI flasher. Refer to other clients for any other config.
:::
</TabItem> </TabItem>
<TabItem value="web"> <TabItem value="web">

View file

@ -8,7 +8,7 @@ sidebar_label: Network
import Tabs from "@theme/Tabs"; import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem"; import TabItem from "@theme/TabItem";
The Network config options are: WiFi Enabled, WiFi SSID, WiFi PSK, Ethernet Enabled, IPv4 Networking Mode, Static Address and NTP Server. Network config uses an admin message sending a `Config.Network` protobuf. The Network config options are: NTP Server, WiFi Enabled, WiFi SSID, WiFi PSK, Ethernet Enabled, IPv4 Networking Mode, and Static Address. Network config uses an admin message sending a `Config.Network` protobuf.
:::info :::info
Enabling WiFi will disable Bluetooth. Only one connection method will work at a time. Enabling WiFi will disable Bluetooth. Only one connection method will work at a time.
@ -32,13 +32,13 @@ Set to `false` (Disabled) by default.
### WiFi SSID ### WiFi SSID
This is your WiFi Networks SSID. This is your WiFi Network's SSID.
Empty `""` by default. (Case Sensitive, Max Length: 33) Empty `""` by default. (Case Sensitive, Max Length: 33)
### WiFi PSK ### WiFi PSK
This is your WiFi Networks password. This is your WiFi Network's password.
Empty `""` by default. (Case Sensitive, Max Length: 64) Empty `""` by default. (Case Sensitive, Max Length: 64)
@ -79,7 +79,7 @@ values={[
Network Config options are available for Android. Network Config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Device Settings > Network Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Network**
::: :::
@ -89,7 +89,8 @@ Network Config options are available for Android.
:::info :::info
Network config is not available on Apple OS's. Network config options are available on iOS, iPadOS and macOS.
::: :::
</TabItem> </TabItem>
@ -106,8 +107,10 @@ All Network config options are available in the python CLI.
| :------------------: | :---------------: | :--------------: | | :------------------: | :---------------: | :--------------: |
| network.ntp_server | string | `0.pool.ntp.org` | | network.ntp_server | string | `0.pool.ntp.org` |
| network.wifi_enabled | `true`, `false` | `false` | | network.wifi_enabled | `true`, `false` | `false` |
| network.wifi_psk | string | `""` |
| network.wifi_ssid | string | `""` | | network.wifi_ssid | string | `""` |
| network.wifi_psk | string | `""` |
| network.eth_enabled | `true`, `false` | `false` |
| network.address_mode | `DHCP`, `STATIC` | `DHCP` |
:::tip :::tip

View file

@ -96,7 +96,7 @@ values={[
Position Config options are available for Android. Position Config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Device Settings > Position Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Position**
::: :::

View file

@ -9,9 +9,15 @@ import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem"; import TabItem from "@theme/TabItem";
import calculateADC from "/src/utils/calculateADC"; import calculateADC from "/src/utils/calculateADC";
The power config options are: 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. :::info
Power settings are advanced configuration, most users should choose a role under [Device Config](/docs/settings/config/device) to manage power for their device and shouldn't ever need to adjust these settings.
:::
Power settings are advanced configuration, most users should choose a role under Device Config to manage power for their device and should never need to touch any of these settings. The power config options are: 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.
:::info
ADC Multiplier, Super Deep Sleep, and Light Sleep settings only apply to ESP32-based boards. These settings will have no effect on nRF52 modules.
:::
## Power Config Values ## Power Config Values
@ -23,7 +29,7 @@ If set, Bluetooth, Wifi, and screen (if applicable) are turned off. When using t
Automatically shut down a device after a defined time period if power is lost. Automatically shut down a device after a defined time period if power is lost.
### ADC Multiplier Override `Fixes issues on Heltec v2` ### ADC Multiplier Override
Ratio of voltage divider for battery pin e.g. 3.20 (R1=100k, R2=220k) Ratio of voltage divider for battery pin e.g. 3.20 (R1=100k, R2=220k)
@ -85,7 +91,7 @@ It's important to note that this calibration method only maps 4.2V to Battery Ch
### Wait Bluetooth Interval ### Wait Bluetooth Interval
How long wait before turning off BLE in no Bluetooth states How long to wait before turning off BLE in no Bluetooth states
`0` for default of 1 minute `0` for default of 1 minute
@ -103,9 +109,9 @@ While in Light Sleep if Mesh Super Deep Sleep Timeout Seconds is exceeded we wil
`0` for default of one year `0` for default of one year
### Light Sleep Interval `ESP32 Only Setting` ### Light Sleep Interval
In light sleep the CPU is suspended, LoRa radio is on, BLE is off an GPS is on In light sleep the CPU is suspended, LoRa radio is on, BLE is off and GPS is on
`0` for default of five minutes `0` for default of five minutes
@ -141,7 +147,7 @@ values={[
Power Config options are available for Android. Power Config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Device Settings > Power Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Power**
::: :::

View file

@ -54,7 +54,7 @@ values={[
User Config options are available for Android. User Config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Device Settings > User Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > User**
::: :::

View file

@ -74,7 +74,8 @@ values={[
Audio Config options are available for Android. Audio Config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Module Settings > Audio Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Audio**
::: :::

View file

@ -12,6 +12,8 @@ The Canned Message Module will allow you to send messages to the mesh network fr
The canned message module config options are: Enabled, Save, and Sender. Range Test Module config uses an admin message sending a `ConfigModule.CannedMessage` protobuf. The canned message module config options are: Enabled, Save, and Sender. Range Test Module config uses an admin message sending a `ConfigModule.CannedMessage` protobuf.
<object data="https://www.youtube.com/embed/qKQVYUbLLkg?autohide=1&autoplay=0" width="100%" height="400"></object>
## Canned Message Module Config Values ## Canned Message Module Config Values
### Enabled ### Enabled
@ -90,7 +92,7 @@ values={[
Canned Message Config options are available for Android. Canned Message Config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Module Settings > Canned Message Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Canned Message**
::: :::
@ -146,7 +148,7 @@ meshtastic --set canned_message.send_bell false
``` ```
```shell title="Set Messages" ```shell title="Set Messages"
meshtastic --set canned_message.messages "I need an alpinist!|Call Me|Roger Roger|Keep Calm|On my way" meshtastic --set-canned-message "I need an alpinist!|Call Me|Roger Roger|Keep Calm|On my way"
``` ```
```shell title="Set Input Source" ```shell title="Set Input Source"
@ -219,9 +221,9 @@ Example: 1|2|3||5|6|7||9|10|11||13|14|15 - the slots 4,8 and 12 can not be used.
The CardKB is fully supported in freetext mode and select mode. Use UP/DOWN/ENTER to select a predefined message and send it. For a freetext message, just type it in and press ENTER to send it. The CardKB is fully supported in freetext mode and select mode. Use UP/DOWN/ENTER to select a predefined message and send it. For a freetext message, just type it in and press ENTER to send it.
If you don't want to broadcast your freetext message, you can use the CardKB to send it to a specific node. Just press TAB and select the target node with the LEFT/RIGHT keys. The message will be sent to the node with the matching name and node number. The target node will be remebered for your nexxt message. If you don't want to broadcast your freetext message, you can use the CardKB to send it to a specific node. Just press TAB and select the target node with the LEFT/RIGHT keys. The message will be sent to the node with the matching name and node number. The target node will be remembered for your next message.
### 3 Buttun up/down and RAK rotary encoder ### 3 Button up/down and RAK rotary encoder
Just use UP/DOWN/ENTER to select a predefined message and send it. Just use UP/DOWN/ENTER to select a predefined message and send it.

View file

@ -10,6 +10,8 @@ import TabItem from "@theme/TabItem";
The External Notification Module will allow you to connect a buzzer, speaker, LED, or other device to notify you when a message has been received from the mesh network. You can enable up to 3 pins independently from each other. The External Notification Module will allow you to connect a buzzer, speaker, LED, or other device to notify you when a message has been received from the mesh network. You can enable up to 3 pins independently from each other.
<object data="https://www.youtube.com/embed/MWt3RHMpifo?autohide=1&autoplay=0" width="100%" height="400"></object>
## External Notification Module Config Values ## External Notification Module Config Values
### Enabled ### Enabled
@ -65,7 +67,7 @@ values={[
External Notification Config options are available for Android. External Notification Config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Module Settings > External Notification Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > External Notification**
::: :::
@ -183,6 +185,6 @@ Ideas for external hardware:
- Strobe Light - Strobe Light
- Siren - Siren
## Known Problems ## Known Limitations
- This module only monitors text messages. We won't trigger on any other packet types. - This module only monitors text messages. We won't trigger on any other packet types.

View file

@ -58,7 +58,7 @@ values={[
MQTT Config options are available for Android. MQTT Config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Module Settings > MQTT Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > MQTT**
::: :::

View file

@ -44,7 +44,7 @@ values={[
Range Test Config options are available for Android. Range Test Config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Module Settings > Range Test Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Range Test**
::: :::

View file

@ -14,6 +14,8 @@ This is a simple interface to send messages over the mesh network by sending str
![image](https://user-images.githubusercontent.com/9000580/205529843-962c3187-8411-452c-b729-42c58b1571f5.png) ![image](https://user-images.githubusercontent.com/9000580/205529843-962c3187-8411-452c-b729-42c58b1571f5.png)
<object data="https://www.youtube.com/embed/HdOiGKBtapw?autohide=1&autoplay=0" width="100%" height="400"></object>
## Serial Module Config Values ## Serial Module Config Values
### Enabled ### Enabled
@ -35,7 +37,7 @@ Available Values:
- `PROTO` Exposes the Protobuf Client API on this serial port. You can use this to connect from another device. [API Reference](/docs/development/device/client-api) - `PROTO` Exposes the Protobuf Client API on this serial port. You can use this to connect from another device. [API Reference](/docs/development/device/client-api)
- `TEXTMSG` Will send the string received over the serial port as a Text Message for Display on the other devices. - `TEXTMSG` Will send the string received over the serial port as a Text Message for Display on the other devices.
- `NMEA` Will output a NMEA 0183 Data stream containing the internal GPS or fixed position and other node locations as Waypoints (WPL). - `NMEA` Will output a NMEA 0183 Data stream containing the internal GPS or fixed position and other node locations as Waypoints (WPL).
- `CALTOPO` Will output NMEA 0183 Waypoints (WPL) every 10 seconds for all valid node locations, to be consumed by [CalTopo / SARTopo](https://caltopo.com/) - `CALTOPO` Will output NMEA 0183 Waypoints (WPL) every 10 seconds for all valid node locations, to be consumed by [CalTopo / SARTopo](/docs/software/integrations/caltopo.mdx).
### Receive GPIO Pin ### Receive GPIO Pin
@ -83,7 +85,7 @@ values={[
Serial Module Config options are available for Android. Serial Module Config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Module Settings > Serial Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Serial**
::: :::

View file

@ -24,247 +24,6 @@ The Store & Forward Module is an implementation of a Store and Forward system to
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 (EU_868 and EU_433) nor is it advised to use this for presets using SF11 or SF12 (e.g. all of the LongRange and VeryLongRange presets). 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 (EU_868 and EU_433) nor is it advised to use this for presets using SF11 or SF12 (e.g. all of the LongRange and VeryLongRange presets).
## Settings
| Setting | Acceptable Values | Default |
| :---------------------------------: | :---------------: | :-----: |
| store_forward.enabled | `true`, `false` | `false` |
| store_forward.heartbeat | `true`, `false` | `false` |
| store_forward.history_return_max | `integer` | `0` |
| store_forward.history_return_window | `integer` | `0` |
| store_forward.records | `integer` | `0` |
### 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.enabled true
```
```shell title="Disable the module"
meshtastic --set store_forward.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>
### 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.heartbeat to default"
meshtastic --set store_forward.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>
### 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.history_return_max to default"
meshtastic --set store_forward.history_return_max 0
```
```shell title="Set store_forward.history_return_max to 100 messages"
meshtastic --set store_forward.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>
### 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.history_return_window to default"
meshtastic --set store_forward.history_return_window 0
```
```shell title="Set store_forward.history_return_window to 1 day (1440 minutes)"
meshtastic --set store_forward.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>
### 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.records to default (≈11,000 records)"
meshtastic --set store_forward.records 0
```
```shell title="Set store_forward.records to 100 records"
meshtastic --set store_forward.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 ## Details
### How it works ### How it works
@ -325,3 +84,123 @@ Available Commands:
| SF | Send the last hour worth of messages I may have missed | | SF | Send the last hour worth of messages I may have missed |
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 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.
## Settings
### Enabled
Enables the 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.
### History Return Max
Sets the maximum number of messages to return to a client device.
### History Return Window
Limits the time period (in minutes) a client device can request.
### 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.
### Client Config
<Tabs
groupId="settings"
defaultValue="cli"
values={[
{label: 'Android', value: 'android'},
{label: 'Apple', value: 'apple'},
{label: 'CLI', value: 'cli'},
{label: 'Web', value: 'web'},
]}>
<TabItem value="android">
:::info
Store and Forward Config options are available for Android.
1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Store & Forward**
:::
</TabItem>
<TabItem value="apple">
:::info
Store and Forward configuration is not currently available via the Apple clients.
:::
</TabItem>
<TabItem value="cli">
| Setting | Acceptable Values | Default |
| :---------------------------------: | :---------------: | :-----: |
| store_forward.enabled | `true`, `false` | `false` |
| store_forward.heartbeat | `true`, `false` | `false` |
| store_forward.history_return_max | `integer` | `0` |
| store_forward.history_return_window | `integer` | `0` |
| store_forward.records | `integer` | `0` |
:::tip
Because the device will reboot after each command is sent via CLI, it is recommended when setting multiple values in a config section that commands be chained together as one.
```shell title="Example:"
meshtastic --set store_forward.enabled true --set store_forward.history_return_max 0
```
:::
### Examples of CLI Usage
```shell title="Enable the module"
meshtastic --set store_forward.enabled true
```
```shell title="Disable the module"
meshtastic --set store_forward.enabled false
```
```shell title="Set store_forward.heartbeat to default"
meshtastic --set store_forward.heartbeat 0
```
```shell title="Set store_forward.history_return_max to default"
meshtastic --set store_forward.history_return_max 0
```
```shell title="Set store_forward.history_return_max to 100 messages"
meshtastic --set store_forward.history_return_max 100
```
```shell title="Set store_forward.history_return_window to default"
meshtastic --set store_forward.history_return_window 0
```
```shell title="Set store_forward.history_return_window to 1 day (1440 minutes)"
meshtastic --set store_forward.history_return_window 1440
```
```shell title="Set store_forward.records to default (≈11,000 records)"
meshtastic --set store_forward.records 0
```
```shell title="Set store_forward.records to 100 records"
meshtastic --set store_forward.records 100
```
</TabItem>
<TabItem value="web">
:::info
Store and Forward configuration is not currently available via the web client.
:::
</TabItem>
</Tabs>

View file

@ -12,6 +12,8 @@ The Telemetry Module provides three types of data over the mesh: Device metrics
Supported sensors connected to the I2C bus of the device will be automatically detected at startup. Environment Telemetry and Air Quality must be enabled for them to be instrumented and their readings sent over the mesh. Supported sensors connected to the I2C bus of the device will be automatically detected at startup. Environment Telemetry and Air Quality must be enabled for them to be instrumented and their readings sent over the mesh.
<object data="https://www.youtube.com/embed/6jj1s-fsPlc?autohide=1&autoplay=0" width="100%" height="400"></object>
### Currently Supported Sensor Types ### Currently Supported Sensor Types
| Sensor | I<sup>2</sup>C Address | Data Points | | Sensor | I<sup>2</sup>C Address | Data Points |
@ -87,7 +89,7 @@ values={[
Telemetry Config options are available for Android. Telemetry Config options are available for Android.
1. Open the Meshtastic App 1. Open the Meshtastic App
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Module Settings > Telemetry Config** 2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Telemetry**
::: :::

View file

@ -14,6 +14,8 @@ Only nodes that know the encryption key of the channel you use can be tracked. A
In order to use it, make sure your devices use firmware version 2.0.8 or higher. In order to use it, make sure your devices use firmware version 2.0.8 or higher.
<object data="https://www.youtube.com/embed/PKUmaELKaUo?autohide=1&autoplay=0" width="100%" height="400"></object>
## Traceroute Module Client Availability ## Traceroute Module Client Availability
<Tabs <Tabs

View file

@ -24,8 +24,10 @@ By default, nodes will **only** respond to administrative commands via the local
Before a node will allow remote admin access, it must have a primary channel: Before a node will allow remote admin access, it must have a primary channel:
```shell title="Expected output" ```shell title="Command"
$ meshtastic --info meshtastic --info
```
```markdown title="Expected output"
Connected to radio Connected to radio
... ...
Channels: Channels:
@ -33,25 +35,22 @@ Channels:
Primary channel URL: https://meshtastic.org/e/#CgMSAQESCggBOANAA0gBUBs Primary channel URL: https://meshtastic.org/e/#CgMSAQESCggBOANAA0gBUBs
``` ```
So from this output you see can that this node knows about only one channel and that its PSK is set to the default value. From this output you see can that this node knows about only one channel and that its PSK is set to the default value.
Now we add an admin channel: Now we add an admin channel:
```shell title="Command"
meshtastic --ch-add admin
```
:::note :::note
The name of the channel is important and must be `admin`. The name of the channel is important and must be `admin`.
::: :::
```shell title="Command"
Your channels will now look like this: meshtastic --ch-add admin
```
```shell title="Expected output" ```shell title="Expected output"
$ meshtastic --ch-add admin
Connected to radio Connected to radio
Writing modified channels to device Writing modified channels to device
$ meshtastic --info ```
Run `meshtastic --info` and your channels will now look like this:
```shell title="Expected output"
Connected to radio Connected to radio
... ...
Channels: Channels:
@ -61,11 +60,11 @@ Primary channel URL: https://meshtastic.org/e/#CgMSAQESCggBOANAA0gBUBs
Complete URL (includes all channels): https://meshtastic.org/e/#CgMSAQEKKRIgYyDCitupTAOOXTcaMDxyNhDpPa3eThiQFziPFCqT0moaBWFkbWluEgoIATgDQANIAVAb Complete URL (includes all channels): https://meshtastic.org/e/#CgMSAQEKKRIgYyDCitupTAOOXTcaMDxyNhDpPa3eThiQFziPFCqT0moaBWFkbWluEgoIATgDQANIAVAb
``` ```
Notice that now we have a new secondary channel and the `--info` option prints out TWO URLs. The `Complete URL` includes all of the channels this node understands. The URL contains the preshared keys and should be treated with caution and kept a secret. When deploying remote administration, you only need the node you want to administer and the node you are locally connected to know this new "admin" channel. All of the other nodes will forward the packets as long as they are a member of the primary channel. Notice that now we have a new secondary channel and the `--info` option prints out TWO URLs. The `Complete URL` includes all of the channels this node understands. The URL contains the preshared keys and should be treated with caution and kept a secret. When deploying remote administration, you only need the node you want to administer and the node you are locally connected to, to know this new "admin" channel. All of the other nodes will forward the packets as long as they are a member of the primary channel.
## Sharing the admin channel with other nodes ## Sharing the admin channel with other nodes
Creating an "admin" channel automatically generates a preshared key. In order to administer to other nodes remotely, we need to copy the preshared key to the new nodes. Creating an "admin" channel automatically generates a preshared key. In order to administer other nodes remotely, we need to copy the preshared key to the new nodes.
For this step you need physical access to both the nodes. For this step you need physical access to both the nodes.
@ -80,16 +79,18 @@ meshtastic --seturl the-url-from-step-2
5. Run `meshtastic --info` and confirm that the "Complete URL" is the same for both of the nodes. 5. Run `meshtastic --info` and confirm that the "Complete URL" is the same for both of the nodes.
At this point you can take your remote node and install it far away and still be able to change any of its settings. At this point you can take your remote node and install it far away. You will still be able to change any of its settings.
## Remotely administering your node ## Remotely administering your node
Now that both your local node and the remote node contain your secret admin channel key, you can do things like: Now that both your local node and the remote node contain your secret admin channel key, you can now change settings remotely:
Get the node list from the local node: Get the node list from the local node:
```shell title="Expected output" ```shell title="Command"
$ meshtastic --nodes meshtastic --nodes
```
```markdown title="Expected output"
Connected to radio Connected to radio
/-------------------------------------------------------------------------------------------------------------\ /-------------------------------------------------------------------------------------------------------------\
|N| User |AKA| ID |Latitude|Longitude|Altitude|Battery| SNR | LastHeard | Since | |N| User |AKA| ID |Latitude|Longitude|Altitude|Battery| SNR | LastHeard | Since |
@ -99,19 +100,24 @@ Connected to radio
``` ```
Using the node ID from that list, send a message through the mesh telling that node to change its owner name. Using the node ID from that list, send a message through the mesh telling that node to change its owner name.
The --dest argument value must be in single quotes for linux/mac '!28979058', no quotes for Windows !28979058. :::info
The --dest argument value must be in single quotes for linux/mac: '!28979058', no quotes for Windows: !28979058.
```shell title="Expected output" :::
$ meshtastic --dest '!28979058' --set-owner "Im Remote" ```shell title="Command"
meshtastic --dest '!28979058' --set-owner "Im Remote"
```
```markdown title="Expected output"
Connected to radio Connected to radio
Setting device owner to Im Remote Setting device owner to Im Remote
INFO:root:Requesting configuration from remote node (this could take a while) Waiting for an acknowledgment from remote node (this could take a while)
``` ```
And you can now confirm via the local node that the remote node has changed: And you can now confirm via the local node that the remote node has changed:
```shell title="Expected output" ```shell title="Command"
$ meshtastic --nodes meshtastic --nodes
```
```markdown title="Expected output"
Connected to radio Connected to radio
/----------------------------------------------------------------------------------------------------\ /----------------------------------------------------------------------------------------------------\
|N| User |AKA| ID | Position |Battery| SNR | LastHeard | Since | |N| User |AKA| ID | Position |Battery| SNR | LastHeard | Since |
@ -120,35 +126,77 @@ Connected to radio
\----------------------------------------------------------------------------------------------------/ \----------------------------------------------------------------------------------------------------/
``` ```
Note: you can change **any** parameter, add channels or get info from the remote node. Here's an example of setting ls_secs and printing the complete device info from the remote node: Note: you can change **any** parameter, add channels or get settings from the remote node. Here's an example of setting ls_secs using the `--set` command and printing the position settings from the remote node using the `--get` command:
```shell title="Expected output" ```shell title="Command"
$ meshtastic --dest \!28979058 --set ls_secs 301 --info meshtastic --dest '!28979058' --set power.ls_secs 301 --get position
Connected to radio
INFO:root:Requesting configuration from remote node (this could take a while)
Set ls_secs to 301
Writing modified preferences to device
Preferences: { "lsSecs": 301, "region": "TW" }
Channels:
PRIMARY psk=default { "psk": "AQ==" }
SECONDARY psk=secret { "psk": "YyDCitupTAOOXTcaMDxyNhDpPa3eThiQFziPFCqT0mo=", "name": "admin" }
Primary channel URL: https://meshtastic.org/e/#CgMSAQESCggBOANAA0gBUBs
Complete URL (includes all channels): https://meshtastic.org/e/#CgMSAQEKKRIgYyDCitupTAOOXTcaMDxyNhDpPa3eThiQFziPFCqT0moaBWFkbWluEgoIATgDQANIAVAb
``` ```
## Admin Channel Setup is Complete ```markdown title="Expected output"
You've finished setting up and adding two devices to the admin channel. Remember, because this is a mesh network, it doesn't matter which node you are at; you could administer your first device we set up from the second one we added to the channel. And the settings and examples on this page are just a taste of the other settings you can set. Also, if you ever want to view a setting without having to read through the `--info`, you can always do the following:
```shell title="--get vs. --info"
$ meshtastic --dest \!28979058 --get ls_secs
Connected to radio Connected to radio
INFO:root:Requesting preferences from remote node (this could take a while) Requesting current config from remote node (this can take a while).
ls_secs: 301
power:
wait_bluetooth_secs: 60
mesh_sds_timeout_secs: 7200
sds_secs: 4294967295
ls_secs: 300
min_wake_secs: 10
Set power.ls_secs to 301
Writing modified preferences to device
Requesting current config from remote node (this can take a while).
Received an ACK.
Completed getting preferences
Waiting for an acknowledgment from remote node (this could take a while)
position:
position_broadcast_secs: 900
position_broadcast_smart_enabled: true
gps_enabled: true
gps_update_interval: 120
gps_attempt_time: 900
position_flags: 3
rx_gpio: 15
tx_gpio: 13
broadcast_smart_minimum_distance: 100
broadcast_smart_minimum_interval_secs: 30
Completed getting preferences Completed getting preferences
``` ```
For further reading, I recommend starting out with [Meshtastic-python](/docs/software/python/cli/) if you haven't already gone through this (hopefully you have since you are reading this). But for a full reference to the settings you can change, please see: To set the `hop_limit` to 4 and then get the lora settings to confirm your new settings:
```shell title="Command"
meshtastic --dest '!28979058' --set lora.hop_limit 4 --get lora
```
```markdown title="Expected output"
lora:
use_preset: true
region: US
hop_limit: 3
tx_enabled: true
tx_power: 30
Set lora.hop_limit to 4
Writing modified preferences to device
Requesting current config from remote node (this can take a while).
Received an ACK.
Completed getting preferences
Waiting for an acknowledgment from remote node (this could take a while)
lora:
use_preset: true
region: US
hop_limit: 4
tx_enabled: true
tx_power: 30
```
## Admin Channel Setup is Complete
You've finished setting up and adding two devices to the admin channel. Remember, because this is a mesh network, it doesn't matter which node you are at; you could administer your first device we set up from the second one we added to the channel. And the settings and examples on this page are just a taste of the other settings you can set.
For further reading, I recommend starting out with the [Meshtastic Python CLI Guide](/docs/software/python/cli/) if you haven't already gone through this (hopefully you have since you are reading this). But for a full reference to the settings you can change, please see:
[Settings Overview](/docs/settings) and [Settings Overview](/docs/settings) and
[Complete list of user settings in Protobufs](https://buf.build/meshtastic/protobufs/docs/main:meshtastic#meshtastic.User) [Complete list of user settings in Protobufs](https://buf.build/meshtastic/protobufs/docs/main:meshtastic#meshtastic.User)

View file

@ -41,10 +41,6 @@ pytest -m smoke1
You need permissions in the GitHub project to make a build You need permissions in the GitHub project to make a build
::: :::
### Meshtastic-flasher
A `meshtastic-flasher` release consists of publishing the release to PyPi https://pypi.org/project/meshtastic-flasher/ as well as producing single-executable files that are downloadable from Github https://github.com/meshtastic/Meshtastic-gui-installer/releases.
#### Instructions - automated #### Instructions - automated
- Go to Actions / Make Release / Run Workflow https://github.com/meshtastic/Meshtastic-gui-installer/actions/workflows/release.yml - Go to Actions / Make Release / Run Workflow https://github.com/meshtastic/Meshtastic-gui-installer/actions/workflows/release.yml

View file

@ -5,8 +5,7 @@ sidebar_label: ESP32 partitions
--- ---
:::caution :::caution
It has been reported that some of this information is out of date. Flashing the device with [Meshtastic-flasher](/docs/software/python/flasher) should fix these partition issues and update you to the current web interface. It has been reported that some of this information is out of date.
FIXME - Investigate and rewrite document to reflect the current ESP32 Partition mitigation. FIXME - Investigate and rewrite document to reflect the current ESP32 Partition mitigation.
::: :::

View file

@ -22,7 +22,7 @@ The [T-Beam 0.7](/docs/hardware/devices/tbeam#t-beam---v07) board is an earlier
::: :::
## Command Line Interface Instructions ## Command Line Interface Instructions
### Install Prerequisite Software
<Tabs <Tabs
groupId="operating-system" groupId="operating-system"
defaultValue="linux" defaultValue="linux"
@ -33,7 +33,6 @@ values={[
]}> ]}>
<TabItem value="linux"> <TabItem value="linux">
### Install Prerequisite Software
Check if you have `python3` and `pip` installed with the following command Check if you have `python3` and `pip` installed with the following command
@ -53,18 +52,12 @@ If `pip` is not installed, install with
```shell ```shell
sudo apt-get install python3-pip sudo apt-get install python3-pip
```
### Install `esptool`
```shell
pip3 install --upgrade esptool
``` ```
</TabItem> </TabItem>
<TabItem value="macos"> <TabItem value="macos">
### Install Prerequisite Software
OS X comes with `Python 2.7` installed, but not `pip`. The following uses Homebrew to install `python3` which includes `pip3`. On MacOS you will use `pip3` instead > of `pip`. OS X comes with `Python 2.7` installed, but not `pip`. The following uses Homebrew to install `python3` which includes `pip3`. On MacOS you will use `pip3` instead > of `pip`.
@ -96,12 +89,6 @@ Confirm `pip3` was installed alongside `python3`
```shell ```shell
pip3 -v pip3 -v
```
### Install `esptool`
```shell
pip3 install --upgrade esptool
``` ```
</TabItem> </TabItem>
@ -123,15 +110,17 @@ pip --version
::: :::
### Install `esptool`
```shell
pip install --upgrade esptool
```
</TabItem> </TabItem>
</Tabs> </Tabs>
### Install `esptool`
```shell
pip3 install --upgrade esptool
```
### Confirm Communication With Chip ### Confirm Communication With Chip
<Tabs <Tabs

View file

@ -10,7 +10,7 @@ import TabItem from "@theme/TabItem";
import Link from "@docusaurus/Link"; import Link from "@docusaurus/Link";
:::info :::info
This information will likely only be helpful if you've already attempted to go through the prerequisites and processes outlined in [meshtastic flasher](/docs/software/python/flasher) or [manually flashing](/docs/getting-started/flashing-firmware/esp32/cli-script) This information will likely only be helpful if you've already attempted to go through the prerequisites and processes outlined in [manually flashing](/docs/getting-started/flashing-firmware/esp32/cli-script)
::: :::
:::caution :::caution
@ -19,7 +19,7 @@ Make sure not to power the radio on without first attaching the antenna! You cou
## Background ## Background
Situations that may require usage an external USB to Serial Adapter: Situations that may require using an external USB to Serial Adapter:
- Due to the chip shortage, recently purchased devices such as the TTGO T-Beam may come with legacy or non-standard USB to Serial adapter chips that are unreliable in some cases. - Due to the chip shortage, recently purchased devices such as the TTGO T-Beam may come with legacy or non-standard USB to Serial adapter chips that are unreliable in some cases.
- Certain devices might have defective USB to Serial chip. - Certain devices might have defective USB to Serial chip.
@ -55,10 +55,7 @@ Disconnect your USB to Serial Adapter from the computer before starting this pro
### Flashing ### Flashing
After following the steps above, your device should be in flash mode. You can flash your device using the [Meshtastic flasher](/docs/software/python/flasher) or [manual method](/docs/getting-started/flashing-firmware/esp32/cli-script) After following the steps above, your device should be in flash mode. You can flash your device using the [manual method](/docs/getting-started/flashing-firmware/esp32/cli-script)
Example using the Meshtastic Flasher
![image](https://user-images.githubusercontent.com/9000580/168447086-313e0649-1bfe-4ccb-b891-0f56059d8063.png)
After flashing the device is complete, reset your device (via the RST button if available). After flashing the device is complete, reset your device (via the RST button if available).
If you have the Meshtastic Python CLI installed, you can run `meshtastic --noproto` to connect the device again over the adapter and view the serial output to confirm Meshtastic installed correctly. If you have the Meshtastic Python CLI installed, you can run `meshtastic --noproto` to connect the device again over the adapter and view the serial output to confirm Meshtastic installed correctly.
@ -66,14 +63,9 @@ If you have the Meshtastic Python CLI installed, you can run `meshtastic --nopro
### Troubleshooting ### Troubleshooting
In the Meshtastic Flasher, device detection may not work when using the external USB to Serial adapter. You might need to manually select the correct device type from the drop-down. You might receive an error for COM port permission in the manual device install scripts, this can be caused by a number of different issues.
![image](https://user-images.githubusercontent.com/9000580/168447197-206f7e14-debe-4b6a-bb2a-7647418075e4.png)
Sometimes you might receive an error for COM port permission in the Meshtastic Flasher or the manual device install scripts, this can be caused by a number of different issues.
You might need to run the process as an administrator, check to ensure software like Cura isn't monopolizing COM ports, or reboot. You might need to run the process as an administrator, check to ensure software like Cura isn't monopolizing COM ports, or reboot.
![image](https://user-images.githubusercontent.com/9000580/168447232-1a3af39b-e3cc-44b9-bc3a-32843a9e6f1f.png)
## Connect and Configure Device ## Connect and Configure Device

View file

@ -1,11 +0,0 @@
---
id: python-flasher
title: Using Meshtastic Python Flasher
sidebar_label: Python Flasher
sidebar_position: 2
---
import MFlasher from "../../../software/python-flasher.mdx";
import Link from "@docusaurus/Link";
<MFlasher components={props.components} />

View file

@ -9,4 +9,11 @@ sidebar_position: 2
The nRF52 based devices have the easiest firmware upgrade process. No driver or software install is required on any platform. The nRF52 based devices have the easiest firmware upgrade process. No driver or software install is required on any platform.
1. The [Drag & Drop](/docs/getting-started/flashing-firmware/nrf52/drag-n-drop) firmware installation method is considered the "manual process" and recommended as the easiest solution. ### Drag & Drop
nRF52 devices use the [Drag & Drop](/docs/getting-started/flashing-firmware/nrf52/drag-n-drop) installation method to install firmware releases.
### Factory Erase
You may wish to perform a [Factory Erase](/docs/getting-started/flashing-firmware/nrf52/nrf52-erase) prior to installing firmware to clear data that may change format and location between releases.
### Convert RAK4631-R to RAK4631
If your device did not come with the Arduino bootloader you will need to [perform the conversion](/docs/getting-started/flashing-firmware/nrf52/convert-rak4631r).

View file

@ -1,11 +0,0 @@
---
id: python-flasher
title: Using Meshtastic Python Flasher
sidebar_label: Python Flasher
sidebar_position: 2
---
import Link from "@docusaurus/Link";
import MFlasher from "../../../software/python-flasher.mdx";
<MFlasher components={props.components} />

View file

@ -57,7 +57,13 @@ Some cables only provide _charging_, verify that your cable is also capable of _
### Install Serial Drivers ### Install Serial Drivers
If you don't have serial drivers installed on your computer, please choose one of the options below and install it before continuing. :::caution
nRF52 devices typically do not require serial drivers. They use the UF2 bootloader which makes the devices appear as flash drives. Do _NOT_ download the USB device drivers unless required to install UF2 support.
:::
If you require serial drivers installed on your computer, please choose one of the options below and install it before continuing.
<div className="indexCtasBody"> <div className="indexCtasBody">
<div className="split-container"> <div className="split-container">

View file

@ -11,6 +11,12 @@ import Link from "@docusaurus/Link";
## Install nRF52 USB to Serial Drivers ## Install nRF52 USB to Serial Drivers
:::caution
nRF52 devices typically do not require serial drivers. They use the UF2 bootloader which makes the devices appear as flash drives. Do _NOT_ download the USB device drivers unless required to install UF2 support.
:::
<Tabs <Tabs
groupId="operating-system" groupId="operating-system"
defaultValue="windows" defaultValue="windows"
@ -22,17 +28,16 @@ values={[
<TabItem value="linux"> <TabItem value="linux">
- [CH9102 Driver - Linux Download](http://www.wch-ic.com/downloads/CH341SER_LINUX_ZIP.html) - [CH34x Driver - Linux Download](http://www.wch-ic.com/downloads/CH341SER_LINUX_ZIP.html)
</TabItem> </TabItem>
<TabItem value="macos"> <TabItem value="macos">
- [CH9102 Driver - macOS Download](https://github.com/WCHSoftGroup/ch34xser_macos)
:::caution :::info
With the latest versions of MacOS, the USB Serial driver is built-in. Do _NOT_ download the USB device drivers unless required. If you downloaded/installed any already, please remove them. With the latest versions of MacOS, the USB Serial driver is built-in. If you downloaded/installed any already, please remove them.
::: :::
@ -47,11 +52,18 @@ Uninstall the kernel extension:
3. `sudo rm -rf /Library/Extensions/usbserial.kext` 3. `sudo rm -rf /Library/Extensions/usbserial.kext`
4. Reboot 4. Reboot
### Install the CH34x Driver
- [CH34x Driver- macOS Download](https://github.com/WCHSoftGroup/ch34xser_macos)
</TabItem> </TabItem>
<TabItem value="windows"> <TabItem value="windows">
- [CH9102 Driver - Windows Download](http://www.wch-ic.com/downloads/CH341SER_EXE.html) - [CH34x Driver - Windows Download](http://www.wch-ic.com/downloads/CH341SER_EXE.html)
</TabItem> </TabItem>

View file

@ -43,12 +43,13 @@ values={[
</TabItem> </TabItem>
<TabItem value="macos"> <TabItem value="macos">
1. Navigate to `Apple Menu  > About This Mac > System Report... > Hardware > USB`. 1. Navigate to `Apple Menu  > About This Mac > More Info > System Report... > Hardware > USB`.
2. You should see similar to one of the following entries: 2. You should see similar to one of the following entries:
- `CP210X USB to UART Bridge Controller` - `CP210X USB to UART Bridge Controller`
- `CH9102 USB to UART Bridge Controller` - `CH9102 USB to UART Bridge Controller`
- `WisCore RAK4631 Board` - `WisCore RAK4631 Board`
- `USB Single Serial`
</TabItem> </TabItem>
<TabItem value="windows"> <TabItem value="windows">
@ -58,7 +59,8 @@ values={[
- `Silicon Labs CP210X USB to UART Bridge (COM5)` - `Silicon Labs CP210X USB to UART Bridge (COM5)`
- `Silicon Labs CH9102 USB to UART Bridge (COM5)` - `Silicon Labs CH9102 USB to UART Bridge (COM5)`
- `FIXME (WISBLOCK OUTPUT)` - `USB-Enhanced-SERIAL CH9102 (COM5)`
- `USB Serial Device (COM5)`
</TabItem> </TabItem>
</Tabs> </Tabs>

View file

@ -20,6 +20,8 @@ The antenna's design will affect:
While the LoRa devices we use for Meshtastic are relatively low power radios, care should be taken _not_ to operate any radio transmission device without an antenna or with a poorly matched antenna. Un-transmitted radio signal reflected back to the transmitter can damage the device. While the LoRa devices we use for Meshtastic are relatively low power radios, care should be taken _not_ to operate any radio transmission device without an antenna or with a poorly matched antenna. Un-transmitted radio signal reflected back to the transmitter can damage the device.
::: :::
<object data="https://www.youtube.com/embed/V3f-Y3EfsBU?autohide=1&autoplay=0" width="100%" height="400"></object>
## Important considerations ## Important considerations
### What transmission frequency are you using? ### What transmission frequency are you using?

View file

@ -12,3 +12,5 @@ sidebar_label: Trademark Grants
- Details: Garth is a member of the Meshtastic LLC, is the developer of the iOS app and runs an online shop for Meshtastic powered devices which carry the "Powered by Meshtastic" and "Chirpy" logo. The use of the Meshtastic Logo and Trademarks does not imply Garth is sponsored or endorsed by Meshtastic. Garth also agrees to maintain compliance with the Meshtastic Legal requirements. This grant is revokable at any time for any reason. - Details: Garth is a member of the Meshtastic LLC, is the developer of the iOS app and runs an online shop for Meshtastic powered devices which carry the "Powered by Meshtastic" and "Chirpy" logo. The use of the Meshtastic Logo and Trademarks does not imply Garth is sponsored or endorsed by Meshtastic. Garth also agrees to maintain compliance with the Meshtastic Legal requirements. This grant is revokable at any time for any reason.
- Grant: [Anthony (Tony) Good](https://quantumshadow3d.etsy.com) - Grant: [Anthony (Tony) Good](https://quantumshadow3d.etsy.com)
- Details: Tony is an admin and contributer of computer aided design (CAD)/3D designs primarily for device enclosures and accessories, and runs an online shop for Meshtastic powered devices which carry the "Meshtastic" and "M" logos. The use of the Meshtastic Logo and Trademarks does not imply Tony is sponsored or endorsed by Meshtastic. Tony also agrees to maintain compliance with the Meshtastic Legal requirements. This grant is revokable at any time for any reason. - Details: Tony is an admin and contributer of computer aided design (CAD)/3D designs primarily for device enclosures and accessories, and runs an online shop for Meshtastic powered devices which carry the "Meshtastic" and "M" logos. The use of the Meshtastic Logo and Trademarks does not imply Tony is sponsored or endorsed by Meshtastic. Tony also agrees to maintain compliance with the Meshtastic Legal requirements. This grant is revokable at any time for any reason.
- Grant: http://k9rocket.tech
- Details: K9 Rocket Technologies is an open technology development company selling and implementing Meshtastic-powered devices. The devices and their respective promotional content carry the "Powered by Meshtastic", "Meshtastic", & "M" logos. The use of the Meshtastic Logo and Trademarks does not imply K9 Rocket Technologies is sponsored or endorsed by Meshtastic. K9 Rocket Technologies also agrees to maintain compliance with the Meshtastic Legal requirements. This grant is revokable at any time for any reason

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

View file

@ -0,0 +1,62 @@
---
id: integrations-caltopo
title: CalTopo / SARTopo
sidebar_label: CalTopo / SARTopo
sidebar_position: 1
---
## CalTopo / SARTopo
Meshtastic can integrate with [CalTopo](https://caltopo.com/) Desktop edition quite easily through the product's APRS over serial support functionality.
<object data="https://www.youtube.com/embed/z_51FAPPl34
?autohide=1&autoplay=0" width="100%" height="400"></object>
### Configuring the Meshtastic device
To configure our Meshtastic device for this integration, we have a couple of different options, both of which utilize the [Serial module](/docs/settings/moduleconfig/serial):
#### Enabling serial over the device's USB port
```shell title="Serial over USB"
meshtastic --set serial.enabled true --set serial.baud BAUD_9600 --set serial.mode CALTOPO --set serial.override_console_serial_port true
```
#### Enabling serial over an external USB to Serial adapter
```shell title="External serial adapter"
meshtastic --set serial.enabled true --set serial.baud BAUD_9600 --set serial.mode CALTOPO --set serial.txd = 13 --set serial.rxd = 14
```
:::info
Ensure that serial baud rate is set to `9600` on both the Meshtastic device and the CalTopo / SARTopo `topo.properties` configuration
:::
### Setting up CalTopo / SARTopo
To setup CalTopo for Meshtastic integration using the Live Tracking via APRS, refer to the official [documentation](https://training.caltopo.com/all_users/share/live-tracking#aprs).
Example `topo.properties` file configuration for use with Meshtastic:
![topo.properties](/img/software/integrations/caltopo/properties.png)
After starting CalTopo Desktop, NMEA waypoint location sentences should be streamed into the logs from the connected Meshtastic device every 10 seconds:
![CalTopo Logs](/img/software/integrations/caltopo/logs.png)
In the desktop's web UI for your CalTopo map, scroll down and check the **Shared Locations** checkbox under **Realtime Data**. Your nodes should appear on the map as points if they are connected correctly.
![shared-locations](/img/software/integrations/caltopo/local-stations.png)
You can click on one or more of the node points and in the resulting tooltip, click **Record to Map**
![node point](/img/software/integrations/caltopo/click.png)
In the resulting dialog, you can assign attributes such as a label or color to the live track created by the node.
![track](/img/software/integrations/caltopo/track.png)
When you view the shared map on another device or mobile, the nodes should appear there as well now, if both the desktop and mobile device have internet connectivity.
![app](/img/software/integrations/caltopo/app.png)

View file

@ -0,0 +1,14 @@
---
title: Meshtastic Integrations
slug: /software/integrations
sidebar_label: Integrations
sidebar_position: 11
---
The Meshtastic ecosystem is highly extensible and allows easy integration with a number of existing software products and projects.
Current Meshtastic integrations:
- [CalTopo / SARTopo](/docs/software/integrations/integrations-caltopo) - Track Meshtastic nodes in CalTopo and SARTopo.
Support for the integrated products should be sought from their respective authors or vendors.

View file

@ -1,218 +0,0 @@
---
id: flasher
title: Using Meshtastic Python Flasher
sidebar_label: Python Flasher
slug: /software/python/flasher
sidebar_position: 5
---
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
import Link from "@docusaurus/Link";
:::caution
This method is no longer supported. Please use a [supported method](/docs/getting-started/flashing-firmware).
:::
***
:::caution
Make sure not to power the radio on without first attaching the antenna! You could damage the radio chip!
:::
## Overview
Meshtastic Flasher (aka m-flasher) is a graphical user interface for flashing [supported devices](/docs/hardware) with Meshtastic.
The following operating systems are currently supported: Windows, Mac, and Ubuntu.
## Prerequisites
### Verify that Python3 is installed
<Tabs
groupId="operating-system"
defaultValue="linux"
values={[
{label: 'Linux', value: 'linux'},
{label: 'macOS', value: 'macos'},
{label: 'Windows', value: 'windows'},
]}>
<TabItem value="linux">
```shell title="Check python3 version"
python3 --version
# If version is less than v3.6, please update python3
```
</TabItem>
<TabItem value="macos">
```shell title="Check python3 version"
python3 --version
# If version is less than v3.6, please update python3
```
</TabItem>
<TabItem value="windows">
```shell title="Check python3 version"
python3 --version
# If version is less than v3.9+, please update python3
```
</TabItem>
</Tabs>
### Install or Update Python3
<Tabs
groupId="operating-system"
defaultValue="linux"
values={[
{label: 'Linux', value: 'linux'},
{label: 'macOS', value: 'macos'},
{label: 'Windows', value: 'windows'},
]}>
<TabItem value="linux">
```shell title="Install python3, pip, and venv"
sudo apt update
sudo apt upgrade
sudo apt install -y python3 python3-pip python3-venv
```
</TabItem>
<TabItem value="macos">
- [Download directly from python.org](https://www.python.org/downloads/macos/)
- [Homebrew](https://brew.sh/): `brew install python@3.9`
- [MacPorts](https://www.macports.org/)
</TabItem>
<TabItem value="windows">
- [Download directly from python.org](https://www.python.org/downloads/windows/)
</TabItem>
</Tabs>
### Install or Upgrade App
For **Windows**, the [installer](https://github.com/meshtastic/Meshtastic-gui-installer/releases/download/winapp1.0.3/meshtastic-flasher.zip) will manage installing python and flasher updates automatically.
For **macOS** and **Linux**, it is recommended that you install using `pip`.
Note: Update an existing installation using `pip install meshtastic-flasher -U`
<Tabs
groupId="operating-system"
defaultValue="linux"
values={[
{label: 'Linux', value: 'linux'},
{label: 'macOS', value: 'macos'},
{label: 'Windows', value: 'windows'},
]}>
<TabItem value="linux">
```shell title="Install Meshtastic Flasher"
python3 --version
# ensure you are using at least python v3.6
# change to a directory where you want to create a python virtual environment
mkdir some_dir
cd some_dir
# if the following command fails, it might tell you what package to install
python3 -m venv venv
# activate the python virtual environment
source venv/bin/activate
# your prompt should change - it should include "(venv) in the front
# upgrade pip
pip install --upgrade pip
pip install meshtastic-flasher
```
```shell title="Running Meshtastic Flasher"
meshtastic-flasher
```
</TabItem>
<TabItem value="macos">
```shell title="Install Meshtastic Flasher"
python3 --version
# ensure you are using at least python v3.6
# change to a directory where you want to create a python virtual environment
mkdir some_dir
cd some_dir
python3 -m venv venv
# activate the python virtual environment
source venv/bin/activate
# your prompt should change - it should include "(venv) in the front
# upgrade pip
pip install --upgrade pip
pip install meshtastic-flasher
```
```shell title="Running Meshtastic Flasher"
meshtastic-flasher
```
</TabItem>
<TabItem value="windows">
```shell title="Install Meshtastic Flasher"
# open a command prompt
# create a new directory for the python virtual environment
cd c:\
mkdir some_dir
cd some_dir
# check that python version is sufficient, must be at least v3.9+
python -m venv venv
# activate the python virtual environment
venv\Scripts\activate
# your prompt should change - it should have (venv) at the beginning
pip install meshtastic-flasher
```
```shell title="Running Meshtastic Flasher"
meshtastic-flasher
```
</TabItem>
</Tabs>
## Flashing the Device
The Meshtastic Flasher will flash the latest firmware on esp32 and nrf52 devices. This is a newly developed application (as of February 1, 2022), so there may be some issues discovered as it is tested by users.
There are three steps:
1. Click the **GET VERSIONS** button to get the versions available (from GitHub).
2. Click the **DETECT DEVICE** button to determine the port and device variant connected.
3. Click the **FLASH** button to flash the version selected using the port selected to the device.
## Issues?
If you run into an issue, please create a ticket here: [Flasher Issues](https://github.com/meshtastic/Meshtastic-gui-installer/issues)
The code can be found at the [Meshtastic-gui-installer repo](https://github.com/meshtastic/Meshtastic-gui-installer)
## Known limitations
The following are known limitations:
- Raspberry Pi is not available, since it is arm-based and there are no pre-built libraries for [PySide](https://wiki.qt.io/Qt_for_Python)
- Ubuntu 20.04 is the version used for testing, it may work with other versions.
- See [README](https://github.com/meshtastic/Meshtastic-gui-installer/blob/master/README.md) for more details.
## Connect and Configure Device
After flashing the Meshtastic firmware to the device, you can proceed with the initial configuration.
<div className="indexCtasBody">
<Link
className={"button button--outline button--lg cta--button"}
to={"/docs/getting-started/initial-config"}
>
Connect and Configure Device
</Link>
</div>

View file

@ -284,8 +284,8 @@ function Home() {
style={{ display: "flex", justifyContent: "center" }} style={{ display: "flex", justifyContent: "center" }}
> >
<p> <p>
The Meshtastic Flasher application can assist you in flashing The Meshtastic Web-Based Flasher & Clients can assist you in
the firmware and configuring settings. flashing the firmware and configuring settings.
</p> </p>
</div> </div>
</div> </div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB