Merge branch 'master' into blog-contribution-guidelines

This commit is contained in:
Ben Meadors 2024-08-13 10:45:45 -05:00 committed by GitHub
commit 441c52a359
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
30 changed files with 536 additions and 114 deletions

View file

@ -27,7 +27,7 @@ Meshtastic® is a project that enables you to use inexpensive LoRa radios as a l
Meshtastic utilizes LoRa, a long-range radio protocol, which is widely accessible in most regions without the need for additional licenses or certifications, unlike HAM radio operations.
These radios are designed to rebroadcast messages they receive, forming a mesh network. This setup ensures that every group member, including those at the furthest distance, can receive messages. Depending on the settings employed, the Meshtastic mesh network can support up to 100 devices concurrently.
These radios are designed to rebroadcast messages they receive, forming a mesh network. This setup ensures that every group member, including those at the furthest distance, can receive messages.
Additionally, Meshtastic radios can be paired with a single phone, allowing friends and family to send messages directly to your specific radio. It's important to note that each device is capable of supporting a connection from only one user at a time."

View file

@ -91,3 +91,25 @@ After node 0 received this rebroadcast, its message is acknowledged. Note that a
Since node 1 heard the rebroadcast by 2, it will not rebroadcast again. Node 3 heard the message for the first time and the HopLimit is not yet zero, so it starts a rebroadcast for potential other receivers.
![Mesh algorithm example](/img/SNR_based_flooding.webp)
### Regular Broadcast Intervals
Without additional modules configured, nodes will produce three different types of regularly intervaled traffic as part of the mesh:
1. Device Telemetry
- Controlled by `telemetry.device_update_interval`
- Default: 30 minutes
2. Position
- Controlled by `position.position_broadcast_secs`
- Default: 15 minutes* (with [smart broadcast](/docs/configuration/radio/position/#smart-broadcast) enabled)
3. NodeInfo user
- Controlled by `device.node_info_broadcast_secs`
- Default: 3 hours
As meshes grow larger and traffic becomes more contentious, the firmware will increase these intervals. This is in addition to duty cycle, channel, and air-time utilization throttling.
Starting with version 2.4.0, the firmware will scale back Telemetry, Position, and other ancillary port traffic for meshes larger than 40 nodes (nodes seen in the past 2 hours) using the following algorithm:
`ScaledInterval = Interval * (1.0 + ((NumberOfOnlineNodes - 40) * 0.075))`
For example an active mesh of 62 nodes would scale back `telemetry.device_update_interval` to 79.5 minutes instead of the 30 minute default.

View file

@ -98,6 +98,9 @@ us on [Discord](https://discord.com/invite/ktMAKGBnBs) to add your group.
## United States
- [Midwest Mesh](https://discord.gg/wYwD56K439)
### Arizona
- [Tucson Meshtastic Community](https://discord.gg/7MzbMMd2kg)
### Arkansas
- [Fort Smith Mesh](https://discord.com/invite/nwsvcXeqMX)
@ -133,10 +136,14 @@ us on [Discord](https://discord.com/invite/ktMAKGBnBs) to add your group.
### Missouri
- [Kansas City Meshtastic Group](https://www.facebook.com/share/XZ9jnhxy1YT4wWqC/)
- [MeshSTL - St. Louis](https://discord.gg/QYxUdKZpBd)
### New Mexico
- [Albuquerque Mesh](https://www.abqm.net)
### Ohio
- [Cincy Mesh](https://www.cincymesh.org)
### Oklahoma
- [Oklahoma Meshtastic Group](https://www.facebook.com/groups/942404880478488)
@ -149,6 +156,7 @@ us on [Discord](https://discord.com/invite/ktMAKGBnBs) to add your group.
### Texas
- [Austin Mesh](https://austinmesh.org/)
- [Cypress, Texas Meshtastic Club](https://discord.gg/KzuwNRwE6q)
### Wisconsin
- [Meshconsin](https://meshconsin.org)

View file

@ -34,14 +34,15 @@ The list of pre-set messages as configured by the user. Messages should be separ
### Input Source
Input event sources accepted by the canned message module.
| Value | Description |
| :----------: | :------------------------------------------------------------------: |
| `_any` | Default. Allows any peripheral input device connected to the device. |
| `rotEnc1` | Basic Rotary Encoder |
| `upDownEnc1` | Up Down Encoder (use this also for RAK14006 Rotary Encoder) |
| `cardkb` | M5 Stack CardKB (this covers RAK14004 Keymatrix) |
| `serialkb` | Chatter serial keypad |
| Value | Description |
| :-------------: | :------------------------------------------------------------------: |
| `_any` | Default. Allows any peripheral input device connected to the device. |
| `rotEnc1` | Basic Rotary Encoder |
| `upDownEnc1` | Up Down Encoder (use this also for RAK14006 Rotary Encoder) |
| `scanAndSelect` | Single push-button (short and long press) |
| `cardkb` | M5 Stack CardKB (this covers RAK14004 Keymatrix) |
| `serialkb` | Chatter serial keypad |
### Rotary Encoder Enabled
@ -236,6 +237,21 @@ If you don't want to broadcast your freetext message, you can use the CardKB to
Just use UP/DOWN/ENTER to select a predefined message and send it.
### Scan and Select
Use a single push-button to select and send predefined messages.
#### Setup
* Connect a normally-open push-button between ground and a GPIO pin of your choice
* Configure the canned messages module
- Set [Input Source](#input-source) to `scanAndSelect`
- Set [Input Broker Pin Press](#input-broker-pin-press) to your chosen GPIO
- Define a [list of pre-set messages](#messages)
#### Usage
* Short press: scroll through messages
* Long press: send the currently highlighted message to your primary channel
### Rotary encoder
Meshtastic supports hardwired rotary encoders as input devices.

View file

@ -38,7 +38,7 @@ 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>`.
- `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).
- `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"
### Receive GPIO Pin
Set the GPIO pin to the RXD pin you have set up.

View file

@ -10,17 +10,19 @@ import TabItem from "@theme/TabItem";
## Overview
Using this module, a client device can ask a special Store & Forward Router to resend text messages after the client has been temporarily not in LoRa range of the mesh.
Using this module, a client device can ask a special Store & Forward Server to resend text messages after the client has been temporarily not in LoRa range of the mesh.
Since firmware version 2.4, when you connect to the Store & Forward Server with a client app, you get the history automatically, which will be much larger than the default cache of around 30 packets on a device.
:::info
Only ESP32 based devices with onboard PSRAM like the T-Beam and T3S3 can be a Store & Forward Router. Requires the device to use at least firmware version 2.2.23 and to be set as a `ROUTER`.
Only ESP32 based devices with onboard PSRAM like the T-Beam and T3S3 can be a Store & Forward Server.
:::
When a client device requests the history from the Store & Forward Router, the router will resend the text messages over LoRa that it has received. The router will only return messages that are within the time window the client has requested up to the maximum number of messages configured for the router.
The router does not know which messages the client device actually missed, so it is possible that you receive duplicates.
When a client device requests the history from the Store & Forward Server, it will resend the text messages over LoRa that it has received. The server will only return messages that are within the time window the client has requested up to the maximum number of messages configured for the server.
The server does not know which messages the client device actually missed, so it is possible that you receive duplicates.
:::important
Be mindful when requesting the history, as the router might send a lot of messages which will burden your mesh for a short period of time.
Be mindful when requesting the history, as the server might send a lot of messages which will burden your mesh for a short period of time.
Requesting history over LoRa is not available on the default public channel.
:::
## Details
@ -31,23 +33,25 @@ Be mindful when requesting the history, as the router might send a lot of messag
### Requirements
Initial requirements for the Store and Forward Router:
Initial requirements for the Store and Forward Server:
- Must be installed on a `ROUTER` node.
- This is an artificial limitation, but is in place to enforce best practices.
- Router nodes are intended to be always online. If this module misses any messages, the reliability of the stored messages will be reduced.
- Store & Forward Servers are intended to be always online. If this module misses any messages, the reliability of the stored messages will be reduced.
- ESP32 Processor based device with onboard PSRAM (T-Beam > v1.0, T3S3, and maybe others).
### Usage Overview
- To use / test this you will want at least 3 devices
- One ESP32 device with PSRAM configured as `ROUTER`.
- Two others will be regular clients. If one client sends a text message when the other is not in range, the other can request the history from the router to receive the missed message when it is back in range.
- To use / test this over LoRa you will want at least 3 devices:
- One ESP32 device with PSRAM configured as `ROUTER` or `store_forward.is_server` set.
- Two others will be regular clients. If one client sends a text message when the other is not in range, the other can request the history from the server to receive the missed message when it is back in range.
### Router setup
- To use / test this with a client app you will want at least 2 devices:
- One ESP32 device with PSRAM configured as `ROUTER` or `store_forward.is_server` set.
- One other device that sends text messages when no app is connected to the Store & Forward Server. When you connect an app to the server, it will automatically retrieve the history.
- Configure your device as a `ROUTER`.
- Name your router node something that makes it easily identifiable, aka "Router".
### Server setup
- Configure your device as a `ROUTER` or set `store_forward.is_server true`.
- Name your server node something that makes it easily identifiable, e.g. "Base Node (S&F)".
- Configure the Store and Forward module
```shell title="Required - Enable the module"
@ -59,13 +63,15 @@ Initial requirements for the Store and Forward Router:
```
:::tip
Best to disable the heartbeat (which is sent every 15 minutes) when all client devices have identified the router to reduce network traffic.
Best to disable the heartbeat (which is sent every 15 minutes) to reduce network traffic if you only want to retrieve it by connecting with an app to the server, or when all client devices have identified the server.
:::
### Client Usage
Currently implemented in the Android and Apple apps version 2.2.23 and higher. To request the history from the Store & Forward Router, for Android it is required to send it a direct message containing the text "SF" (without quotes). The router will then respond with the requested messages.
The Apple apps will also show whether a node is a Store & Forward Router in the node list after it heard the heartbeat. You can then long press the node and select "Client History" to request the history from the router.
Currently implemented in the Android and Apple apps version 2.2.23 and higher. To request the history from the Store & Forward Server, for Android it is required to send it a direct message containing the text "SF" (without quotes). The server will then respond with the requested messages.
The Apple apps will also show whether a node is a Store & Forward Server in the node list after it heard the heartbeat. You can then long press the node and select "Client History" to request the history from the server.
Since 2.4, when connecting to the Store & Forward Server itself, the text message history will be automatically retrieved and displayed in the app.
## Settings
@ -75,7 +81,7 @@ 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.
The Store & Forward Server sends a periodic message onto the network. This allows connected devices to know that a server 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 & Forward Server is available.
### History Return Max
@ -87,7 +93,11 @@ Limits the time period (in minutes) a client device can request.
### Records
Set this to the maximum number of records the router will save. Best to leave this at the default (`0`) where the module will use 2/3 of your device's available PSRAM. This is about 11,000 records.
Set this to the maximum number of records the server will 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.
### Is server
Set to true to configure your node with PSRAM as a Store & Forward Server for storing and forwarding messages. This is an alternative to setting the node as a `ROUTER` and only available since 2.4.
## Store & Forward Module Config Client Availability
@ -135,6 +145,7 @@ All Store & Forward module config options are available on iOS, iPadOS and macOS
| store_forward.history_return_max | `integer` | `0` (25 messages) |
| store_forward.history_return_window | `integer` | `0` (240 minutes) |
| store_forward.records | `integer` | `0` (≈11,000 records) |
| store_forward.is_server | `true`, `false` | `false` |
:::tip
@ -156,6 +167,10 @@ meshtastic --set store_forward.enabled true
meshtastic --set store_forward.enabled false
```
```shell title="Set node as server"
meshtastic --set store_forward.is_server true
```
```shell title="Set store_forward.heartbeat to default"
meshtastic --set store_forward.heartbeat 0
```

View file

@ -44,13 +44,13 @@ Enable the Environment Telemetry (Sensors).
How often we should send Environment(Sensor) Metrics over the mesh.
Default is `900` seconds (15 minutes).
Default is `1800` seconds (30 minutes).
### Device Metrics Update Interval
How often we should send Device Metrics over the mesh.
Default is `900` seconds (15 minutes).
Default is `1800` seconds (30 minutes).
Device Metrics to a connected client app will always be sent once per minute, regardless of this setting.
@ -76,7 +76,7 @@ Default is `false`.
This option is used to configure the interval (in seconds) that should be used to send air quality metrics from an attached supported sensor over the mesh network.
Default is `900` seconds (15 minutes).
Default is `1800` seconds (30 minutes).
## Telemetry Config Client Availability
@ -127,13 +127,13 @@ All telemetry module config options are available in the python CLI. Example com
| Setting | Acceptable Values | Default |
| :---------------------------------------: | :-----------------: | :---------------------------------------: |
| telemetry.device_update_interval | `integer` (seconds) | Default `0` is 15 minutes(`900` seconds). |
| telemetry.device_update_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). |
| telemetry.environment_display_fahrenheit | `true`, `false` | `false` |
| telemetry.environment_measurement_enabled | `true`, `false` | `false` |
| telemetry.environment_screen_enabled | `true`, `false` | `false` |
| telemetry.environment_update_interval | `integer` (seconds) | Default `0` is 15 minutes(`900` seconds). |
| telemetry.environment_update_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). |
| telemetry.air_quality_enabled | `true`, `false` | `false` |
| telemetry.air_quality_interval | `integer` (seconds) | Default `0` is 15 minutes(`900` seconds). |
| telemetry.air_quality_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). |
:::tip

View file

@ -169,7 +169,7 @@ All device config options are available in the python CLI. Example commands are
| device.serial_enabled | `true`, `false` | `true` |
| device.button_gpio | `0` - `34` | `0` |
| device.buzzer_gpio | `0` - `34` | `0` |
| device.node_info_broadcast_secs | `0` - `UINT MAX` | `10800` (3 hours) |
| device.node_info_broadcast_secs | `3600` - `UINT MAX` | `10800` (3 hours) |
| device.double_tap_as_button_press | `false`, `true` | `false` |
| device.is_managed | `false`, `true` | `false` |

View file

@ -140,7 +140,7 @@ All Position config commands are available in the python CLI. Example commands a
| position.position_broadcast_smart_enabled | `true`, `false` | `true` |
| position.broadcast_smart_minimum_distance | `integer` (meters) | Default of `0` is 100 Meters |
|position.broadcast_smart_minimum_interval_secs| `integer` (seconds) | Default of `0` is 15 Minutes |
| position.position_broadcast_secs | `integer` (seconds) | Default of `0` is 30 Seconds |
| position.position_broadcast_secs | `integer` (seconds) | Default of `0` is 15 minutes |
| position.flags | `UNSET`, `ALTITUDE`, `ALTITUDE_MSL`, `GEOIDAL_SEPARATION`, `DOP`, `HVDOP`, `PDOP`, `SATINVIEW`, `SEQ_NO`, `TIMESTAMP`, `HEADING`, `SPEED` | `UNSET` |
| position.rx_gpio | `integer` (0-39) | `UNSET` |
| position.tx_gpio | `integer` (0-34) | `UNSET` |

View file

@ -42,7 +42,7 @@ If you'd like to contribute information for your country, click the "Edit this p
| Country | LoRa Region | Regulatory document |
| --- | --- | --- |
| Denmark | EU_868<br />EU_433 | |
| Denmark | EU_868<br />EU_433 | https://www.retsinformation.dk/eli/lta/2024/490 |
### E

View file

@ -78,6 +78,15 @@ read,notify,write
fromnum - the current packet # in the message waiting inside fromradio, if the phone sees this notify it should read messages
until it catches up with this number.
6c6fd238-78fa-436b-aacf-15c5be1ef2e3
notify
A log message as LogRecord protobuf. Clients are encouraged to listen for this notification and give the option of logging these
debug messages.
6c6fd238-78fa-436b-aacf-15c5be1ef2e2
notify
A raw log message as a string (with a newline). This characteristic is DEPRECATED and shouldn't be used on new client code.
The phone can write to this register to go backwards up to FIXME packets, to handle the rare case of a fromradio packet was dropped after the ESP32 callback was called, but before it arrives at the phone. If the phone writes to this register the ESP32 will discard older packets and put the next packet >= fromnum in fromradio.
When the ESP32 advances fromnum, it will delay doing the notify by 100ms, in the hopes that the notify will never actually need to be sent if the phone is already pulling from fromradio.

View file

@ -20,4 +20,7 @@ nRF52 devices are able to accept [OTA firmware updates](/docs/getting-started/fl
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).
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).
### Use Raspberry Pi as a SWDIO Flash Tool
If your device can't be flashed through USB or Bluetooth, another option might be a [direct SWDIO connection](/docs/getting-started/flashing-firmware/nrf52/swdio).

View file

@ -0,0 +1,105 @@
---
id: swdio
title: SWDIO using a Raspberry Pi
sidebar_label: SWDIO using a Raspberry Pi
sidebar_position: 6
description: Instructions for uploading firmware through SWDIO by using a Raspberry Pi.
---
Most Meshtastic devices can be flashed simply using USB.
However, some (eg Seeed WM1110 Dev Kit) require the use of an external device that can connect via "SWDIO".
There are dedicated devices such as the [RAKDAP1](https://store.rakwireless.com/products/daplink-tool)
that can do this work. However, for many people a Raspberry Pi is more convenient.
This article provides instructions on how use a Raspberry Pi as a SWDIO Flash Tool.
## Set up Wiring
The first step is to connect two wires between your Raspberry Pi and the SWDIO ports on your NRF52-based device.
Connect GPIO pin 11 on your Raspbery Pi to the CLK pin on the Meshtastic Device.
Connect GPIO pin 8 on your Raspbery Pi to the DIO pin on the Meshtastic Device.
Ensure you get the GPIO numbers correct.
Plug in your Raspberry Pi to USB power.
Plug in the Meshtastic Device to power.
## Install OpenOCD
You can use OpenOCD to manage the SWDIO connection with the Meshtastic Device.
Install it on your Raspberry Pi.
```
$ sudo apt update
$ sudo apt install libtool autoconf automake texinfo telnet gdb-multiarch git
$ git clone git://repo.or.cz/openocd.git
$ cd openocd/
$ ./bootstrap
$ ./configure --enable-bcm2835gpio
$ make -j4
$ sudo make install
```
## Check connection
Let's try connecting to the NRF52-based device with SWDIO before we do anything with firmware.
All the configuration you need is in the openocd repository.
```
$ openocd -f ./openocd/tcl/interface/raspberrypi-native.cfg -c "transport select swd" -f openocd/tcl/target/nrf52.cfg -s tcl
```
The first flag selects the Raspberry Pi as your host machine, the transport is SWDIO, and the last flag says you are connecting to a nRF52-based chip.
You should see something like this:
```
Open On-Chip Debugger 0.12.0+dev-00633-gad87fbd1c
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
srst_only separate srst_gates_jtag srst_push_pull connect_deassert_srst
swd
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : BCM2835 GPIO JTAG/SWD bitbang driver
Info : clock speed 100 kHz
Info : SWD DPIDR 0x2ba01477
Info : [nrf52.cpu] Cortex-M4 r0p1 processor detected
Info : [nrf52.cpu] target has 6 breakpoints, 4 watchpoints
Info : [nrf52.cpu] Examination succeed
Info : [nrf52.cpu] starting gdb server on 3333
Info : Listening on port 3333 for gdb connections
Info : accepting 'telnet' connection on tcp/4444
```
If you see “Error connecting DP: cannot read IDR”, then you've probably connected the wires to the wrong place.
## Obtaining Firmware
Check the instructions for your [hardware](/docs/hardware/devices) to find the correct firmware for your device.
For most devices following this guide, a .hex file is required.
Then, copy the firmware file to your Raspberry Pi.
## Flashing Firmware
Once you have openocd running, you can connect to your Meshtastic device using telnet.
Flashing is as simple as running a few commands inside the telnet session:
```
$ telnet 127.0.0.1 4444
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Open On-Chip Debugger
> init
> reset init
> halt
> nrf5 mass_erase
> program firmware.hex verify
> reset
> exit 0
```
Unplug the power and plug it back in after flashing.
## Connecting
Congratulations, you should now be able to connect to your device through Bluetooth in the Meshtastic app.

View file

@ -131,13 +131,14 @@ Portable and durable devices designed for Meshtastic.
| [Nano G1 Explorer](./nano/?nano-series=g1-e) | ESP32 WROOM | SX1262 | 2.4GHz b/g/n | 4.2 | YES |
| [Nano G1](./nano/?nano-series=g1) | ESP32 WROOM | SX1276 | 2.4GHz b/g/n | 4.2 | YES |
### [Station G1](./station-g1/)
### [Station Series](./station-series/)
High power LoRa transceiver designed for Meshtastic Licensed HAM operation.
| Name | MCU | Radio | WiFi | BT | GPS |
| :-------------------------- | :---------- | :----- | :----------: | :-: | :-: |
| [Station G1](./station-g1/) | ESP32 WROOM | SX1262 | 2.4GHz b/g/n | 4.2 | YES |
| Name | MCU | Radio | WiFi | BT | GPS |
| :------------------------------ | :--------------- | :----- | :----------: | :-: | :------: |
| [Station G1](./station-series/) | ESP32 WROOM | SX1262 | 2.4GHz b/g/n | 4.2 | OPTIONAL |
| [Station G2](./station-series/) | ESP32-S3 WROOM-1 | SX1262 | 2.4GHz b/g/n | 5.0 | OPTIONAL |
### [Raspberry Pi Pico](./raspberry-pi/)
@ -164,6 +165,16 @@ Complete solution with battery, screen, case, and antenna. Ships pre-flashed wit
All-in-one development device with LoRa, WiFi, BT, touchscreen, accelerometer, gyroscop, vibration motor, LiPo battery and more!
| Name | MCU | Radio | WiFi | BT | GPS |
| :-------------------- | :--------------- | :----- | :--: | :-: | :-: |
| Name | MCU | Radio | WiFi | BT | GPS |
| :------------------- | :--------------- | :----- | :--: | :-: | :-: |
| [unPhone](./unPhone) | ESP32-S3-WROOM-1 | RF950W | YES | 5.0 | NO |
### [Seeed Wio-WM1110](./seeed-wm1110)
nRF52840-based development boards with GPS, and multiple ports to attach sensors.
| Name | MCU | Radio | WiFi | BT | GPS |
| :--------------------------------------------------------- | :------- | :----- | :--: | :-: | :-: |
| [Seeed Wio-WM1110 Dev Kit](./seeed-wm1110?wio-sdk-wm1110) | nRF52840 | LR1110 | YES | 5.3 | YES |
| [Seeed Wio Tracker 1110](./seeed-wm1110?wio-tracker-wm1110) | nRF52840 | LR1110 | YES | 5.3 | YES |

View file

@ -0,0 +1,109 @@
---
id: seeed-wm1110
title: Seeed Wio-WM1100
sidebar_label: Seeed Wio-WM1100
sidebar_position: 15
---
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
<Tabs
groupId="wm1110"
queryString="wm1110"
defaultValue="wio-tracker-wm1110"
values={[
{label: 'WM110 Dev Kit', value:'wio-sdk-wm1110'},
{label: 'Wio Tracker 1110', value: 'wio-tracker-wm1110'},
]}>
<TabItem value="wio-sdk-wm1110">
## Seeed Wio-WM1110 Dev Kit
:::note External GPS Required
The LR1110 GNSS functionality does not yet work. Seeed recommends at Grove - GPS (Air530).
:::
- **MCU**
- Nordic nRF52840 (WiFi & Bluetooth)
- **LoRa Transceiver**
- Semtech LR1110
- **Frequency options**
- 868 MHz
- 915 MHz
- 923 MHz
- **Navigation Module**
- Semtech LR1110
- **Connectors**
- USB-C
- LoRa Antenna: SMA antenna connector and U.FL/IPEX
- GNSS Antenna: RP-SMA antenna connector U.FL/IPEX
- NFC Antenna: U.FL/IPEX
- GPIO
- I2C x1
- UART x1
- Solar Panel
- SWDIO
### Features
- Temperature and Humidity Sensor (SHT41)
- 3-Axis Accelerometer(LIS3DHTR)
- Reset switch, power jumpers, 2 configurable buttons
- AAA Battery x3
- Screen sold separately
### Resources
- Firmware file: `firmware-wio-sdk-wm1110-X.X.X.xxxxxxx.bin`
- Purchase Links:
- International
- [Seeed Studio](https://www.seeedstudio.com/Wio-WM1110-Dev-Kit-p-5677.html)
![wio-wm1110-dev-kit](/img/hardware/seeed/wio-wm1110-dev-kit-font.webp)
</TabItem>
<TabItem value="wio-tracker-wm1110">
## Wio Tracker 1110 Dev Kit for Meshtastic
- **MCU**
- Nordic nRF52840 (WiFi & Bluetooth)
- **LoRa Transceiver**
- Semtech LR1110
- **Frequency options**
- 868 MHz
- 915 MHz
- 923 MHz
- **Navigation Module**
- Semtech LR1110
- **Connectors**
- USB-C
- LoRa Antenna: on-board and U.FL/IPEX
- GNSS Antenna: on-board and U.FL/IPEX
- Grove connectors: ADC x1, I2C x1, UART x1, Digital x3
### Features
- Temperature and Humidity Sensor (SHT41)
- 3-Axis Accelerometer(LIS3DHTR)
- Reset switch, power jumpers
- Screen sold separately
### Resources
- Firmware file: `firmware-wio-tracker-wm1110-X.X.X.xxxxxxx.bin`
- Purchase Links:
- International
- [Seeed Studio](https://www.seeedstudio.com/Wio-Tracker-1110-Dev-Kit-for-Meshtastic.html)
![wio-tracker-1110-dev-kit](/img/hardware/seeed/wio-tracker-1110-dev-kit.webp)
</TabItem>
</Tabs>

View file

@ -1,12 +0,0 @@
---
id: buttons
title: Station G1 Hardware Buttons
sidebar_label: Buttons
sidebar_position: 1
---
## Functionality
- **User/Program Button:**
- **Single press:** Changes the information page displayed on the device's screen.
- **Double press:** Sends an adhoc ping of the device's position to the network.

View file

@ -1,45 +0,0 @@
---
id: station-g1
title: Station G1 device
sidebar_label: Station G1
sidebar_position: 9
---
The Station G1 is the second dedicated hardware device to be designed from scratch purely for Meshtastic Licensed (HAM) Operation by Neil Hao. It has been designed to be small and compact with the inclusion of 35dBm high power PA.
## Specifications
- **MCU**
- ESP32 WROOM (WiFi & Bluetooth)
- Bluetooth 4.2
- **LoRa Transceiver**
- Semtech SX1262
- Additional 35dBm LoRa Power Amplifier to boost transmit power
- **Frequency options**
- US-915 MHz
- EU-868 MHz
- **Navigation Module**
- ATGM336H-5N-71 (Supports GPS, BDS and GLONASS)
- **Antenna**
- SMA Socket
- **Connectors**
- USB-C
## Features
- Meshtastic pre-installed
- User button
- 1.3 inch OLED screen
- Optional GPS Module and IO Extension Socket
- Optional [12V Battery Docker](https://shop.uniteng.com/product/12v-battery-docker-for-station-edition-g1/) which can be used as Backup Power, or in scenarios that require mobility
## Resources
- Firmware file: `firmware-station-g1-X.X.X.xxxxxxx.bin`
- [Unit Engineering's Official Wiki](https://uniteng.com/wiki/doku.php?id=meshtastic:station)
- Purchase Links:
- International
- [Official Store](https://shop.uniteng.com/product/meshtastic-mesh-device-station-edition/)
- [Official Tindie Store](https://www.tindie.com/products/neilhao/meshtastic-mesh-device-station-edition/)
![Station G1](/img/hardware/station-g1.webp)

View file

@ -0,0 +1,47 @@
---
id: buttons
title: Station Series Hardware Buttons
sidebar_label: Buttons
sidebar_position: 1
---
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
<Tabs
groupId="station-buttons"
queryString="station-buttons"
defaultValue="g2"
values={[
{label: 'Station G1', value:'g1'},
{label: 'Station G2', value: 'g2'}
]}>
<TabItem value="g1">
## Functionality
- **User/Program Button:**
- **Single press:** Changes the information page displayed on the device's screen.
- **Double press:** Sends an adhoc ping of the device's position to the network.
</TabItem>
<TabItem value="g2">
## Functionality
- **User/Program Button:**
- **Single press:** Changes the information page displayed on the device's screen.
- **Double press:** Sends an adhoc ping of the device's position to the network.
- **Long press:** Will signal the device to shutdown after 5 seconds.
- **Firmware Download Button:** Places device into Firmware Download Mode.
1. Press and hold Firmware Download Button.
2. Then single press Reset Button.
3. Finally release the Firmware Download Button.
- **Reset Button:**
- **Single press:** Resets the device.
</TabItem>
</Tabs>

View file

@ -0,0 +1,117 @@
---
id: station-series
title: Station Series
sidebar_label: Station Series
sidebar_position: 9
---
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
The Station series of devices, designed by Neil Hao from B&Q Consulting and powered by Meshtastic, are compact and durable LoRa devices designed for high-performance radio frequency communication. They feature a powerful PA for LoRa communication, a rugged SMA antenna socket, and a variety of external IO interfaces.
For more comprehensive information on the Station Series of devices, be sure to visit the B&Q Consulting Station Series [Wiki page.](https://wiki.uniteng.com/en/meshtastic/station-g2)
<Tabs
groupId="station-series"
queryString="station-series"
defaultValue="g2"
values={[
{label: 'Station G1', value:'g1'},
{label: 'Station G2', value: 'g2'}
]}>
<TabItem value="g1">
:::info
The Station G1 has been discontinued and replaced by the upgraded Station G2. The Station G1 remains a supported device.
:::
## Specifications
- **MCU**
- ESP32 WROOM
- WiFi
- Bluetooth 4.2
- **LoRa Transceiver**
- Semtech SX1262
- Additional 35dBm LoRa Power Amplifier
- **Frequency options**
- US-915 MHz
- EU-868 MHz
- **Navigation Module**
- Optional
- **Antenna**
- SMA Socket
- **Connectors**
- USB-C (PD Protocol)
## Features
- Meshtastic pre-installed
- User button
- 1.3 inch OLED screen
- Optional GPS Module and IO Extension Socket
- Optional [12V Battery Docker](https://shop.uniteng.com/product/12v-battery-docker-for-station-edition-g1/) which can be used as Backup Power, or in scenarios that require mobility
## Resources
- Firmware file: `firmware-station-g1-X.X.X.xxxxxxx.bin`
- [Unit Engineering's Official Wiki](https://uniteng.com/wiki/doku.php?id=meshtastic:station)
- Purchase Links:
- International
- [Official Store](https://shop.uniteng.com/product/meshtastic-mesh-device-station-edition/)
- [Official Tindie Store](https://www.tindie.com/products/neilhao/meshtastic-mesh-device-station-edition/)
![Station G1](/img/hardware/station-series/station-g1.webp)
</TabItem>
<TabItem value="g2">
## Specifications
- **MCU**
- ESP32-S3 WROOM-1
- WiFi
- Bluetooth 5.0
- **LoRa Transceiver**
- Semtech SX1262
- Additional 35dBm LoRa Power Amplifier
- Dedicated Ultra-Low Noise Figure LNA
- **Frequency options**
- 864 - 928 MHz
- **Navigation Module**
- Optional (1x GROVE GPS Socket)
- **Antenna**
- SMA Socket
- **Connectors**
- USB-C (PD Protocol)
## Features
- Meshtastic pre-installed
- User button
- 1.3 inch OLED screen
- 1x5P Pitch=1.5mm Socket (9V-19V External Power Supply)
- GROVE I2C Socket( 1x4P Pitch=2mm )
- SparkFun QWIIC I2C Socket ( 1x4P Pitch=1mm )
- GROVE GPS Socket ( 1x4P Pitch=2mm )
- IO Extension Socket ( 1x10P Pitch=1.5mm )
## Resources
- Firmware file: `firmware-station-g2-X.X.X.xxxxxxx.bin`
- [Unit Engineering's Official Wiki](https://uniteng.com/wiki/doku.php?id=meshtastic:station)
- Purchase Links:
- International
- [Official Store](https://shop.uniteng.com/product/meshtastic-mesh-device-station-edition/)
- [Official Tindie Store](https://www.tindie.com/products/neilhao/meshtastic-mesh-device-station-edition/)
![Station G2 Front](/img/hardware/station-series/station-g2-front.webp)
![Station G2 Back](/img/hardware/station-series/station-g2-back.webp)
</TabItem>
</Tabs>

View file

@ -35,13 +35,16 @@ community include:
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
any kind.
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Public or private harassment.
* Publishing or collecting others' private information, such as a physical or email address,
without their explicit permission.
* Using the services in a way that could cause a denial of service, whether intentional or
unintentional. This includes overloading the network or servers and disrupting service
availability.
* Other conduct which could reasonably be considered inappropriate in a
professional setting
professional setting.
## Enforcement Responsibilities

View file

@ -140,8 +140,10 @@ By default there is no long-term store-and-forward of messages, so messages not
The network list shows all the users (devices) that have connected to the same Channel. For each entry, it shows the last time they were active, their location and distance (when available), and their last known power status. In the example above, Monkey is the local user, Rabbit was last heard from 10 minutes ago and is 50m away, and Panda was last heard 11 minutes ago and 5m away.
- Tap on a node from the list to start Direct Messaging, request a position update, request a [traceroute](/docs/configuration/module/traceroute) or add it to your [Ignore Incoming Array](/docs/configuration/radio/lora#ignore-incoming-array).
- If you have an [Admin Channel](/docs/configuration/remote-admin) enabled on your devices, tapping on the node will also display an option to remotely configure the node.
- Tap on a node in the list to show more details about the node. A Show Details toggle is in the filter menu.
- Tap on a node's colored chip to start Direct Messaging, request a position update, request a [traceroute](/docs/configuration/module/traceroute) or add it to your [Ignore Incoming Array](/docs/configuration/radio/lora#ignore-incoming-array).
- Tap on a node's location coordinates to open in your maps application, long press to copy the coordinates to your clipboard.
- If you have an [Admin Channel](/docs/configuration/remote-admin) enabled on your devices, tapping on the node's colored chip will also display an option to remotely configure the node.
### View the map

View file

@ -98,6 +98,14 @@ values={[
```shell
pip3 install --upgrade meshtastic
```
- Using pipx as an alternative to pip3 if `externally-managed-environment` error is encountered
```shell
sudo apt install pipx && pipx install meshtastic
```
- If using `pipx` it may be necessary to update `$PATH` by running:
```shell
pipx ensurepath
```
</TabItem>
<TabItem value="macos">

View file

@ -182,11 +182,11 @@ const RegionData = new Map<
[
Protobuf.Config.Config_LoRaConfig_RegionCode.SG_923,
{
freq_start: 917.0,
freq_end: 925.0,
duty_cycle: 100,
freqStart: 917.0,
freqEnd: 925.0,
dutyCycle: 100,
spacing: 0,
power_limit: 20,
powerLimit: 20,
},
],
[

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View file

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -45,6 +45,10 @@
"source": "/docs/hardware/supported-hardware/",
"destination": "/docs/hardware/devices/"
},
{
"source": "/docs/hardware/devices/station-g1/",
"destination": "/docs/hardware/devices/station-series/"
},
{
"source": "/docs/legal/trademark/",
"destination": "/docs/legal/licensing-and-trademark/"