move videos to react player

mesh-alg video

canned messaged video

external notifications video

serial video

telemetry videos

traceroute videos
This commit is contained in:
rcarteraz 2024-11-20 13:36:36 -07:00
parent 52497c3a8f
commit 5a46cf0a7b
7 changed files with 130 additions and 81 deletions

View file

@ -7,11 +7,20 @@ sidebar_position: 2
description: "Discover the Meshtastic Mesh Broadcast Algorithm: a simple, yet effective routing protocol designed for off-grid communication using LoRa technology." description: "Discover the Meshtastic Mesh Broadcast Algorithm: a simple, yet effective routing protocol designed for off-grid communication using LoRa technology."
--- ---
import ReactPlayer from "react-player";
## Current Algorithm ## Current Algorithm
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> <div style={{ maxWidth: "800px", margin: "auto" }}>
<ReactPlayer
url="https://youtu.be/7v6UbC5blJU"
controls
width="100%"
height="400px"
/>
</div>
### A Note About Protocol Buffers ### A Note About Protocol Buffers
@ -30,24 +39,24 @@ After the preamble comes the LoRa Physical Header, which contains information ab
This layer is conventional non-reliable LoRa packet transmission. A packet generated by a Meshtastic device has the following representation before encoding for transmission: This layer is conventional non-reliable LoRa packet transmission. A packet generated by a Meshtastic device has the following representation before encoding for transmission:
| Offset | Length | Type | Usage | | Offset | Length | Type | Usage |
| :----: | :--------------------------------------: | :-----: | :--------------------------------------------------------------------------------------- | | :----: | :--------------------------------------: | :-----: | :------------------------------------------------------------------------------------------------------ |
| 0x00 | 4 bytes | Integer | Packet Header: Destination. The destination's unique NodeID. `0xFFFFFFFF` for broadcast. Little Endian. | | 0x00 | 4 bytes | Integer | Packet Header: Destination. The destination's unique NodeID. `0xFFFFFFFF` for broadcast. Little Endian. |
| 0x04 | 4 bytes | Integer | Packet Header: Sender. The sender's unique NodeID. Little Endian. | | 0x04 | 4 bytes | Integer | Packet Header: Sender. The sender's unique NodeID. Little Endian. |
| 0x08 | 4 bytes | Integer | Packet Header: The sending node's unique packet ID for this packet. Little Endian. | | 0x08 | 4 bytes | Integer | Packet Header: The sending node's unique packet ID for this packet. Little Endian. |
| 0x0C | 1 byte | Bits | Packet Header: Flags. See the [header flags](#packet-header-flags) for usage. | | 0x0C | 1 byte | Bits | Packet Header: Flags. See the [header flags](#packet-header-flags) for usage. |
| 0x0D | 1 byte | Bits | Packet Header: Channel hash. Used as hint for decryption for the receiver. | | 0x0D | 1 byte | Bits | Packet Header: Channel hash. Used as hint for decryption for the receiver. |
| 0x0E | 2 bytes | Bytes | Packet Header: Reserved for future use. | | 0x0E | 2 bytes | Bytes | Packet Header: Reserved for future use. |
| 0x10 | Max. 237 bytes (excl. protobuf overhead) | Bytes | Actual packet data. Unused bytes are not transmitted. | | 0x10 | Max. 237 bytes (excl. protobuf overhead) | Bytes | Actual packet data. Unused bytes are not transmitted. |
#### Packet Header Flags #### Packet Header Flags
| Index | # of Bits | Usage | | Index | # of Bits | Usage |
| :----: | :-------: | :----------------------------- | | :---: | :-------: | :----------------------------- |
| 0 | 3 | HopLimit (see note in Layer 3) | | 0 | 3 | HopLimit (see note in Layer 3) |
| 3 | 1 | WantAck | | 3 | 1 | WantAck |
| 4 | 1 | ViaMQTT (packet came via MQTT) | | 4 | 1 | ViaMQTT (packet came via MQTT) |
| 5 | 3 | HopStart (original HopLimit) | | 5 | 3 | HopStart (original HopLimit) |
#### Usage Details #### Usage Details
@ -101,7 +110,7 @@ Without additional modules configured, nodes will produce three different types
- Default: 30 minutes - Default: 30 minutes
2. Position 2. Position
- Controlled by `position.position_broadcast_secs` - Controlled by `position.position_broadcast_secs`
- Default: 15 minutes* (with [smart broadcast](/docs/configuration/radio/position/#smart-broadcast) enabled) - Default: 15 minutes\* (with [smart broadcast](/docs/configuration/radio/position/#smart-broadcast) enabled)
3. NodeInfo user 3. NodeInfo user
- Controlled by `device.node_info_broadcast_secs` - Controlled by `device.node_info_broadcast_secs`
- Default: 3 hours - Default: 3 hours

View file

@ -7,12 +7,20 @@ description: Configuration details for canned (predefined) messages on your Mesh
import Tabs from "@theme/Tabs"; import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem"; import TabItem from "@theme/TabItem";
import ReactPlayer from "react-player";
The Canned Message Module will allow you to send messages to the mesh network from the device without using the phone app. You can predefine text messages to choose from. The Canned Message Module will allow you to send messages to the mesh network from the device without using the phone app. You can predefine text messages to choose from.
The canned message module config options are: Enabled, Send Bell, Messages, Input Source, Rotary Encoder Enabled, Up Down Encoder Enabled, Input Broker Pin A, Input Broker Pin B, Input Broker Pin Press, Input Broker Event Clockwise, Input Broker Event Counter Clockwise, and Input Broker Event Press. Canned Message config uses an admin message sending a `ConfigModule.CannedMessage` protobuf. The canned message module config options are: Enabled, Send Bell, Messages, Input Source, Rotary Encoder Enabled, Up Down Encoder Enabled, Input Broker Pin A, Input Broker Pin B, Input Broker Pin Press, Input Broker Event Clockwise, Input Broker Event Counter Clockwise, and Input Broker Event Press. Canned Message 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> <div style={{ maxWidth: "800px", margin: "auto" }}>
<ReactPlayer
url="https://youtu.be/qKQVYUbLLkg"
controls
width="100%"
height="400px"
/>
</div>
## Canned Message Module Config Values ## Canned Message Module Config Values
@ -34,13 +42,13 @@ The list of pre-set messages as configured by the user. Messages should be separ
### Input Source ### Input Source
Input event sources accepted by the canned message module. Input event sources accepted by the canned message module.
| Value | Description | | Value | Description |
| :-------------: | :------------------------------------------------------------------: | | :-------------: | :------------------------------------------------------------------: |
| `_any` | Default. Allows any peripheral input device connected to the device. | | `_any` | Default. Allows any peripheral input device connected to the device. |
| `rotEnc1` | Basic Rotary Encoder | | `rotEnc1` | Basic Rotary Encoder |
| `upDownEnc1` | Up Down Encoder (use this also for RAK14006 Rotary Encoder) | | `upDownEnc1` | Up Down Encoder (use this also for RAK14006 Rotary Encoder) |
| `scanAndSelect` | Single push-button (short and long press) | | `scanAndSelect` | Single push-button (short and long press) |
| `cardkb` | M5 Stack CardKB (this covers RAK14004 Keymatrix) | | `cardkb` | M5 Stack CardKB (this covers RAK14004 Keymatrix) |
| `serialkb` | Chatter serial keypad | | `serialkb` | Chatter serial keypad |
@ -122,18 +130,18 @@ All canned message module config options are available in the python CLI.
Example commands are below: Example commands are below:
| Setting | Acceptable Values | Default | | Setting | Acceptable Values | Default |
| :------------------------------------: | :---------------------------------------: | :-----------: | | :------------------------------------: | :---------------------------------------: | :-------------------------: |
| canned_message.enabled | `true`, `false` | `false` | | canned_message.enabled | `true`, `false` | `false` |
| canned_message.send_bell | `true`, `false` | `false` | | canned_message.send_bell | `true`, `false` | `false` |
| canned_message.allow_input_source | `rotEnc1`, `_any`, `upDownEnc1`, `cardkb` | `_any` | | canned_message.allow_input_source | `rotEnc1`, `_any`, `upDownEnc1`, `cardkb` | `_any` |
| --set-canned-message | `string` | `""` (separate using pipes) | | --set-canned-message | `string` | `""` (separate using pipes) |
| canned_message.inputbroker_event_cw | `InputEventChar` | (not defined) | | canned_message.inputbroker_event_cw | `InputEventChar` | (not defined) |
| canned_message.inputbroker_event_ccw | `InputEventChar` | (not defined) | | canned_message.inputbroker_event_ccw | `InputEventChar` | (not defined) |
| canned_message.inputbroker_event_press | `InputEventChar` | (not defined) | | canned_message.inputbroker_event_press | `InputEventChar` | (not defined) |
| canned_message.inputbroker_pin_a | `integer` | (not defined) | | canned_message.inputbroker_pin_a | `integer` | (not defined) |
| canned_message.inputbroker_pin_b | `integer` | (not defined) | | canned_message.inputbroker_pin_b | `integer` | (not defined) |
| canned_message.inputbroker_pin_press | `integer` | (not defined) | | canned_message.inputbroker_pin_press | `integer` | (not defined) |
:::tip :::tip
@ -242,15 +250,17 @@ Just use UP/DOWN/ENTER to select a predefined message and send it.
Use a single push-button to select and send predefined messages. Use a single push-button to select and send predefined messages.
#### Setup #### Setup
* Connect a normally-open push-button between ground and a GPIO pin of your choice
* Configure the canned messages module - Connect a normally-open push-button between ground and a GPIO pin of your choice
- Set [Input Source](#input-source) to `scanAndSelect` - Configure the canned messages module
- Set [Input Broker Pin Press](#input-broker-pin-press) to your chosen GPIO - Set [Input Source](#input-source) to `scanAndSelect`
- Define a [list of pre-set messages](#messages) - Set [Input Broker Pin Press](#input-broker-pin-press) to your chosen GPIO
- Define a [list of pre-set messages](#messages)
#### Usage #### Usage
* Short press: scroll through messages
* Long press: send the currently highlighted message to your primary channel - Short press: scroll through messages
- Long press: send the currently highlighted message to your primary channel
### Rotary encoder ### Rotary encoder

View file

@ -7,12 +7,20 @@ description: This module will allow you to connect a buzzer, speaker, LED, or ot
import Tabs from "@theme/Tabs"; import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem"; import TabItem from "@theme/TabItem";
import ReactPlayer from "react-player";
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.
The External Notification Module config options are: Enabled, Active, Alert Bell (General),Alert Bell Vibra, Alert Bell Buzzer, Alert Message (General), Alert Message Vibra, Alert Message Buzzer, Output (General), Output Vibra, Output Buzzer, Output Milliseconds, Use PWM, and Nag Timeout. External Notification config uses an admin message sending a `ConfigModule.ExternalNotificationConfig` protobuf. The External Notification Module config options are: Enabled, Active, Alert Bell (General),Alert Bell Vibra, Alert Bell Buzzer, Alert Message (General), Alert Message Vibra, Alert Message Buzzer, Output (General), Output Vibra, Output Buzzer, Output Milliseconds, Use PWM, and Nag Timeout. External Notification config uses an admin message sending a `ConfigModule.ExternalNotificationConfig` protobuf.
<object data="https://www.youtube.com/embed/MWt3RHMpifo?autohide=1&autoplay=0" width="100%" height="400"></object> <div style={{ maxWidth: "800px", margin: "auto" }}>
<ReactPlayer
url="https://youtu.be/MWt3RHMpifo"
controls
width="100%"
height="400px"
/>
</div>
## External Notification Module Config Values ## External Notification Module Config Values

View file

@ -7,6 +7,7 @@ description: This module is an interface to talk to and control your Meshtastic
import Tabs from "@theme/Tabs"; import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem"; import TabItem from "@theme/TabItem";
import ReactPlayer from "react-player";
The serial module config options are: Enabled, Echo, Mode, Receive GPIO, Transmit GPIO, Baud Rate, Timeout, and Override Console Serial Port. Serial Module config uses an admin message sending a `ConfigModule.Serial` protobuf. The serial module config options are: Enabled, Echo, Mode, Receive GPIO, Transmit GPIO, Baud Rate, Timeout, and Override Console Serial Port. Serial Module config uses an admin message sending a `ConfigModule.Serial` protobuf.
@ -14,11 +15,14 @@ This is an interface to talk to and control your Meshtastic device over a serial
![image](/img/modules/Serial/jet.webp) ![image](/img/modules/Serial/jet.webp)
<object <div style={{ maxWidth: "800px", margin: "auto" }}>
data="https://www.youtube.com/embed/HdOiGKBtapw?autohide=1&autoplay=0" <ReactPlayer
width="100%" url="https://youtu.be/HdOiGKBtapw"
height="400" controls
></object> width="100%"
height="400px"
/>
</div>
## Serial Module Config Values ## Serial Module Config Values

View file

@ -7,37 +7,41 @@ description: This module allows sharing of Device, Environment, Health, and Air
import Tabs from "@theme/Tabs"; import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem"; import TabItem from "@theme/TabItem";
import ReactPlayer from "react-player";
The Telemetry Module provides four types of data over the mesh: Device metrics (Battery Level, Voltage, Channel Utilization and Airtime) from your Meshtastic device, Environment Metrics, Air Quality Metrics, and Health metrics (Heart rate, Oxygen Saturation and body temperature). The Telemetry Module provides four types of data over the mesh: Device metrics (Battery Level, Voltage, Channel Utilization and Airtime) from your Meshtastic device, Environment Metrics, Air Quality Metrics, and Health metrics (Heart rate, Oxygen Saturation and body temperature).
Supported sensors connected to the I2C bus of the device will be automatically detected at startup. The Environment Telemetry, Air Quality, and Health Telemetry modules 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. The Environment Telemetry, Air Quality, and Health Telemetry modules must be enabled for them to be instrumented and their readings sent over the mesh.
<object <div style={{ maxWidth: "800px", margin: "auto" }}>
data="https://www.youtube.com/embed/6jj1s-fsPlc?autohide=1&autoplay=0" <ReactPlayer
width="100%" url="https://youtu.be/6jj1s-fsPlc"
height="400" controls
></object> width="100%"
height="400px"
/>
</div>
### 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 |
| :-----: | :--------------------: | :-----------------------------------------------------------: | | :----------: | :--------------------: | :--------------------------------------------------------------------: |
| BMP085 | 0x76, 0x77 | Temperature and barometric pressure | | BMP085 | 0x76, 0x77 | Temperature and barometric pressure |
| BMP180 | 0x76, 0x77 | Temperature and barometric pressure | | BMP180 | 0x76, 0x77 | Temperature and barometric pressure |
| BMP280 | 0x76, 0x77 | Temperature and barometric pressure | | BMP280 | 0x76, 0x77 | Temperature and barometric pressure |
| BME280 | 0x76, 0x77 | Temperature, barometric pressure and humidity | | BME280 | 0x76, 0x77 | Temperature, barometric pressure and humidity |
| BME68x | 0x76, 0x77 | Temperature, barometric pressure, humidity and air resistance | | BME68x | 0x76, 0x77 | Temperature, barometric pressure, humidity and air resistance |
| MCP9808 | 0x18 | Temperature | | MCP9808 | 0x18 | Temperature |
| INA260 | 0x40, 0x41, 0x43 | Current and Voltage | | INA260 | 0x40, 0x41, 0x43 | Current and Voltage |
| INA219 | 0x40, 0x41, 0x43 | Current and Voltage | | INA219 | 0x40, 0x41, 0x43 | Current and Voltage |
| INA3221 | 0x42 | 3-channel Current and Voltage | | INA3221 | 0x42 | 3-channel Current and Voltage |
| LPS22 | 0x5D, 0x5C | Barometric pressure | | LPS22 | 0x5D, 0x5C | Barometric pressure |
| SHTC3 | 0x70 | Temperature and humidity | | SHTC3 | 0x70 | Temperature and humidity |
| SHT31 | 0x44 | Temperature and humidity | | SHT31 | 0x44 | Temperature and humidity |
| PMSA003I| 0x12 | Concentration units by size and particle counts by size | | PMSA003I | 0x12 | Concentration units by size and particle counts by size |
| DFROBOT_LARK | 0x42 | Temperature, barometric pressure, humidity, wind direction, wind speed | | DFROBOT_LARK | 0x42 | Temperature, barometric pressure, humidity, wind direction, wind speed |
| MAX30102 | 0x57 | Heart Rate, Oxygen Saturation, and body temperature | | MAX30102 | 0x57 | Heart Rate, Oxygen Saturation, and body temperature |
| MLX90614 | 0x5A | Body temperature | | MLX90614 | 0x5A | Body temperature |
## Module Config Values ## Module Config Values
@ -163,10 +167,9 @@ All telemetry module config options are available in the python CLI. Example com
| telemetry.air_quality_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). | | telemetry.air_quality_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). |
| telemetry.power_measurement_enabled | `true`, `false` | `false` | | telemetry.power_measurement_enabled | `true`, `false` | `false` |
| telemetry.power_update_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). | | telemetry.power_update_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). |
| telemetry.health_measurement_enabled | `true`, `false` | `false` | | telemetry.health_measurement_enabled | `true`, `false` | `false` |
| telemetry.health_update_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). | | telemetry.health_update_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). |
| telemetry.health_screen_enabled | `true`, `false` | `false` | | telemetry.health_screen_enabled | `true`, `false` | `false` |
:::tip :::tip

View file

@ -7,8 +7,9 @@ description: The traceroute module allows you to understand the path a message t
import Tabs from "@theme/Tabs"; import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem"; import TabItem from "@theme/TabItem";
import ReactPlayer from "react-player";
## Overview ## Overview
Due to the limited bandwidth of LoRa, Meshtastic does not keep track of the nodes a message used to hop to the destination. However, from firmware 2.0.8 on, there is a Traceroute Module that can show you this. Due to the limited bandwidth of LoRa, Meshtastic does not keep track of the nodes a message used to hop to the destination. However, from firmware 2.0.8 on, there is a Traceroute Module that can show you this.
@ -18,11 +19,18 @@ In order to use it, make sure your devices use firmware version 2.0.8 or higher.
From firmware version ≥ 2.5, the route back to the origin is recorded, along with the Signal-to-Noise Ratio (SNR) for each link. Nodes with older firmware or those unable to decrypt the traceroute will be shown as "Unknown" (represented by an ID equal to 4294967295 or 0xFFFFFFFF in hexadecimal) if all nodes in the route are using at least firmware version 2.3.12. From firmware version ≥ 2.5, the route back to the origin is recorded, along with the Signal-to-Noise Ratio (SNR) for each link. Nodes with older firmware or those unable to decrypt the traceroute will be shown as "Unknown" (represented by an ID equal to 4294967295 or 0xFFFFFFFF in hexadecimal) if all nodes in the route are using at least firmware version 2.3.12.
<object data="https://www.youtube.com/embed/PKUmaELKaUo?autohide=1&autoplay=0" width="100%" height="400"></object> <div style={{ maxWidth: "800px", margin: "auto" }}>
<ReactPlayer
url="https://youtu.be/PKUmaELKaUo"
controls
width="100%"
height="400px"
/>
</div>
## Repeater Behavior ## Repeater Behavior
Repeater nodes will appear in the traceroute log if they have the encryption key, but if they are not in the node list they might appear as "Unknown" depending on the app. Repeater nodes will appear in the traceroute log if they have the encryption key, but if they are not in the node list they might appear as "Unknown" depending on the app.
## Traceroute Module Client Availability ## Traceroute Module Client Availability
@ -38,7 +46,7 @@ values={[
<TabItem value="android"> <TabItem value="android">
#### Android #### Android
Within the node list, long hold a destination node and select 'Traceroute' to send the request. Depending on the amount of hops that is needed, this might take a while. The result will be shown using a pop-up. Within the node list, long hold a destination node and select 'Traceroute' to send the request. Depending on the amount of hops that is needed, this might take a while. The result will be shown using a pop-up.
</TabItem> </TabItem>

View file

@ -5,24 +5,33 @@ sidebar_label: CalTopo / SARTopo
sidebar_position: 1 sidebar_position: 1
--- ---
import ReactPlayer from "react-player";
## CalTopo / SARTopo ## CalTopo / SARTopo
Meshtastic can integrate with [CalTopo](https://caltopo.com/) Desktop edition quite easily through the product's APRS over serial support functionality. 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 <div style={{ maxWidth: "800px", margin: "auto" }}>
?autohide=1&autoplay=0" width="100%" height="400"></object> <ReactPlayer
url="https://youtu.be/z_51FAPPl34"
controls
width="100%"
height="400px"
/>
</div>
### Configuring the Meshtastic device ### 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/configuration/module/serial): To configure our Meshtastic device for this integration, we have a couple of different options, both of which utilize the [Serial module](/docs/configuration/module/serial):
#### Enabling serial over the device's USB port #### Enabling serial over the device's USB port
```shell title="Serial over USB" ```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 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 #### Enabling serial over an external USB to Serial adapter
```shell title="External 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 meshtastic --set serial.enabled true --set serial.baud BAUD_9600 --set serial.mode CALTOPO --set serial.txd = 13 --set serial.rxd = 14
``` ```
@ -31,7 +40,6 @@ meshtastic --set serial.enabled true --set serial.baud BAUD_9600 --set serial.mo
Ensure that serial baud rate is set to `9600` on both the Meshtastic device and the CalTopo / SARTopo `topo.properties` configuration 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 ### 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). 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).
@ -44,7 +52,7 @@ After starting CalTopo Desktop, NMEA waypoint location sentences should be strea
![CalTopo Logs](/img/software/integrations/caltopo/logs.webp) ![CalTopo Logs](/img/software/integrations/caltopo/logs.webp)
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. 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.webp) ![shared-locations](/img/software/integrations/caltopo/local-stations.webp)
@ -54,7 +62,6 @@ You can click on one or more of the node points and in the resulting tooltip, cl
In the resulting dialog, you can assign attributes such as a label or color to the live track created by the node. 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.webp) ![track](/img/software/integrations/caltopo/track.webp)
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. 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.