Merge branch 'meshtastic:master' into master

This commit is contained in:
Tom 2024-10-30 00:38:29 +00:00 committed by GitHub
commit 9628a1bfd3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
60 changed files with 279 additions and 149 deletions

View file

@ -6,7 +6,7 @@ labels: ""
assignees: "" assignees: ""
--- ---
Please - if you just have a question, post in our [forum](https://meshtastic.discourse.group) instead. Please reserve this system for requesting changes to the Meshtastic documentation. If you have a question, please post it on our [Meshtastic Discussions page](https://github.com/orgs/meshtastic/discussions) instead. This system is reserved specifically for requesting changes to the Meshtastic documentation.
**Describe what section of the docs is outdated or otherwise in need of change** **Describe what section of the docs is outdated or otherwise in need of change**
Be as clear and concise as possible. Provide a URL or GitHub path to the doc you are referencing. Be as clear and concise as possible. Provide a URL or GitHub path to the doc you are referencing.

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 KiB

View file

@ -44,7 +44,7 @@ If you are interested in a more technical overview of how Meshtastic works, visi
## Contributors ## Contributors
Meshtastic is an open source project available on GitHub. Our generous volunteers donate their personal time to write and maintain this codebase. If you would like to contribute see our [GitHub](https://github.com/meshtastic), join our [Discord server](https://discord.gg/ktMAKGBnBs), and read up on our [forum](https://meshtastic.discourse.group). Meshtastic is an open source project available on GitHub. Our generous volunteers donate their personal time to write and maintain this codebase. If you would like to contribute see our [GitHub](https://github.com/meshtastic), join our [Discord server](https://discord.gg/ktMAKGBnBs), and read up on our [Meshtastic Discussions](https://github.com/orgs/meshtastic/discussions).
<div className="indexCtasBody"> <div className="indexCtasBody">
<Link <Link

View file

@ -80,7 +80,7 @@ Various data-rate options are available when configuring a frequency slot and ar
We have eight LoRa radio presets. These are the most common settings and have been proven to work well: We have eight LoRa radio presets. These are the most common settings and have been proven to work well:
| Channel setting | Alt Channel Name | Data-Rate | SF / Symbols | Coding Rate | Bandwidth | Link Budget | | Channel setting | Alt Channel Name | Data-Rate | SF / Symbols | Coding Rate | Bandwidth | Link Budget |
|:----------------------:|:----------------:|:----------:|:------------:|:-----------:|:---------:|:-----------:| | :--------------------: | :--------------: | :--------: | :----------: | :---------: | :-------: | :---------: |
| Short Range / Turbo | Short Turbo | 21.88 kbps | 7 / 128 | 4/5 | 500[^1] | 140dB | | Short Range / Turbo | Short Turbo | 21.88 kbps | 7 / 128 | 4/5 | 500[^1] | 140dB |
| Short Range / Fast | Short Fast | 10.94 kbps | 7 / 128 | 4/5 | 250 | 143dB | | Short Range / Fast | Short Fast | 10.94 kbps | 7 / 128 | 4/5 | 250 | 143dB |
| Short Range / Slow | Short Slow | 6.25 kbps | 8 / 256 | 4/5 | 250 | 145.5dB | | Short Range / Slow | Short Slow | 6.25 kbps | 8 / 256 | 4/5 | 250 | 145.5dB |
@ -97,7 +97,6 @@ The link budget used by these calculations assumes a transmit power of 22dBm and
![link budget vs data rate plot](/img/about/link-budget-vs-data-rate.webp) ![link budget vs data rate plot](/img/about/link-budget-vs-data-rate.webp)
### Custom Settings ### Custom Settings
Custom settings can be applied by using [supported software](/docs/software). Custom settings can be applied by using [supported software](/docs/software).
@ -121,7 +120,7 @@ Some example settings:
The link budget used by these calculations assumes a transmit power of 17dBm and an antenna with 0dB gain. Adjust your link budget assumptions based on your actual devices. The link budget used by these calculations assumes a transmit power of 17dBm and an antenna with 0dB gain. Adjust your link budget assumptions based on your actual devices.
These frequency slot settings may not have been tested. Use at your own discretion. Share on https://meshtastic.discourse.group with your successes or failure. These frequency slot settings may not have been tested. Use at your own discretion. Share on the [Meshtastic Discussions page](https://github.com/orgs/meshtastic/discussions) with your successes or failure.
## Cryptography ## Cryptography

View file

@ -58,7 +58,6 @@ Default Very Long Slow
<img src="/img/records/MartinR7-message-trace.webp" alt="Trace" /> <img src="/img/records/MartinR7-message-trace.webp" alt="Trace" />
#### Previous Ground Record: 254km #### Previous Ground Record: 254km
- **Range:** 254km (158 miles) - **Range:** 254km (158 miles)
@ -117,11 +116,11 @@ Default Long_Fast
- **Firmware Version:** 1.2 - **Firmware Version:** 1.2
- **Antenna:** [868MHz Vertical 6dBi](https://ivent.co.nz/product/category/1000/868mhz%20vertical%206dbi%20antenna/38606) - **Antenna:** [868MHz Vertical 6dBi](https://ivent.co.nz/product/category/1000/868mhz%20vertical%206dbi%20antenna/38606)
![Topographical Map](https://canada1.discourse-cdn.com/free1/uploads/meshtastic/optimized/2X/a/a0a26e4d40a5b9ccba9185eb70e2eaf66f0b0587_2_1380x888.jpeg) ![Topographical Map](/img/records/topographical_map.webp)
![Node A](https://canada1.discourse-cdn.com/free1/uploads/meshtastic/optimized/2X/9/99ec4bcc18b21f4e95ac1bcc0592b608c9c4f567_2_1332x1000.jpeg) ![Node A](/img/records/node_a.webp)
![Node B](https://canada1.discourse-cdn.com/free1/uploads/meshtastic/optimized/2X/1/1c8bd5fc41f7bab925404b657a9c481882de9313_2_1332x1000.jpeg) ![Node B](/img/records/node_b.webp)
<h5>Resources Used</h5>- http://www.heywhatsthat.com <h5>Resources Used</h5>- http://www.heywhatsthat.com

View file

@ -124,6 +124,10 @@ us on [Discord](https://discord.com/invite/ktMAKGBnBs) to add your group.
- [LithMesh Signal Group](https://signal.group/#CjQKIBScbOkXSG2bkFh_omdxjOM-XqYIU4eERDmGEDrm3jjmEhDyZhh-EeCLSfjfV-DoPvEQ) - [LithMesh Signal Group](https://signal.group/#CjQKIBScbOkXSG2bkFh_omdxjOM-XqYIU4eERDmGEDrm3jjmEhDyZhh-EeCLSfjfV-DoPvEQ)
## Mexico
- [Meshtastic Mexico Community](https://radioaficionados.mx/meshtastic)
## Netherlands, The ## Netherlands, The
- [Meshtastic Netherlands Telegram](https://t.me/meshtastic_nl) - [Meshtastic Netherlands Telegram](https://t.me/meshtastic_nl)
@ -254,6 +258,14 @@ us on [Discord](https://discord.com/invite/ktMAKGBnBs) to add your group.
- [Cypress, Texas Meshtastic Club](https://discord.gg/KzuwNRwE6q) - [Cypress, Texas Meshtastic Club](https://discord.gg/KzuwNRwE6q)
- [DFW / North Texas Mesh](https://discord.gg/jyzYRTtyMD) - [DFW / North Texas Mesh](https://discord.gg/jyzYRTtyMD)
### Virginia
- [MadisonMesh](https://madisonmesh.com/)
### Wisconsin ### Wisconsin
- [Meshconsin](https://meshconsin.org) - [Meshconsin](https://meshconsin.org)
### Washington
- [Puget Mesh](https://PugetMesh.org)

View file

@ -12,7 +12,7 @@ The serial module config options are: Enabled, Echo, Mode, Receive GPIO, Transmi
This is an interface to talk to and control your Meshtastic device over a serial port. The module can be set to different [modes](#mode), each fulfilling a different use-case. This is an interface to talk to and control your Meshtastic device over a serial port. The module can be set to different [modes](#mode), each fulfilling a different use-case.
![image](https://user-images.githubusercontent.com/9000580/205529843-962c3187-8411-452c-b729-42c58b1571f5.png) ![image](/img/modules/Serial/jet.webp)
<object <object
data="https://www.youtube.com/embed/HdOiGKBtapw?autohide=1&autoplay=0" data="https://www.youtube.com/embed/HdOiGKBtapw?autohide=1&autoplay=0"
@ -53,7 +53,7 @@ Available Values:
Set the GPIO pin to the RXD pin you have set up. Set the GPIO pin to the RXD pin you have set up.
:::tip :::tip
With RAK4631, the default pins are TXD1 and RXD1 on the baseboard. For this device, setting [GPS Mode](/docs/configuration/radio/position/#gps-mode) to `Not_Present` will prevent a pin conflict. With the RAK4631 on the RAK19007 and some versions of the RAK19003 baseboards, the default pins are TXD1 (16) and RXD1 (15). For this device, setting [GPS Mode](/docs/configuration/radio/position/#gps-mode) to `Not_Present` is necessary. For other versions of the RAK19003 baseboard, the pins TXD0 (20) and RXD0 (19) are accessible.
::: :::
### Transmit GPIO Pin ### Transmit GPIO Pin

View file

@ -12,7 +12,11 @@ The Telemetry Module provides four types of data over the mesh: Device metrics (
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 data="https://www.youtube.com/embed/6jj1s-fsPlc?autohide=1&autoplay=0" width="100%" height="400"></object> <object
data="https://www.youtube.com/embed/6jj1s-fsPlc?autohide=1&autoplay=0"
width="100%"
height="400"
></object>
### Currently Supported Sensor Types ### Currently Supported Sensor Types
@ -35,7 +39,6 @@ Supported sensors connected to the I2C bus of the device will be automatically d
| 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
### Environment Telemetry Enabled ### Environment Telemetry Enabled
@ -80,6 +83,16 @@ This option is used to configure the interval (in seconds) that should be used t
Default is `1800` seconds (30 minutes). Default is `1800` seconds (30 minutes).
### Power Metrics Enabled
This option is used to enable/disable the sending of power telemetry as gathered by an attached supported voltage/current sensor. Note that this does not need to be enabled to monitor the voltage of the battery.
Default is `false`.
### Power Metrics Interval
This option is used to configure the interval (in seconds) that should be used to send power metrics from an attached supported sensor over the mesh network.
### Health Telemetry Enabled ### Health Telemetry Enabled
This option is used to enable/disable the sending of health data from an attached supported sensor over the mesh network. This option is used to enable/disable the sending of health data from an attached supported sensor over the mesh network.
@ -140,7 +153,7 @@ All telemetry module config options are available in the python CLI. Example com
## Settings ## Settings
| Setting | Acceptable Values | Default | | Setting | Acceptable Values | Default |
| :---------------------------------------: | :-----------------: | :---------------------------------------: | | :---------------------------------------: | :-----------------: | :----------------------------------------: |
| telemetry.device_update_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). | | telemetry.device_update_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). |
| telemetry.environment_display_fahrenheit | `true`, `false` | `false` | | telemetry.environment_display_fahrenheit | `true`, `false` | `false` |
| telemetry.environment_measurement_enabled | `true`, `false` | `false` | | telemetry.environment_measurement_enabled | `true`, `false` | `false` |
@ -148,6 +161,8 @@ All telemetry module config options are available in the python CLI. Example com
| telemetry.environment_update_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). | | telemetry.environment_update_interval | `integer` (seconds) | Default `0` is 30 minutes(`1800` seconds). |
| telemetry.air_quality_enabled | `true`, `false` | `false` | | telemetry.air_quality_enabled | `true`, `false` | `false` |
| 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_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` |

View file

@ -119,7 +119,7 @@ Setting this to option to 'true' means the device will ignore any messages it re
Acceptable values: `true`, `false` Acceptable values: `true`, `false`
Default is `false`. When set to `true`, this configuration indicates that the user approves their packets to be uploaded to MQTT. If set to `false`, nodes receiving your packets are requested not to forward packets to MQTT. Default is `false`. When set to `true`, this configuration indicates that the user approves their packets to be uploaded to MQTT. If set to `false`, nodes receiving your packets are requested not to forward packets to MQTT. This configuration only applies to Channels configured with the `defaultpsk` and `eventpsk` keys set in the Meshtastic Firmware; Channels with custom keys ignore this setting.
**Important:** This is not a cryptographic solution but a polite request that is enforced in the official firmware. **Important:** This is not a cryptographic solution but a polite request that is enforced in the official firmware.

View file

@ -10,15 +10,22 @@ sidebar_position: 1
If you would like to develop this application we'd love your help! These build instructions are brief and should be improved, please send a PR if you can. If you would like to develop this application we'd love your help! These build instructions are brief and should be improved, please send a PR if you can.
1. Use Android Studio to build/debug 1. Use Android Studio to build/debug
2. Use `git submodule update --init --recursive` to pull in the various sub-modules we depend on. 2. Clone the repository and after successful cloning, change the working directory to Meshtastic-Android/
3. There are a few config files which you'll need to copy from templates included in the project. Run the following commands to do so: ```shell
git clone https://github.com/meshtastic/Meshtastic-Android.git && cd Meshtastic-Android/
```
3. Pull in the various sub-modules we depend on.
```shell
git submodule update --init --recursive
```
4. There are a few config files which you'll need to copy from templates included in the project. Run the following commands to do so:
```shell ```shell
rm ./app/google-services.json rm ./app/google-services.json
cp ./app/google-services-example.json ./app/google-services.json cp ./app/google-services-example.json ./app/google-services.json
rm ./app/src/main/res/values/curfirmwareversion.xml rm ./app/src/main/res/values/curfirmwareversion.xml
cp ./app/special/curfirmwareversion.xml ./app/src/main/res/values/ cp ./app/special/curfirmwareversion.xml ./app/src/main/res/values/
``` ```
4. Now you should be able to select "Run / Run" in the IDE and it will happily start running on your phone or the emulator. 5. Now you should be able to select "Run / Run" in the IDE and it will happily start running on your phone or the emulator.
:::note :::note
The emulators don't support Bluetooth, so some features can not be used in that environment. The emulators don't support Bluetooth, so some features can not be used in that environment.

View file

@ -6,31 +6,31 @@ sidebar_position: 5
description: Technical Overview of Encryption Employed with Meshtastic from Firmware 2.5.0 Onwards description: Technical Overview of Encryption Employed with Meshtastic from Firmware 2.5.0 Onwards
--- ---
## PSK for Channels, PKC for Direct Messages (DMs) and Admin Messages ## PSK for Channels, PKC for Direct Messages and Admin Messages
Starting with firmware version 2.5.0, which introduces Public Key Cryptography (PKC) for Direct Messages (DMs) and additionally incorporating the use of Session IDs for Admin Messages, the security architecture of Meshtastic has reached a new level of robustness. Up to version 2.4.x of the firmware, Meshtastic relied entirely on Pre-Shared Key (PSK) cryptography for all messaging. Starting with firmware version 2.5.0, Meshtastic introduced Public Key Cryptography (PKC) for Direct Messages (DMs) and added Session IDs for Admin Messages. Together, these enhancements bring the security architecture of Meshtastic to a new level of robustness.
Below is a detailed overview of how PSK, PKC, and Session IDs are integrated into your system to secure Channels, Direct Messages, and Admin Messages. Below is a detailed overview of how PSK, PKC, and Session IDs are integrated into your system to secure Channels, Direct Messages, and Admin Messages.
### 1. Chat Channels Using Pre-Shared Key (PSK) ### 1. Chat Channels Using PSK
- **PSK Overview:** - **PSK Overview:**
- Chat Channels continue to utilize a Pre-Shared Key (PSK) for encrypting communications. - Chat Channels continue to utilize a PSK for encrypting communications.
- All participants share the same PSK for their Channels, which is used for both encryption and decryption within the channel. - All participants share the same PSK for their Channels, which is used for both encryption and decryption within the channel.
- **Security Considerations:** - **Security Considerations:**
- **Confidentiality:** Only participants with the correct PSK can access messages within the Chat Channel. - **Confidentiality:** Only participants with the correct PSK can access messages within the Chat Channel.
- **Key Management:** Secure distribution and regular rotation of the PSK are essential to maintaining the channel's security. - **Key Management:** Secure distribution and regular rotation of the PSK are essential to maintaining the channel's security.
### 2. Direct Messages (DMs) Now Using PKC ### 2. DMs Now Using PKC
- **PKC Implementation for DMs:** - **PKC Implementation for DMs:**
- **Public/Private Key Pairs:** Each node is equipped with a unique public/private key pair. The private key is securely stored on the node, and the public key is shared with other nodes, allowing for secure, authenticated communication. - **Public/Private Key Pairs:** Each node is equipped with a unique public/private key pair. The private key is securely stored on the node, and the public key is shared with other nodes, allowing for secure, authenticated communication.
- **Encryption and Signature:** - **Encryption and Signature:**
- **Encryption:** DMs are encrypted using the recipients public key, ensuring only the recipient with the corresponding private key can decrypt the message. - **Encryption:** DMs are encrypted using the recipients public key, ensuring only the recipient with the corresponding private key can decrypt the message.
- **Digital Signatures:** Messages are signed with the senders private key before encryption, allowing the recipient to verify the senders identity and the messages integrity using the senders public key. - **Digital Signatures:** DMs are signed with the senders private key before encryption, allowing the recipient to verify the senders identity and the messages integrity using the senders public key.
- **Security Enhancements with PKC:** - **Security Enhancements with PKC:**
- **Message Confidentiality and Integrity:** With PKC, each DM is encrypted and signed, ensuring that only the intended recipient can read the message, and verifying that it has not been tampered with. - **Message Confidentiality and Integrity:** With PKC, each DM is encrypted and signed, ensuring that only the intended recipient can read the message, and verifying that it has not been tampered with.

View file

@ -88,6 +88,4 @@ In summary - wavelengths in Europe fair well in plain sight, curve over not-so-t
## Discussion ## Discussion
To comment on / join in antenna range [Meshtastic discourse](https://meshtastic.discourse.group/t/antenna-improved-range/227/35?u=sens8tion) For further insights, join the conversation on antenna range and performance at [Meshtastic Discussions on GitHub.](https://github.com/orgs/meshtastic/discussions)
There, you will also find reference to Meshtastic range achievements and aerial recommendations. (Note we've stopped short of making specific supplier aerial recommendations in this wiki.)

View file

@ -114,7 +114,7 @@ Image Source: [Heltec](<https://resource.heltec.cn/download/WiFi_LoRa32_V3/HTIT-
- [Rokland](https://store.rokland.com/collections/heltec-products/products/heltec-wifi-lora-32v3) - [Rokland](https://store.rokland.com/collections/heltec-products/products/heltec-wifi-lora-32v3)
- International - International
- [Heltec](https://heltec.org/project/wifi-lora-32-v3/) - [Heltec](https://heltec.org/project/wifi-lora-32-v3/)
- [AliExpress](https://www.aliexpress.us/item/3256805256690400.html) - [AliExpress](https://www.aliexpress.us/item/3256807466584635.html)
</TabItem> </TabItem>

View file

@ -5,6 +5,19 @@ sidebar_label: Buttons
sidebar_position: 1 sidebar_position: 1
--- ---
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
<Tabs
groupId="t-beam buttons"
queryString="t-beam"
defaultValue="t-beam"
values={[
{label: 'T-Beam', value: 't-beam'},
{label: 'T-Beam Supreme', value:'t-beam-supreme'},
]}>
<TabItem value="t-beam">
## Functionality ## Functionality
- **Power Button (left):** - **Power Button (left):**
@ -23,3 +36,32 @@ sidebar_position: 1
width="200" width="200"
align="center-right" align="center-right"
/> />
</TabItem>
<TabItem value = "t-beam-supreme">
:::info
Be aware that the button layout differs on the T-Beam Supreme model.
:::
## Functionality
- **Power Button (middle):**
- **Long press:** Powers the device on or off.
- **Reset Button (right):**
- **Single press:** Resets the device.
- **User/Program Button (left):**
- **Long press:** Will signal the device to shutdown after 5 seconds.
- **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.
- **Triple press:** Disables the device's GPS. Repeat to re-enable. (_This will be indicated on both information screen pages on the device's display as shown below_)
<img src="/img/hardware/GPS-disabled.webp" width="200" align="center-left" />
<img
src="/img/hardware/GPS-disabled-by-button.webp"
width="200"
align="center-right"
/>
</TabItem>
</Tabs>

View file

@ -37,8 +37,8 @@ The RAK5005-O is no longer in production. It is recommended to use the RAK19007
- (x1) Reset Button - (x1) Reset Button
- It may be possible to add a user button using the [13002 IO module](https://store.rakwireless.com/collections/wisblock-interface/products/adapter-module-rak13002). - It may be possible to add a user button using the [13002 IO module](https://store.rakwireless.com/collections/wisblock-interface/products/adapter-module-rak13002).
- **Connectors** - **Connectors**
- Connector for 3.7v LiPo battery (with charge controller) - JST PHR-2 connector for 3.7v LiPo battery (with charge controller)
- Connector for 5v solar panel (max 5.5v) - JST-ZHR-2 connector for 5v solar panel (max 5.5v)
- I<sup>2</sup>C, UART, GPIOs and analog input accessible with solder contacts - I<sup>2</sup>C, UART, GPIOs and analog input accessible with solder contacts
- Micro USB port for debugging and power - Micro USB port for debugging and power
- **Screen Support** - **Screen Support**
@ -48,6 +48,22 @@ The RAK5005-O is no longer in production. It is recommended to use the RAK19007
The RAK5005 (without the -O) is not compatible. The RAK5005 (without the -O) is not compatible.
::: :::
### Connectors Diagram
<img
alt="RAK19001-O Connectors"
src="/img/hardware/rak5005-0_connectors.web"
style={{ zoom: "50%" }}
/>
### Voltages
- JST PHR-2 connector for 3.7v LiPo battery.
- Charge controller max charge rate is 500mAh.
- Minimum input voltage for charging is 3.3v, maximum 4.3v.
- JST ZHR-2 connector for 5v solar panel.
- Minimum input voltage to charge is 4.4v, maximum 5.5v.
Further information on the RAK5005-O can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK5005-O/Overview/#product-description). Further information on the RAK5005-O can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK5005-O/Overview/#product-description).
<img <img
@ -71,8 +87,8 @@ Further information on the RAK5005-O can be found on the [RAK Documentation Cent
- (x1) Reset Button - (x1) Reset Button
- To add a user button, you can utilize the AIN1 pin, which is exposed as pin 31 in the firmware. - To add a user button, you can utilize the AIN1 pin, which is exposed as pin 31 in the firmware.
- **Connectors** - **Connectors**
- Connector for 3.7v LiPo battery (with charge controller) - JST PHR-2 connector for 3.7v LiPo battery.
- Connector for 5v solar panel (max 5.5v) - JST ZHR-2 connector for 5v solar panel.
- I<sup>2</sup>C, UART, BOOT and GPIOs accessible with solder contacts - I<sup>2</sup>C, UART, BOOT and GPIOs accessible with solder contacts
- USB-C port for debugging and power - USB-C port for debugging and power
- **Screen Support** - **Screen Support**
@ -80,6 +96,22 @@ Further information on the RAK5005-O can be found on the [RAK Documentation Cent
Further information on the RAK19007 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19007/Overview/#product-description). Further information on the RAK19007 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19007/Overview/#product-description).
### Connectors Diagram
<img
alt="RAK19007 Connectors"
src="/img/hardware/rak19007_connectors.webp"
style={{ zoom: "50%" }}
/>
### Voltages
- JST PHR-2 connector for 3.7v LiPo battery.
- Charge controller max charge rate is 350mAh.
- Minimum input voltage for charging is 3.3v, maximum 4.3v.
- JST ZHR-2 connector for 5v solar panel.
- Minimum input voltage to charge is 4.4v, maximum 5.5v.
### Resources ### Resources
- Purchase Links: - Purchase Links:
@ -103,8 +135,8 @@ Further information on the RAK19007 can be found on the [RAK Documentation Cente
- (x1) Reset Button - (x1) Reset Button
- There is a 3rd party sensor module that breaks out the user button, available [here](https://www.etsy.com/de/listing/1254963521/mini-io-expansion-board-for-rak-wireless). - There is a 3rd party sensor module that breaks out the user button, available [here](https://www.etsy.com/de/listing/1254963521/mini-io-expansion-board-for-rak-wireless).
- **Connectors** - **Connectors**
- Connector for 3.7v LiPo battery (with charge controller) - JST PHR-2 connector for 3.7v LiPo battery.
- Connector for 5v solar panel (max 5.5v) - JST ZHR-2 connector for 5v solar panel.
- I<sup>2</sup>C, UART and BOOT headers accessible with solder contacts - I<sup>2</sup>C, UART and BOOT headers accessible with solder contacts
- USB-C port for debugging and power - USB-C port for debugging and power
- **Screen Support** - **Screen Support**
@ -112,6 +144,22 @@ Further information on the RAK19007 can be found on the [RAK Documentation Cente
Further information on the RAK19003 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19003/Overview/#product-description) Further information on the RAK19003 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19003/Overview/#product-description)
### Connectors Diagram
<img
alt="RAK19003 Connectors"
src="/img/hardware/rak19003_connectors.webp"
style={{ zoom: "50%" }}
/>
### Voltages
- JST PHR-2 connector for 3.7v LiPo battery.
- Charge controller max charge rate is 350mAh.
- Minimum input voltage for charging is 3.3v, maximum 4.3v.
- JST ZHR-2 connector for 5v solar panel.
- Minimum input voltage to charge is 4.4v, maximum 5.5v.
### Resources ### Resources
- Purchase Links: - Purchase Links:
@ -142,9 +190,9 @@ Further information on the RAK19003 can be found on the [RAK Documentation Cente
- (x1) Battery selector switch - (x1) Battery selector switch
- On this board the PIN for user button (IO5) is available as a solder contact on the upper header row. - On this board the PIN for user button (IO5) is available as a solder contact on the upper header row.
- **Connectors** - **Connectors**
- Connector for 3.7v LiPo battery (with charge controller) - JST PHR-2 connector for 3.7v LiPo battery (with charge controller)
- Connector for 5v solar panel (max 5.5v) - JST ZHR-2 connector for 5v solar panel (max 5.5v)
- Separate connector for non-rechargeable batteries - Separate FGH20005-S02M2W1B connector for non-rechargeable batteries
- I<sup>2</sup>C, SPI, UART, BOOT and GPIOs accessible with solder contacts - I<sup>2</sup>C, SPI, UART, BOOT and GPIOs accessible with solder contacts
- USB-C port for debugging and power - USB-C port for debugging and power
- **Screen Support** - **Screen Support**
@ -152,6 +200,25 @@ Further information on the RAK19003 can be found on the [RAK Documentation Cente
Further information on the RAK19001 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19001/Overview/#product-description). Further information on the RAK19001 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19001/Overview/#product-description).
### Connectors Diagram
<img
alt="RAK19001 Connectors"
src="/img/hardware/rak19001_connectors.webp"
style={{ zoom: "50%" }}
/>
### Voltages
- JST PHR-2 connector for 3.7v LiPo battery.
- Charge controller max charge rate is 500mAh.
- Minimum input voltage for charging is 3.3v, maximum 4.3v.
- JST ZHR-2 connector for 5v solar panel.
- Minimum input voltage to charge is 4.4v, maximum 5.5v.
- FGH20005-S02M2W1B connector for non-rechargable battery.
- Minimum required is 3.3v, typical 3.7v, maximum 5.5v.
- Active battery is selected with the battery selector switch.
### Resources ### Resources
- Purchase Links: - Purchase Links:

View file

@ -14,6 +14,6 @@ If you opt-in to analytics on the Android app (thank you - that helps us know wh
The search engine for this website is provided by Algolia, please see their [privacy policy](https://www.algolia.com/policies/privacy) for details of what information they collect. The search engine for this website is provided by Algolia, please see their [privacy policy](https://www.algolia.com/policies/privacy) for details of what information they collect.
This is an open-source project run by hobbyists, and we try to be completely transparent. If you have questions on this policy, please [post on the forum](https://meshtastic.discourse.group/), and we'll reply/clarify/correct. This is an open-source project run by hobbyists, and we try to be completely transparent. If you have questions on this policy, please [post on the Meshtastic Discussions page](https://github.com/orgs/meshtastic/discussions), and we'll reply/clarify/correct.
Keep being awesome! Keep being awesome!

View file

@ -41,8 +41,6 @@ The minimum Android version is 5.0 (Lollipop 2014, first BLE support), however A
There is a Play Store [testing program](https://play.google.com/apps/testing/com.geeksville.mesh) with the latest cutting edge changes, though this may come with extra bugs. There is a Play Store [testing program](https://play.google.com/apps/testing/com.geeksville.mesh) with the latest cutting edge changes, though this may come with extra bugs.
It is recommended that you follow the [Meshtastic Discourse Alpha Testers](https://meshtastic.discourse.group/c/development/alpha-testers) channel if you decide to join.
_Google Play and the Google Play logo are trademarks of Google LLC._ _Google Play and the Google Play logo are trademarks of Google LLC._
### Install by Sideloading ### Install by Sideloading
@ -73,4 +71,4 @@ If you do sideload, you may have to give your browser permissions to run a packa
Obtainium allows you to install and update Open-Source Apps directly from their releases pages, and receive notifications when new releases are made available. Obtainium allows you to install and update Open-Source Apps directly from their releases pages, and receive notifications when new releases are made available.
\*Alpha releases include the latest cutting edge changes which may come with extra bugs. It is recommended that you follow the [Meshtastic Discourse Alpha Testers](https://meshtastic.discourse.group/c/development/alpha-testers) channel if you decide to use these versions. \*Alpha releases include the latest cutting edge changes which may come with extra bugs. It is recommended that you follow the Meshtastic Alpha Testers Channel on [Discord](https://discord.com/invite/ktMAKGBnBs) if you decide to use these versions.

View file

@ -11,13 +11,12 @@ Node-RED is a free cross-platform programming tool for wiring together hardware,
I will use this platform as a practical example on how to interface with the MQTT features of Meshtastic. Everything can be done from GUI's without using command line. I will use this platform as a practical example on how to interface with the MQTT features of Meshtastic. Everything can be done from GUI's without using command line.
### Enabling MQTT ### Enabling MQTT
Use http://client.meshtastic.org/ , the python CLI, or an Apple or Android app to connect to your device and adjust these settings. Use http://client.meshtastic.org/ , the python CLI, or an Apple or Android app to connect to your device and adjust these settings.
1. Settings--> Radio Config--> Network 1. Settings--> Radio Config--> Network
- On the node that will act as the gateway between the mesh and MQTT enable a network connection (i.e. Wifi, Ethernet). - On the node that will act as the gateway between the mesh and MQTT enable a network connection (i.e. Wifi, Ethernet).
- Save - Save
@ -30,8 +29,8 @@ Use http://client.meshtastic.org/ , the python CLI, or an Apple or Android app t
- Go to Channel Editor and enable Uplink and Downlink on the channels you wish to publish to MQTT. - Go to Channel Editor and enable Uplink and Downlink on the channels you wish to publish to MQTT.
- Save - Save
### Using Node-RED with Meshtastic ### Using Node-RED with Meshtastic
There are three common approaches: There are three common approaches:
1. Using JSON-encoded messages 1. Using JSON-encoded messages
@ -39,6 +38,7 @@ There are three common approaches:
3. Using protobuf-encoded messages with a protobuf decode node and the Meshtastic protobuf definitions 3. Using protobuf-encoded messages with a protobuf decode node and the Meshtastic protobuf definitions
The JSON output only publishes the following subset of the messages on a Meshtastic network: The JSON output only publishes the following subset of the messages on a Meshtastic network:
- Text Message - Text Message
- Telemetry - Telemetry
- Device Metrics - Device Metrics
@ -54,11 +54,12 @@ The JSON output only publishes the following subset of the messages on a Meshtas
> Protobufs are mesh native. > Protobufs are mesh native.
#### 1. Using JSON-encoded messages #### 1. Using JSON-encoded messages
:::note :::note
JSON is not supported on the nRF52 platform. JSON is not supported on the nRF52 platform.
::: :::
Make sure that option *JSON Output Enabled* is set in MQTT module options and you have a channel called "mqtt". Make sure that option _JSON Output Enabled_ is set in MQTT module options and you have a channel called "mqtt".
Below is a valid JSON envelope for information sent by MQTT to a device for broadcast onto the mesh. The `to` field is optional and can be omitted for broadcast. The `channel` field is also optional and can be omitted to send to the primary channel. Below is a valid JSON envelope for information sent by MQTT to a device for broadcast onto the mesh. The `to` field is optional and can be omitted for broadcast. The `channel` field is also optional and can be omitted to send to the primary channel.
@ -71,7 +72,9 @@ Below is a valid JSON envelope for information sent by MQTT to a device for broa
"payload": text or a json object go here "payload": text or a json object go here
} }
``` ```
#### 2. Using protobuf-encoded messages with the Meshtastic decode node #### 2. Using protobuf-encoded messages with the Meshtastic decode node
Install Node-Red plug-in: Install Node-Red plug-in:
https://flows.nodered.org/node/@meshtastic/node-red-contrib-meshtastic https://flows.nodered.org/node/@meshtastic/node-red-contrib-meshtastic
@ -80,7 +83,6 @@ More info is in the plug-in source repository.
There is an example flow using this mechanism available There is an example flow using this mechanism available
https://github.com/scruplelesswizard/meshtastic-node-red https://github.com/scruplelesswizard/meshtastic-node-red
#### 3. Using protobuf-encoded messages with a protobuf decode node and the Meshtastic protobuf definitions #### 3. Using protobuf-encoded messages with a protobuf decode node and the Meshtastic protobuf definitions
If you don't want to depend on JSON decoding on the device, you can decode the protobuf messages off-device. To do that you will need to get the .proto files from https://github.com/meshtastic/protobufs. They function as a schema and are required for decoding in Node-RED. Save the files where the node-RED application can access them and note the file path of the "mqtt.proto" file. If you don't want to depend on JSON decoding on the device, you can decode the protobuf messages off-device. To do that you will need to get the .proto files from https://github.com/meshtastic/protobufs. They function as a schema and are required for decoding in Node-RED. Save the files where the node-RED application can access them and note the file path of the "mqtt.proto" file.
@ -91,20 +93,20 @@ https://flows.nodered.org/node/node-red-contrib-protobuf
Drag, drop, and wire the nodes like this. For this example, I ran Node-RED on a Windows machine. Note that file paths might be specified differently on different platforms. MQTT server wild cards are usually the same. A "+" is a single level wildcard for a specific topic level. A "#" is a multiple level wildcard that can be used at the end of a topic filter. The debug messages shown are what happens when the inject button sends a JSON message with a topic designed to be picked up by the specified Meshtastic device and then having it rebroadcast the message. Drag, drop, and wire the nodes like this. For this example, I ran Node-RED on a Windows machine. Note that file paths might be specified differently on different platforms. MQTT server wild cards are usually the same. A "+" is a single level wildcard for a specific topic level. A "#" is a multiple level wildcard that can be used at the end of a topic filter. The debug messages shown are what happens when the inject button sends a JSON message with a topic designed to be picked up by the specified Meshtastic device and then having it rebroadcast the message.
[<img src="/documents/mqtt/NodeRedTwo.jpg" style={{zoom:'50%'}} />](/documents/mqtt/NodeRedTwo.jpg) [<img src="/documents/mqtt/NodeRedTwo.webp" style={{zoom:'50%'}} />](/documents/mqtt/NodeRedTwo.webp)
[<img src="/documents/mqtt/NodeRedThree.jpg" style={{zoom:'50%'}} />](/documents/mqtt/NodeRedThree.jpg) [<img src="/documents/mqtt/NodeRedThree.webp" style={{zoom:'50%'}} />](/documents/mqtt/NodeRedThree.webp)
[<img src="/documents/mqtt/NR_nodes.jpg" style={{zoom:'50%'}} />](/documents/mqtt/NR_nodes.jpg) [<img src="/documents/mqtt/NR_nodes.webp" style={{zoom:'50%'}} />](/documents/mqtt/NR_nodes.webp)
The aedes broker must be set up on the same flow as the other nodes. By activating the Publish debug node, you can see all the published messages. The aedes broker must be set up on the same flow as the other nodes. By activating the Publish debug node, you can see all the published messages.
[<img src="/documents/mqtt/Broker1.jpg" style={{zoom:'50%'}} />](/documents/mqtt/Broker1.jpg) [<img src="/documents/mqtt/Broker1.webp" style={{zoom:'50%'}} />](/documents/mqtt/Broker1.webp)
Receiving a json mqtt message is very simple. Receiving a json mqtt message is very simple.
[<img src="/documents/mqtt/Consume.jpg" style={{zoom:'50%'}} />](/documents/mqtt/Consume.jpg) [<img src="/documents/mqtt/Consume.webp" style={{zoom:'50%'}} />](/documents/mqtt/Consume.webp)
Injecting a json message to be sent by a device is also very simple. You do need the correct envelope. Injecting a json message to be sent by a device is also very simple. You do need the correct envelope.
[<img src="/documents/mqtt/Inject.jpg" style={{zoom:'50%'}} />](/documents/mqtt/Inject.jpg) [<img src="/documents/mqtt/Inject.webp" style={{zoom:'50%'}} />](/documents/mqtt/Inject.webp)
Forwarding a text message from one device, through a broker, to another broker/device/channel would look like this. Forwarding a text message from one device, through a broker, to another broker/device/channel would look like this.
[<img src="/documents/mqtt/Forward.jpg" style={{zoom:'50%'}} />](/documents/mqtt/Forward.jpg) [<img src="/documents/mqtt/Forward.webp" style={{zoom:'50%'}} />](/documents/mqtt/Forward.webp)
If you want to decode text and position messages without json, it gets complicated: If you want to decode text and position messages without json, it gets complicated:
[<img src="/documents/mqtt/DecodeNewest.jpg" style={{zoom:'50%'}} />](/documents/mqtt/DecodeNewest.jpg) [<img src="/documents/mqtt/DecodeNewest.webp" style={{zoom:'50%'}} />](/documents/mqtt/DecodeNewest.webp)
If you are interested in my flow for this it is here: If you are interested in my flow for this it is here:
```json ```json
@ -669,10 +671,10 @@ If you are interested in my flow for this it is here:
(documents/mqtt/Flow.txt) (documents/mqtt/Flow.txt)
Node-red can rapidly (minutes vs days) put together some pretty impressive output when paired with meshtastic. Here is the output of that flow geofencing and mapping via mqtt data. Node-red can rapidly (minutes vs days) put together some pretty impressive output when paired with meshtastic. Here is the output of that flow geofencing and mapping via mqtt data.
[<img src="/documents/mqtt/Mapping.jpg" style={{zoom:'50%'}} />](/documents/mqtt/Mapping.jpg) [<img src="/documents/mqtt/Mapping.webp" style={{zoom:'50%'}} />](/documents/mqtt/Mapping.webp)
Advanced use, such as encoding Position and sending it to a device via MQTT without using JSON can get a little complicated. An example of how it can be done is below. Advanced use, such as encoding Position and sending it to a device via MQTT without using JSON can get a little complicated. An example of how it can be done is below.
[<img src="/documents/mqtt/EncodingPosition.jpg" style={{zoom:'50%'}} />](/documents/mqtt/EncodingPosition.jpg) [<img src="/documents/mqtt/EncodingPosition.webp" style={{zoom:'50%'}} />](/documents/mqtt/EncodingPosition.webp)
The flow is: The flow is:
```json ```json
@ -1001,4 +1003,4 @@ Sending a position to a device for broadcast to the mesh is much easier with JSO
``` ```
An example of doing this in node-red: An example of doing this in node-red:
[<img src="/documents/mqtt/PosJSON.jpg" style={{zoom:'50%'}} />](/documents/mqtt/PosJSON.jpg) [<img src="/documents/mqtt/PosJSON.webp" style={{zoom:'50%'}} />](/documents/mqtt/PosJSON.webp)

View file

@ -210,7 +210,7 @@ When installing Python, make sure to select the option to "Add Python to PATH" o
``` ```
:::note :::note
Be aware that the Meshtastic CLI is not able to control the nodes over USB through termux, but you can control devices over Wifi using the `--host x.x.x.x` option with the device IP address (ESP32 or Pico W only). Wifi connection is currently under development and may not be working properly just yet. If you would like to provide feedback or test this feature, please visit our [forum](https://meshtastic.discourse.group) or join our [Discord server](https://discord.gg/ktMAKGBnBs) for more information. Be aware that the Meshtastic CLI is not able to control the nodes over USB through termux, but you can control devices over Wifi using the `--host x.x.x.x` option with the device IP address (ESP32 or Pico W only). Wifi connection is currently under development and may not be working properly just yet. If you would like to provide feedback or test this feature, please join our [Discord server](https://discord.gg/ktMAKGBnBs) for more information.
::: :::
</TabItem> </TabItem>
@ -218,7 +218,6 @@ Be aware that the Meshtastic CLI is not able to control the nodes over USB throu
**You may need to close and re-open the CLI. The path variables may or may not update for the current session when installing.** **You may need to close and re-open the CLI. The path variables may or may not update for the current session when installing.**
### Standalone Installation (Ubuntu only) ### Standalone Installation (Ubuntu only)
1. Download the `meshtastic_ubuntu` executable from the [Releases](https://github.com/meshtastic/Meshtastic-python/releases) page. 1. Download the `meshtastic_ubuntu` executable from the [Releases](https://github.com/meshtastic/Meshtastic-python/releases) page.
@ -227,6 +226,7 @@ Be aware that the Meshtastic CLI is not able to control the nodes over USB throu
```shell ```shell
chmod +x meshtastic_ubuntu && mv meshtastic_ubuntu meshtastic chmod +x meshtastic_ubuntu && mv meshtastic_ubuntu meshtastic
``` ```
3. To run the CLI: 3. To run the CLI:
```shell ```shell

View file

@ -113,7 +113,7 @@ Writing modified channels to device
Toggling `set-ham` changes your device settings in the following ways. Toggling `set-ham` changes your device settings in the following ways.
| Setting | `set-ham` Default | Normal Default | | Setting | `set-ham` Default | Normal Default |
| :----------: | :---------------: | :------------------------------------------------------------------------: | | :----------: | :---------------: | :----------------------------------------------------------------------------: |
| `IsLicensed` | `true` | See [User Config - IsLicensed](/docs/configuration/radio/user#is-licensed-ham) | | `IsLicensed` | `true` | See [User Config - IsLicensed](/docs/configuration/radio/user#is-licensed-ham) |
| `LongName` | _Your CallSign_ | See [User Config - LongName](/docs/configuration/radio/user#long-name) | | `LongName` | _Your CallSign_ | See [User Config - LongName](/docs/configuration/radio/user#long-name) |
| `ShortName` | _Abrv CallSign_ | See [User Config - ShortName](/docs/configuration/radio/user#short-name) | | `ShortName` | _Abrv CallSign_ | See [User Config - ShortName](/docs/configuration/radio/user#short-name) |
@ -190,6 +190,7 @@ meshtastic --ble AA11BB22-CC33-DD44-EE55-FF6677889900 --info
```shell ```shell
meshtastic --ble Meshtastic_1234 --nodes meshtastic --ble Meshtastic_1234 --nodes
``` ```
#### Export device config with --export-config #### Export device config with --export-config
```shell ```shell
@ -214,8 +215,6 @@ This is a collection of common questions and answers from our friendly forum.
### Permission denied: /dev/ttyUSB0 ### Permission denied: /dev/ttyUSB0
As previously discussed on the [forum](https://meshtastic.discourse.group/t/question-on-permission-denied-dev-ttyusb0/590/3?u=geeksville)
This indicates an OS permission problem for access by your user to the USB serial port. Typically this is fixed by the following. This indicates an OS permission problem for access by your user to the USB serial port. Typically this is fixed by the following.
```shell ```shell

View file

@ -73,9 +73,12 @@ Packet
Protobuf | [Reference](/docs/development/reference/protobufs/) Protobuf | [Reference](/docs/development/reference/protobufs/)
: Protocol Buffers, a method developed by Google for serializing structured data, used in Meshtastic for efficient communication protocol between devices. : Protocol Buffers, a method developed by Google for serializing structured data, used in Meshtastic for efficient communication protocol between devices.
PSK | [Encryption](/docs/overview/encryption/) Pre-Shared Key (PSK) | [Encryption](/docs/overview/encryption/)
: Pre-Shared Key, a secret code or passphrase used in Meshtastic channels for encryption, ensuring that only devices with the matching PSK can communicate within that specific channel. : Pre-Shared Key, a secret code or passphrase used in Meshtastic channels for encryption, ensuring that only devices with the matching PSK can communicate within that specific channel.
Public Key Cryptography (PKC) | [Encryption](/docs/overview/encryption/)
: A cryptographic method introduced in Meshtastic v2.5 for Direct Messages and Admin Messages, where each device uses a unique public and private key pair. The public key, shared with other devices, enables secure message encryption, while the private key allows only the intended recipient to decrypt and authenticate the message. This approach enhances privacy and integrity for both direct device-to-device communication and sensitive admin functions.
Repeater | [Role Definitions](/docs/configuration/radio/device/#roles) Repeater | [Role Definitions](/docs/configuration/radio/device/#roles)
: Infrastructure node for extending network coverage by relaying messages with minimal overhead. Not visible in Nodes list. : Infrastructure node for extending network coverage by relaying messages with minimal overhead. Not visible in Nodes list.

View file

@ -2997,8 +2997,8 @@ packages:
resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
http-proxy-middleware@2.0.6: http-proxy-middleware@2.0.7:
resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} resolution: {integrity: sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==}
engines: {node: '>=12.0.0'} engines: {node: '>=12.0.0'}
peerDependencies: peerDependencies:
'@types/express': ^4.17.13 '@types/express': ^4.17.13
@ -9380,7 +9380,7 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
http-proxy-middleware@2.0.6(@types/express@4.17.21): http-proxy-middleware@2.0.7(@types/express@4.17.21):
dependencies: dependencies:
'@types/http-proxy': 1.17.15 '@types/http-proxy': 1.17.15
http-proxy: 1.18.1 http-proxy: 1.18.1
@ -12130,7 +12130,7 @@ snapshots:
express: 4.21.0 express: 4.21.0
graceful-fs: 4.2.11 graceful-fs: 4.2.11
html-entities: 2.5.2 html-entities: 2.5.2
http-proxy-middleware: 2.0.6(@types/express@4.17.21) http-proxy-middleware: 2.0.7(@types/express@4.17.21)
ipaddr.js: 2.2.0 ipaddr.js: 2.2.0
launch-editor: 2.9.1 launch-editor: 2.9.1
open: 8.4.2 open: 8.4.2

View file

@ -7,10 +7,10 @@ export default function GiscusComponent() {
return ( return (
<Giscus <Giscus
repo="meshtastic/meshtastic" repo="meshtastic/discussions"
repoId="MDEwOlJlcG9zaXRvcnkzMzkzMDEyMjI=" repoId="R_kgDONDs6gA"
category="Blog Post Comments" category="Blog Post Comments"
categoryId="DIC_kwDOFDlTZs4Choq7" categoryId="DIC_kwDONDs6gM4Cjy3h"
mapping="pathname" mapping="pathname"
term="specific-term" //If you didn't select "Discussion title contains a specific term", omit. term="specific-term" //If you didn't select "Discussion title contains a specific term", omit.
strict="1" strict="1"

View file

@ -65,17 +65,6 @@ const SocialCards: SocialCardProps[] = [
/> />
), ),
}, },
{
color: "bg-[#ffffff]",
link: "https://meshtastic.discourse.group",
children: (
<img
alt="discourse"
className="m-auto h-10"
src="/img/homepage/Discourse-Logo-White.svg"
/>
),
},
{ {
color: "bg-[#FF4500]", color: "bg-[#FF4500]",
link: "https://reddit.com/r/meshtastic", link: "https://reddit.com/r/meshtastic",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB