Merge branch 'master' into master

This commit is contained in:
rcarteraz 2024-10-23 14:07:44 -07:00 committed by GitHub
commit e9e15a78dd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 137 additions and 81 deletions

View file

@ -0,0 +1,20 @@
---
title: "Introducing Meshtastic Solutions: Supporting the Future of the Open Source Meshtastic Project"
description: "Meshtastic Solutions is a new initiative designed to support the growth and long-term success of the open source Meshtastic project"
slug: introducing-meshtastic-solutions
authors: MeshtasticTeam
tags: [meshtastic, meshtastic-solutions]
date: 2024-10-23T13:00
hide_table_of_contents: false
image: "/design/web/social-preview-1200x630.png"
---
The Meshtastic Team is excited to announce Meshtastic Solutions. This new venture will support the Meshtastic open source project, as well as provide a pool of expertise for anyone building tools and systems with Meshtastic. Meshtastic Solutions will ensure the long-term health and success of the Meshtastic team and ecosystem, as well as to spur development of the Meshtastic firmware, clients, libraries, and utilities.
This support will be fueled by partnerships with hardware vendors, many that you are familiar with, and some that are new to Meshtastic. In time, high quality devices will bear the Meshtastic seal of approval. Individual devices will be eligible for registration through Meshtastic, providing assurance of genuine hardware, as well as identity and cryptographic key attestation.
Meshtastic Solutions will also serve as a hub for businesses that need custom solutions or expert consultation within the Meshtastic ecosystem. Meshtastic Solutions is open for business for providing engineering, software solutions, and other support for custom use-cases. The first stage of this support is the Backer program, where existing manufacturers can financially support Meshtastic. This will be extended to include a full Partner program, offering in-depth design, close support, and device testing assistance. All with the goal of helping hardware vendors produce the best products possible for Meshtastic.
Meshtastic Solutions is separate from both the Meshtastic open source project, and Meshtastic LLC, the license and trademark holding entity. There will be no drastic changes to the Meshtastic project as a result of this new venture, with the exception of more development and higher quality products and solutions to choose from. This support from Backers and Partners will fuel some long-awaited milestones, including a well-tested Stable firmware release.
Were looking forward to a stronger Meshtastic ecosystem that continues in the strong open source legacy the project has worked hard to foster. Follow our progress at [Meshtastic.com](https://meshtastic.com), and feel free to contact us with questions or to discuss business opportunities.

View file

@ -26,3 +26,11 @@ Jonathan:
image_url: https://github.com/jp-bennett.png image_url: https://github.com/jp-bennett.png
socials: socials:
github: jonathanbennett github: jonathanbennett
MeshtasticTeam:
name: Meshtastic Team
url: https://meshtastic.org
image_url: https://github.com/meshtastic.png
MeshtasticSolutions:
name: Meshtastic Solutions
url: https://meshtastic.com
image_url: https://github.com/meshtastic-solutions.png

View file

@ -14,7 +14,11 @@ This is an interface to talk to and control your Meshtastic device over a serial
![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> <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
@ -38,10 +42,10 @@ Available Values:
- `TEXTMSG` will allow you to send a string over the serial port to the device, which will be broadcasted as a text message to the default channel. Any text message received from the mesh will be sent to the serial port as follows: `<Short Name>: <text>`. - `TEXTMSG` will allow you to send a string over the serial port to the device, which will be broadcasted as a text message to the default channel. Any text message received from the mesh will be sent to the serial port as follows: `<Short Name>: <text>`.
- `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](/docs/software/integrations/caltopo.mdx). - `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).
- `WS85` will parse and compute wind speed data received over serial from the Ecowitt WS85. Transmits valuess via telemetry packet every 5 minutes. Modification of the WS85 weather sensor is required (https://hackaday.io/project/196990-meshtastic-ultrasonic-anemometer-wx-station). If option is not available in app then enable with cli command "meshtastic --set serial.mode 6" - `WS85` will parse and compute wind speed data received over serial from the Ecowitt WS85. Transmits valuess via telemetry packet every 5 minutes. Modification of the WS85 weather sensor is required (https://hackaday.io/project/196990-meshtastic-ultrasonic-anemometer-wx-station). If option is not available in app then enable with cli command "meshtastic --set serial.mode 6"
:::tip :::tip
`PROTO` mode will show no obvious output when passively observed by a serial monitor. When testing, consider using the [Python CLI](https://github.com/meshtastic/python) with the `--listen` option, to view the stream of protobufs. `PROTO` mode will show no obvious output when passively observed by a serial monitor. When testing, consider using the [Python CLI](https://github.com/meshtastic/python) with the `--listen` option, to view the stream of protobufs.
::: :::
### Receive GPIO Pin ### Receive GPIO Pin
@ -68,7 +72,7 @@ The serial baud rate.
The amount of time to wait before we consider your packet as "done". The amount of time to wait before we consider your packet as "done".
### Override Console Serial Port ### Override Console Serial Port
If set to true, this will allow Serial Module to control (set baud rate) and use the primary USB serial bus for output. This is only useful for NMEA and CalTopo modes and may behave strangely or not work at all in other modes. Setting TX/RX pins in the Serial Module config will cause this setting to be ignored. If set to true, this will allow Serial Module to control (set baud rate) and use the primary USB serial bus for output. This is only useful for NMEA and CalTopo modes and may behave strangely or not work at all in other modes. Setting TX/RX pins in the Serial Module config will cause this setting to be ignored.
@ -120,18 +124,17 @@ All serial module config options are available in the python CLI. Example comman
::: :::
| Setting | Acceptable Values | Default | | Setting | Acceptable Values | Default |
| :------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------: | | :---------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------: |
| serial.enabled | `true`, `false` | `false` | | serial.enabled | `true`, `false` | `false` |
| serial.echo | `true`, `false` | `false` | | serial.echo | `true`, `false` | `false` |
| serial.mode | `DEFAULT` `SIMPLE` `PROTO` `TEXTMSG`, `NMEA`, `CALTOPO` | `DEFAULT` | | serial.mode | `DEFAULT` `SIMPLE` `PROTO` `TEXTMSG`, `NMEA`, `CALTOPO` | `DEFAULT` |
| serial.rxd | GPIO Pin Number 1-39 | Default of `0` is Unset | | serial.rxd | GPIO Pin Number 1-39 | Default of `0` is Unset |
| serial.txd | GPIO Pin Number 1-33 | Default of `0` is Unset | | serial.txd | GPIO Pin Number 1-33 | Default of `0` is Unset |
| serial.baud | `BAUD_DEFAULT` `BAUD_110` `BAUD_300` `BAUD_600` `BAUD_1200` `BAUD_2400` `BAUD_4800` `BAUD_9600` `BAUD_19200` `BAUD_38400` `BAUD_57600` `BAUD_115200` `BAUD_230400` `BAUD_460800` `BAUD_576000` `BAUD_921600` | `BAUD_DEFAULT` (38400) | | serial.baud | `BAUD_DEFAULT` `BAUD_110` `BAUD_300` `BAUD_600` `BAUD_1200` `BAUD_2400` `BAUD_4800` `BAUD_9600` `BAUD_19200` `BAUD_38400` `BAUD_57600` `BAUD_115200` `BAUD_230400` `BAUD_460800` `BAUD_576000` `BAUD_921600` | `BAUD_DEFAULT` (38400) |
| serial.timeout | `integer` (milli seconds) | Default of `0` corresponds to 250 ms | | serial.timeout | `integer` (milli seconds) | Default of `0` corresponds to 250 ms |
| serial.override_console_serial_port | `true`, `false` | `false` | | serial.override_console_serial_port | `true`, `false` | `false` |
:::tip :::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. 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.
@ -264,6 +267,7 @@ while True:
``` ```
#### Arduino Mini Pro BOM #### Arduino Mini Pro BOM
- An Arduino Mini Pro with example sketch from below uploaded to it. - An Arduino Mini Pro with example sketch from below uploaded to it.
- T-Beam V1.1 running Meshtastic - T-Beam V1.1 running Meshtastic
- PIR Sensor ([Adafruit Breadboard Model](https://www.adafruit.com/product/4871)) - PIR Sensor ([Adafruit Breadboard Model](https://www.adafruit.com/product/4871))

View file

@ -160,11 +160,10 @@ Tap "Edit" to access the Channel Menu:
1. Add, remove, or modify secondary channels 1. Add, remove, or modify secondary channels
2. Create or modify encryption keys 2. Create or modify encryption keys
3. Enable uplink and downlink for individual channels 3. Enable uplink and downlink for individual channels
4. Position enabled 4. Position enabled
5. Precise location (if position is enabled) 5. Precise location (if position is enabled)
6. Position precision (if precise location is disabled) 6. Position precision (if precise location is disabled)
</TabItem> </TabItem>
<TabItem value="apple"> <TabItem value="apple">

View file

@ -6,10 +6,9 @@ sidebar_position: 2
--- ---
import PositionPrecision from "@site/docs/blocks/_position-precision.mdx"; import PositionPrecision from "@site/docs/blocks/_position-precision.mdx";
import Link from "@docusaurus/Link" import Link from "@docusaurus/Link";
import ThemedImage from '@theme/ThemedImage'; import ThemedImage from "@theme/ThemedImage";
import useBaseUrl from '@docusaurus/useBaseUrl'; import useBaseUrl from "@docusaurus/useBaseUrl";
## Introduction ## Introduction
@ -42,45 +41,53 @@ To find devices to connect via Bluetooth click the "+" button on the bottom righ
The cloud icon at the top right corner indicates if you are connected to a device. This currently has three states: The cloud icon at the top right corner indicates if you are connected to a device. This currently has three states:
<center> <center>
<ThemedImage <ThemedImage
alt="Not connected" alt="Not connected"
className="max-h-14" className="max-h-14"
sources={{ sources={{
light: useBaseUrl('/img/android/android-no-ack_lt.webp'), light: useBaseUrl("/img/android/android-no-ack_lt.webp"),
dark: useBaseUrl('/img/android/android-no-ack_dk.webp'),}}/> dark: useBaseUrl("/img/android/android-no-ack_dk.webp"),
}}
/>
</center> </center>
Cloud with a slash through it: No device connected to the application. Cloud with a slash through it: No device connected to the application.
<center> <center>
<ThemedImage <ThemedImage
alt="Connected" alt="Connected"
className="max-h-14" className="max-h-14"
sources={{ sources={{
light: useBaseUrl('/img/android/android-imp-ack_lt.webp'), light: useBaseUrl("/img/android/android-imp-ack_lt.webp"),
dark: useBaseUrl('/img/android/android-imp-ack_dk.webp'),}}/> dark: useBaseUrl("/img/android/android-imp-ack_dk.webp"),
}}
/>
</center> </center>
Cloud with a check in it: Device connected to the application. Cloud with a check in it: Device connected to the application.
<center> <center>
<ThemedImage <ThemedImage
alt="Sleeping" alt="Sleeping"
className="max-h-14" className="max-h-14"
sources={{ sources={{
light: useBaseUrl('/img/android/android-waiting_lt.webp'), light: useBaseUrl("/img/android/android-waiting_lt.webp"),
dark: useBaseUrl('/img/android/android-waiting_dk.webp'),}}/> dark: useBaseUrl("/img/android/android-waiting_dk.webp"),
}}
/>
</center> </center>
Cloud with an up arrow in it: Device is connected, but currently sleeping or out of range. Cloud with an up arrow in it: Device is connected, but currently sleeping or out
of range.
## Common tasks ## Common tasks
### Set your region ### Set your region
In order to start communicating with your mesh, you must select a region. This setting controls which frequency range your device uses and should be set according to your location. See [Region Settings](https://meshtastic.org/docs/getting-started/initial-config#set-regional-settings) for a list of region codes and their meanings. In order to start communicating with your mesh, you must select a region. This setting controls which frequency range your device uses and should be set according to your location. See [Region Settings](https://meshtastic.org/docs/getting-started/initial-config#set-regional-settings) for a list of region codes and their meanings.
- Tap on the "Region" dropdown in the top-right corner and make the appropriate selection. - Tap on the "Region" dropdown in the top-right corner and make the appropriate selection.
### Change your name ### Change your name
Edit the "Your name", e.g. to be "Mike Bird". This is the name that other people will see, so make it unique within your group. The initials e.g. "MB" should also be unique and will be used to identify you in the message history and on the device screens. Initials, or "short name", can be customized in the Radio configuration - User settings. The four characters displayed after your initials cannot be changed. These are the last four hex digits of the device MAC address. Devices with unset names will display these four characters as the device short name. Edit the "Your name", e.g. to be "Mike Bird". This is the name that other people will see, so make it unique within your group. The initials e.g. "MB" should also be unique and will be used to identify you in the message history and on the device screens. Initials, or "short name", can be customized in the Radio configuration - User settings. The four characters displayed after your initials cannot be changed. These are the last four hex digits of the device MAC address. Devices with unset names will display these four characters as the device short name.
[![Changing device name](/img/android/android-settings-mike-sm.webp)](/img/android/android-settings-mike.webp) [![Changing device name](/img/android/android-settings-mike-sm.webp)](/img/android/android-settings-mike.webp)
@ -102,7 +109,7 @@ You will see a warning because changing the Channel will break communications wi
[![Do you want to change the channel?](/img/android/android-new-channel-sm.webp)](/img/android/android-new-channel.webp) [![Do you want to change the channel?](/img/android/android-new-channel-sm.webp)](/img/android/android-new-channel.webp)
The app will generate a new QR code on the screen. This encodes the channel details and a random 256-bit key for sharing with the new group. You can share the QR code with other Meshtastic users, or use the Share button and share the link via chat message, SMS, or email. The link is a very long code, for example: https://www.meshtastic.org/d/#CgUYAyIBAQ The app will generate a new QR code on the screen. This encodes the channel details and a random 256-bit key for sharing with the new group. You can share the QR code with other Meshtastic users, or use the Share button and share the link via chat message, SMS, or email. The link is a very long code, for example: https://www.meshtastic.org/d/#CgUYAyIBAQ
### Join a channel ### Join a channel
@ -113,10 +120,11 @@ The app will generate a new QR code on the screen. This encodes the channel det
2. If the channel is shared from a file or link using the `Share` button, you can click on the file or link and you need to choose "Open with Meshtastic". 2. If the channel is shared from a file or link using the `Share` button, you can click on the file or link and you need to choose "Open with Meshtastic".
:::info If a QR or URL opens a webpage instead of the APP or "Open with Meshtastic" is not an option: :::info If a QR or URL opens a webpage instead of the APP or "Open with Meshtastic" is not an option:
1. Go to Android Settings > Apps > Default apps > Meshtastic > Opening links 1. Go to Android Settings > Apps > Default apps > Meshtastic > Opening links
2. Make sure you have in "links/web address": www.meshtastic.org 2. Make sure you have in "links/web address": www.meshtastic.org
3. If you see the option "Open the supported links", make sure it is enabled. 3. If you see the option "Open the supported links", make sure it is enabled.
::: :::
[![Accept new channel](/img/android/android-accept-channel-c.webp)](/img/android/android-accept-channel.webp) [![Accept new channel](/img/android/android-accept-channel-c.webp)](/img/android/android-accept-channel.webp)
@ -134,13 +142,15 @@ You can test changing channels with the QR code shown below.
### Adjust a channel ### Adjust a channel
You can change the following settings by tapping on the name of an existing channel: You can change the following settings by tapping on the name of an existing channel:
1. MQTT Uplink 1. MQTT Uplink
2. MQTT Downlink 2. MQTT Downlink
3. Position enabled 3. Position enabled
4. Precise location (if position is enabled) 4. Precise location (if position is enabled)
5. Position precision (if precise location is disabled) 5. Position precision (if precise location is disabled)
#### Position Precision #### Position Precision
The precision levels currently used in the app correspond the values in the table below. These can be thought of as the radius of a circle around a point (not your current location) which you are within. The precision levels currently used in the app correspond the values in the table below. These can be thought of as the radius of a circle around a point (not your current location) which you are within.
<PositionPrecision /> <PositionPrecision />
@ -157,54 +167,69 @@ The message window operates like most messaging apps. Note that your primary cha
With LoRa (or any radio) there is some uncertainty that the message has been received, so there is a confirmation built-in to the protocol. There are small icons shown to the right of the messages you send: With LoRa (or any radio) there is some uncertainty that the message has been received, so there is a confirmation built-in to the protocol. There are small icons shown to the right of the messages you send:
<center> <center>
<ThemedImage <ThemedImage
alt="cloud up" alt="cloud up"
className="max-h-18" className="max-h-18"
sources={{ sources={{
light: useBaseUrl('/img/android/android-waiting_lt.webp'), light: useBaseUrl("/img/android/android-waiting_lt.webp"),
dark: useBaseUrl('/img/android/android-waiting_dk.webp'),}}/> dark: useBaseUrl("/img/android/android-waiting_dk.webp"),
}}
/>
</center> </center>
Cloud with an up arrow: the message is queued in the app, waiting to be handed to the device. Cloud with an up arrow: the message is queued in the app, waiting to be handed
to the device.
<center> <center>
<ThemedImage <ThemedImage
alt="cloud only" alt="cloud only"
className="max-h-18" className="max-h-18"
sources={{ sources={{
light: useBaseUrl('/img/android/android-sent_lt.webp'), light: useBaseUrl("/img/android/android-sent_lt.webp"),
dark: useBaseUrl('/img/android/android-sent_dk.webp'),}}/> dark: useBaseUrl("/img/android/android-sent_dk.webp"),
}}
/>
</center> </center>
- Cloud only: the device received the message from the app, and it has been sent and transmitted via LoRa. - Cloud only: the device received the message from the app, and it has been sent
and transmitted via LoRa.
<center> <center>
<ThemedImage <ThemedImage
alt="Cloud with a check mark" alt="Cloud with a check mark"
className="max-h-18" className="max-h-18"
sources={{ sources={{
light: useBaseUrl('/img/android/android-imp-ack_lt.webp'), light: useBaseUrl("/img/android/android-imp-ack_lt.webp"),
dark: useBaseUrl('/img/android/android-imp-ack_dk.webp'),}}/> dark: useBaseUrl("/img/android/android-imp-ack_dk.webp"),
}}
/>
</center> </center>
- Cloud with a check mark: received at least one node's acknowledgement response. Confirmations could be from any one device. - Cloud with a check mark: received at least one node's acknowledgement
response. Confirmations could be from any one device.
<center> <center>
<ThemedImage <ThemedImage
alt="Person with a check mark" alt="Person with a check mark"
className="max-h-18" className="max-h-18"
sources={{ sources={{
light: useBaseUrl('/img/android/android-DM-ack_lt.webp'), light: useBaseUrl("/img/android/android-DM-ack_lt.webp"),
dark: useBaseUrl('/img/android/android-DM-ack_dk.webp'),}}/> dark: useBaseUrl("/img/android/android-DM-ack_dk.webp"),
}}
/>
</center> </center>
- Person with a check mark - The intended recipient node of your direct message acknowledged the message. - Person with a check mark - The intended recipient node of your direct message
acknowledged the message.
<center> <center>
<ThemedImage <ThemedImage
alt="Cloud crossed out" alt="Cloud crossed out"
className="max-h-18" className="max-h-18"
sources={{ sources={{
light: useBaseUrl('/img/android/android-no-ack_lt.webp'), light: useBaseUrl("/img/android/android-no-ack_lt.webp"),
dark: useBaseUrl('/img/android/android-no-ack_dk.webp'),}}/> dark: useBaseUrl("/img/android/android-no-ack_dk.webp"),
}}
/>
</center> </center>
- Cloud crossed out: the initial sender did not receive any confirmation within a certain timeout. - Cloud crossed out: the initial sender did not receive any confirmation within
a certain timeout.
By default there is no long-term store-and-forward of messages, so messages not received during transmission are lost. By default there is no long-term store-and-forward of messages, so messages not received during transmission are lost.
@ -225,7 +250,6 @@ The network list shows all the users (devices) that have connected to the same C
The Map tab will show a local map with an icon for each active mesh node that has a known position. The users names are shown above the icon. The Map tab will show a local map with an icon for each active mesh node that has a known position. The users names are shown above the icon.
[![Map Layers](/img/android/android-map-layers-c.webp)](/img/android/android-map-layers.webp) [![Map Layers](/img/android/android-map-layers-c.webp)](/img/android/android-map-layers.webp)
- Clicking the layers icon in the top-right will allow you to select the map type. - Clicking the layers icon in the top-right will allow you to select the map type.
@ -234,7 +258,7 @@ The Map tab will show a local map with an icon for each active mesh node that ha
[![Download offline maps](/img/android/android-map-download-c.webp)](/img/android/android-map-download.webp) [![Download offline maps](/img/android/android-map-download-c.webp)](/img/android/android-map-download.webp)
- Some map types allow downloading for offline use. If offline maps are available for your selected map type, a download icon will appear in the bottom-right corner of the map. Tap this icon and choose the option to Download Region, then select the area you wish to download. - Some map types allow downloading for offline use. If offline maps are available for your selected map type, a download icon will appear in the bottom-right corner of the map. Tap this icon and choose the option to Download Region, then select the area you wish to download.
## Configuration options ## Configuration options
@ -253,6 +277,7 @@ The debug panel allows you to see all packets sent between the application and t
[![Meshtastic configuration options](/img/android/android-radio-configuration-c.webp)](/img/android/android-radio-configuration.webp) [![Meshtastic configuration options](/img/android/android-radio-configuration-c.webp)](/img/android/android-radio-configuration.webp)
Radio Configuration opens a list of all radio and module configuration settings. Radio Configuration opens a list of all radio and module configuration settings.
- See [Radio Config](/docs/configuration/radio) for radio settings. - See [Radio Config](/docs/configuration/radio) for radio settings.
- See [Module Config](/docs/configuration/module) for module settings. - See [Module Config](/docs/configuration/module) for module settings.
- At the end of this list are buttons for Reboot, Shutdown, Factory reset, and NodeDB reset. - At the end of this list are buttons for Reboot, Shutdown, Factory reset, and NodeDB reset.
@ -281,7 +306,7 @@ Opens the introduction slideshow.
[![Quick Chat](/img/android/android-quick-chat-sm.webp)](/img/android/android-quick-chat.webp) [![Quick Chat](/img/android/android-quick-chat-sm.webp)](/img/android/android-quick-chat.webp)
Brings up an editor to create and edit quick response messages. These will appear as buttons in the chat window. Messages have the option to send instantly, or be appended to your message and sent manually. Brings up an editor to create and edit quick response messages. These will appear as buttons in the chat window. Messages have the option to send instantly, or be appended to your message and sent manually.
### About ### About