Store & Forward Module Settings
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.
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
or ROUTER_CLIENT
.
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.
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.
Details
How it works
Requirements
Initial requirements for the Store and Forward Router:
- Must be installed on a
ROUTER
orROUTER_CLIENT
node.- This is an artificial limitation, but is in place to enforce best practices.
- Router nodes are intended to be always online. If this module misses any messages, the reliability of the stored messages will be reduced.
- ESP32 Processor based device with 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
orROUTER_CLIENT
. - 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.
- One ESP32 device with PSRAM configured as
Router setup
-
Configure your device as a
ROUTER
orROUTER_CLIENT
. -
Name your router node something that makes it easily identifiable, aka "Router".
-
Configure the Store and Forward module
Required - Enable the modulemeshtastic --set store_forward.enabled true
Optional - Disable sending heartbeat.meshtastic --set store_forward.heartbeat false
tipBest to disable the heartbeat (which is sent every 15 minutes) when all client devices have identified the router to reduce network traffic.
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.
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 when it requests the history.
History Return Window
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.
Store & Forward Module Config Client Availability
- Android
- Apple
- CLI
- Web
Android
Store and Forward Config options are available for Android.
- Open the Meshtastic App
- Navigate to: Vertical Ellipsis (3 dots top right) > Radio Configuration > Store & Forward
Apple
All Store & Forward module config options are available on iOS, iPadOS and macOS at Settings > Module Configuration > Store & Forward.
CLI
Setting | Acceptable Values | Default |
---|---|---|
store_forward.enabled | true , false | false |
store_forward.heartbeat | true , false | false |
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) |
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.
meshtastic --set store_forward.enabled true --set store_forward.history_return_max 0
Examples of CLI Usage
meshtastic --set store_forward.enabled true
meshtastic --set store_forward.enabled false
meshtastic --set store_forward.heartbeat 0
meshtastic --set store_forward.history_return_max 0
meshtastic --set store_forward.history_return_max 100
meshtastic --set store_forward.history_return_window 0
meshtastic --set store_forward.history_return_window 1440
meshtastic --set store_forward.records 0
meshtastic --set store_forward.records 100
Web
All Store & Forward module config options are available in the Web UI at Config > Module Config > S&F.