Merge branch 'master' into master
|
@ -103,6 +103,10 @@ Defaults to true
|
||||||
|
|
||||||
This is controlling the actual hardware frequency the radio is transmitting on. A channel number between 1 and NUM_CHANNELS (whatever the max is in the current region). If this is ZERO/UNSET then the rule is "use the old channel name hash based algorithm to derive the channel number".
|
This is controlling the actual hardware frequency the radio is transmitting on. A channel number between 1 and NUM_CHANNELS (whatever the max is in the current region). If this is ZERO/UNSET then the rule is "use the old channel name hash based algorithm to derive the channel number".
|
||||||
|
|
||||||
|
:::info
|
||||||
|
LoRa Channel Configuration should not to be confused with messaging [Channel Configuration](/docs/settings/config/channels). See [Chat Channels VS Lora Modem Channels](/docs/configuration/tips#chat-channels-vs-lora-modem-channels) for further clarification.
|
||||||
|
:::
|
||||||
|
|
||||||
### Ignore Incoming Array
|
### Ignore Incoming Array
|
||||||
|
|
||||||
For testing it is useful sometimes to force a node to never listen to particular other nodes (simulating radio out of range). All nodenums listed in the ignore_incoming array will have packets they send dropped on receive (by router.cpp)
|
For testing it is useful sometimes to force a node to never listen to particular other nodes (simulating radio out of range). All nodenums listed in the ignore_incoming array will have packets they send dropped on receive (by router.cpp)
|
||||||
|
|
|
@ -18,6 +18,7 @@ Modules are included in the firmware and allow users to extend the functionality
|
||||||
| [MQTT](/docs/settings/moduleconfig/mqtt) | Forward packets along to an MQTT server. This allows users on the local mesh to communicate with users on another mesh over the internet. |
|
| [MQTT](/docs/settings/moduleconfig/mqtt) | Forward packets along to an MQTT server. This allows users on the local mesh to communicate with users on another mesh over the internet. |
|
||||||
| [Neighbor Info](/docs/settings/moduleconfig/neighbor-info) | Send info on 0-hop neighbors to the mesh. |
|
| [Neighbor Info](/docs/settings/moduleconfig/neighbor-info) | Send info on 0-hop neighbors to the mesh. |
|
||||||
| [Range Test](/docs/settings/moduleconfig/range-test) | Send messages with GPS location at an interval to test the distance your devices can communicate. Requires (at least) one device set up as a sender and one as a receiver. The receiver(s) will log all incoming messages to a CSV. |
|
| [Range Test](/docs/settings/moduleconfig/range-test) | Send messages with GPS location at an interval to test the distance your devices can communicate. Requires (at least) one device set up as a sender and one as a receiver. The receiver(s) will log all incoming messages to a CSV. |
|
||||||
|
| [Remote Hardware](/docs/settings/moduleconfig/remote-hardware) | Set and read a GPIO status remotely over the mesh. |
|
||||||
| [Serial Module](/docs/settings/moduleconfig/serial) | Send messages across the mesh by sending strings over a serial port. |
|
| [Serial Module](/docs/settings/moduleconfig/serial) | Send messages across the mesh by sending strings over a serial port. |
|
||||||
| [Store & Forward](/docs/settings/moduleconfig/store-and-forward-module) | Stores messages on a device for delivery after disconnected clients rejoin the mesh. |
|
| [Store & Forward](/docs/settings/moduleconfig/store-and-forward-module) | Stores messages on a device for delivery after disconnected clients rejoin the mesh. |
|
||||||
| [Telemetry](/docs/settings/moduleconfig/telemetry) | Attach sensors to the device and transmit readings on a regular interval to the mesh. |
|
| [Telemetry](/docs/settings/moduleconfig/telemetry) | Attach sensors to the device and transmit readings on a regular interval to the mesh. |
|
||||||
|
|
|
@ -1,12 +1,85 @@
|
||||||
---
|
---
|
||||||
id: gpio-peripherals
|
id: remote-hardware
|
||||||
title: Configuring GPIO Peripherals
|
title: Remote Hardware Module Usage
|
||||||
sidebar_label: Setup GPIO Peripherals
|
slug: /settings/moduleconfig/remote-hardware
|
||||||
slug: /hardware/peripheral/
|
sidebar_label: Remote Hardware
|
||||||
sidebar_position: 6
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Remote Hardware
|
import Tabs from "@theme/Tabs";
|
||||||
|
import TabItem from "@theme/TabItem";
|
||||||
|
|
||||||
|
The Remote Hardware Module allows control of a GPIO pin on a remote node. Config options are: Enabled, Allow Undefined Pin Access, Available Pins
|
||||||
|
|
||||||
|
:::info
|
||||||
|
|
||||||
|
While configuring this module may be available in clients, setting and reading GPIO's is currently only possible using the [Meshtastic Python CLI](/docs/software/python/cli)
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Remote Hardware Config Values
|
||||||
|
|
||||||
|
### Enabled
|
||||||
|
|
||||||
|
Whether the module is enabled
|
||||||
|
|
||||||
|
### Allow Undefined Pin Access
|
||||||
|
|
||||||
|
Whether the module allows consumers to read/write to pins not that are not defined in available_pins
|
||||||
|
|
||||||
|
### Available Pins
|
||||||
|
|
||||||
|
Exposes the available pins to the mesh for reading and writing
|
||||||
|
|
||||||
|
|
||||||
|
## Remote Hardware Module Client Availability
|
||||||
|
|
||||||
|
<Tabs
|
||||||
|
groupId="settings"
|
||||||
|
defaultValue="cli"
|
||||||
|
values={[
|
||||||
|
{label: 'Android', value: 'android'},
|
||||||
|
{label: 'Apple', value: 'apple'},
|
||||||
|
{label: 'CLI', value: 'cli'},
|
||||||
|
{label: 'Web', value: 'web'},
|
||||||
|
]}>
|
||||||
|
<TabItem value="android">
|
||||||
|
|
||||||
|
|
||||||
|
:::info
|
||||||
|
All Remote Hardware Module config options are available for Android in app.
|
||||||
|
|
||||||
|
1. Open the Meshtastic App
|
||||||
|
2. Navigate to: **Vertical Ellipsis (3 dots top right) > Radio Configuration > Remote Hardware**
|
||||||
|
:::
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem value="apple">
|
||||||
|
|
||||||
|
:::info
|
||||||
|
All Remote Hardware Module config options are available on iOS, iPadOS and macOS app.and higher at Settings > Modules > Remote Hardware
|
||||||
|
:::
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem value="cli">
|
||||||
|
|
||||||
|
:::info
|
||||||
|
|
||||||
|
All Remote Hardware Module config options are available in the python CLI.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
<TabItem value="web">
|
||||||
|
|
||||||
|
Not implemented.
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Remote Hardware Module Usage
|
||||||
|
|
||||||
:::warning
|
:::warning
|
||||||
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
|
GPIO access is fundamentally dangerous because invalid options can physically damage or destroy your hardware. Ensure that you fully understand the schematic for your particular device before trying this as we do not offer a warranty. Use at your own risk.
|
|
@ -34,8 +34,8 @@ Available Values:
|
||||||
|
|
||||||
- `DEFAULT`
|
- `DEFAULT`
|
||||||
- `SIMPLE` operate as an dumb UART tunnel. What goes in will come out, Requires a channel named 'serial'.
|
- `SIMPLE` operate as an dumb UART tunnel. What goes in will come out, Requires a channel named 'serial'.
|
||||||
- `PROTO` Exposes the Protobuf Client API on this serial port. You can use this to connect from another device. [API Reference](/docs/development/device/client-api)
|
- `PROTO` Exposes the Protobuf Client API on this serial port. You can use this to connect from another device, see the [Arduino client library](https://github.com/meshtastic/Meshtastic-arduino) and the [API Reference](/docs/development/device/client-api).
|
||||||
- `TEXTMSG` Will send the string received over the serial port as a Text Message for Display on the other devices.
|
- `TEXTMSG` Will broadcast the string received over the serial port as a Text Message to the default channel.
|
||||||
- `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).
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ All serial module config options are available in the python CLI. Example comman
|
||||||
| 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` |
|
| 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` |
|
||||||
|
|
||||||
|
@ -186,12 +186,12 @@ Default is to use RX GPIO 16 and TX GPIO 17.
|
||||||
- RXD 13
|
- RXD 13
|
||||||
- TXD 14
|
- TXD 14
|
||||||
3. Set `serial.timeout` to the amount of time to wait before we consider your packet as "done".
|
3. Set `serial.timeout` to the amount of time to wait before we consider your packet as "done".
|
||||||
4. (Optional) set serial.mode to TEXTMSG if you want to send messages to/from the general text message channel
|
4. (Optional) set serial.mode to `TEXTMSG` if you want to send messages to/from the general text message channel. For more specific control, use the `PROTO` mode, e.g. in combination with the [Arduino client library](https://github.com/meshtastic/Meshtastic-arduino/blob/master/examples/SendReceiveClient/SendReceiveClient.ino).
|
||||||
5. Connect to your device over the serial interface at `38400 8N1`.
|
5. Connect to your device over the serial interface at `38400 8N1`.
|
||||||
|
|
||||||
With [tio](https://github.com/tio/tio) – `tio -e -b 38400 -f none /dev/myserialport`
|
With [tio](https://github.com/tio/tio) – `tio -e -b 38400 -f none /dev/myserialport`
|
||||||
|
|
||||||
6. Send a packet up to 237 bytes in length. This will get relayed over the mesh network.
|
6. Send a packet up to 237 bytes in length. This will get broadcasted over the default channel.
|
||||||
7. (Optional) Set `serial.echo` to `1` and any message you send out will be echoed back to your device.
|
7. (Optional) Set `serial.echo` to `1` and any message you send out will be echoed back to your device.
|
||||||
|
|
||||||
### Interfacing PIR Sensor With External Microcontroller
|
### Interfacing PIR Sensor With External Microcontroller
|
||||||
|
@ -200,7 +200,7 @@ The following are examples of using either a Raspberry Pi Pico or Arduino Mini P
|
||||||
|
|
||||||
#### Meshtastic Software Configuration
|
#### Meshtastic Software Configuration
|
||||||
|
|
||||||
- Serial module enabled, mode: TXTMSG
|
- Serial module enabled, mode: TEXTMSG
|
||||||
- GPIO Pins (For T-Beam) RX 13, TX 14
|
- GPIO Pins (For T-Beam) RX 13, TX 14
|
||||||
- 38400 Baud
|
- 38400 Baud
|
||||||
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
---
|
|
||||||
id: rak-gpio-mapping
|
|
||||||
title: RAK GPIO Pin Mapping
|
|
||||||
sidebar_label: RAK GPIO Mapping
|
|
||||||
sidebar_position: 5
|
|
||||||
---
|
|
||||||
|
|
||||||
## RAK GPIO Pin Mapping
|
|
||||||
|
|
||||||
The RAK4631 uses symbolic labels for its I/O Pins on the module and baseboard silk screens. The following table shows the mapping of the RAK4631 GPIO pins to the corresponding Arduino pins and the MCU Port numbers.
|
|
||||||
|
|
||||||
| RAK Pin | nRF52840 Pin | Arduino GPIO | Remark |
|
|
||||||
| ------- | ------------ | ------------ | ------------------------------------------------------------------------ |
|
|
||||||
| IO1 | P0.17 | 17 | used for GPS PPM signal if GPS module is connected |
|
|
||||||
| IO2 | P1.02 | 34 | used to power all peripheral modules, not available for user application |
|
|
||||||
| IO3 | P0.21 | 21 |
|
|
||||||
| IO4 | P0.04 | 4 |
|
|
||||||
| IO5 | P0.09 | 9 | The 'User Button' is mapped here. |
|
|
||||||
| IO6 | P0.10 | 10 |
|
|
||||||
| IO7 | P0.28 | 28 |
|
|
||||||
| SW1 | P0.01 | 1 |
|
|
||||||
| A0 | P0.04/AIN2 | A2 |
|
|
||||||
| A1 | P0.31/AIN7 | A7 |
|
|
||||||
| SPI_CS | P0.26 | 26 |
|
|
||||||
|
|
||||||
When configuring GPIO pins in your device settings, the Arduino GPIO numbers should be used.
|
|
||||||
|
|
||||||
```shell title="Example"
|
|
||||||
meshtastic --set external_notification.output 10
|
|
||||||
```
|
|
||||||
|
|
||||||
This will use IO6 on a RAK4631
|
|
||||||
|
|
||||||
:::caution Note
|
|
||||||
There is no usable GPIO pin on any RAK base board except the 'big' baseboard RAK19001 without adding a RAK13002 IO module or a third party IO sensor breakout.
|
|
||||||
:::
|
|
|
@ -2,7 +2,7 @@
|
||||||
id: remote-admin
|
id: remote-admin
|
||||||
title: Remote Node Administration
|
title: Remote Node Administration
|
||||||
sidebar_label: Remote Nodes
|
sidebar_label: Remote Nodes
|
||||||
sidebar_position: 4
|
sidebar_position: 3
|
||||||
---
|
---
|
||||||
|
|
||||||
:::caution Disclaimer
|
:::caution Disclaimer
|
||||||
|
|
53
docs/configuration/tips.mdx
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
---
|
||||||
|
id: tips
|
||||||
|
title: Configuration Tips
|
||||||
|
sidebar_label: Tips
|
||||||
|
sidebar_position: 4
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
## (Not) Sharing Your Location
|
||||||
|
|
||||||
|
Telemetry is shared over your [PRIMARY channel](/docs/settings/config/channels#role). This means that if your node has acquired GPS coordinates from an integrated GPS chip, or from your mobile device, your coordinates will be sent to the mesh over this channel, using it's defined encryption (if any).
|
||||||
|
|
||||||
|
By default the PRIMARY channel's name is LongFast with the encryption key "AQ==" (Base64 equivalent of Hex 0x01). If this is left unchanged, your location will be shared with all nodes in range that are also using the default channel.
|
||||||
|
|
||||||
|
### Creating a Private Primary with Default Secondary
|
||||||
|
|
||||||
|
If you'd like to connect with other Meshtastic users but only share your location with trusted parties, you may create a private PRIMARY channel and use the defaults for a SECONDARY channel.
|
||||||
|
|
||||||
|
1. Ensure you have not changed the LoRa [Modem Preset](/docs/settings/config/lora#modem-preset) from the default `unset` / `LONG_FAST`.
|
||||||
|
2. On your PRIMARY channel, set anything you'd like for the channel's name and choose a random PSK.
|
||||||
|
3. Enable a SECONDARY channel with a blank name (will default to LongFast) with PSK "AQ==".
|
||||||
|
4. Since the radio's frequency is automatically changed based on your PRIMARY channel's name, you will have to manually set it back to Channel 20 (in LoRa settings) in order to interface with users on the default channel.
|
||||||
|
|
||||||
|
To quickly test this configuration, scan your region's QR from [this folder](https://github.com/meshtastic/meshtastic/tree/master/static/img/configuration/qr-private-primary-example/). Remember to generate a new PSK for your private channel before sharing with your trusted nodes.
|
||||||
|
|
||||||
|
## Rebroadcast "Public" Traffic
|
||||||
|
|
||||||
|
Meshtastic nodes will rebroadcast all packets if they share [LoRa modem settings](/docs/settings/config/lora#lora-config-values), regardless of encryption (unless [Rebroadcast mode](/docs/settings/config/device#rebroadcast-mode) is set to `LOCAL_ONLY`).
|
||||||
|
|
||||||
|
:::info
|
||||||
|
If you would like your nodes to include/expand the "public" mesh, you must use the default [modem preset](/docs/settings/config/lora#modem-preset) `LONG_FAST`. If you change your PRIMARY channel name, you must manually set the LoRa channel to 20.
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Chat Channels VS LoRa Modem Channels
|
||||||
|
|
||||||
|
Meshtastic uses the word "channels" to define two different configuration properties: [Messaging Channels](/docs/settings/config/channels) & [LoRa Modem Channels](/docs/settings/config/lora#channel-number)
|
||||||
|
|
||||||
|
### Device Config: Channels
|
||||||
|
|
||||||
|
These configure "message groups" and include your PRIMARY and SECONDARY channels. All SECONDARY channels use the same LoRa modem config as your PRIMARY channel (including LoRa channel number).
|
||||||
|
|
||||||
|
There are 8 total chat channels. Channel 0 is your PRIMARY channel, with channels 1-7 available for private group messaging and/or special channels such as [`admin`](/docs/configuration/remote-admin).
|
||||||
|
|
||||||
|
### Device Config: LoRa: Channel Number
|
||||||
|
|
||||||
|
This configures the frequency the radio is set to. Check out the [frequency calculator](/docs/overview/radio-settings#channel-frequency-calculator) to view the relationship between "channel number" and radio frequency.
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
- If you are part of a large mesh and don't know what a setting does, don't change it (unless you're super curious).
|
||||||
|
- Leave your [MAX HOPS](/docs/settings/config/lora#max-hops) set to 3 unless you're sure you need more (or less) to reach your destination node.
|
||||||
|
- Leave your [ROLE](/docs/settings/config/device#role) set to `CLIENT` unless you're sure another role would suit the node's purpose. For example, MQTT nodes do not need to be set to `ROUTER`.
|
||||||
|
- TEST your settings and hardware before you install in hard-to-reach locations.
|
||||||
|
- Connecting a node to the [public MQTT server](http://localhost:3000/docs/settings/moduleconfig/mqtt#connect-to-the-default-public-server) may publish the locations of all nodes in your mesh to the internet. This will also add every globally connected node to your node database and potentially flood your mesh with all types of packets.
|
|
@ -57,7 +57,7 @@ A number of [key services](http://github.com/meshtastic/firmware/tree/master/src
|
||||||
|
|
||||||
- [NodeInfoModule](http://github.com/meshtastic/firmware/tree/master/src/modules/NodeInfoModule.h) - Receives/sends User information to other nodes so that usernames are available in the databases.
|
- [NodeInfoModule](http://github.com/meshtastic/firmware/tree/master/src/modules/NodeInfoModule.h) - Receives/sends User information to other nodes so that usernames are available in the databases.
|
||||||
|
|
||||||
- [RemoteHardwareModule](http://github.com/meshtastic/firmware/tree/master/src/modules/RemoteHardwareModule.h) - A module that provides easy remote access to device hardware (for things like turning GPIOs on or off). Intended to be a more extensive example and provide a useful feature of its own. See [remote-hardware](/docs/hardware/peripheral/#remote-hardware) for details.
|
- [RemoteHardwareModule](http://github.com/meshtastic/firmware/tree/master/src/modules/RemoteHardwareModule.h) - A module that provides easy remote access to device hardware (for things like turning GPIOs on or off). Intended to be a more extensive example and provide a useful feature of its own. See [remote-hardware](/docs/settings/moduleconfig/remote-hardware) for details.
|
||||||
|
|
||||||
- [ReplyModule](http://github.com/meshtastic/firmware/tree/master/src/modules/ReplyModule.h) - A simple module that just replies to any packet it receives (provides a 'ping' service).
|
- [ReplyModule](http://github.com/meshtastic/firmware/tree/master/src/modules/ReplyModule.h) - A simple module that just replies to any packet it receives (provides a 'ping' service).
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ Download and unzip the latest firmware from [Meshtastic Downloads](https://mesht
|
||||||
2. Double click the reset button on your device (this will put it into bootloader mode)
|
2. Double click the reset button on your device (this will put it into bootloader mode)
|
||||||
3. Notice a new drive will be mounted on your computer (Windows, Mac, or Linux)
|
3. Notice a new drive will be mounted on your computer (Windows, Mac, or Linux)
|
||||||
4. Open this drive and you should see three files: `CURRENT.UF2`, `INDEX.HTM`, and `INFO_UF2.TXT`
|
4. Open this drive and you should see three files: `CURRENT.UF2`, `INDEX.HTM`, and `INFO_UF2.TXT`
|
||||||
5. Drop the appropriate firmware file (`firmware-DEVICE_NAME-vx.x.x-xxxxxxx.uf2`) from the release onto this drive.
|
5. Drop the appropriate firmware file (`firmware-DEVICE_NAME-x.x.x-xxxxxxx.uf2`) from the release onto this drive.
|
||||||
|
|
||||||
Once the file has finished copying onto the drive, the device will reboot and install the Meshtastic firmware.
|
Once the file has finished copying onto the drive, the device will reboot and install the Meshtastic firmware.
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ values={[
|
||||||
|
|
||||||
- [Android App](/docs/category/android-app)
|
- [Android App](/docs/category/android-app)
|
||||||
- [Web Client](https://client.meshtastic.org)
|
- [Web Client](https://client.meshtastic.org)
|
||||||
- [iOS App](/docs/category/apple-apps)
|
- [iOS/iPadOS/macOS App](/docs/category/apple-apps)
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="network">
|
<TabItem value="network">
|
||||||
|
|
|
@ -60,6 +60,37 @@ Please be aware of the difference between the RAK4631 (Arduino bootloader) and t
|
||||||
style={{ zoom: "50%" }}
|
style={{ zoom: "50%" }}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
### GPIO
|
||||||
|
|
||||||
|
:::caution Note
|
||||||
|
There is no usable GPIO pin on any RAK base board except the 'big' baseboard RAK19001 without adding a RAK13002 IO module or a third party IO sensor breakout.
|
||||||
|
:::
|
||||||
|
|
||||||
|
The RAK4631 uses symbolic labels for its I/O Pins on the module and baseboard silk screens. The following table shows the mapping of the RAK4631 GPIO pins to the corresponding Arduino pins and the MCU Port numbers.
|
||||||
|
|
||||||
|
| RAK Pin | nRF52840 Pin | Arduino GPIO | Remark |
|
||||||
|
| ------- | ------------ | ------------ | ----------------------------------------------------------------------------------------------------- |
|
||||||
|
| IO1 | P0.17 | 17 | used to toggle power to peripheral modules using 3v3_S power rail, not available for user application |
|
||||||
|
| IO2 | P1.02 | 34 | used to power all peripheral modules, not available for user application |
|
||||||
|
| IO3 | P0.21 | 21 |
|
||||||
|
| IO4 | P0.04 | 4 |
|
||||||
|
| IO5 | P0.09 | 9 | The 'User Button' is mapped here. |
|
||||||
|
| IO6 | P0.10 | 10 |
|
||||||
|
| IO7 | P0.28 | 28 |
|
||||||
|
| SW1 | P0.01 | 1 |
|
||||||
|
| A0 | P0.04/AIN2 | A2 |
|
||||||
|
| A1 | P0.31/AIN7 | A7 |
|
||||||
|
| SPI_CS | P0.26 | 26 |
|
||||||
|
|
||||||
|
When configuring GPIO pins in your device settings, the Arduino GPIO numbers should be used.
|
||||||
|
|
||||||
|
```shell title="Example"
|
||||||
|
meshtastic --set external_notification.output 10
|
||||||
|
```
|
||||||
|
|
||||||
|
This will use IO6 on a RAK4631
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="RAK11200">
|
<TabItem value="RAK11200">
|
||||||
|
|
||||||
|
|
|
@ -82,23 +82,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".
|
||||||
|
|
||||||
<details>
|
:::info If a QR or URL opens a webpage instead of the APP or "Open with Meshtastic" is not an option:
|
||||||
<summary>Troubleshooting shared links: Can't "open with Meshtastic".</summary>
|
1. Go to Android Settings > Apps > Default apps > Meshtastic > Opening links
|
||||||
<div>
|
2. Make sure you have in "links/web address": www.meshtastic.org
|
||||||
<div>
|
3. If you see the option "Open the supported links", make sure it is enabled.
|
||||||
If you don't see "Meshtastic" as an option to open the file or link with:
|
:::
|
||||||
<br />
|
|
||||||
1. Go to Android Settings > Apps > Default apps > Meshtastic > Opening
|
|
||||||
links
|
|
||||||
<br />
|
|
||||||
2. Make sure you have in "links/web address": www.meshtastic.org
|
|
||||||
<br />
|
|
||||||
3. If you see the option "Open the supported links", make sure it is
|
|
||||||
enabled.
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</details>
|
|
||||||
|
|
||||||
[![Accept new channel](/img/android/android-accept-channel-c.png)](/img/android/android-accept-channel.png)
|
[![Accept new channel](/img/android/android-accept-channel-c.png)](/img/android/android-accept-channel.png)
|
||||||
|
|
||||||
|
|
|
@ -206,13 +206,13 @@ Always Check Configuration before reloading YAML or restarting Home Assistant to
|
||||||
|
|
||||||
Create a new Entities Card and select the entities you have created.
|
Create a new Entities Card and select the entities you have created.
|
||||||
|
|
||||||
[<img src="/img/software/mqtt/ha_entities_card.png" style={{zoom: '40%'}} />](/img/software/mqtt/ha_entities_card.png)
|
![HA Entities Card](/img/software/mqtt/ha_entities_card.png)
|
||||||
|
|
||||||
### Logbook Card for Messaging
|
### Logbook Card for Messaging
|
||||||
|
|
||||||
The logbook card is useful to keep a record of incoming messages from the mesh. Below is an example of how the logbook card would be set up.
|
The logbook card is useful to keep a record of incoming messages from the mesh. Below is an example of how the logbook card would be set up.
|
||||||
|
|
||||||
[<img src="/img/software/mqtt/ha_logbook_card.png" style={{zoom: '40%'}} />](/img/software/mqtt/ha_logbook_card.png)
|
![HA Logbook Card](/img/software/mqtt/ha_logbook_card.png)
|
||||||
|
|
||||||
|
|
||||||
## Trigger HA Automations
|
## Trigger HA Automations
|
||||||
|
@ -223,7 +223,7 @@ It is possible to have Home Assistant trigger automations based on messages or e
|
||||||
|
|
||||||
This example waits for a message containing @Tropho and then sends a pop-up notification to his flip phone with the message. Optionally you can have ALL messages from the mesh sent as HA notifications to your phone.
|
This example waits for a message containing @Tropho and then sends a pop-up notification to his flip phone with the message. Optionally you can have ALL messages from the mesh sent as HA notifications to your phone.
|
||||||
|
|
||||||
[<img src="/img/software/mqtt/ha_at_tropho.png" style={{zoom: '50%'}} />](/img/software/mqtt/ha_at_tropho.png)
|
![HA At Tropho Message](/img/software/mqtt/ha_at_tropho.png)
|
||||||
|
|
||||||
Add the following code to your automations.yaml file. Be sure to modify the `topic`, `regex_search`, and `service` for your configuration.
|
Add the following code to your automations.yaml file. Be sure to modify the `topic`, `regex_search`, and `service` for your configuration.
|
||||||
```yaml
|
```yaml
|
||||||
|
@ -253,4 +253,61 @@ Add the following code to your automations.yaml file. Be sure to modify the `to
|
||||||
mode: single
|
mode: single
|
||||||
```
|
```
|
||||||
|
|
||||||
This same type of automation is very useful to trigger other actions in Home Assistant. For example, you could turn on a fan when the temperature reaches a certain value, or a play a sound on a speaker when a new message is received.
|
This same type of automation is very useful to trigger other actions in Home Assistant. For example, you could turn on a fan when the temperature reaches a certain value, or a play a sound on a speaker when a new message is received.
|
||||||
|
|
||||||
|
|
||||||
|
## Create a Send Message Entity
|
||||||
|
|
||||||
|
It is possible to create an input text box to send messages to your mesh from within Home Assistant.
|
||||||
|
|
||||||
|
### Input Text Helper Entity
|
||||||
|
|
||||||
|
First, create an input text helper entity. The preferred way to configure an input text is via the HA interface at Settings > Devices & Services > Helpers. Click the add button and then choose the Text option. Make a text input helper with a max length of 190 to be on the safe side. See example below:
|
||||||
|
|
||||||
|
![HA Input Text Helper](/img/software/mqtt/ha_input_text_helper.png)
|
||||||
|
|
||||||
|
### Create a Send Message Automation
|
||||||
|
|
||||||
|
This automation will check the send box for changes. After typing a message, either hit enter or click off the box and the automation will send a text string in JSON to the mqtt broker. Make sure to update the channel name and device ID in the example below.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- alias: Meshtastic - Send Automation
|
||||||
|
description: ""
|
||||||
|
trigger:
|
||||||
|
- platform: state
|
||||||
|
entity_id:
|
||||||
|
- input_text.meshtastic_send_box
|
||||||
|
condition: []
|
||||||
|
action:
|
||||||
|
- delay:
|
||||||
|
hours: 0
|
||||||
|
minutes: 0
|
||||||
|
seconds: 1
|
||||||
|
milliseconds: 0
|
||||||
|
- service: mqtt.publish
|
||||||
|
data:
|
||||||
|
qos: 0
|
||||||
|
retain: false
|
||||||
|
topic: msh/2/json/LongFast/!67ea9400
|
||||||
|
payload: >-
|
||||||
|
{"channel":"0","sender":"broker","type":"sendtext","payload":"{{
|
||||||
|
states('input_text.meshtastic_send_box') }}"}
|
||||||
|
- delay:
|
||||||
|
hours: 0
|
||||||
|
minutes: 0
|
||||||
|
seconds: 1
|
||||||
|
milliseconds: 0
|
||||||
|
- service: input_text.set_value
|
||||||
|
data:
|
||||||
|
value: " "
|
||||||
|
target:
|
||||||
|
entity_id: input_text.meshtastic_send_box
|
||||||
|
- delay:
|
||||||
|
hours: 0
|
||||||
|
minutes: 0
|
||||||
|
seconds: 2
|
||||||
|
milliseconds: 0
|
||||||
|
mode: single
|
||||||
|
```
|
||||||
|
|
||||||
|
Add this card to your dashboard by going to Edit Dashboard -> + ADD CARD. Then search BY ENTITY for Meshtastic Send Box and check the box next to the entry. Click CONTINUE, then ADD TO DASHBOARD.
|
8
src/components/BaseCSS.tsx
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
// class .markdown needs to be called or it is removed from the build
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
|
const BaseCSS = () => {
|
||||||
|
return <div className="markdown">Shid Fard</div>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default BaseCSS;
|
After Width: | Height: | Size: 948 B |
After Width: | Height: | Size: 938 B |
After Width: | Height: | Size: 938 B |
After Width: | Height: | Size: 951 B |
After Width: | Height: | Size: 941 B |
After Width: | Height: | Size: 940 B |
After Width: | Height: | Size: 949 B |
After Width: | Height: | Size: 947 B |
After Width: | Height: | Size: 943 B |
After Width: | Height: | Size: 934 B |
After Width: | Height: | Size: 944 B |
After Width: | Height: | Size: 935 B |
After Width: | Height: | Size: 948 B |
After Width: | Height: | Size: 940 B |
After Width: | Height: | Size: 940 B |
BIN
static/img/software/mqtt/ha_input_text_helper.png
Normal file
After Width: | Height: | Size: 54 KiB |