mirror of
https://github.com/meshtastic/meshtastic.git
synced 2024-11-09 23:24:10 -08:00
Merge branch 'master' into credits
This commit is contained in:
commit
b50d3eb397
|
@ -291,7 +291,7 @@ Initial Requirements:
|
|||
|
||||
### Meshtastic channel configuration
|
||||
|
||||
Don't use this on the "Long Range / Slow" or "Long Range / Fast" channel settings. You're welcome to try and report back, but those channels have a [very low bitrate](/docs/about/overview/radio-settings#pre-defined).
|
||||
Don't use this on the "Long Range / Slow" or "Long Range / Fast" channel settings. You're welcome to try and report back, but those channels have a [very low bitrate](/docs/overview/radio-settings#pre-defined).
|
||||
|
||||
Either use a custom channel configuration with at an at least 1kbit data rate or use "Medium Range / Fast".
|
||||
|
||||
|
|
|
@ -17,29 +17,30 @@ Meshtastic is a team of volunteers, and as such there is always plenty of ways t
|
|||
|
||||
There are several developers, testers, and active users on [Discord](https://discord.gg/ktMAKGBnBs).
|
||||
|
||||
## Meshtastic Ecosystem
|
||||
|
||||
There are many technologies (and repositories) used in creating the Meshtastic ecosystem. Below is a breakdown:
|
||||
|
||||
## Protocol buffers
|
||||
### Protocol Buffers
|
||||
|
||||
Most communication and interactions happen with protocol buffers. The [Meshtastic Protobuf Definitions](https://github.com/meshtastic/protobufs) repo is where all of the protocol buffer changes happen. See the [Protobuf API Reference](/docs/developers/protobufs/api) for more details.
|
||||
|
||||
## Firmware
|
||||
### Device Firmware
|
||||
|
||||
The [firmware](https://github.com/meshtastic/firmware) is where all of the firmware development happens. This is where the code for the ESP32 and nRF52 based devices is developed. It is mainly C and C++ code.Think Arduino. It is where the first level of hardware interaction begins and ends.
|
||||
|
||||
## Modules
|
||||
### Firmware Modules
|
||||
|
||||
[Modules](/docs/settings/moduleconfig) are also implemented mainly in the firmware repo above. Typically, you would add functionality in the protobufs repo and the device repo to implement module functionality. You probably also want to have some client/device use/interact with the module and that is where the Device support comes into play.
|
||||
|
||||
## Device Support
|
||||
### CLI Apps (Device Interface)
|
||||
|
||||
The [meshtastic/Meshtastic-python](https://github.com/meshtastic/Meshtastic-python) repository is typically where the first device interaction takes place, but that is not a requirement. This repo has a command line utility that allows you to interact with most functionality with the devices. This python library can also be consumed for other applications.
|
||||
- **Meshtastic Python CLI** - The [meshtastic/Meshtastic-python](https://github.com/meshtastic/Meshtastic-python) repository is typically where the first device interaction takes place, but that is not a requirement. This repo has a command line utility that allows you to interact with most functionality with the devices. This python library can also be consumed for other applications.
|
||||
|
||||
## Web Application
|
||||
### Web Apps (Device Interface)
|
||||
|
||||
The [meshtastic/web](https://github.com/meshtastic/web) repository is where the hosted web server on the ESP32 devices in Typescript is developed. See the [Web interface overview](/docs/software/web-client) for more details.
|
||||
|
||||
The [meshtastic/meshtastic.js](https://github.com/meshtastic/meshtastic.js) repository is a JavaScript library that provides an interface for Meshtastic devices.
|
||||
- **Meshtastic Web** - The [meshtastic/web](https://github.com/meshtastic/web) repository is where the hosted web server on the ESP32 devices in Typescript is developed. See the [Web interface overview](/docs/software/web-client) for more details.
|
||||
- **Meshtastic JS** - The [meshtastic/meshtastic.js](https://github.com/meshtastic/meshtastic.js) repository is a JavaScript library that provides an interface for Meshtastic devices.
|
||||
|
||||
@sachaw has been making tons of progress on the web app and would love help with:
|
||||
|
||||
|
@ -48,13 +49,14 @@ The [meshtastic/meshtastic.js](https://github.com/meshtastic/meshtastic.js) repo
|
|||
* Chat scroll lock
|
||||
* Various module support
|
||||
|
||||
## Phone Apps
|
||||
### Mobile Apps (Device Interface)
|
||||
|
||||
There are two phone apps that interact with the Meshtastic devices:
|
||||
|
||||
- The [meshtastic/Meshtastic-Android](https://github.com/meshtastic/Meshtastic-Android) repository repo contains the Kotlin code for Android based interactions with Meshtastic devices. See [here](/docs/development/android) for how to build/create a development environment for the Meshtastic Android App.
|
||||
- The iOS app is in the process of a complete re-write in Swift and will have the new repo published soon. Note: There are a couple of earlier implementations.
|
||||
- **Android App** - The [meshtastic/Meshtastic-Android](https://github.com/meshtastic/Meshtastic-Android) repository repo contains the Kotlin code for Android based interactions with Meshtastic devices. See the [Android development instructions](/docs/development/android) on how to create a development environment and build the Meshtastic Android App.
|
||||
- **Apple Apps** - The iOS applications are in the process of a complete re-write in Swift and will have the new repo published soon. Note: There are a couple of earlier implementations.
|
||||
|
||||
## Documentation
|
||||
### Documentation
|
||||
|
||||
This website is in the [Meshtastic](https://github.com/meshtastic/meshtastic) repository.
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ Push the left PWR button for about 10 seconds.
|
|||
|
||||
### How can I tell the device not to sleep?
|
||||
|
||||
- Android instructions see: [Android Usage](/docs/software/android/android-usage#configuration-options)
|
||||
- Android instructions see: [Android Usage](/docs/software/android/usage#configuration-options)
|
||||
- Python CLI instructions see: [Python Usage](/docs/software/python/cli/usage#changing-settings)
|
||||
|
||||
### Why does only one RAK Meshtastic Starter kit show up in my node list?
|
||||
|
|
|
@ -11,7 +11,7 @@ Meshtastic® is a project that enables you to use inexpensive LoRa radios as a l
|
|||
|
||||
### Features
|
||||
|
||||
- Long range ([_166km record by Puzzled Pancake_](/docs/about/overview/range-test#current-record))
|
||||
- Long range ([_166km record by PuzzledPancake_](/docs/overview/range-tests#current-record))
|
||||
- No phone required for mesh communication
|
||||
- Encrypted communication
|
||||
- Excellent battery life
|
||||
|
@ -34,7 +34,7 @@ If you are interested in a more technical overview of how Meshtastic works, visi
|
|||
className={'button button--outline button--lg cta--button'}
|
||||
to={'/docs/overview'}
|
||||
>
|
||||
Overview
|
||||
Technical Overview
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
|
@ -42,10 +42,23 @@ If you are interested in a more technical overview of how Meshtastic works, visi
|
|||
|
||||
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).
|
||||
|
||||
<div className="indexCtasBody">
|
||||
<Link
|
||||
className={'button button--outline button--lg cta--button'}
|
||||
to={'/docs/contributing'}
|
||||
>
|
||||
Contribute!
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
<!--- FIXME add Github organization list/contributor list --->
|
||||
|
||||
## Start using Meshtastic!
|
||||
|
||||
Hopefully your "Getting Started" experience is straight forward and headache free. If you encounter any issues, please consider updating our documentation to improve future user experiences or reach out on the forum or Discord.
|
||||
|
||||
Our support is 100% volunteer based. We are passionate about the project and hope to help newcomers become Meshtastic experts!
|
||||
|
||||
<div className="indexCtasBody">
|
||||
<Link
|
||||
className={'button button--outline button--lg cta--button'}
|
||||
|
@ -54,7 +67,3 @@ Meshtastic is an open source project available on GitHub. Our generous volunteer
|
|||
Getting Started
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
Hopefully your "Getting Started" experience is straight forward and headache free. If you encounter any issues, please consider updating our documentation to improve future user experiences or reach out on the forum or Discord.
|
||||
|
||||
Our support is 100% volunteer based. We are passionate about the project and hope to help newcomers become Meshtastic experts!
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
id: encryption
|
||||
title: Meshtastic Encryption
|
||||
sidebar_label: Encryption
|
||||
sidebar_position: 2
|
||||
slug: /overview/encryption
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
Cryptography is tricky, so we've tried to 'simply' apply standard crypto solutions to our implementation. However, the project developers are not cryptography experts. Therefore we ask two things:
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
---
|
||||
id: mesh-alg
|
||||
id: mesh-algo
|
||||
title: Mesh Broadcast Algorithm
|
||||
slug: /overview/mesh-algo
|
||||
sidebar_label: Mesh Algorithm
|
||||
sidebar_position: 1
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
## Current Algorithm
|
||||
|
@ -25,7 +26,7 @@ This preamble allows receiving radios to synchronize clocks and start framing. W
|
|||
This layer is conventional non-reliable LoRa packet transmission. The transmitted packet has the following representation before encoding for transmission:
|
||||
|
||||
| Offset | Length | Type | Usage |
|
||||
| ------------ | ----------------------------- | ------- | ---------------------------------------------------------------------------------------- |
|
||||
|:------------:|:-----------------------------:|:-------:|:---------------------------------------------------------------------------------------- |
|
||||
| 0x00 | 1 byte | Integer | syncWord, always `0x2B`. |
|
||||
| 0x01 | 4 bytes | Integer | Packet header: Destination. The destination's unique NodeID. `0xFFFFFFFF` for broadcast. |
|
||||
| 0x05 | 4 bytes | Integer | Packet Header: Sender. The sender's unique NodeID. |
|
||||
|
@ -37,7 +38,7 @@ This layer is conventional non-reliable LoRa packet transmission. The transmitte
|
|||
#### Packet Header Flags
|
||||
|
||||
| Index | # of Bits | Usage |
|
||||
| ------- | --------- | ------------------------------ |
|
||||
|:-------:|:---------:|:------------------------------|
|
||||
| 0 | 3 | HopLimit (see note in Layer 3) |
|
||||
| 3 | 1 | WantAck |
|
||||
| 4 .. 32 | 28 | Currently unused |
|
||||
|
@ -50,7 +51,7 @@ This layer is conventional non-reliable LoRa packet transmission. The transmitte
|
|||
|
||||
- **Packet Header - Unique ID:** The ID is a large, 32 bit ID to ensure there is enough unique state to protect an encrypted payload from attack.
|
||||
|
||||
- **Payload:** An encrypted and packed protobuf encoding of the SubPacket protobuf. Only the SubPacket is encrypted, while headers are not. This allows the option of eventually allowing nodes to route packets without knowing anything about the encrypted payload. For more information, see the [encryption](/docs/about/overview/encryption) and [protobufs](/docs/developers/protobufs/api) documentation. Any data past the maximum length is truncated.
|
||||
- **Payload:** An encrypted and packed protobuf encoding of the SubPacket protobuf. Only the SubPacket is encrypted, while headers are not. This allows the option of eventually allowing nodes to route packets without knowing anything about the encrypted payload. For more information, see the [encryption](/docs/overview/encryption) and [protobufs](/docs/developers/protobufs/api) documentation. Any data past the maximum length is truncated.
|
||||
|
||||
#### Carrier-Sense Multiple Access with Collision Avoidance (CSMA/CA)
|
||||
|
||||
|
|
|
@ -1,67 +1,72 @@
|
|||
---
|
||||
id: radio-settings
|
||||
title: Radio Settings
|
||||
slug: /overview/radio-settings
|
||||
sidebar_label: Radio Settings
|
||||
sidebar_position: 3
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
We use the same channel maps as LoRaWAN (though this is not LoRaWAN).
|
||||
(Note, not the same channel map as TTN for US frequencies.)
|
||||
:::info
|
||||
Meshtastic is **not** LoRaWAN, Helium or TTN (TheThingsNetwork). Meshtastic uses the full spectrum frequency range designated to LoRa technology per region. This allows for several hundred possible frequency channels in the US region alone.
|
||||
:::
|
||||
|
||||
![freq table](/img/LoRa-Frequency-Bands.jpg)
|
||||
:::info
|
||||
Power limits will generally be lifted in the software if `is_licensed` is set to `true`. See [HAM Mode](/docs/faq#amateur-radio-ham) for more information.
|
||||
:::
|
||||
|
||||
See [this site](https://www.rfwireless-world.com/Tutorials/LoRa-channels-list.html) for more information.
|
||||
|
||||
## LoRaWAN Europe Frequency Band
|
||||
|
||||
The maximum power allowed is +14dBm ERP (Effective Radiated Power, see [this site](https://en.wikipedia.org/wiki/Effective_radiated_power) for more information).
|
||||
## Europe Frequency Bands
|
||||
|
||||
### 433 MHz
|
||||
|
||||
There are eight channels defined with a 0.2 MHz gap between them.
|
||||
Channel zero starts at 433.175 MHz
|
||||
The maximum power allowed for Europe is +14 dBm ERP ([Effective Radiated Power](https://en.wikipedia.org/wiki/Effective_radiated_power)).
|
||||
|
||||
### 870 MHz
|
||||
The band range is from 433 to 434 MHz.
|
||||
|
||||
There are eight channels defined with a 0.3 MHz gap between them.
|
||||
Channel zero starts at 865.20 MHz
|
||||
There are four channels defined with the standard radio preset `LongFast`. After factory reset the radio will be set to channel 3 with a center frequency of 433.875 MHz.
|
||||
|
||||
## LoRaWAN for North America
|
||||
### 868 MHz
|
||||
|
||||
LoRaWAN defines 64, 125 kHz channels from 902.3 to 914.9 MHz increments.
|
||||
The maximum power allowed for Europe is +27 dBm ERP ([Effective Radiated Power](https://en.wikipedia.org/wiki/Effective_radiated_power)).
|
||||
|
||||
The maximum output power for North America is +30 dBm ERP.
|
||||
The band range is from 869.40 to 869.65 MHz. This is less than the 863–870 MHz range defined as SRD Band, but allows for a higher ERP and a duty cycle of 10%.
|
||||
|
||||
The band is from 902 to 928 MHz. It mentions channel number and its respective channel frequency. All the 13 channels are separated by 2.16 MHz with respect to the adjacent channels.
|
||||
Channel zero starts at 903.08 MHz center frequency.
|
||||
There is one channel defined with the standard radio preset `LongFast`. After factory reset the radio will be set to channel 0 with a center frequency of 869.525 MHz.
|
||||
|
||||
## Data-rates
|
||||
## North America Frequency Bands
|
||||
|
||||
### About
|
||||
### 915 MHz (ISM Band)
|
||||
|
||||
Various data-rates are selectable when configuring a channel and are inversely proportional to the theoretical range of the devices.
|
||||
The maximum output power for North America is +30 dBm ERP ([Effective Radiated Power](https://en.wikipedia.org/wiki/Effective_radiated_power)).
|
||||
|
||||
Considerations:
|
||||
The band range is from 902 to 928 MHz.
|
||||
|
||||
- Spreading Factor - How much we "spread" our data over time.
|
||||
There are 104 channels defined with the standard radio preset `LongFast`. After factory reset the radio will be set to channel 19 with a center frequency of 906.875 MHz.
|
||||
|
||||
## Data Rates
|
||||
|
||||
### Considerations
|
||||
|
||||
Various data-rate options are available when configuring a channel and are inversely proportional to the theoretical range of the devices.
|
||||
|
||||
- **Spreading Factor** - How much we "spread" our data over time.
|
||||
- Each step up in Spreading Factor doubles the airtime to transmit.
|
||||
- Each step up in Spreading Factor adds about 2.5db extra link budget.
|
||||
- Bandwidth - How big of a slice of the spectrum we use.
|
||||
- **Bandwidth** - How big of a slice of the spectrum we use.
|
||||
- Each doubling of the bandwidth is almost 3db less link budget.
|
||||
- Bandwidths less than 31 may be unstable unless you have a high quality Crystal Oscillator.
|
||||
- Coding Rate - How much redundancy we encode to resist noise.
|
||||
- **Coding Rate** - How much redundancy we encode to resist noise.
|
||||
- Increasing coding rate increases reliability while decreasing data-rate.
|
||||
- 4/5 - 1.25x overhead
|
||||
- 4/6 - 1.5x overhead
|
||||
- 4/7 - 1.75x overhead
|
||||
- 4/8 - 2x overhead
|
||||
|
||||
### Pre-Defined
|
||||
### Predefined Channels
|
||||
|
||||
We have six predefined channels. 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 / Fast | Short Fast | 6.8 kbps | 7 / 128 | 4/8 | 250 | 137dB |
|
||||
| Short Range / Slow | Short Slow | 3.9 kbps | 8 / 256 | 4/8 | 250 | 140dB |
|
||||
| Medium Range / Fast | Medium Fast | 2.2 kbps | 9 / 512 | 4/8 | 250 | 143dB |
|
||||
|
@ -70,7 +75,10 @@ We have six predefined channels. These are the most common settings and have bee
|
|||
| Long Range / Slow | Long Slow | 0.18 kbps | 12 / 4096 | 4/8 | 125 | 154dB |
|
||||
| Very Long Range - Slow | Very Long Slow | 0.05 kbps | 12 / 4096 | 4/8 | 31.25 | 160.1dB |
|
||||
|
||||
Note: 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. Data-rate in this table is actual measured but doesn't count mesh overhead, hops and re-transmissions.
|
||||
|
||||
:::note
|
||||
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. Data-rate in this table is actual measured but doesn't count mesh overhead, hops and re-transmissions.
|
||||
:::
|
||||
|
||||
### Custom Settings
|
||||
|
||||
|
@ -85,7 +93,7 @@ After applying the settings, you will need to restart the device. After your dev
|
|||
Some example settings:
|
||||
|
||||
| Data-rate | SF / Symbols | Coding Rate | Bandwidth | Link Budget | Note |
|
||||
| :--------- | :----------- | :---------- | :-------- | :---------- | :----------------------------------------------------------------------- |
|
||||
| :---------:| :-----------:| :----------:| :--------:| :----------:| :----------------------------------------------------------------------- |
|
||||
| 37.50 kbps | 6 / 64 | 4/5 | 500 | 129dB | Fastest possible speed |
|
||||
| 3.125 kbps | 8 / 256 | 4/5 | 125 | 143dB | |
|
||||
| 1.953 kbps | 8 / 256 | 4/8 | 125 | 143dB | |
|
||||
|
@ -104,7 +112,7 @@ These channel settings may have not been tested. Use at your own discretion. Sha
|
|||
|
||||
## Cryptography
|
||||
|
||||
The preshared key used by the devices can be modified.
|
||||
The pre-shared key (PSK) used by the devices can be modified.
|
||||
|
||||
- 0 = No crypto
|
||||
- 1 = Default channel key
|
||||
|
|
|
@ -1,25 +1,38 @@
|
|||
---
|
||||
id: range-tests
|
||||
title: Range Tests
|
||||
slug: /overview/range-tests
|
||||
sidebar_label: Range Tests
|
||||
sidebar_position: 1
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
## Current Record
|
||||
|
||||
- **Range:** 166km (103 miles)
|
||||
- **Record Holder:** _PuzzledPancake_
|
||||
- **Firmware Version:** 1.2
|
||||
- **Source:** [Meshtastic Discourse](https://meshtastic.discourse.group/t/practical-range-test-results/692/44)
|
||||
|
||||
**Modem Settings**
|
||||
- **Frequency:** 868MHz
|
||||
- **Bandwidth:** 125
|
||||
- **Spread Factor:** 12
|
||||
- **Coding Rate:** 4/8
|
||||
- **Device A:** [LILYGO TTGO T-Beam w/ SX1262](/docs/hardware/devices/tbeam)
|
||||
- **Antenna:** Omnidirectional
|
||||
- **Device B:** [LILYGO TTGO T-Beam w/ SX1262](/docs/hardware/devices/tbeam)
|
||||
- **Antenna:** Omnidirectional
|
||||
|
||||
**Node A**
|
||||
- **Device:** [LILYGO TTGO T-Beam w/ SX1262](/docs/hardware/devices/tbeam)
|
||||
- **Firmware Version:** 1.2
|
||||
- **Antenna:** [868MHz 5dBi Antenna](https://ivent.co.nz/product/category/1000/868mhz%205dbi%20antenna%20193mm%20black%20sma%20%28m%29/38646)
|
||||
|
||||
**Node B**
|
||||
- **Device:** [LILYGO TTGO T-Beam w/ SX1262](/docs/hardware/devices/tbeam)
|
||||
- **Firmware Version:** 1.2
|
||||
- **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)
|
||||
|
||||
![Node A](https://canada1.discourse-cdn.com/free1/uploads/meshtastic/optimized/2X/9/99ec4bcc18b21f4e95ac1bcc0592b608c9c4f567_2_1332x1000.jpeg)
|
||||
|
||||
![Node B](https://canada1.discourse-cdn.com/free1/uploads/meshtastic/optimized/2X/1/1c8bd5fc41f7bab925404b657a9c481882de9313_2_1332x1000.jpeg)
|
||||
|
||||
**Resources Used**
|
||||
- http://www.heywhatsthat.com
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
| Region Code | Description |
|
||||
| :-------: | :--------: |
|
||||
| `UNSET` | Unset |
|
||||
|
@ -13,3 +14,4 @@
|
|||
| `IN` | India |
|
||||
| `NZ_865` | New Zealand 865MHz |
|
||||
| `TH` | Thailand |
|
||||
| `LORA_24` | 2.4 GHz band worldwide |
|
|
@ -10,11 +10,15 @@ import TabItem from '@theme/TabItem';
|
|||
|
||||
The Bluetooth config options are: Enabled, Pairing Mode and Fixed PIN Value. Bluetooth config uses an admin message sending a `Config.Bluetooth` protobuf.
|
||||
|
||||
:::info
|
||||
On ESP32 Bluetooth will be disabled if WiFi is enabled. The WiFi setting takes precedence.
|
||||
:::
|
||||
|
||||
## Bluetooth Config Values
|
||||
|
||||
### Enabled
|
||||
|
||||
Enables Bluetooth
|
||||
Enables Bluetooth.
|
||||
|
||||
### Pairing Mode
|
||||
|
||||
|
@ -26,32 +30,32 @@ Finally, `NO_PIN` disables PIN authentication.
|
|||
|
||||
### Fixed PIN
|
||||
|
||||
If your pairing mode is set to fixed PIN this is the value of that fixed 6 digit pin. Default value is 123456
|
||||
If your pairing mode is set to fixed PIN this is the value of that fixed 6 digit pin. Default value is 123456. For all other pairing modes, this number is ignored.
|
||||
|
||||
## Bluetooth Module Config Client Availability
|
||||
## Configure Bluetooth Config
|
||||
|
||||
<Tabs
|
||||
groupId="settings"
|
||||
defaultValue="apple"
|
||||
defaultValue="cli"
|
||||
values={[
|
||||
{label: 'Android', value: 'android'},
|
||||
{label: 'Apple', value: 'apple'},
|
||||
{label: 'CLI', value: 'cli'},
|
||||
{label: 'Flasher', value: 'flasher'},
|
||||
{label: 'Web', value: 'web'},
|
||||
]}>
|
||||
<TabItem value="android">
|
||||
|
||||
:::info
|
||||
Bluetooth module config is not available for Android.
|
||||
Bluetooth config is not available for Android.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="apple">
|
||||
|
||||
:::info
|
||||
All Bluetooth config values are available on iOS, iPadOS and macOS at Settings > Radio Configuration > Position.
|
||||
:::
|
||||
All Bluetooth config values are available on iOS, iPadOS and macOS.
|
||||
|
||||
1. Open the Meshtastic App
|
||||
2. Navigate to: **Settings > Radio Configuration > Position**
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="cli">
|
||||
|
|
|
@ -105,14 +105,13 @@ values={[
|
|||
{label: 'Android', value: 'android'},
|
||||
{label: 'Apple', value: 'apple'},
|
||||
{label: 'CLI', value: 'cli'},
|
||||
{label: 'Flasher', value: 'flasher'},
|
||||
{label: 'Web', value: 'web'},
|
||||
]}>
|
||||
|
||||
<TabItem value="android">
|
||||
|
||||
:::info
|
||||
All Channel config options are available on Android.
|
||||
Limited Channel config options are available on android. QR code scanning is available.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
|
@ -120,14 +119,16 @@ All Channel config options are available on Android.
|
|||
<TabItem value="apple">
|
||||
|
||||
:::info
|
||||
All Channel config options are available on iOS, iPadOS and macOS.
|
||||
Channel settings are only available on Apple platforms by scanning QR codes.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="cli">
|
||||
|
||||
:::info
|
||||
All Channel config options are available in the python CLI. Example commands are below:
|
||||
:::
|
||||
|
||||
**Id**
|
||||
|
||||
|
@ -191,14 +192,6 @@ meshtastic --ch-set downlink_enabled false --ch-index 5
|
|||
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="flasher">
|
||||
|
||||
:::info
|
||||
All Channel config options are available in the Flasher.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="web">
|
||||
|
||||
:::info
|
||||
|
|
|
@ -16,27 +16,41 @@ The display config options are: Screen On Duration, Auto Carousel Interval, Alwa
|
|||
How long the screen remains on after the user button is pressed or messages are received.
|
||||
|
||||
### Auto Carousel Interval
|
||||
|
||||
Automatically toggles to the next page on the screen like a carousel, based the specified interval.
|
||||
|
||||
### Always Point North
|
||||
|
||||
If this is set, the compass heading on the screen outside of the circle will always point north. This feature is off by default and the top of display represents your heading direction, the North indicator will move around the circle.
|
||||
|
||||
### GPS Format
|
||||
|
||||
The format used to display GPS coordinates on the device screen.
|
||||
|
||||
Acceptable values:
|
||||
|
||||
| Value | Description |
|
||||
| :-------: | :--------------------------: |
|
||||
| `gpsFormatDec` | Decimal Degrees |
|
||||
| `gpsFormatDms` | Degrees Minutes Seconds |
|
||||
| `gpsFormatUtm` | Universal Transverse Mercator |
|
||||
| `gpsFormatMgrs` | Military Grid Reference System |
|
||||
| `gpsFormatOlc` | Open Location Code (Plus Codes) |
|
||||
| `gpsFormatOsgr` | Ordnance Survey Grid Reference |
|
||||
| `DEC` | Decimal Degrees |
|
||||
| `DMS` | Degrees Minutes Seconds |
|
||||
| `UTM` | Universal Transverse Mercator |
|
||||
| `MGRS` | Military Grid Reference System |
|
||||
| `OLC` | Open Location Code (Plus Codes) |
|
||||
| `OSGR` | Ordnance Survey Grid Reference |
|
||||
|
||||
### Prefered display units
|
||||
switch between `METRIC` (default) and `IMPERIAL` units
|
||||
|
||||
### Flip Screen
|
||||
If enabled, the screen will be rotated 180 degrees, for cases that mount the screen upside down
|
||||
|
||||
### OLED Defintion
|
||||
The type of OLED Controller is auto-detected by default, but can be defined with this setting if the auto-detection fails.
|
||||
|
||||
Acceptable values:
|
||||
|
||||
| Value | Description |
|
||||
| :-------: | :--------------------------: |
|
||||
| `OLED_AUTO` | Auto detect display controller |
|
||||
| `OLED_SSD1306` | Always use SSD1306 driver |
|
||||
| `OLED_SH1106` | Always use SH1106 driver |
|
||||
|
||||
## Device Config Client Availability
|
||||
|
||||
|
@ -80,7 +94,7 @@ meshtastic --set display.auto_screen_carousel_secs 120
|
|||
```
|
||||
|
||||
```shell title="Specify GPS format on device screen"
|
||||
meshtastic --set display.gps_format GpsFormatUTM
|
||||
meshtastic --set display.gps_format UTM
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
|
|
@ -9,7 +9,7 @@ import Tabs from '@theme/Tabs';
|
|||
import TabItem from '@theme/TabItem';
|
||||
import LoRaRegions from '../../blocks/_lora-regions.mdx';
|
||||
|
||||
The LoRa config options are: Region, Modem Preset, Max Hops, Transmit Power, Bandwidth, Spread Factor, Coding Rate, Frequency Offset, Transmit Enabled and Ignore Incoming Array. LoRa config uses an admin message sending a `Config.LoRa` protobuf.
|
||||
The LoRa config options are: Region, Modem Preset, Max Hops, Transmit Power, Bandwidth, Spread Factor, Coding Rate, Frequency Offset, Transmit Enabled, Channel Number and Ignore Incoming Array. LoRa config uses an admin message sending a `Config.LoRa` protobuf.
|
||||
|
||||
## LoRa Config Values
|
||||
|
||||
|
@ -18,13 +18,15 @@ You must set your device's `lora.region` setting. This will ensure that you are
|
|||
:::
|
||||
|
||||
### Region
|
||||
Sets the region for your node. Default is `unset`.
|
||||
Sets the region for your node. Default is `unset`. As long as this is not set, the node screen will display a message and not transmit any packets.
|
||||
|
||||
<LoRaRegions />
|
||||
|
||||
### Modem Preset
|
||||
Use a sensible default for the modem. Default is `unset` which equates to `LONG_FAST`. Also 'Use Presets' has to be defined, which is the default. If 'Use Presets' is not defined, the modem will be configured manually with Bandwidth, Spread Factor, and Coding Rate.
|
||||
|
||||
### Max Hops
|
||||
Maximum number of hops. This can't be greater than 7. Default is 3 which should be fine for most applications. _**Really, 3 is fine.**_
|
||||
|
||||
### Transmit Power
|
||||
|
||||
|
@ -36,7 +38,7 @@ In most cases you should use zero here. Units are in dBm.
|
|||
|
||||
Bandwidth in MHz
|
||||
|
||||
Certain bandwidth numbers are 'special' and will be converted to the appropriate floating point value: 31 -> 31.25MHz
|
||||
Certain bandwidth numbers are 'special' and will be converted by the device firmware to the appropriate floating point value: 31 -> 31.25MHz
|
||||
|
||||
### Spread Factor
|
||||
|
||||
|
@ -56,7 +58,10 @@ A frequency offset that is added to to the calculated band center frequency. Use
|
|||
|
||||
Allows you to enable and disable transmit (TX) from the LoRa radio. Useful for hot-swapping antennas and other tests.
|
||||
|
||||
Defaults to false
|
||||
Defaults to true
|
||||
|
||||
### 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".
|
||||
|
||||
### Ignore Incoming Array
|
||||
|
||||
|
@ -95,7 +100,7 @@ LoRa config commands are available in the python CLI. Example commands are below
|
|||
| Setting | Acceptable Values | Default |
|
||||
| :----------: | :---------------------------------------------------------------------------: | :---------------: |
|
||||
| lora.modem_preset | `LONG_FAST`, `LONG_SLOW`, `VERY_LONG_SLOW`, `MEDIUM_SLOW`, `MEDIUM_FAST`, `SHORT_SLOW`, `SHORT_FAST` | `LONG_FAST` |
|
||||
| lora.region | `UNSET`, `US`, `EU_433`, `EU_868`, `CN`, `JP`, `ANZ`, `KR`, `TW`, `RU` ,`IN`, `NZ_865`, `TH` | `UNSET` |
|
||||
| lora.region | `UNSET`, `US`, `EU_433`, `EU_868`, `CN`, `JP`, `ANZ`, `KR`, `TW`, `RU` ,`IN`, `NZ_865`, `TH`, `LORA_24` | `UNSET` |
|
||||
| lora.hop_limit | `1`,`2`,`3`,`4`,`5`,`6`,`7` | `3` |
|
||||
</TabItem>
|
||||
<TabItem value="flasher">
|
||||
|
|
|
@ -8,7 +8,7 @@ sidebar_label: Network
|
|||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
The Network config options are: WiFi Enabled, WiFi SSID, WiFi PSK, and NTP Server. Network config uses an admin message sending a `Config.Network` protobuf.
|
||||
The Network config options are: WiFi Enabled, WiFi SSID, WiFi PSK, Ethernet Enabled, IPv4 Networking Mode, Static Address and NTP Server. Network config uses an admin message sending a `Config.Network` protobuf.
|
||||
|
||||
:::info
|
||||
Enabling WiFi will disable Bluetooth. Only one connection method will work at a time.
|
||||
|
@ -42,9 +42,23 @@ This is your WiFi Networks password.
|
|||
|
||||
Empty `""` by default. (Case Sensitive, Max Length: 64)
|
||||
|
||||
### Ethernet Enabled
|
||||
|
||||
Enables or Disables Ethernet.
|
||||
|
||||
Set to `false` (Disabled) by default.
|
||||
|
||||
### IPv4 Networking Mode
|
||||
|
||||
Set to `DHCP` by default. Change to `STATIC` to use a static IP address. Applies to both Ethernet and WiFi.
|
||||
|
||||
### IPv4 Static Address configuration
|
||||
|
||||
contains ip, gateway, subnet and dns server in case you want a static configuration.
|
||||
|
||||
|
||||
:::tip
|
||||
The first time your device restarts after enabling WiFi, it will take an additional 20-30 seconds to boot. This is to generate self-signed SSL keys. The keys will be saved for future reuse.
|
||||
The first time your device restarts after enabling WiFi or Ethernet, it will take an additional 20-30 seconds to boot. This is to generate self-signed SSL keys. The keys will be saved for future reuse.
|
||||
:::
|
||||
|
||||
## Network Config Client Availability
|
||||
|
|
|
@ -8,18 +8,12 @@ sidebar_label: Power
|
|||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
The power config options are: Charge Current, Power Saving, Shutdown after losing power, ADC Multiplier Override Wait Bluetooth Interval, Mesh Super Deep Sleep Timeout, Super Deep Sleep Interval, Light Sleep Interval and Minimum Wake Interval. Power config uses an admin message sending a `Config.Power` protobuf.
|
||||
The power config options are: Power Saving, Shutdown after losing power, ADC Multiplier Override Wait Bluetooth Interval, Mesh Super Deep Sleep Timeout, Super Deep Sleep Interval, Light Sleep Interval and Minimum Wake Interval. Power config uses an admin message sending a `Config.Power` protobuf.
|
||||
|
||||
Power settings are advanced configuration, most users should choose a role under Device Config to manage power for their device and should never need to touch any of these settings.
|
||||
|
||||
## Power Config Values
|
||||
|
||||
### Charge Current
|
||||
|
||||
**Tbeam 1.1 only setting**
|
||||
|
||||
Sets the current of the battery charger using the AXP power chip on the Tbeam 1.1
|
||||
|
||||
### Power Saving
|
||||
|
||||
If set, we are powered from a low-current source (i.e. solar), so even if it looks like we have power flowing in we should try to minimize power consumption as much as possible.
|
||||
|
@ -104,7 +98,6 @@ All Power config options are available in the python CLI.
|
|||
|
||||
| Setting | Acceptable Values | Default |
|
||||
| :----------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------: |
|
||||
| power.charge_current | `MAUnset`, `MA100`, `MA190`, `MA280`, `MA360`, `MA450`, `MA550`, `MA630`, `MA700`, `MA780`, `MA880`, `MA960`, `MA1000`, `MA1080`, `MA1160`, `MA1240`, `MA1320`: | `MAUnset` |
|
||||
| power.is_power_saving | `true`, `false` | `false` |
|
||||
| power.on_battery_shutdown_after_secs | `integer` (seconds) | Default of `0` is off |
|
||||
| power.adc_multiplier_override | `2-4` (floating point value) | Default of `0` uses firmware values |
|
||||
|
@ -115,11 +108,6 @@ All Power config options are available in the python CLI.
|
|||
| power.min_wake_secs | `integer` (seconds) | Default of `0` is 10 seconds |
|
||||
|
||||
|
||||
```shell title="Set / Unset charge current (Tbeam 1.1 only)"
|
||||
meshtastic --set power.charge_current MAUnset
|
||||
meshtastic --set power.charge_current MA100
|
||||
```
|
||||
|
||||
```shell title="Enable / Disable Power Saving"
|
||||
meshtastic --set power.is_power_saving true
|
||||
meshtastic --set power.is_power_saving false
|
||||
|
|
129
docs/configuration/module-config/audio.mdx
Normal file
129
docs/configuration/module-config/audio.mdx
Normal file
|
@ -0,0 +1,129 @@
|
|||
---
|
||||
id: audio
|
||||
title: Audio Module Configuration
|
||||
slug: /settings/moduleconfig/audio
|
||||
sidebar_label: Audio
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
The audio module config options are: Codec2 Enabled, Microphone ADC Channel, Speaker PWM GPIO, PTT GPIO, Audio Bitrate/Codec Mode. Audio Module config uses an admin message sending a `ConfigModule.Audio` protobuf.
|
||||
|
||||
With this **experimental** module, you can add a microphone and speaker to any ESP32 device that has a SX128x radio and operates on the 2.4 GHz ISM Band. The Sub-1GHz bands are not wide enough to support continuous audio packets on the mesh, even in the Short and Fast modes. Right now, the only device supported is the LilyGo TLora 2.1-1.8 board.
|
||||
|
||||
## Audio Module Config Values
|
||||
|
||||
### Codec2 Enabled
|
||||
|
||||
Enables the audio module.
|
||||
|
||||
### Microphone ADC Channel
|
||||
|
||||
The ADC channel to use for the microphone. The default is 6 which maps to GPIO 34 on the ESP32.
|
||||
|
||||
### Speaker PWM GPIO
|
||||
|
||||
The GPIO to use for the speaker. The default is GPIO 14 on the ESP32.
|
||||
|
||||
### PTT GPIO
|
||||
|
||||
The GPIO to use for the Push-To-Talk button. The default is GPIO 39 on the ESP32.
|
||||
|
||||
### Audio Bitrate/Codec Mode
|
||||
|
||||
The bitrate to use for audio. The default is `CODEC2_700B`. The available options are:
|
||||
|
||||
* CODEC2_DEFAULT
|
||||
* CODEC2_3200
|
||||
* CODEC2_2400
|
||||
* CODEC2_1600
|
||||
* CODEC2_1400
|
||||
* CODEC2_1300
|
||||
* CODEC2_1200
|
||||
* CODEC2_700B
|
||||
* CODEC2_700
|
||||
|
||||
## Audio Module Config Client Availability
|
||||
|
||||
<Tabs
|
||||
groupId="settings"
|
||||
defaultValue="apple"
|
||||
values={[
|
||||
{label: 'Android', value: 'android'},
|
||||
{label: 'Apple', value: 'apple'},
|
||||
{label: 'CLI', value: 'cli'},
|
||||
{label: 'Flasher', value: 'flasher'},
|
||||
{label: 'Web', value: 'web'},
|
||||
]}>
|
||||
<TabItem value="android">
|
||||
|
||||
:::info
|
||||
Audio module config is not available for Android.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="apple">
|
||||
|
||||
:::info
|
||||
Audio module config is not available on iOS, iPadOS and macOS.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="cli">
|
||||
|
||||
All audio module config options are available in the python CLI. Example commands are below:
|
||||
|
||||
| Setting | Acceptable Values | Default |
|
||||
| :-------------------: | :-----------------: | :-----: |
|
||||
| audio.enabled | `true`, `false` | `false` |
|
||||
| audio.mic_chan | ADC Number 0-7 | Default of `6` is Unset |
|
||||
| audio.amp_pin | GPIO Pin Number 1-33 | Default of `14` is Unset |
|
||||
| audio.ptt_pin | GPIO Pin Number 1-39 | Default of `39` is Unset |
|
||||
| audio.bitrate | `CODEC2_DEFAULT` `CODEC2_3200` `CODEC2_2400` `CODEC2_1600` `CODEC2_1400` `CODEC2_1300` `CODEC2_1200` `CODEC2_700B` `CODEC2_700` | `CODEC2_DEFAULT` |
|
||||
|
||||
|
||||
```shell title="Enable / Disable Module"
|
||||
meshtastic --set audio.enabled true
|
||||
meshtastic --set audio.enabled false
|
||||
```
|
||||
|
||||
```shell title="Set ADC Channel number 7"
|
||||
meshtastic --set audio.mic_chan 7
|
||||
```
|
||||
|
||||
```shell title="Set PWM to GPIO pin number 28"
|
||||
meshtastic --set audio.amp_pin 28
|
||||
```
|
||||
|
||||
```shell title="Set PTT to GPIO pin number 37"
|
||||
meshtastic --set audio.ptt_pin 37
|
||||
```
|
||||
|
||||
```shell title="Set Codec Bitrate"
|
||||
meshtastic --set audio.bitrate CODEC2_DEFAULT
|
||||
meshtastic --set audio.bitrate CODEC2_1400
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="flasher">
|
||||
|
||||
:::info
|
||||
No audio module config options are available in the Flasher.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="web">
|
||||
|
||||
:::info
|
||||
All audio module config options are available in the Web UI.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
:::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.
|
||||
|
||||
This module requires attaching a peripheral accessory to your device. It will not work without one.
|
||||
:::
|
|
@ -37,7 +37,7 @@ Input event sources accepted by the canned message module.
|
|||
| :----------: | :---------------------------------------------------------------------: |
|
||||
| `_any` | Default. Allows any peripheral input device connected to the device. |
|
||||
| `rotEnc1` | Basic Rotary Encoder |
|
||||
| `upDownEnc1` | Up Down Encoder (use this also for RAK14006) |
|
||||
| `upDownEnc1` | Up Down Encoder (use this also for RAK14006 Rotary Encoder) |
|
||||
| `cardkb` | M5 Stack CardKB (this covers RAK14004 Keymatrix) |
|
||||
|
||||
### Rotary Encoder Enabled
|
||||
|
@ -140,7 +140,7 @@ meshtastic --set canned_message.allow_input_source "rotEnc1"
|
|||
```
|
||||
|
||||
```shell title="Enable/Disable rotary1"
|
||||
meshtastic --set
|
||||
meshtastic --set canned_message.rotary1_enabled 1
|
||||
```
|
||||
|
||||
```shell title="Set/Unset Encoder Pin A"
|
||||
|
@ -197,11 +197,28 @@ This module requires attaching a peripheral accessory to your device. It will no
|
|||
|
||||
## Hardware
|
||||
|
||||
To navigate through messages and select one, you will require some hardware attached to your device. Currently, the module is tested with a generic rotary encoder, but this is not a limitation further input methods can be added in the future.
|
||||
To navigate through messages and select one, you will require some hardware attached to your device. Currently, the module is tested with a generic rotary encoder, an up/down/select 3 button logic and several I2C Keyboards. Further input methods will be added in the future.
|
||||
|
||||
### I2C Keymatrix
|
||||
|
||||
This is tested with the RAK14004 Keyboard. A keypress will immediately send the message attached to the button number. Buttons are numbered from upper left to lower right on the keypanels. So pressing the upper left button will send the first message. The second button will send the second message and so on.
|
||||
|
||||
**Caveat:** the RAK 3x4 keymatrix is missing the 4th button row while scanning, so you have to skip every 4th message slot. Button 1 sends message 1 and button 4 will send message 5
|
||||
Example: 1|2|3||5|6|7||9|10|11||13|14|15 - the slots 4,8 and 12 can not be used.
|
||||
|
||||
### CardKB
|
||||
|
||||
The CardKB is fully supported in freetext mode and select mode. Use UP/DOWN/ENTER to select a predefined message and send it. For a freetext message, just type it in and press ENTER to send it.
|
||||
|
||||
If you don't want to broadcast your freetext message, you can use the CardKB to send it to a specific node. Just press TAB and select the target node with the LEFT/RIGHT keys. The message will be sent to the node with the matching name and node number. The target node will be remebered for your nexxt message.
|
||||
|
||||
### 3 Buttun up/down and RAK rotary encoder
|
||||
|
||||
Just use UP/DOWN/ENTER to select a predefined message and send it.
|
||||
|
||||
### Rotary encoder
|
||||
|
||||
Meshtastic supports hardwired rotary encoders as input devices. (Technically the Canned Message Module is independent of rotary encoders. It is described here, because no other module utilizes rotary encoders just yet.)
|
||||
Meshtastic supports hardwired rotary encoders as input devices.
|
||||
|
||||
You will need a generic rotary encoder. The types listed below has five legs where two is dedicated to a "press" action, but any other types will likely do the job. You can also use a three-legged version, where the "press" action should be wired from an independent switch.
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ Specifies whether the external circuit is triggered when the device's GPIO is lo
|
|||
|
||||
### GPIO to monitor
|
||||
|
||||
Specifies the GPIO that your external circuit is attached to on the device.
|
||||
Specifies the GPIO that your external circuit is attached to on the device. On devices that have a PWM buzzer, you can use the buzzer for notifications by setting this to the same pin the buzzer uses.
|
||||
|
||||
:::info
|
||||
On ESP32 based boards, GPIOs 34 to 39 are GPIs – input only pins. These pins do not have internal pull-up or pull-down resistors. They can not be used as outputs, so you can NOT use these pins as outputs.
|
||||
|
@ -160,5 +160,4 @@ Ideas for external hardware:
|
|||
|
||||
## Known Problems
|
||||
|
||||
- This won't directly support a passive (normal) speaker as it does not generate any audio wave forms.
|
||||
- This module only monitors text messages. We won't trigger on any other packet types.
|
||||
|
|
|
@ -10,6 +10,7 @@ Modules are included in the firmware and allow users to extend the functionality
|
|||
|
||||
| Name | Description |
|
||||
|:----:|:-----------:|
|
||||
| [Audio](/docs/settings/moduleconfig/audio) | enable Support for Codec2 Voice Comms on certain devices |
|
||||
| [Canned Message](/docs/settings/moduleconfig/canned-message) | Set a number of predefined messages to send out directly from the device with the use of an input device like a rotary encoder. |
|
||||
| [External Notification](/docs/settings/moduleconfig/external-notification) | Incoming messages are able to alert you using circuits you attach to the device (LEDs, Buzzers, etc) |
|
||||
| [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. |
|
||||
|
|
|
@ -24,13 +24,23 @@ If set, any packets you send will be echoed back to your device.
|
|||
|
||||
### Mode
|
||||
|
||||
Defaults to 'Simple'.
|
||||
|
||||
Available Values:
|
||||
|
||||
* `DEFAULT`
|
||||
* `SIMPLE` operate as an dumb UART tunnel. What goes in will come out, Requires a channel named 'gpio'.
|
||||
* `PROTO` not implemented yet, but will expose the Protobuf Client API on this serial port
|
||||
* `TEXTMSG` Will send the string received over the serial port as a Text Message for Display on the other devices.
|
||||
* `NMEA` Will output a NMEA 0183 Data stream containing the internal GPS or fixed position and other node locations as Waypoints (WPL).
|
||||
|
||||
### Receive GPIO Pin
|
||||
|
||||
Set the GPIO pin to the RXD pin you have set up.
|
||||
|
||||
### Transmit GPIO Pin
|
||||
|
||||
Set the GPIO pin to the RXD pin you have set up.
|
||||
Set the GPIO pin to the TXD pin you have set up.
|
||||
|
||||
:::tip
|
||||
Connect the TX pin to the other device's RX pin, and vice versa. Connect their grounds to each other (not necessary if they're both plugged into the same USB power source.)
|
||||
|
@ -82,9 +92,9 @@ All serial module config options are available in the python CLI. Example comman
|
|||
| :-------------------: | :-----------------: | :-----: |
|
||||
| serial.enabled | `true`, `false` | `false` |
|
||||
| serial.echo | `true`, `false` | `false` |
|
||||
| serial.mode | `DEFAULT` `SIMPLE` `PROTO` `TEXTMSG` | `DEFAULT` |
|
||||
| serial.mode | `DEFAULT` `SIMPLE` `PROTO` `TEXTMSG`, `NMEA` | `DEFAULT` |
|
||||
| serial.rxd | GPIO Pin Number 1-39 | Default of `0` is Unset |
|
||||
| serial.txd | GPIO Pin Number 1-39 | Defaunlt 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.timeout | `integer` (seconds) | `0` |
|
||||
|
||||
|
@ -105,7 +115,7 @@ meshtastic --set serial.mode PROTO
|
|||
```
|
||||
|
||||
```shell title="Set RXD to GPIO pin number 7"
|
||||
meshtastic --set seria.rxd 7
|
||||
meshtastic --set serial.rxd 7
|
||||
```
|
||||
|
||||
```shell title="Set TXD to GPIO pin number 28"
|
||||
|
|
|
@ -4,7 +4,18 @@ title: Remote Node Administration
|
|||
sidebar_label: Remote Nodes
|
||||
---
|
||||
|
||||
This feature will allow you to use the multiple channels feature to enable remote administration of Meshtastic nodes. This will let you talk through the mesh to some far away node and change that node's settings. This is an advanced feature that (currently) few users would need. Also, keep in mind it is possible (if you are not careful) to assign settings to that remote node that cause it to completely drop off of your mesh. We advise network admins have a test node to test settings with before applying changes to a remote node to prevent this.
|
||||
:::caution Disclaimer
|
||||
This is an advanced feature that few users should need. Keep in mind that it is possible (if you are not careful) to assign settings to a remote node that cause it to completely drop off of your mesh. We advise network admins have a test node to test settings with before applying changes to a remote node to prevent this.
|
||||
:::
|
||||
|
||||
This feature allows you to remotely administer Meshtastic nodes through the mesh.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
For any node that you want to administer, you must:
|
||||
|
||||
1. Configure a channel with the channel name of `admin`.
|
||||
2. Set the PSK for the `admin` channel with the same key you wish to administer other all other nodes of the mesh with.
|
||||
|
||||
## Creating the admin channel
|
||||
|
||||
|
|
|
@ -9,38 +9,58 @@ 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.
|
||||
|
||||
- Use Android Studio to build/debug
|
||||
- Use `git submodule update --init --recursive` to pull in the various submodules we depend on
|
||||
- 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:
|
||||
1. Use Android Studio to build/debug
|
||||
2. Use `git submodule update --init --recursive` to pull in the various sub-modules we depend on.
|
||||
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:
|
||||
```sh
|
||||
rm ./app/google-services.json
|
||||
cp ./app/google-services-example.json ./app/google-services.json
|
||||
rm ./app/src/main/res/values/curfirmwareversion.xml
|
||||
cp ./app/special/curfirmwareversion.xml ./app/src/main/res/values/
|
||||
```
|
||||
|
||||
- Now you should be able to select "Run / Run" in the IDE and it will happily start running on your phone or the emulator.
|
||||
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.
|
||||
|
||||
:::note
|
||||
The emulators don't support Bluetooth, so some features can not be used in that environment.
|
||||
:::
|
||||
|
||||
## Analytics setup
|
||||
## Setup Analytics
|
||||
|
||||
- Analytics are included but can be disabled by the user on the settings screen
|
||||
- On dev devices
|
||||
Analytics are included but can be disabled by the user on the settings screen.
|
||||
|
||||
1. Configure analytics for development device
|
||||
|
||||
```sh
|
||||
adb shell setprop debug.firebase.analytics.app com.geeksville.mesh
|
||||
adb shell setprop log.tag.FirebaseCrashlytics DEBUG
|
||||
```
|
||||
|
||||
for verbose logging:
|
||||
2. Set verbose logging
|
||||
|
||||
```sh
|
||||
adb shell setprop log.tag.FA VERBOSE
|
||||
```
|
||||
|
||||
## Publishing to google play
|
||||
## Publish to Google Play
|
||||
|
||||
:::info
|
||||
Only available for core developers that publish releases.
|
||||
:::
|
||||
|
||||
1. Add repository secrets:
|
||||
- **KEYSTORE_FILENAME**
|
||||
- Name of the `.jks`
|
||||
- **KEYSTORE**
|
||||
- Convert the `.jks` to base64:
|
||||
```sh
|
||||
openssl base64 < filename.jks | tr -d '\n' | tee filename.txt
|
||||
```
|
||||
- **KEYSTORE_PROPERTIES**
|
||||
- `storePassword=nononononono`
|
||||
- `keyPassword=nononononono`
|
||||
- `keyAlias=upload`
|
||||
- `storeFile=nononononono.jks`
|
||||
2. Update protobufs
|
||||
3. Go to Actions / Make Release / Run Workflow
|
||||
4. Pick the Releases branch
|
||||
5. Enter the version found in `app/gradle.build`
|
||||
|
||||
- Only supported if you are a core developer that needs to do releases
|
||||
|
|
7
docs/development/apple.tbd
Normal file
7
docs/development/apple.tbd
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
id: building
|
||||
title: Apple
|
||||
sidebar_label: Apple
|
||||
---
|
||||
|
||||
TBD
|
|
@ -12,7 +12,7 @@ This table is derived from the [protobufs](/docs/developers/protobufs/api#critic
|
|||
:::
|
||||
|
||||
| Name | Number | Description |
|
||||
| ------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------- |
|
||||
|:------------------- :|:------:|:----------------------------------------------------------------------------------------------------------------------- |
|
||||
| TxWatchdog | 1 | A software bug was detected while trying to send LoRa |
|
||||
| SleepEnterWait | 2 | A software bug was detected on entry to sleep |
|
||||
| NoRadio | 3 | No LoRa radio hardware could be found |
|
||||
|
|
|
@ -5,29 +5,42 @@ sidebar_label: Module API
|
|||
sidebar_position: 3
|
||||
---
|
||||
|
||||
This is a tutorial on how to write small modules which run on the device. Modules are bits of regular 'Arduino' code that can send and receive packets to other nodes/apps/PCs using our mesh.
|
||||
This is a tutorial on how to write small modules which run on the device. Modules are bits of regular 'Arduino' code that can send and receive packets to other Nodes/Apps/PCs using the Meshtastic mesh.
|
||||
|
||||
## Key concepts
|
||||
|
||||
All modules should be subclasses of MeshModule. By inheriting from this class and creating an instance of your new module your module will be automatically registered to receive packets.
|
||||
All modules should be sub-classes of MeshModule. By inheriting from this class and creating an instance of your new module - your module will be automatically registered to receive packets.
|
||||
|
||||
Messages are sent to particular port numbers (similar to UDP networking). Your new module should eventually pick its own port number (see below), but at first you can simply use PRIVATE_APP (which is the default).
|
||||
Messages are sent to particular port numbers (similar to UDP networking). Your new module should eventually pick its own port number (see below). For development use, you can simply use `PRIVATE_APP` (which is the default).
|
||||
|
||||
Packets can be sent/received either as raw binary structures or as [Protobufs](https://developers.google.com/protocol-buffers).
|
||||
Packets can be sent and received as either:
|
||||
|
||||
### Class hierarchy
|
||||
1. Raw binary structures
|
||||
2. [Protobufs](https://developers.google.com/protocol-buffers).
|
||||
|
||||
The relevant bits of the class hierarchy are as follows
|
||||
|
||||
- [MeshModule](http://github.com/meshtastic/firmware/tree/master/src/mesh/MeshModule.h) (in src/mesh/MeshModule.h) - you probably don't want to use this baseclass directly
|
||||
- [SinglePortModule](http://github.com/meshtastic/firmware/tree/master/src/mesh/SinglePortModule.h) (in src/mesh/SinglePortModule.h) - for modules that send/receive from a single port number (the normal case)
|
||||
- [ProtobufModule](http://github.com/meshtastic/firmware/tree/master/src/mesh/ProtobufModule.h) (in src/mesh/ProtobufModule.h) - for modules that send/receive a single particular Protobuf type. Inherit from this if you are using protocol buffers in your module.
|
||||
## Class hierarchy
|
||||
|
||||
You will typically want to inherit from either SinglePortModule (if you are just sending/receiving raw bytes) or ProtobufModule (if you are sending/receiving protobufs). You'll implement your own handleReceived/handleReceivedProtobuf - probably based on the example code.
|
||||
|
||||
If your module needs to perform any operations at startup you can override and implement the setup() method to run your code.
|
||||
The relevant bits of the class hierarchy are as follows:
|
||||
|
||||
If you need to send a packet you can call service.sendToMesh with code like this (from the examples):
|
||||
### First Level: MeshModule
|
||||
|
||||
- [src/mesh/MeshModule.h](http://github.com/meshtastic/firmware/tree/master/src/mesh/MeshModule.h) - you probably don't want to use this base-class directly.
|
||||
|
||||
### Second Level: SinglePortModule
|
||||
|
||||
- [src/mesh/SinglePortModule.h](http://github.com/meshtastic/firmware/tree/master/src/mesh/SinglePortModule.h) - for modules that send/receive from a single port number (the normal case).
|
||||
|
||||
### Third Level: ProtobufModule
|
||||
|
||||
- [src/mesh/ProtobufModule.h](http://github.com/meshtastic/firmware/tree/master/src/mesh/ProtobufModule.h) - for modules that send/receive a single particular Protobuf type. Inherit from this if you are using protocol buffers in your module.
|
||||
|
||||
## Startup Operations
|
||||
|
||||
If your module needs to perform any operations at startup you can override and implement the `setup()` method to run your code.
|
||||
|
||||
If you need to send a packet you can call `service.sendToMesh` with code like this (from the examples):
|
||||
|
||||
```cpp
|
||||
MeshPacket *p = allocReply();
|
||||
|
@ -36,51 +49,51 @@ p->to = dest;
|
|||
service.sendToMesh(p);
|
||||
```
|
||||
|
||||
## Example modules
|
||||
## Example Modules
|
||||
|
||||
A number of [key services](http://github.com/meshtastic/firmware/tree/master/src/modules) are implemented using the module API, these modules are as follows:
|
||||
A number of [key services](http://github.com/meshtastic/firmware/tree/master/src/modules) are implemented using the Module API, These modules are as follows:
|
||||
|
||||
- [TextMessageModule](http://github.com/meshtastic/firmware/tree/master/src/modules/TextMessageModule.h) - receives text messages and displays them on the LCD screen/stores them in the local DB
|
||||
- [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.
|
||||
- [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).
|
||||
- [TextMessageModule](http://github.com/meshtastic/firmware/tree/master/src/modules/TextMessageModule.h) - Receives text messages and displays them on the LCD screen/stores them in the local DB.
|
||||
|
||||
- [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.
|
||||
|
||||
- [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).
|
||||
|
||||
## Getting started
|
||||
|
||||
The easiest way to get started is:
|
||||
|
||||
- [Build and install](/docs/development/firmware/build) the standard codebase from GitHub.
|
||||
- Copy [src/modules/ReplyModule.\*](http://github.com/meshtastic/firmware/tree/master/src/modules/ReplyModule.cpp) into src/modules/YourModule.*. Then change the port number from *PortNum_REPLY_APP* to *PortNum_PRIVATE_APP\*.
|
||||
- Edit moduless/Moduless.cpp:setupModules() to add a call to create an instance of your module (see comment at head of that function)
|
||||
- Rebuild with your new messaging goodness and install on the device
|
||||
- Use the [meshtastic commandline tool](https://github.com/meshtastic/Meshtastic-python) to send a packet to your board, for example `meshtastic --dest 1234 --sendping`, where _1234_ is another mesh node to send the ping to.
|
||||
1. [Build the firmware](/docs/development/firmware/build) codebase.
|
||||
2. Copy the [ReplyModule](http://github.com/meshtastic/firmware/tree/master/src/modules/ReplyModule.cpp) as a template into `src/modules/`.
|
||||
```sh
|
||||
cp src/modules/ReplyModule.* src/modules/YourModule.*
|
||||
```
|
||||
3. Change the port number from `PortNum_REPLY_APP` to `PortNum_PRIVATE_APP`.
|
||||
4. Edit the `setupModules()` function located at `modules/Moduless.cpp` to add a call to create an instance of your module (see comment at head of that function).
|
||||
5. Rebuild with your new module and install on the device.
|
||||
6. Use the [Meshtastic Python CLI tool](https://github.com/meshtastic/Meshtastic-python) to send a packet to your board, for example:
|
||||
- `meshtastic --dest 1234 --sendping` where _1234_ is another mesh node to send the ping to.
|
||||
|
||||
## Threading
|
||||
|
||||
It is very common that you would like your module to be invoked periodically.
|
||||
We use a crude/basic cooperative threading system to allow this on any of our supported platforms. Simply inherit from OSThread and implement runOnce(). See the OSThread [documentation](http://github.com/meshtastic/firmware/tree/master/src/concurrency/OSThread.h) for more details.
|
||||
We use a crude/basic cooperative threading system to allow this on any of our supported platforms. Simply inherit from OSThread and implement `runOnce()`. See the OSThread [documentation](http://github.com/meshtastic/firmware/tree/master/src/concurrency/OSThread.h) for more details.
|
||||
|
||||
## Sending messages
|
||||
|
||||
If you would like to proactively send messages (rather than just responding to them), just call service.sendToMesh(). For an example of this see [NodeInfoModule::sendOurNodeInfo(...)](http://github.com/meshtastic/firmware/tree/master/src/modules/NodeInfoModule.cpp).
|
||||
If you would like to proactively send messages (rather than just responding to them), just call `service.sendToMesh()`. For an example of this, see [NodeInfoModule::sendOurNodeInfo(...)](http://github.com/meshtastic/firmware/tree/master/src/modules/NodeInfoModule.cpp).
|
||||
|
||||
## Picking a port number
|
||||
|
||||
For any new 'apps' that run on the device or via sister apps on phones/PCs they should pick and use a unique 'portnum' for their application.
|
||||
|
||||
If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to [the master list](https://github.com/meshtastic/protobufs/blob/master/portnums.proto). PortNums should be assigned in the following range:
|
||||
|
||||
- **0-63** Core Meshtastic use; do not use for third party apps
|
||||
- **64-127** Registered 3rd party apps. Send in a pull request that adds a new entry to portnums.proto to register your application
|
||||
- **256-511** Use one of these portnums for your private applications that you don't want to register publicly
|
||||
- **1024-66559** Are reserved for use by IP tunneling (see [here](/docs/development/firmware/portnum) for more information)
|
||||
|
||||
All other values are reserved.
|
||||
See [Meshtastic Port Numbers](/docs/development/firmware/portnum)
|
||||
|
||||
## How to add custom protocol buffers
|
||||
|
||||
If you would like to use protocol buffers to define the structures you send over the mesh (recommended), here's how to do that.
|
||||
|
||||
- Create a new .proto file in the protos directory.
|
||||
- Run "bin/regen-protos.sh" to regenerate the C code for accessing the protocol buffers. If you don't have the required nanopb tool, follow the instructions printed by the script to get it.
|
||||
- Done! You can now use your new protobuf just like any of the existing protobufs in meshtastic.
|
||||
1. Create a new `.proto` file in the protos directory.
|
||||
2. Run `./bin/regen-protos.sh` to regenerate the C code for accessing the protocol buffers. If you don't have the required nanopb tool, follow the instructions printed by the script to get it.
|
||||
3. Done! You can now use your new protobuf just like any of the existing protobufs in Meshtastic.
|
||||
|
||||
|
|
|
@ -6,107 +6,16 @@ sidebar_label: Publish
|
|||
|
||||
## Publish Live
|
||||
|
||||
### Device
|
||||
|
||||
- Update protobufs
|
||||
|
||||
1. Generate protobuf docs
|
||||
```shell
|
||||
cd proto
|
||||
git checkout master && git pull
|
||||
cd ..
|
||||
git add proto
|
||||
git commit -m "updating proto submodule to latest"
|
||||
run bin/regen-protos.sh
|
||||
cd meshtastic
|
||||
./scripts/gen-proto-docs.sh
|
||||
```
|
||||
|
||||
- edit version.properties to set release version
|
||||
- commit and push (or merge) to root of repo - this should cause GitHub to start a release build (see the CI actions)
|
||||
- edit the draft release text and click publish
|
||||
|
||||
#### Update Protobufs
|
||||
|
||||
### Android
|
||||
|
||||
#### Pre-requisites
|
||||
|
||||
- Add repository secrets
|
||||
- - KEYSTORE_FILENAME
|
||||
- - - name of the .jks
|
||||
- - KEYSTORE
|
||||
- - - we will convert the .jks to base64
|
||||
- - - openssl base64 < filename.jks | tr -d '\n' | tee filename.txt
|
||||
- - KEYSTORE_PROPERTIES
|
||||
- - - storePassword=nononononono
|
||||
keyPassword=nononononono
|
||||
keyAlias=upload
|
||||
storeFile=nononononono.jks
|
||||
|
||||
#### Instructions - Automated
|
||||
|
||||
- Update protobufs
|
||||
- Go to Actions / Make Release / Run Workflow
|
||||
- Pick the Releases branch
|
||||
- Enter the version found in app/gradle.build
|
||||
|
||||
### iOS
|
||||
|
||||
TBD
|
||||
|
||||
### Meshtastic-flasher
|
||||
|
||||
A `meshtastic-flasher` release consists of publishing the release to PyPi https://pypi.org/project/meshtastic-flasher/ as well as producing single-executable files that are downloadable from Github https://github.com/meshtastic/Meshtastic-gui-installer/releases.
|
||||
|
||||
#### Instructions - automated
|
||||
|
||||
- Go to Actions / Make Release / Run Workflow https://github.com/meshtastic/Meshtastic-gui-installer/actions/workflows/release.yml
|
||||
- Draft & Publish release https://github.com/meshtastic/Meshtastic-gui-installer/releases
|
||||
|
||||
### Python
|
||||
|
||||
A python release consists of publishing the release to PyPi https://pypi.org/project/meshtastic/ as well as producing single-executable files that are downloadable from Github https://github.com/meshtastic/Meshtastic-python/releases.
|
||||
|
||||
#### Pre-requisites
|
||||
|
||||
No pre-requisites are needed locally to make a release. All builds are done via Github Actions currently.
|
||||
|
||||
To test/validate, you will need to run:
|
||||
|
||||
2. Build
|
||||
```shell
|
||||
pnpm build
|
||||
```
|
||||
pip3 install -r requirements.txt
|
||||
pip install .
|
||||
```
|
||||
|
||||
#### Instructions
|
||||
|
||||
- Update protobufs by running the "Update protobufs" workflow in Actions: https://github.com/meshtastic/Meshtastic-python/actions/workflows/update_protobufs.yml
|
||||
|
||||
- run the "smoke1" test (optional):
|
||||
|
||||
connect one device to the serial port and run:
|
||||
|
||||
```
|
||||
pytest -m smoke1
|
||||
```
|
||||
|
||||
- run unit tests: `pytest` (optional)
|
||||
|
||||
- run bin/test-release.sh (optional)
|
||||
|
||||
- Run the "Make Release" workflow in Actions: https://github.com/meshtastic/Meshtastic-python/actions/workflows/release.yml
|
||||
|
||||
- After the "Make Release" is done, go into Releases: https://github.com/meshtastic/Meshtastic-python/releases There should be a draft. Add the title, update the "What's Changed" (Tip: Click on the "Auto-generate release notes" button.). Uncheck the "This is a pre-release" (if applicable).
|
||||
|
||||
:::note
|
||||
You need permissions in the GitHub project to make a build
|
||||
:::
|
||||
|
||||
### Web
|
||||
|
||||
Releases are automatically generated for every commit as per out [CI](https://github.com/meshtastic/web/blob/master/.github/workflows/main.yml). This performs two actions:
|
||||
|
||||
1. Generates a perpetually updated [GitHub release](https://github.com/meshtastic/web/releases/tag/latest) with an accompanying `build.tar` that a automatically get's pulled by the firmware CI at build time.
|
||||
2. A hosted version is deployed to [client.meshtastic.org](https://client.meshtastic.org).
|
||||
|
||||
3. Submit Pull Request
|
||||
|
||||
## Publish to Vercel
|
||||
|
||||
|
|
|
@ -1,68 +0,0 @@
|
|||
---
|
||||
id: build
|
||||
title: Building Meshtastic Firmware
|
||||
sidebar_label: Building Firmware
|
||||
---
|
||||
|
||||
Meshtastic uses [PlatformIO](https://platformio.org), a development environment that enables easy multi-platform development and centralized tooling.
|
||||
|
||||
## Setup the build environment
|
||||
|
||||
1. Install PlatformIO, following the instructions available [here](https://platformio.org/platformio-ide).
|
||||
|
||||
2. Clone the [`firmware`](https://github.com/meshtastic/firmware) repository. ([Instructions on cloning](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository))
|
||||
|
||||
3. Clone the repositories [Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules)
|
||||
|
||||
```shell
|
||||
git submodule update --init
|
||||
```
|
||||
|
||||
4. Some utilities and scripts use the Python programming language, Downloads available [here](https://www.python.org/downloads).
|
||||
|
||||
## Building
|
||||
|
||||
1. Open the newly cloned folder in [Visual Studio Code](https://code.visualstudio.com).
|
||||
1. To select the device you you wish to build for, first open your [command palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette) (windows: `Ctrl + Shift + P` or mac: `command + Shift + P` ) and enter: `platformio: Switch Project Environment` and select your target.
|
||||
1. To build the firmware, simply run `PlatformIO: Build` from your command palette.
|
||||
1. Finally flashing the firmware to your device is as easy as running `PlatformIO: Upload`
|
||||
|
||||
## Adding your own Hardware
|
||||
|
||||
The build system is modular. Adding a new board variant for an already supported architecture is straigtforward.
|
||||
|
||||
### Building for your own DIY hardware or mod that you don't want to distribute
|
||||
|
||||
1. go to the `variants` folder in the firmware sourcecode and make a new directory for your hardware, let's call it `m5stack_atom` and copy an existing configuration you wanna modify
|
||||
|
||||
```shell
|
||||
cd variants; mkdir m5stack_atom
|
||||
cp heltec_v1/* m5stack_atom
|
||||
cd m5stack_atom
|
||||
```
|
||||
|
||||
2. modify the `platformio.ini` _in this subdirectory_ from the canonical define of the hardware variant (`HELTEC_V1` in this case) to `PRIVATE_HW` and make the `-I` on the `build_flags` point to the newly created dir.
|
||||
|
||||
```shell
|
||||
[env:m5stack-atom]
|
||||
extends = esp32_base
|
||||
board = m5stack-atom
|
||||
monitor_filters = esp32_exception_decoder
|
||||
build_flags =
|
||||
${esp32_base.build_flags} -D PRIVATE_HW -I variants/m5stack_atom
|
||||
lib_deps =
|
||||
${esp32_base.lib_deps}
|
||||
```
|
||||
|
||||
3. edit the `variant.h` file _in this subdirectory_ to reflect the defines and configurations for your board. The example is very well commented.
|
||||
4. build, run and debug until you are satisfied with the result.
|
||||
|
||||
### Adding a new off-the-shelf or DIY hardware that you want to distribute (e.g. add a new canon board)
|
||||
|
||||
1. do all of the above until your hardware runs fine
|
||||
2. [Send in a proposal to add a new board](https://github.com/meshtastic/firmware/issues/new?assignees=&labels=enhancement%2Ctriage&template=New+Board.yml&title=%5BBoard%5D%3A+)
|
||||
3. if approved, go to (https://github.com/meshtastic/protobufs) and send a Pull Request for the `mesh.proto` file, adding your board to the `HardwareModel` Enum.
|
||||
4. change your define in `platformio.ini` from `PRIVATE_HW` to `YOUR_BOARD`. Adjust any macro guards in the code you need to support your board.
|
||||
5. add your board identifier to `configuration.h` on the firmware repo and send in that Pull Request too.
|
||||
6. wait for the Pulls to be merged back into Master.
|
||||
7. profit :-)
|
65
docs/development/firmware/building.mdx
Normal file
65
docs/development/firmware/building.mdx
Normal file
|
@ -0,0 +1,65 @@
|
|||
---
|
||||
id: build
|
||||
title: Building Meshtastic Firmware
|
||||
sidebar_label: Building Firmware
|
||||
---
|
||||
|
||||
Meshtastic uses [PlatformIO](https://platformio.org), a development environment that enables easy multi-platform development and centralized tooling.
|
||||
|
||||
## Setup the Build Environment
|
||||
|
||||
1. [Install PlatformIO](https://platformio.org/platformio-ide)
|
||||
2. Clone the [Meshtastic Firmware](https://github.com/meshtastic/firmware) repository
|
||||
```sh
|
||||
git clone https://github.com/meshtastic/firmware.git
|
||||
```
|
||||
3. Update the repository's [submodules](https://github.com/meshtastic/firmware/blob/master/.gitmodules)
|
||||
```shell
|
||||
git submodule update --init
|
||||
```
|
||||
|
||||
## Build
|
||||
|
||||
1. Open the newly cloned folder in [Visual Studio Code](https://code.visualstudio.com).
|
||||
2. To select the device you you wish to build, open your [command palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette):
|
||||
- Windows: `Ctrl + Shift + P`
|
||||
- Mac: `command + Shift + P`
|
||||
3. Enter: `platformio: Switch Project Environment` and select your target.
|
||||
4. To build the firmware, simply run `PlatformIO: Build` from your command palette.
|
||||
5. Finally, flash the firmware to your device by running `PlatformIO: Upload`
|
||||
|
||||
## Adding Custom Hardware
|
||||
|
||||
The build system is modular. Adding a new board variant for an already supported architecture is straightforward.
|
||||
|
||||
### Build with Custom Hardware
|
||||
|
||||
1. Go to the `variants` folder in the firmware source code and make a new directory for your hardware, let's call it `m5stack_atom` and copy an existing configuration you wanna modify:
|
||||
```shell
|
||||
cd variants; mkdir m5stack_atom
|
||||
cp heltec_v1/* m5stack_atom
|
||||
cd m5stack_atom
|
||||
```
|
||||
2. Modify the `platformio.ini`_in this subdirectory_ from the canonical define of the hardware variant (`HELTEC_V1` in this case) to `PRIVATE_HW` and make the `-I` on the `build_flags` point to the newly created dir.
|
||||
```shell
|
||||
[env:m5stack-atom]
|
||||
extends = esp32_base
|
||||
board = m5stack-atom
|
||||
monitor_filters = esp32_exception_decoder
|
||||
build_flags =
|
||||
${esp32_base.build_flags} -D PRIVATE_HW -I variants/m5stack_atom
|
||||
lib_deps =
|
||||
${esp32_base.lib_deps}
|
||||
```
|
||||
3. Edit the `variant.h` file _in this subdirectory_ to reflect the defines and configurations for your board. The example is very well commented.
|
||||
4. Build, run and debug until you are satisfied with the result.
|
||||
|
||||
### Distribute / Publish Custom Builds
|
||||
|
||||
1. Perform all of the steps [building with custom hardware](#build-with-custom-hardware) until your hardware runs fine.
|
||||
2. [Send a proposal](https://github.com/meshtastic/firmware/issues/new?assignees=&labels=enhancement%2Ctriage&template=New+Board.yml&title=%5BBoard%5D%3A+) to add a new board.
|
||||
3. If approved, go to (https://github.com/meshtastic/protobufs) and send a Pull Request for the `mesh.proto` file, adding your board to the `HardwareModel` Enum.
|
||||
4. Change your define in `platformio.ini` from `PRIVATE_HW` to `YOUR_BOARD`. Adjust any macro guards in the code you need to support your board.
|
||||
5. Add your board identifier to `configuration.h` on the firmware repo and send in that Pull Request too.
|
||||
6. Wait for the Pulls to be merged back into Master.
|
||||
7. Profit :-)
|
|
@ -4,18 +4,15 @@ title: OLED Localization Guide
|
|||
sidebar_label: OLED Localization
|
||||
---
|
||||
|
||||
# OLED localization guide
|
||||
|
||||
## 1. Create an extended ASCII custom font
|
||||
Use a glyph editor to create a new font file. The easiest way is to use the online [glyph editor][glyphEditor] from the OLED library. [Glyph editor source code][glyphEditorSource]. Copy and paste the existing font, modify it according desired codepage and save the new font file in `graphics/font` folder.
|
||||
|
||||
1. Create an extended ASCII custom font. Use a glyph editor to create a new font file. The easiest way is to use the online [glyph editor](https://rawgit.com/ThingPulse/esp8266-oled-ssd1306/master/resources/glyphEditor.html) from the OLED library. ([glyph editor source code](https://github.com/ThingPulse/esp8266-oled-ssd1306/tree/master/resources))
|
||||
1. Copy and paste the existing font.
|
||||
2. Modify it according desired codepage and save the new font file in `graphics/font` folder.
|
||||
Please note that the used font file format differs from common Adafruit GFX.
|
||||
|
||||
## 2. Update the `customFontTableLookup` function in `Screen.h`
|
||||
To map the double-byte UTF-8 code to the corresponding extended ASCII character of the desired codepage update the `customFontTableLookup` function in the `Screen.h` file. You need to modify the `switch (last)` statement: use left byte from UTF-8 code in the `case` label to map charachter's right byte to its extended ASCII code by specifying an offset.
|
||||
|
||||
## 3. Define language and font in `Screen.cpp`
|
||||
```
|
||||
2. Update the `customFontTableLookup` function in `Screen.h`
|
||||
1. To map the double-byte UTF-8 code to the corresponding extended ASCII character of the desired codepage update the `customFontTableLookup` function in the `Screen.h` file.
|
||||
2. Modify the `switch (last)` statement: use left byte from UTF-8 code in the `case` label to map charachter's right byte to its extended ASCII code by specifying an offset.
|
||||
3. Define language and font in `Screen.cpp`
|
||||
```c
|
||||
#ifdef OLED_{LANG_NAME}
|
||||
#include "fonts/OLEDDisplayFonts{LANG_NAME}.h"
|
||||
#endif
|
||||
|
@ -28,8 +25,7 @@ To map the double-byte UTF-8 code to the corresponding extended ASCII character
|
|||
#define FONT_SMALL ArialMT_Plain_10
|
||||
#endif
|
||||
```
|
||||
|
||||
## 4. Define language in `variant/*/platformio.ini`
|
||||
4. Define language in `variant/*/platformio.ini`
|
||||
```
|
||||
build_flags =
|
||||
${esp32_base.build_flags}
|
||||
|
@ -37,6 +33,3 @@ build_flags =
|
|||
-D OLED_{LANG_NAME}
|
||||
-I variants/xxxxx
|
||||
```
|
||||
|
||||
[glyphEditor]: <https://rawgit.com/ThingPulse/esp8266-oled-ssd1306/master/resources/glyphEditor.html>
|
||||
[glyphEditorSource]: <https://github.com/ThingPulse/esp8266-oled-ssd1306/tree/master/resources>
|
|
@ -4,20 +4,22 @@ title: Meshtastic Port Numbers
|
|||
sidebar_label: Port Numbers
|
||||
---
|
||||
|
||||
For any new apps that run on the device or via sister apps on phones/PCs they should pick and use a unique 'portnum' for their application.
|
||||
Any new app that runs on the device or via sister apps on phones/PCs should pick and use a unique "portnum" for their applications use.
|
||||
|
||||
If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to this master table. PortNums should be assigned in the following range:
|
||||
The current list of port numbers can be found listed in the [protobufs](/docs/developers/protobufs/api#portnumsproto)
|
||||
|
||||
## Assignment
|
||||
|
||||
PortNums should be assigned by the following ranges:
|
||||
|
||||
| Portnum | Usage |
|
||||
| ------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||||
| 0-63 | Core Meshtastic use, do not use for third party apps |
|
||||
|:-------:|:---------------------------------------------------------------------------------------------------------------------- |
|
||||
| 0-63 | Core Meshtastic use, do not use for third party apps. |
|
||||
| 64-127 | Registered 3rd party apps, send in a pull request that adds a new entry to portnums.proto to register your application |
|
||||
| 256-511 | Use one of these portnums for your private applications that you do not want to register publicly |
|
||||
|
||||
All other values are reserved.
|
||||
|
||||
Note: This was formerly a Type enum named `typ` with the same id #
|
||||
## Integration
|
||||
|
||||
We have changed to this 'portnum' based scheme for specifying app handlers for particular payloads. This change is backwards compatible by treating the legacy OPAQUE/CLEAR_TEXT values identically.
|
||||
|
||||
The current list of port numbers can be found listed in the [protobufs](/docs/developers/protobufs/api#portnumsproto)
|
||||
If you are making a new app using Meshtastic, please send a pull request to add your chosen "portnum" to this master table.
|
|
@ -8,28 +8,25 @@ sidebar_label: Stacktraces
|
|||
|
||||
You may encounter a situation where your device crashes and are left with a stacktrace, below are two methods of decoding them.
|
||||
|
||||
### Manual
|
||||
### Manually
|
||||
|
||||
:::info
|
||||
This method uses the symbols of the `firmware.elf` file generated from your latest build, you may wish to rebuild to get up-to-date symbols.
|
||||
:::
|
||||
|
||||
First save the backtrace string to a text file:
|
||||
|
||||
1. Save the backtrace string to a text file:
|
||||
```text title="backtrace.txt"
|
||||
Backtrace: 0x....
|
||||
```
|
||||
|
||||
Now run the exception decoder:
|
||||
|
||||
2. Run the exception decoder:
|
||||
```shell
|
||||
bin/exception_decoder.py backtrace.txt
|
||||
```
|
||||
|
||||
### Real-Time
|
||||
|
||||
In order to decode stack traces in real time, keep the following command (replacing `DEVICE_PORT` with your device's port) running in your terminal with the suspect device connected
|
||||
### In Real-Time
|
||||
|
||||
In order to decode stack traces in real time, keep the following command (replacing `DEVICE_PORT` with your device's port) running in your terminal with the target device connected:
|
||||
```shell
|
||||
pio device monitor --port DEVICE_PORT -f esp32_exception_decoder
|
||||
```
|
||||
|
|
53
docs/development/python/building.mdx
Normal file
53
docs/development/python/building.mdx
Normal file
|
@ -0,0 +1,53 @@
|
|||
---
|
||||
id: building
|
||||
title: Building
|
||||
sidebar_label: Building
|
||||
---
|
||||
|
||||
A python release consists of publishing the release to PyPi https://pypi.org/project/meshtastic/ as well as producing single-executable files that are downloadable from Github https://github.com/meshtastic/Meshtastic-python/releases.
|
||||
|
||||
#### Pre-requisites
|
||||
|
||||
No pre-requisites are needed locally to make a release. All builds are done via Github Actions currently.
|
||||
|
||||
To test/validate, you will need to run:
|
||||
|
||||
```
|
||||
pip3 install -r requirements.txt
|
||||
pip install .
|
||||
```
|
||||
|
||||
#### Instructions
|
||||
|
||||
- Update protobufs by running the "Update protobufs" workflow in Actions: https://github.com/meshtastic/Meshtastic-python/actions/workflows/update_protobufs.yml
|
||||
|
||||
- run the "smoke1" test (optional):
|
||||
|
||||
connect one device to the serial port and run:
|
||||
|
||||
```
|
||||
pytest -m smoke1
|
||||
```
|
||||
|
||||
- run unit tests: `pytest` (optional)
|
||||
|
||||
- run bin/test-release.sh (optional)
|
||||
|
||||
- Run the "Make Release" workflow in Actions: https://github.com/meshtastic/Meshtastic-python/actions/workflows/release.yml
|
||||
|
||||
- After the "Make Release" is done, go into Releases: https://github.com/meshtastic/Meshtastic-python/releases There should be a draft. Add the title, update the "What's Changed" (Tip: Click on the "Auto-generate release notes" button.). Uncheck the "This is a pre-release" (if applicable).
|
||||
|
||||
:::note
|
||||
You need permissions in the GitHub project to make a build
|
||||
:::
|
||||
|
||||
|
||||
|
||||
### Meshtastic-flasher
|
||||
|
||||
A `meshtastic-flasher` release consists of publishing the release to PyPi https://pypi.org/project/meshtastic-flasher/ as well as producing single-executable files that are downloadable from Github https://github.com/meshtastic/Meshtastic-gui-installer/releases.
|
||||
|
||||
#### Instructions - automated
|
||||
|
||||
- Go to Actions / Make Release / Run Workflow https://github.com/meshtastic/Meshtastic-gui-installer/actions/workflows/release.yml
|
||||
- Draft & Publish release https://github.com/meshtastic/Meshtastic-gui-installer/releases
|
|
@ -3,4 +3,5 @@ collapsible: true
|
|||
position: 20
|
||||
link:
|
||||
type: generated-index
|
||||
slug: /development/reference
|
||||
title: Reference Material
|
|
@ -96,6 +96,7 @@ TODO: REPLACE
|
|||
| `RANGETEST_CONFIG` | `4` | TODO: REPLACE |
|
||||
| `TELEMETRY_CONFIG` | `5` | TODO: REPLACE |
|
||||
| `CANNEDMSG_CONFIG` | `6` | TODO: REPLACE |
|
||||
| `AUDIO_CONFIG` | `7` | TODO: REPLACE |
|
||||
|
||||
|
||||
|
||||
|
@ -553,18 +554,6 @@ Note: these mappings must match ModemPreset Choice in the device code.
|
|||
|
||||
|
||||
|
||||
### Config.NetworkConfig.WiFiMode
|
||||
|
||||
|
||||
| Name | Number | Description |
|
||||
| ---- | ------ | ----------- |
|
||||
| `CLIENT` | `0` | This mode is used to connect to an external WiFi network |
|
||||
| `ACCESS_POINT` | `1` | In this mode the node will operate as an AP (and DHCP server) |
|
||||
| `ACCESS_POINT_HIDDEN` | `2` | If set, the node AP will broadcast as a hidden SSID |
|
||||
|
||||
|
||||
|
||||
|
||||
### Config.PositionConfig.PositionFlags
|
||||
|
||||
:::note `enum` description
|
||||
|
@ -744,6 +733,7 @@ TODO: REPLACE
|
|||
| range_test | [`ModuleConfig.RangeTestConfig`](#moduleconfigrangetestconfig) | The part of the config that is specific to the RangeTest module |
|
||||
| telemetry | [`ModuleConfig.TelemetryConfig`](#moduleconfigtelemetryconfig) | The part of the config that is specific to the Telemetry module |
|
||||
| canned_message | [`ModuleConfig.CannedMessageConfig`](#moduleconfigcannedmessageconfig) | The part of the config that is specific to the Canned Message module |
|
||||
| audio | [`ModuleConfig.AudioConfig`](#moduleconfigaudioconfig) | The part of the config that is specific to the Audio module |
|
||||
| version | uint32 | A version integer used to invalidate old save files when we make incompatible changes This integer is set at build time and is private to NodeDB.cpp in the device code. |
|
||||
|
||||
|
||||
|
@ -857,12 +847,12 @@ The other fields are either not sent at all, or sent in the special 16 byte LORA
|
|||
|
||||
| Field | Type | Description |
|
||||
| ----- | ---- | ----------- |
|
||||
| from | fixed32 | The sending node number. Note: Our crypto implementation uses this field as well. See [crypto](/docs/about/overview/encryption) for details. FIXME - really should be fixed32 instead, this encoding only hurts the ble link though. |
|
||||
| from | fixed32 | The sending node number. Note: Our crypto implementation uses this field as well. See [crypto](/docs/overview/encryption) for details. FIXME - really should be fixed32 instead, this encoding only hurts the ble link though. |
|
||||
| to | fixed32 | The (immediatSee Priority description for more details.y should be fixed32 instead, this encoding only hurts the ble link though. |
|
||||
| channel | uint32 | (Usually) If set, this indicates the index in the secondary_channels table that this packet was sent/received on. If unset, packet was on the primary channel. A particular node might know only a subset of channels in use on the mesh. Therefore channel_index is inherently a local concept and meaningless to send between nodes. Very briefly, while sending and receiving deep inside the device Router code, this field instead contains the 'channel hash' instead of the index. This 'trick' is only used while the payload_variant is an 'encrypted'. |
|
||||
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) payload_variant.decoded | [`Data`](#data) | TODO: REPLACE |
|
||||
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) payload_variant.encrypted | bytes | TODO: REPLACE |
|
||||
| id | fixed32 | A unique ID for this packet. Always 0 for no-ack packets or non broadcast packets (and therefore take zero bytes of space). Otherwise a unique ID for this packet, useful for flooding algorithms. ID only needs to be unique on a _per sender_ basis, and it only needs to be unique for a few minutes (long enough to last for the length of any ACK or the completion of a mesh broadcast flood). Note: Our crypto implementation uses this id as well. See [crypto](/docs/about/overview/encryption) for details. FIXME - really should be fixed32 instead, this encoding only hurts the ble link though. |
|
||||
| id | fixed32 | A unique ID for this packet. Always 0 for no-ack packets or non broadcast packets (and therefore take zero bytes of space). Otherwise a unique ID for this packet, useful for flooding algorithms. ID only needs to be unique on a _per sender_ basis, and it only needs to be unique for a few minutes (long enough to last for the length of any ACK or the completion of a mesh broadcast flood). Note: Our crypto implementation uses this id as well. See [crypto](/docs/overview/encryption) for details. FIXME - really should be fixed32 instead, this encoding only hurts the ble link though. |
|
||||
| rx_time | fixed32 | The time this message was received by the esp32 (secs since 1970). Note: this field is _never_ sent on the radio link itself (to save space) Times are typically not sent over the mesh, but they will be added to any Packet (chain of SubPacket) sent to the phone (so the phone can know exact time of reception) |
|
||||
| rx_snr | float | Never* sent over the radio links. Set during reception to indicate the SNR of this packet. Used to collect statistics on current link quality. |
|
||||
| hop_limit | uint32 | If unset treated as zero (no forwarding, send to adjacent nodes only) if 1, allow hopping through one node, etc... For our usecase real world topologies probably have a max of about 3. This field is normally placed into a few of bits in the header. |
|
||||
|
@ -1335,6 +1325,26 @@ Module Config
|
|||
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) payload_variant.range_test | [`ModuleConfig.RangeTestConfig`](#moduleconfigrangetestconfig) | TODO: REPLACE |
|
||||
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) payload_variant.telemetry | [`ModuleConfig.TelemetryConfig`](#moduleconfigtelemetryconfig) | TODO: REPLACE |
|
||||
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) payload_variant.canned_message | [`ModuleConfig.CannedMessageConfig`](#moduleconfigcannedmessageconfig) | TODO: REPLACE |
|
||||
| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) payload_variant.audio | [`ModuleConfig.AudioConfig`](#moduleconfigaudioconfig) | TODO: REPLACE |
|
||||
|
||||
|
||||
|
||||
|
||||
### ModuleConfig.AudioConfig
|
||||
|
||||
:::note `message` description
|
||||
Audio Config for codec2 voice
|
||||
:::
|
||||
|
||||
|
||||
|
||||
| Field | Type | Description |
|
||||
| ----- | ---- | ----------- |
|
||||
| codec2_enabled | bool | Whether Audio is enabled |
|
||||
| mic_chan | uint32 | ADC where Microphone is connected |
|
||||
| amp_pin | uint32 | DAC where Speaker is connected |
|
||||
| ptt_pin | uint32 | PTT Pin |
|
||||
| bitrate | [`ModuleConfig.AudioConfig.Audio_Baud`](#moduleconfigaudioconfigaudio_baud) | The audio sample rate to use for codec2 |
|
||||
|
||||
|
||||
|
||||
|
@ -1484,6 +1494,28 @@ Configuration for both device and environment metrics
|
|||
|
||||
|
||||
|
||||
### ModuleConfig.AudioConfig.Audio_Baud
|
||||
|
||||
:::note `enum` description
|
||||
Baudrate for codec2 voice
|
||||
:::
|
||||
|
||||
|
||||
| Name | Number | Description |
|
||||
| ---- | ------ | ----------- |
|
||||
| `CODEC2_DEFAULT` | `0` | none |
|
||||
| `CODEC2_3200` | `1` | none |
|
||||
| `CODEC2_2400` | `2` | none |
|
||||
| `CODEC2_1600` | `3` | none |
|
||||
| `CODEC2_1400` | `4` | none |
|
||||
| `CODEC2_1300` | `5` | none |
|
||||
| `CODEC2_1200` | `6` | none |
|
||||
| `CODEC2_700` | `7` | none |
|
||||
| `CODEC2_700B` | `8` | none |
|
||||
|
||||
|
||||
|
||||
|
||||
### ModuleConfig.CannedMessageConfig.InputEventChar
|
||||
|
||||
:::note `enum` description
|
||||
|
@ -1611,6 +1643,7 @@ This change is backwards compatible by treating the legacy OPAQUE/CLEAR_TEXT val
|
|||
| `ADMIN_APP` | `6` | Admin control packets. Payload is a [AdminMessage](/docs/developers/protobufs/api#adminmessage) message |
|
||||
| `TEXT_MESSAGE_COMPRESSED_APP` | `7` | Compressed TEXT_MESSAGE payloads. |
|
||||
| `WAYPOINT_APP` | `8` | Waypoint payloads. Payload is a [Waypoint](/docs/developers/protobufs/api#waypoint) message |
|
||||
| `AUDIO_APP` | `9` | Audio Payloads. Encapsulated codec2 packets. On 2.4 GHZ Bandwidths only for now |
|
||||
| `REPLY_APP` | `32` | Provides a 'ping' service that replies to any packet it receives. Also serves as a small example module. |
|
||||
| `IP_TUNNEL_APP` | `33` | Used for the python IP tunnel feature |
|
||||
| `SERIAL_APP` | `64` | Provides a hardware serial interface to send and receive from the Meshtastic network. Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic network is forwarded to the RX pin while sending a packet to TX will go out to the Mesh network. Maximum packet size of 240 bytes. Module is disabled by default can be turned on by setting SERIAL_MODULE_ENABLED = 1 in SerialPlugh.cpp. |
|
||||
|
|
11
docs/development/web/building.mdx
Normal file
11
docs/development/web/building.mdx
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
id: building
|
||||
title: Building
|
||||
sidebar_label: Building
|
||||
---
|
||||
|
||||
|
||||
Releases are automatically generated for every commit as per out [CI](https://github.com/meshtastic/web/blob/master/.github/workflows/main.yml). This performs two actions:
|
||||
|
||||
1. Generates a perpetually updated [GitHub release](https://github.com/meshtastic/web/releases/tag/latest) with an accompanying `build.tar` that a automatically get's pulled by the firmware CI at build time.
|
||||
2. A hosted version is deployed to [client.meshtastic.org](https://client.meshtastic.org).
|
|
@ -1,7 +0,0 @@
|
|||
label: Connect to Device
|
||||
collapsible: true
|
||||
position: 3
|
||||
link:
|
||||
type: generated-index
|
||||
title: Connect to Device
|
||||
slug: /getting-started/connect-device
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
id: connect-ble
|
||||
title: Connecting using Bluetooth
|
||||
sidebar_label: Bluetooth
|
||||
#pagination_next: /docs/getting-started
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
|
@ -1,15 +0,0 @@
|
|||
---
|
||||
id: connect-network
|
||||
title: Connecting over TCP/IP Network (ESP32 Only)
|
||||
sidebar_label: Network (ESP32)
|
||||
#pagination_next: /docs/getting-started
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
## WiFi
|
||||
|
||||
## Ethernet
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
id: connect-serial
|
||||
title: Connecting using Serial
|
||||
sidebar_label: Serial
|
||||
#pagination_next: /docs/getting-started
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
id: meshtastic-flasher-esp32
|
||||
id: python-flasher
|
||||
title: Using Meshtastic Python Flasher
|
||||
sidebar_label: Python Flasher
|
||||
sidebar_position: 2
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
id: meshtastic-flasher-nrf52
|
||||
id: python-flasher
|
||||
title: Using Meshtastic Python Flasher
|
||||
sidebar_label: Python Flasher
|
||||
sidebar_position: 2
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
id: getting-started
|
||||
title: Getting Started
|
||||
sidebar_label: Getting Started
|
||||
slug: /getting-started
|
||||
|
@ -30,7 +31,7 @@ The NRF52 is much more power efficient than the esp32 and easier to update, but
|
|||
- LILYGO® TTGO T-Echo
|
||||
|
||||
:::info
|
||||
If your device is not listed above, please review our [supported hardware](/docs/supported-hardware) devices to determine which MCU your device has or contact us in [Discord](https://discord.gg/ktMAKGBnBs) with any questions.
|
||||
If your device is not listed above, please review our [supported devices](/docs/supported-hardware) to determine which MCU your device has or contact us in [Discord](https://discord.gg/ktMAKGBnBs) with any questions.
|
||||
:::
|
||||
|
||||
## Setup Working Environment
|
||||
|
@ -47,18 +48,33 @@ Some cables only provide _charging_, verify that your cable is also capable of _
|
|||
|
||||
There is no definitive way to determine the difference in cables if you aren't willing to pull it apart. Trying out a few cables will be the best way to verify.
|
||||
|
||||
Once you've located a working data cable, [install the correct serial driver](#install-serial-drivers) and [test for driver installation](#test-for-driver-installation).
|
||||
Once you've located a working data cable, [install the correct serial driver](#install-serial-drivers) and [test for driver installation](#test-driver-installation).
|
||||
|
||||
### Install serial drivers
|
||||
|
||||
<div className="indexCtasBody">
|
||||
<div class="split left">
|
||||
<div class="centered">
|
||||
<Link target="_blank"
|
||||
className={'button button--outline button--lg cta--button'}
|
||||
to={'/docs/getting-started/serial-drivers'}
|
||||
to={'/docs/getting-started/serial-drivers/esp32'}
|
||||
>
|
||||
Install Serial Drivers
|
||||
Install ESP32 Drivers
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="split right">
|
||||
<div class="centered">
|
||||
<Link target="_blank"
|
||||
className={'button button--outline button--lg cta--button'}
|
||||
to={'/docs/getting-started/serial-drivers/nrf52'}
|
||||
>
|
||||
Install NRF52 Drivers
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
### Test driver installation
|
||||
|
||||
|
@ -120,9 +136,13 @@ If you do not see your device:
|
|||
|
||||
## Flash Firmware
|
||||
|
||||
### ESP32
|
||||
:::info
|
||||
If you have a RAK4631-R (the RUI3 bootloader version of the RAK4631), you must [convert the bootloader](/docs/guides/convert-rak4631r) for use with the Arduino before flashing Meshtastic firmware.
|
||||
:::
|
||||
|
||||
<div className="indexCtasBody">
|
||||
<div class="split left">
|
||||
<div class="centered">
|
||||
<Link target="_blank"
|
||||
className={'button button--outline button--lg cta--button'}
|
||||
to={'/docs/getting-started/flashing-firmware/esp32/'}
|
||||
|
@ -130,12 +150,10 @@ If you do not see your device:
|
|||
Flash ESP32 Firmware
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
### NRF52
|
||||
|
||||
For RAK4631 users, if you have a RAK4631-R (the RUI3 bootloader version of the RAK4631), you must [convert it to use the Arduino bootloader](/docs/getting-started/flashing-firmware/nrf52/#convert-rak4631-r-to-rak4631)
|
||||
|
||||
<div className="indexCtasBody">
|
||||
<div class="split right">
|
||||
<div class="centered">
|
||||
<Link target="_blank"
|
||||
className={'button button--outline button--lg cta--button'}
|
||||
to={'/docs/getting-started/flashing-firmware/nrf52/'}
|
||||
|
@ -143,58 +161,20 @@ For RAK4631 users, if you have a RAK4631-R (the RUI3 bootloader version of the R
|
|||
Flash NRF52 Firmware
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
## Connect to Device
|
||||
|
||||
Depending on your device, there are 3 ways to connect to your device:
|
||||
|
||||
### Serial
|
||||
|
||||
<div className="indexCtasBody">
|
||||
<Link target="_blank"
|
||||
className={'button button--outline button--lg cta--button'}
|
||||
to={'/docs/getting-started/connect-device/connect-serial'}
|
||||
>
|
||||
Connect using Serial
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
### Bluetooth
|
||||
## Connect and Configure Device
|
||||
|
||||
<div className="indexCtasBody">
|
||||
<Link target="_blank"
|
||||
className={'button button--outline button--lg cta--button'}
|
||||
to={'/docs/getting-started/connect-device/connect-ble'}
|
||||
>
|
||||
Connect using Bluetooth
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
### Network
|
||||
|
||||
Connecting over network is only supported on ESP32 devices.
|
||||
|
||||
<div className="indexCtasBody">
|
||||
<Link target="_blank"
|
||||
className={'button button--outline button--lg cta--button'}
|
||||
to={'/docs/getting-started/connect-device/connect-network'}
|
||||
>
|
||||
Connect over Network
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
|
||||
## Configure Device
|
||||
|
||||
The initial configuration of the device includes setting the regional settings...
|
||||
After connecting to the device for the first time, you should set the regional settings for the radio as well as other optional settings such as the name of the device.
|
||||
|
||||
<div className="indexCtasBody">
|
||||
<Link target="_blank"
|
||||
className={'button button--outline button--lg cta--button'}
|
||||
to={'/docs/getting-started/initial-config'}
|
||||
>
|
||||
Configure Device
|
||||
Connect and Configure Device
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,103 +0,0 @@
|
|||
---
|
||||
title: Initial Configuration
|
||||
sidebar_label: Initial Configuration
|
||||
slug: /getting-started/initial-config
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
import LoRaRegions from '../blocks/_lora-regions.mdx';
|
||||
|
||||
|
||||
## Connection Supported Clients
|
||||
|
||||
Depending on your connection, some configuration options are not fully supported. Find out which Client is best for your type of connection.
|
||||
|
||||
<Tabs
|
||||
groupId="settings"
|
||||
defaultValue="serial"
|
||||
values={[
|
||||
{label: 'Serial', value: 'serial'},
|
||||
{label: 'Bluetooth', value: 'ble'},
|
||||
{label: 'Network', value: 'network'},
|
||||
]}>
|
||||
<TabItem value="serial">
|
||||
|
||||
- [Python CLI](/docs/software/python/cli/)
|
||||
- [Web Client](https://client.meshtastic.org)
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="ble">
|
||||
|
||||
- [Web Client](https://client.meshtastic.org)
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="network">
|
||||
|
||||
- [Web Client](https://client.meshtastic.org)
|
||||
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
||||
### Configure Regional Settings
|
||||
|
||||
<LoRaRegions />
|
||||
|
||||
|
||||
|
||||
<Tabs
|
||||
groupId="settings"
|
||||
defaultValue="apple"
|
||||
values={[
|
||||
{label: 'Android', value: 'android'},
|
||||
{label: 'Apple', value: 'apple'},
|
||||
{label: 'CLI', value: 'cli'},
|
||||
{label: 'Flasher', value: 'flasher'},
|
||||
{label: 'Web', value: 'web'},
|
||||
]}>
|
||||
<TabItem value="android">
|
||||
|
||||
:::info
|
||||
Region and Modem Preset can be configured on Android.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="apple">
|
||||
|
||||
:::info
|
||||
Configuration of Region, Modem Preset and Hop Limit is available on iOS, iPadOS and macOS at Settings > Radio Configuration > LoRa.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="cli">
|
||||
|
||||
```sh
|
||||
meshtastic --set lora.region <REGION CODE>
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="flasher">
|
||||
|
||||
:::info
|
||||
No LoRa config options are available in the Flasher.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="web">
|
||||
|
||||
:::info
|
||||
All LoRa config options are available in the Web UI.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
||||
|
||||
|
||||
|
114
docs/getting-started/initial-config.mdx
Normal file
114
docs/getting-started/initial-config.mdx
Normal file
|
@ -0,0 +1,114 @@
|
|||
---
|
||||
id: initial-config
|
||||
title: Initial Configuration
|
||||
sidebar_label: Initial Configuration
|
||||
slug: /getting-started/initial-config
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
import LoRaRegions from '../blocks/_lora-regions.mdx';
|
||||
|
||||
|
||||
## Supported Clients per Connection Type
|
||||
|
||||
Depending on your connection, some configuration options are not fully supported. Find out which client is best for your type of connection.
|
||||
|
||||
<Tabs
|
||||
groupId="settings"
|
||||
defaultValue="serial"
|
||||
values={[
|
||||
{label: 'Serial', value: 'serial'},
|
||||
{label: 'Bluetooth', value: 'ble'},
|
||||
{label: 'Network', value: 'network'},
|
||||
]}>
|
||||
<TabItem value="serial">
|
||||
|
||||
- [Python CLI](/docs/software/python/cli/)
|
||||
- [Web Client](https://client.meshtastic.org)
|
||||
- [Android App](/docs/category/android-app)
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="ble">
|
||||
|
||||
- [Android App](/docs/category/android-app)
|
||||
- [Web Client](https://client.meshtastic.org)
|
||||
- [iOS App](/docs/category/apple-apps)
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="network">
|
||||
|
||||
:::info
|
||||
Connecting over network is only supported on ESP32 devices.
|
||||
:::
|
||||
|
||||
- [Web Client](https://client.meshtastic.org)
|
||||
- [Android App](/docs/category/android-app)
|
||||
- [iOS App](/docs/category/apple-apps)
|
||||
- [Python CLI](/docs/software/python/cli/)
|
||||
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
## Set Regional Settings
|
||||
|
||||
In order to start communicating over the mesh, you must set your region. This setting controls which frequency range your device uses and should be set according to your regional location.
|
||||
|
||||
|
||||
<Tabs
|
||||
groupId="settings"
|
||||
defaultValue="apple"
|
||||
values={[
|
||||
{label: 'Android', value: 'android'},
|
||||
{label: 'Apple', value: 'apple'},
|
||||
{label: 'CLI', value: 'cli'},
|
||||
{label: 'Web', value: 'web'},
|
||||
]}>
|
||||
<TabItem value="android">
|
||||
|
||||
1. Follow the [installation](/docs/software/android/installation) and [usage](/docs/software/python/cli/usage) instructions for [Meshtastic Android](/docs/category/android-app).
|
||||
2. Open the app, connect to the device from your phone over USB Serial or Bluetooth.
|
||||
3. Once paired, Click "UNSET" next to the device name.
|
||||
4. Select the region from the list according to your regional location.
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="apple">
|
||||
|
||||
:::info
|
||||
Configuration of Region, Modem Preset and Hop Limit is available on iOS, iPadOS and macOS at Settings > Radio Configuration > LoRa.
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="cli">
|
||||
|
||||
1. Install [Meshtastic PythonCLI](/docs/software/python/cli/installation)
|
||||
```sh
|
||||
pip3 install --upgrade pytap2
|
||||
pip3 install --upgrade meshtastic
|
||||
```
|
||||
2. Run the following command, replacing `<REGION-CODE>` with the region code listed above according to your regional location.
|
||||
```sh
|
||||
meshtastic --set lora.region <REGION-CODE>
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="web">
|
||||
|
||||
1. Open the Meshtastic Web interface: [client.meshtastic.org](https://client.meshtastic.org)
|
||||
2. Navigate to the **LoRa** menu.
|
||||
3. Under **Regional Settings**, set your **Region** according to your regional location.
|
||||
4. Click **Save**.
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### Region Codes
|
||||
|
||||
<LoRaRegions />
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
---
|
||||
id: installing-esp32-serial-drivers
|
||||
id: esp32
|
||||
title: ESP32 Serial Drivers
|
||||
sidebar_label: ESP32 Drivers
|
||||
#pagination_next: /docs/getting-started
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
id: installing-nrf52-serial-drivers
|
||||
id: nrf52
|
||||
title: NRF52 Serial Drivers
|
||||
sidebar_label: NRF52 Drivers
|
||||
sidebar_position: 2
|
||||
|
|
|
@ -1,37 +1,33 @@
|
|||
---
|
||||
id: peripherals
|
||||
title: A Note on Peripherals
|
||||
sidebar_label: Peripherals
|
||||
sidebar_position: 2
|
||||
id: gpio-peripherals
|
||||
title: Configuring GPIO Peripherals
|
||||
sidebar_label: Setup GPIO Peripherals
|
||||
slug: /hardware/peripheral/
|
||||
sidebar_position: 6
|
||||
---
|
||||
|
||||
|
||||
## Firmware Versions
|
||||
|
||||
The device firmware runs on the nodes to build the mesh for communication. Each different make and model of device requires a different build of the Meshtastic firmware in order to run properly. Thankfully, due to the design of Meshtastic, it is possible to port the firmware to new devices as they become available. The firmware currently runs on a range of ESP32 based devices, but there is also increasing support for the nRF52 microprocessor with some more recent devices coming to market.
|
||||
|
||||
The current firmware has support for a screen to display received messages, along with information about nodes on the mesh, and more detailed information about the device on which it is running.
|
||||
|
||||
The latest firmware can be downloaded from the [Downloads](/downloads) page. If you wish to view the code or contribute to development of the firmware, please visit the device code <a href="https://github.com/meshtastic/firmware">GitHub page</a>.
|
||||
|
||||
:::info
|
||||
Please be aware that there are significant changes between version branches 1.2.x and 1.3.x which mean that devices need to be running the same branch of firmware to be able to talk to each other. Python, Android, and other software applications will also need to be running the same branch to be able to talk to the device.
|
||||
:::
|
||||
|
||||
|
||||
## Remote Hardware
|
||||
|
||||
|
||||
:::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.
|
||||
:::
|
||||
|
||||
:::note
|
||||
The device firmware runs on the nodes to build the mesh for communication. Each different make and model of device requires a different build of the Meshtastic firmware in order to run properly. Thankfully, due to the design of Meshtastic, it is possible to port the firmware to new devices as they become available. The firmware currently runs on a range of ESP32 based devices, but there is also increasing support for the nRF52 microprocessor with some more recent devices coming to market.
|
||||
|
||||
The current firmware has support for a screen to display received messages, along with information about nodes on the mesh, and more detailed information about the device on which it is running.
|
||||
|
||||
The latest firmware can be downloaded from the [Downloads](/downloads) page. If you wish to view the code or contribute to development of the firmware, please visit the device code [GitHub page](https://github.com/meshtastic/firmware).
|
||||
|
||||
:::info
|
||||
Please be aware that there are significant changes between version branches 1.2.x and 1.3.x which mean that devices need to be running the same branch of firmware to be able to talk to each other. Python, Android, and other software applications will also need to be running the same branch to be able to talk to the device.
|
||||
|
||||
This feature uses a preinstalled module in the device code and associated command line flags/classes in the python code. You'll need to be running at least version 1.2.23 (or later) of the python and device code to use this feature.
|
||||
:::
|
||||
|
||||
You can get the latest python tool/library with `pip3 install --upgrade meshtastic` on Windows/Linux/OS-X. See the [python section](/docs/software/python/cli/installation) for more details.
|
||||
## Remote Hardware
|
||||
|
||||
### Supported operations in the initial release
|
||||
### Supported Operations
|
||||
|
||||
- Set any GPIO
|
||||
- Read any GPIO
|
||||
|
@ -39,41 +35,38 @@ You can get the latest python tool/library with `pip3 install --upgrade meshtast
|
|||
|
||||
### Setup
|
||||
|
||||
You can get the latest python tool/library with `pip3 install --upgrade meshtastic` on Windows/Linux/OS-X. See the [python section](/docs/software/python/cli/installation) for more details.
|
||||
|
||||
To prevent access from untrusted users, you must first make a `gpio` channel that is used for authenticated access to this feature. You'll need to install this channel on both the local and remote node.
|
||||
|
||||
The procedure using the python command line tool is:
|
||||
|
||||
1. Connect local device via USB
|
||||
|
||||
2. Create a gpio channel
|
||||
2. Create a GPIO channel:
|
||||
```shell
|
||||
meshtastic --ch-add gpio
|
||||
```
|
||||
|
||||
:::tip
|
||||
If doing local testing, may want to change the speed of the channel at this time, too. (ex: "meshtastic --ch-mediumfast")
|
||||
:::
|
||||
|
||||
3. Check the channel has been created and copy the long "Complete URL" that contains all the channels on that device
|
||||
|
||||
3. If doing local testing, you may also want to change the speed of the channel:
|
||||
```sh
|
||||
meshtastic --ch-mediumfast
|
||||
```
|
||||
4. Check the channel has been created and copy the long "Complete URL" that contains all the channels on that device:
|
||||
```shell
|
||||
meshtastic --info
|
||||
```
|
||||
|
||||
4. Connect the remote device via USB (or use the [remote admin](/docs/configuration/remote-admin) feature to reach it through the mesh)
|
||||
|
||||
5. Set it to join the gpio channel you created
|
||||
5. Connect the remote device via USB (or use the [remote admin](/docs/configuration/remote-admin) feature to reach it through the mesh)
|
||||
6. Set it to join the gpio channel you created:
|
||||
```shell
|
||||
meshtastic --seturl theurlyoucopiedinstep3
|
||||
```
|
||||
|
||||
Now both devices should be able to talk over the `gpio` channel. Send a text message from one the other other verify. Also run "--nodes" to verify the second node shows up.
|
||||
Now both devices should be able to talk over the `gpio` channel. Send a text message from one the other other verify. Also run `--nodes` to verify the second node shows up.
|
||||
|
||||
### A little bit of information about masks
|
||||
### Masks
|
||||
|
||||
To determine the appropriate mask for the pin(s) that you want to know. The python program (and output) below might help:
|
||||
|
||||
```
|
||||
```python
|
||||
>>> for i in range(1,45):
|
||||
... print(f'GPIO:{i} mask:{hex(2**i)}')
|
||||
...
|
||||
|
@ -123,66 +116,66 @@ GPIO:43 mask:0x80000000000
|
|||
GPIO:44 mask:0x100000000000
|
||||
```
|
||||
|
||||
### How to easily test GPIO operations?
|
||||
## Testing GPIO Operations
|
||||
|
||||
You can add a simple LED and resistor to validate that the GPIO operations work as expected. Used the tutorial at https://www.instructables.com/Slide-Switch-With-Arduino-Uno-R3/ as a guide.
|
||||
You can programmatically do operations from your own python code by using the Meshtastic `RemoteHardwareClient` class. See the [Python API](/docs/software/python/cli/installation) documentation for more details.
|
||||
|
||||
Need:
|
||||
You can add a simple LED and resistor to validate that the GPIO operations work as expected. Use [this tutorial](https://www.instructables.com/Slide-Switch-With-Arduino-Uno-R3/) as a guide.
|
||||
|
||||
- 2 Meshtastic devices (one device could be on a local computer, and the other one just has to be powered and is the one with the LED to be connected to it)
|
||||
- 2 wires (black and yellow; they can be any color but typically black is used for ground)
|
||||
- breadboard (optional)
|
||||
- 1 LED
|
||||
- 1 220Ω resistor (somewhat optional, but recommended)
|
||||
### Requirements
|
||||
|
||||
Prep:
|
||||
- (x2) Meshtastic devices (one device could be on a local computer, and the other one just has to be powered and is the one with the LED to be connected to it)
|
||||
- (x2) wires (black and yellow; they can be any color but typically black is used for ground)
|
||||
- (x1) LED
|
||||
- (x1) 220Ω resistor (somewhat optional, but recommended)
|
||||
- (x1) Breadboard (optional)
|
||||
|
||||
- disconnect the remote device from power (battery/usb)
|
||||
- add a resistor from yellow wire to the one end of the LED (either end of the resistor is ok, either end of the LED is ok)
|
||||
- add the yellow wire from a GPIO pin that will not cause any issues (ex: for TLoraV1, we can use GPIO21)
|
||||
- add the black "ground" wire from the ground pin on the device (ex: for TLoraV1 it is the end pin next to the RST button) to the other end of the LED
|
||||
- power on the device
|
||||
### Preparation
|
||||
|
||||
Validation:
|
||||
By default, the pin may be "off" or "on". (It will most likely "off".) See the steps below for running commands. In the example of GPIO21, the mask would be 0x200000.
|
||||
1. Disconnect the remote device from power (battery/usb)
|
||||
2. Add a resistor from yellow wire to the one end of the LED (either end of the resistor is OK, either end of the LED is OK)
|
||||
3. Add the yellow wire from a GPIO pin that will not cause any issues (ex: for TLoraV1, we can use GPIO21)
|
||||
4. Add the black "ground" wire from the ground pin on the device (ex: for TLoraV1 it is the end pin next to the RST button) to the other end of the LED
|
||||
5. Power on the device
|
||||
|
||||
[<img alt="T-Lora v1 with LED on GPIO 21" src="/img/LED_on_TLoraV1.jpg" style={{zoom:'25%'}} />](/img/LED_on_TLoraV1.jpg)
|
||||
### Validation
|
||||
|
||||
### Doing GPIO operations
|
||||
By default, the pin may be "off" or "on". (It will most likely "off".) See the steps below for running commands. In the example of GPIO21, the mask would be `0x200000`.
|
||||
|
||||
You can programmatically do operations from your own python code by using the Meshtastic `RemoteHardwareClient` class. See the [python API](/docs/software/python/cli/installation) documentation for more details.
|
||||
![T-Lora v1 with LED on GPIO 21](/img/LED_on_TLoraV1.jpg)
|
||||
|
||||
### Using GPIOs from the python CLI
|
||||
|
||||
Writing a GPIO (ex: turn "on" GPIO4):
|
||||
## Using GPIOs from the Python CLI
|
||||
|
||||
```shell title="Expected output"
|
||||
$ meshtastic --port /dev/ttyUSB0 --gpio-wrb 4 1 --dest \!28979058
|
||||
Connected to radio
|
||||
Writing GPIO mask 0x10 with value 0x10 to !28979058
|
||||
### Writing a GPIO
|
||||
|
||||
```shell title="Example: turning 'on' GPIO4"
|
||||
meshtastic --port /dev/ttyUSB0 --gpio-wrb 4 1 --dest 28979058
|
||||
# Connected to radio
|
||||
# Writing GPIO mask 0x10 with value 0x10 to !28979058
|
||||
```
|
||||
|
||||
Reading a GPIO (ex: read GPIO4):
|
||||
### Reading a GPIO
|
||||
|
||||
```shell title="Expected output"
|
||||
$ meshtastic --port /dev/ttyUSB0 --gpio-rd 0x10 --dest \!28979058
|
||||
Connected to radio
|
||||
Reading GPIO mask 0x10 from !28979058
|
||||
GPIO read response gpio_value=16
|
||||
```shell title="Example: read GPIO4"
|
||||
meshtastic --port /dev/ttyUSB0 --gpio-rd 0x10 --dest 28979058
|
||||
# Connected to radio
|
||||
# Reading GPIO mask 0x10 from !28979058
|
||||
# GPIO read response gpio_value=16
|
||||
```
|
||||
|
||||
:::note
|
||||
If the mask and the gpio_value match, then the value is "on". If the gpio_value is 0, then the value is "off".
|
||||
:::
|
||||
|
||||
Watching for GPIO changes (ex: watching GPIO4 for changes):
|
||||
### Watching for GPIO Changes
|
||||
|
||||
```shell title="Expected output"
|
||||
$ meshtastic --port /dev/ttyUSB0 --gpio-watch 0x10 --dest \!28979058
|
||||
Connected to radio
|
||||
Watching GPIO mask 0x10 from !28979058
|
||||
Received RemoteHardware typ=GPIOS_CHANGED, gpio_value=16
|
||||
Received RemoteHardware typ=GPIOS_CHANGED, gpio_value=0
|
||||
Received RemoteHardware typ=GPIOS_CHANGED, gpio_value=16
|
||||
< press ctrl-c to exit >
|
||||
```shell title="Example: watching GPIO4 for changes"
|
||||
meshtastic --port /dev/ttyUSB0 --gpio-watch 0x10 --dest 28979058
|
||||
# Connected to radio
|
||||
# Watching GPIO mask 0x10 from !28979058
|
||||
# Received RemoteHardware typ=GPIOS_CHANGED, gpio_value=16
|
||||
# Received RemoteHardware typ=GPIOS_CHANGED, gpio_value=0
|
||||
# Received RemoteHardware typ=GPIOS_CHANGED, gpio_value=16
|
||||
# < press ctrl-c to exit >
|
||||
```
|
10
docs/guides/link-new-modules.mdx
Normal file
10
docs/guides/link-new-modules.mdx
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
id: writing-modules
|
||||
title: Creating New Modules
|
||||
sidebar_label: Create a Module
|
||||
sidebar_position: 5
|
||||
---
|
||||
|
||||
import NewModule from '../development/device/module-api.mdx'
|
||||
|
||||
<NewModule components={props.components} />
|
|
@ -1,6 +1,6 @@
|
|||
label: Antennas
|
||||
collapsible: true
|
||||
position: 1
|
||||
position: 2
|
||||
link:
|
||||
type: generated-index
|
||||
title: Antennas
|
|
@ -1,116 +0,0 @@
|
|||
---
|
||||
id: lora
|
||||
title: LILYGO® TTGO Lora devices
|
||||
sidebar_label: LILYGO® Lora
|
||||
sidebar_position: 6
|
||||
---
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
LILYGO® Lora23 v1-2.1 * Versions other than 2.1 not recommended with a battery
|
||||
|
||||
<Tabs
|
||||
groupId="t-lora"
|
||||
defaultValue="v1"
|
||||
values={[
|
||||
{label: 'Lora V1', value: 'v1'},
|
||||
{label: 'Lora V1.3', value: 'v1.3'},
|
||||
{label: 'Lora V2.0', value: 'v2.0'},
|
||||
{label: 'Lora V2.1-1.6', value:'v2.1'}
|
||||
]}>
|
||||
<TabItem value="v1">
|
||||
|
||||
- ESP32 - WiFi & Bluetooth
|
||||
- SX1276 - LoRa Transceiver
|
||||
- Frequency options:
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- Built in 0.96 inch OLED display
|
||||
- U.FL antenna connector
|
||||
- Reset and Program switches
|
||||
- No GPS
|
||||
|
||||
- Firmware file: `firmware-tlora-v1-1.x.x.bin`
|
||||
- [Purchase link](https://www.aliexpress.com/item/32840238513.html)
|
||||
|
||||
[<img alt="LILYGO® TTGO Lora V1" src="/img/hardware/lora-v1.png" style={{zoom:'25%'}} />](/img/hardware/lora-v1.png)
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="v1.3">
|
||||
|
||||
- ESP32 - WiFi & Bluetooth
|
||||
- SX127x - LoRa Transceiver
|
||||
- Frequency options:
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- Built in 0.96 inch OLED display
|
||||
- U.FL antenna connector
|
||||
- Reset and Program switches
|
||||
- No GPS
|
||||
|
||||
|
||||
- Firmware file: `firmware-tlora_v1_3-1.x.x.bin`
|
||||
- [Purchase link](https://www.aliexpress.com/item/4000628100802.html)
|
||||
|
||||
|
||||
[<img alt="LILYGO® TTGO Lora V1.3" src="/img/hardware/lora-v1.3.png" style={{zoom:'25%'}} />](/img/hardware/lora-v1.3.png)
|
||||
[<img alt="LILYGO® TTGO Lora V1.3 pin map" src="/img/hardware/lora-v1.3_pinmap.webp" style={{zoom:'25%'}} />](/img/hardware/lora-v1.3_pinmap.webp)
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="v2.0">
|
||||
|
||||
- ESP32 - WiFi & Bluetooth
|
||||
- SX127x - LoRa Transceiver
|
||||
- Frequency options:
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- Built in 0.96 inch OLED display
|
||||
- U.FL antenna connector
|
||||
- Power and Reset switches
|
||||
- microSD connector
|
||||
- No GPS
|
||||
|
||||
|
||||
- Firmware file: `firmware-tlora-v2-1.x.x.bin`
|
||||
- [Purchase link](https://www.aliexpress.com/item/32846302183.html)
|
||||
|
||||
|
||||
[<img alt="LILYGO® TTGO Lora V2" src="/img/hardware/lora-v2.0.png" style={{zoom:'25%'}} />](/img/hardware/lora-v2.0.png)
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="v2.1">
|
||||
|
||||
- ESP32 - WiFi & Bluetooth
|
||||
- SX127x - LoRa Transceiver
|
||||
- Frequency options:
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- Built in 0.96 inch OLED display
|
||||
- SMA antenna connector
|
||||
- Power and Reset switches
|
||||
- microSD connector
|
||||
- No GPS
|
||||
|
||||
|
||||
- Firmware file: `firmware-tlora-v2-1-1.6-1.x.x.bin`
|
||||
- [Purchase link](https://www.aliexpress.com/item/32915894264.html)
|
||||
|
||||
<br />
|
||||
|
||||
:::warning
|
||||
Early versions of some of these boards contained the wrong component in the LiPo battery charging circuit allowing the battery to be overcharged.
|
||||
:::
|
||||
|
||||
[<img src="/img/hardware/lora-v2.1-1.6.png" alt="LILYGO® TTGO Lora V2.1-1.6" style={{zoom:'25%'}} />](/img/hardware/lora-v2.1-1.6.png)
|
||||
|
||||
Shorting IO12 to ground will progress the screen pages, wake up the device, etc. A simple push switch can be added for this purpose.
|
||||
|
||||
[<img src="/img/hardware/lora32-v2-1.6-button.jpg" style={{zoom:'30%'}} />](/img/hardware/lora32-v2-1.6-button.jpg)
|
||||
[<img src="/img/hardware/lora32-v2-1.6-button-example.jpg" style={{zoom:'30%'}} />](/img/hardware/lora32-v2-1.6-button.jpg)
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
Further information on the LILYGO® LoRa and T-beam devices can be found on LILYGO®'s [GitHub page](https://github.com/Xinyuan-LilyGO/LilyGo-LoRa-Series).
|
15
docs/hardware/devices/lora/buttons.mdx
Normal file
15
docs/hardware/devices/lora/buttons.mdx
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
id: buttons
|
||||
title: Hardware Buttons
|
||||
sidebar_label: Buttons
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
## Functionality
|
||||
|
||||
- **Reset Button**
|
||||
- _**Single press**_ resets the device.
|
||||
- **Program button**
|
||||
- _**Single press**_ changes the page of information displayed on the screen.
|
||||
- _**Long press**_ adjusts the contrast of the screen.
|
||||
- _**Triple press**_ sends a broadcast message of the device position.
|
24
docs/hardware/devices/lora/enclosures.mdx
Normal file
24
docs/hardware/devices/lora/enclosures.mdx
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
id: enclosures
|
||||
title: Enclosures
|
||||
sidebar_label: Enclosures
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
import Tropho from '/img/enclosures/3dp-tropho-lora32.png';
|
||||
|
||||
## Created by tropho/TonyG
|
||||
|
||||
### TTGO LoRa32 v2.1.1.6 Case
|
||||
|
||||
Download from [Printables](https://www.printables.com/model/131389-ttgo-lora32-v2116-case-for-meshtastic) or purchase from the creator's [Etsy Store](https://www.etsy.com/listing/1285837219/ttgo-lora-21-16-case).
|
||||
|
||||
#### Required Hardware
|
||||
|
||||
- (x4) M3x16mm socket-head cap screws
|
||||
- (x4) M3 Nuts
|
||||
- (x2) M2 Screws (to secure TTGO LoRa32 board to frame)
|
||||
- (x1) LiPo battery pack (1,000mAh)
|
||||
- (x1) Momentary micro push button for PRG (6x6x5mm)
|
||||
|
||||
<img src={Tropho} width="600" align="left" />
|
14
docs/hardware/devices/lora/gpio.mdx
Normal file
14
docs/hardware/devices/lora/gpio.mdx
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
id: gpio
|
||||
title: GPIO
|
||||
sidebar_label: GPIO
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
## GPIO IO12
|
||||
|
||||
For the Lora V2.1-1.6, Shorting IO12 to ground will progress through the screen pages and/or wake up the device. A simple push switch can be added for this purpose.
|
||||
|
||||
<img src="/img/hardware/lora32-v2-1.6-button.jpg" width="400" align="left"/>
|
||||
|
||||
<img src="/img/hardware/lora32-v2-1.6-button-example.jpg" width="400" align="left"/>
|
144
docs/hardware/devices/lora/index.mdx
Normal file
144
docs/hardware/devices/lora/index.mdx
Normal file
|
@ -0,0 +1,144 @@
|
|||
---
|
||||
id: lora
|
||||
title: LILYGO® TTGO Lora Devices
|
||||
sidebar_label: LILYGO® Lora
|
||||
sidebar_position: 6
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
Further information on the LILYGO® LoRa devices can be found on LILYGO®'s [GitHub page](https://github.com/Xinyuan-LilyGO/LilyGo-LoRa-Series).
|
||||
|
||||
<Tabs
|
||||
groupId="t-lora"
|
||||
defaultValue="v1"
|
||||
values={[
|
||||
{label: 'Lora V1', value: 'v1'},
|
||||
{label: 'Lora V1.3', value: 'v1.3'},
|
||||
{label: 'Lora V2.0', value: 'v2.0'},
|
||||
{label: 'Lora V2.1-1.6', value:'v2.1'}
|
||||
]}>
|
||||
<TabItem value="v1">
|
||||
|
||||
:::warning
|
||||
Not recommended with a battery! These boards contain the wrong component in the LiPo battery charging circuit allowing the battery to be overcharged.
|
||||
:::
|
||||
|
||||
- **MCU**
|
||||
- ESP32 (WiFi & Bluetooth)
|
||||
- **LoRa Transceiver**
|
||||
- Semtech SX1276
|
||||
- **Frequency options**
|
||||
- 915 MHz
|
||||
- 868 MHz
|
||||
- **Connectors**
|
||||
- Micro USB
|
||||
- Antenna: U.FL antenna connector
|
||||
|
||||
**Features**
|
||||
- Built in 0.96 inch OLED display
|
||||
|
||||
**Resources**
|
||||
- Firmware file: `firmware-tlora-v1-X.X.X.xxxxxxx.bin`
|
||||
- Purchase link: [AliExpress](https://www.aliexpress.com/item/32840238513.html)
|
||||
|
||||
|
||||
![LILYGO® TTGO Lora V1](/img/hardware/lora-v1.png)
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="v1.3">
|
||||
|
||||
:::warning
|
||||
Not recommended with a battery! These boards contain the wrong component in the LiPo battery charging circuit allowing the battery to be overcharged.
|
||||
:::
|
||||
|
||||
- **MCU**
|
||||
- ESP32 (WiFi & Bluetooth)
|
||||
- **LoRa Transceiver**
|
||||
- Semtech SX127x
|
||||
- **Frequency options**
|
||||
- 915 MHz
|
||||
- 868 MHz
|
||||
- **Connectors**
|
||||
- Micro USB
|
||||
- Antenna: U.FL antenna connector
|
||||
|
||||
**Features**
|
||||
- Built in 0.96 inch OLED display
|
||||
|
||||
**Resources**
|
||||
- Firmware file: `firmware-tlora_v1_3-X.X.X.xxxxxxx.bin`
|
||||
- Purchase link: [AliExpress](https://www.aliexpress.com/item/4000628100802.html)
|
||||
|
||||
![LILYGO® TTGO Lora V1.3](/img/hardware/lora-v1.3.png)
|
||||
![LILYGO® TTGO Lora V1.3 pin map](/img/hardware/lora-v1.3_pinmap.webp)
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="v2.0">
|
||||
|
||||
|
||||
:::warning
|
||||
Not recommended with a battery! These boards contain the wrong component in the LiPo battery charging circuit allowing the battery to be overcharged.
|
||||
:::
|
||||
|
||||
|
||||
- **MCU**
|
||||
- ESP32 (WiFi & Bluetooth)
|
||||
- **LoRa Transceiver**
|
||||
- Semtech SX127x
|
||||
- **Frequency options**
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- **Connectors**
|
||||
- Micro USB
|
||||
- Antenna: U.FL antenna connector
|
||||
|
||||
**Features**
|
||||
- Built in 0.96 inch OLED display
|
||||
- Power and Reset switches
|
||||
- microSD connector
|
||||
- No GPS
|
||||
|
||||
**Resources**
|
||||
- Firmware file: `firmware-tlora-v2-X.X.X.xxxxxxx.bin`
|
||||
- Purchase link: [AliExpress](https://www.aliexpress.com/item/32846302183.html)
|
||||
|
||||
![LILYGO® TTGO Lora V2](/img/hardware/lora-v2.0.png)
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="v2.1">
|
||||
|
||||
|
||||
:::caution
|
||||
Not recommended with a battery. Early versions of some of these boards contained the wrong component in the LiPo battery charging circuit allowing the battery to be overcharged.
|
||||
:::
|
||||
|
||||
- **MCU**
|
||||
- ESP32 (WiFi & Bluetooth)
|
||||
- **LoRa Transceiver**
|
||||
- Semtech SX127x
|
||||
- **Frequency options**
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- **Connectors**
|
||||
- Micro USB
|
||||
- Antenna: SMA antenna connector
|
||||
|
||||
**Features**
|
||||
- Built in 0.96 inch OLED display
|
||||
- Power and Reset switches
|
||||
- microSD connector
|
||||
- No GPS
|
||||
|
||||
**Resources**
|
||||
- Firmware file: `firmware-tlora-v2-1-1.6-X.X.X.xxxxxxx.bin`
|
||||
- Purchase link: [AliExpress](https://www.aliexpress.com/item/32915894264.html)
|
||||
|
||||
|
||||
![TTGO Lora V2.1-1.6](/img/hardware/lora-v2.1-1.6.png)
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
|
@ -1,33 +0,0 @@
|
|||
---
|
||||
id: nano-g1
|
||||
title: Nano G1 device
|
||||
sidebar_label: Nano G1
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
The Nano G1 is the first dedicated hardware to be designed from scratch purely for Meshtastic by Neil Hao. It has been designed to be small and compact with the inclusion of a high quality internal PCB antenna.
|
||||
|
||||
Only the US 915 MHz version is available currently. There should be an EU 868 MHz version available in the future.
|
||||
|
||||
### Features
|
||||
|
||||
- Meshtastic pre-installed
|
||||
- ESP32 WROOM microprocessor - WiFi & Bluetooth
|
||||
- Semtech SX1276 - LoRa Transceiver
|
||||
- Frequency options:
|
||||
- 915 MHz
|
||||
- Additional ultra-low noise amplifier to improve LoRa receiver sensitivity
|
||||
- ATGM336H-5N-71 Whole Constellation Positioning and Navigation Module (Supports GPS, BDS and GLONASS)
|
||||
- Built in 915Mhz Lora PCB Antenna (VSWR <=1.5 @ 915 MHz)
|
||||
- User button
|
||||
- 1.3 inch OLED screen
|
||||
- Buzzer
|
||||
|
||||
### Resources
|
||||
|
||||
- Firmware file: `firmware-nano-g1-1.x.x.bin`
|
||||
- [Purchase link](https://www.tindie.com/products/neilhao/meshtastic-mesh-device-nano-edition/)
|
||||
|
||||
[<img alt="Nano G1" src="/img/hardware/nano-g1-front.jpg" style={{zoom:'25%'}} />](/img/hardware/nano-g1-front.jpg)
|
||||
|
||||
Further information on the Nano G1 can be found on [Unit Engineering's Wiki](https://uniteng.com/wiki/doku.php?id=meshtastic:nano).
|
13
docs/hardware/devices/nano-g1/buttons.mdx
Normal file
13
docs/hardware/devices/nano-g1/buttons.mdx
Normal file
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
id: buttons
|
||||
title: Hardware Buttons
|
||||
sidebar_label: Buttons
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
## Functionality
|
||||
|
||||
- **Program button**
|
||||
- _**Single press**_ changes the page of information displayed on the screen.
|
||||
- _**Long press**_ adjusts the contrast of the screen.
|
||||
- _**Triple press**_ sends a broadcast message of the device position.
|
42
docs/hardware/devices/nano-g1/index.mdx
Normal file
42
docs/hardware/devices/nano-g1/index.mdx
Normal file
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
id: nano-g1
|
||||
title: Nano G1 device
|
||||
sidebar_label: Nano G1
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
The Nano G1 is the first dedicated hardware device to be designed from scratch purely for Meshtastic by Neil Hao. It has been designed to be small and compact with the inclusion of a high quality internal PCB antenna.
|
||||
|
||||
### Specifications
|
||||
|
||||
- **MCU**
|
||||
- ESP32 WROOM (WiFi & Bluetooth)
|
||||
- Bluetooth 4.2
|
||||
- **LoRa Transceiver**
|
||||
- Semtech SX1276
|
||||
- Additional ultra-low noise amplifier to improve LoRa receiver sensitivity
|
||||
- **Frequency options**
|
||||
- US-915 MHz
|
||||
- **Navigation Module**
|
||||
- ATGM336H-5N-71 (Supports GPS, BDS and GLONASS)
|
||||
- **Antenna**
|
||||
- Built in 915Mhz Lora PCB Antenna (VSWR <=1.5 @ 915 MHz)
|
||||
- **Connectors**
|
||||
- USB-C
|
||||
|
||||
### Features
|
||||
|
||||
- Meshtastic pre-installed
|
||||
- User button
|
||||
- 1.3 inch OLED screen
|
||||
- Buzzer
|
||||
|
||||
### Resources
|
||||
|
||||
- Firmware file: `firmware-nano-g1-1.x.x.bin`
|
||||
- [Purchase link](https://www.tindie.com/products/neilhao/meshtastic-mesh-device-nano-edition/)
|
||||
|
||||
|
||||
Further information on the Nano G1 can be found on [Unit Engineering's Wiki](https://uniteng.com/wiki/doku.php?id=meshtastic:nano).
|
||||
|
||||
![Nano G1](/img/hardware/nano-g1-front.jpg)
|
136
docs/hardware/devices/rak/base-boards.mdx
Normal file
136
docs/hardware/devices/rak/base-boards.mdx
Normal file
|
@ -0,0 +1,136 @@
|
|||
---
|
||||
id: base-board
|
||||
title: RAK WisBlock Base Boards
|
||||
sidebar_label: Base Boards
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
## WisBlock Base
|
||||
|
||||
<Tabs
|
||||
groupId="rakbase board"
|
||||
defaultValue="RAK19007"
|
||||
values={[
|
||||
{label: 'RAK5005-O', value: 'RAK5005-O'},
|
||||
{label: 'RAK19007', value:'RAK19007'},
|
||||
{label: 'RAK19003', value: 'RAK19003'},
|
||||
{label: 'RAK19001', value: 'RAK19001'}
|
||||
]}>
|
||||
<TabItem value="RAK5005-O">
|
||||
|
||||
### RAK5005-O
|
||||
|
||||
- [RAK5005-O](https://store.rakwireless.com/products/rak5005-o-base-board) - The original WisBlock Base Board.
|
||||
- **Slots**
|
||||
- (x1) Core Module slot
|
||||
- (x1) WisBlock IO Module slot
|
||||
- (x4) WisBlock Sensor Module slots
|
||||
- **Buttons**
|
||||
- (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).
|
||||
- **Connectors**
|
||||
- Connector for 3.7v LiPo battery (with charge controller)
|
||||
- Connector for 5v solar panel (max 5.5v)
|
||||
- I<sup>2</sup>C, UART, GPIOs and analog input accessible with solder contacts
|
||||
- Micro USB port for debugging and power
|
||||
- **Screen Support**
|
||||
- OLED screen support (OLED screen sold separately)
|
||||
|
||||
|
||||
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
|
||||
alt="RAK4631 5005"
|
||||
src="/img/hardware/rak4631_5005.png"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="RAK19007">
|
||||
|
||||
### RAK19007
|
||||
|
||||
- [RAK19007](https://store.rakwireless.com/products/rak19007-wisblock-base-board-2nd-gen) - WisBlock Base Board (2nd Generation, an upgrade to the RAK5005-O)
|
||||
- **Slots**
|
||||
- (x1) Core Module slot
|
||||
- (x1) WisBlock IO Module slot
|
||||
- (x4) WisBlock Sensor Module slots
|
||||
- **Buttons**
|
||||
- (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).
|
||||
- **Connectors**
|
||||
- Connector for 3.7v LiPo battery (with charge controller)
|
||||
- Connector for 5v solar panel (max 5.5v)
|
||||
- I<sup>2</sup>C, UART, BOOT and GPIOs accessible with solder contacts
|
||||
- USB-C port for debugging and power
|
||||
- **Screen Support**
|
||||
- OLED screen support (OLED screen sold separately)
|
||||
|
||||
|
||||
Further information on the RAK19007 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19007/Overview/#product-description).
|
||||
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="RAK19003">
|
||||
|
||||
### RAK19003
|
||||
|
||||
- [RAK19003](https://store.rakwireless.com/products/wisblock-base-board-rak19003) - WisBlock's Mini Base Board.
|
||||
- **Slots**
|
||||
- (x1) Core Module slot
|
||||
- (x1) WisBlock IO Module slot
|
||||
- (x2) WisBlock Sensor Module slots
|
||||
- **Buttons**
|
||||
- (x1) Reset Button
|
||||
- It is currently not possible to add a user button to this board.
|
||||
- **Connectors**
|
||||
- Connector for 3.7v LiPo battery (with charge controller)
|
||||
- Connector for 5v solar panel (max 5.5v)
|
||||
- I<sup>2</sup>C, UART and BOOT headers accessible with solder contacts
|
||||
- Micro USB port for debugging and power
|
||||
- **Screen Support**
|
||||
- OLED screen support (OLED screen sold separately)
|
||||
|
||||
|
||||
Further information on the RAK19003 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19003/Overview/#product-description)
|
||||
|
||||
<img
|
||||
alt="RAK4631 19003"
|
||||
src="/img/hardware/rak4631_19003.png"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="RAK19001">
|
||||
|
||||
### RAK19001
|
||||
|
||||
- [RAK19001](https://store.rakwireless.com/products/rak19001-wisblock-dual-io-base-board) - WisBlock's Dual IO Base Board.
|
||||
- **Slots**
|
||||
- (x1) Core Module slot
|
||||
- (x2) WisBlock IO Module slot
|
||||
- (x6) WisBlock Sensor Module slots
|
||||
- **Buttons**
|
||||
- (x1) Reset Button
|
||||
- (x1) User-defined push button switch
|
||||
- (x1) Battery selector switch
|
||||
- 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**
|
||||
- Connector for 3.7v LiPo battery (with charge controller)
|
||||
- Connector for 5v solar panel (max 5.5v)
|
||||
- Separate connector for non-rechargeable batteries
|
||||
- I<sup>2</sup>C, SPI, UART, BOOT and GPIOs accessible with solder contacts
|
||||
- USB-C port for debugging and power
|
||||
- **Screen Support**
|
||||
- OLED screen support (OLED screen sold separately)
|
||||
|
||||
|
||||
Further information on the RAK19001 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19001/Overview/#product-description).
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
30
docs/hardware/devices/rak/buttons.mdx
Normal file
30
docs/hardware/devices/rak/buttons.mdx
Normal file
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
id: buttons
|
||||
title: Hardware Buttons
|
||||
sidebar_label: Buttons
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
## Functionality
|
||||
|
||||
Button functionality for RAK devices greatly depends on the device specific configuration. If your device has any of the following buttons, the functionality is generally the same for all RAK devices:
|
||||
|
||||
### RAK5005-O / RAK19007 / RAK19003
|
||||
|
||||
- **Program button**
|
||||
- _**Single press**_ changes the page of information displayed on the screen.
|
||||
- _**Double press (nRF52 only)**_ puts the device in bootloader mode and mounts a drive to your computer.
|
||||
- _**Long press**_ signals the device to shutdown.
|
||||
- _**Triple press**_ sends a broadcast message of the device position.
|
||||
|
||||
### RAK19001
|
||||
|
||||
- **Program button**
|
||||
- _**Single press**_ changes the page of information displayed on the screen.
|
||||
- _**Double press (nRF52 only)**_ puts the device in bootloader mode and mounts a drive to your computer.
|
||||
- _**Long press**_ signals the device to shutdown.
|
||||
- _**Triple press**_ sends a broadcast message of the device position.
|
||||
|
||||
|
||||
- **User Button**
|
||||
- _Not yet implemented by Meshtastic_
|
107
docs/hardware/devices/rak/core-modules.mdx
Normal file
107
docs/hardware/devices/rak/core-modules.mdx
Normal file
|
@ -0,0 +1,107 @@
|
|||
---
|
||||
id: core-module
|
||||
title: RAK WisBlock Core Modules
|
||||
sidebar_label: Core Modules
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
## WisBlock Core
|
||||
|
||||
<Tabs
|
||||
groupId="rakcore"
|
||||
defaultValue="RAK4631"
|
||||
values={[
|
||||
{label: 'RAK4631', value: 'RAK4631'},
|
||||
{label: 'RAK11200', value: 'RAK11200'}
|
||||
]}>
|
||||
|
||||
<TabItem value="RAK4631">
|
||||
|
||||
### RAK4631
|
||||
|
||||
:::info
|
||||
Please be aware of the difference between the RAK4631 (Arduino bootloader) and the RAK4631-R (RUI3 bootloader). Meshtastic requires the Arduino bootloader. If you have a RAK4631-R, please see the [instructions for converting the bootloader](/docs/guides/convert-rak4631r).
|
||||
:::
|
||||
|
||||
- [RAK4631](https://store.rakwireless.com/products/rak4631-lpwan-node?variant=37505443856582)
|
||||
- **MCU**
|
||||
- nRF52840
|
||||
- Bluetooth BLE 5.0
|
||||
- Very low power consumption
|
||||
- **Meshtastic Firmware**
|
||||
- [`firmware-rak4631-2.X.X.xxxxxxx.uf2`](/downloads)
|
||||
- **LoRa transceiver**
|
||||
- SX1262
|
||||
- **Frequency Options**
|
||||
- 433 MHz
|
||||
- 470 MHz
|
||||
- 799 MHz
|
||||
- 865 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- 920 MHz
|
||||
- 923 MHz
|
||||
- **Connectors**
|
||||
- U.FL antenna
|
||||
|
||||
Further information on the RAK4631 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/Overview/#product-description).
|
||||
|
||||
<img
|
||||
alt="RAK4631 Core Module"
|
||||
src="/img/hardware/rak4631.png"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="RAK11200">
|
||||
|
||||
|
||||
### RAK11200 / RAK13300
|
||||
|
||||
:::caution Note
|
||||
Only supported on the RAK5005-O base board.
|
||||
:::
|
||||
|
||||
The RAK11200 does not contain a LoRa transceiver, and thus needs to be added separately in the form of the [RAK13300 LPWAN module](https://store.rakwireless.com/products/rak13300-wisblock-lpwan). This occupies the IO Port of the base board.
|
||||
|
||||
- [RAK11200](https://store.rakwireless.com/products/wiscore-esp32-module-rak11200)
|
||||
- **MCU**
|
||||
- ESP32-WROVER
|
||||
- Bluetooth 4.2
|
||||
- WiFi 802.11 b/g/n
|
||||
- High power consumption (relative to nRF52)
|
||||
- **Meshtastic Firmware**
|
||||
- [`firmware-rak11200-2.X.X.xxxxxx.bin`](/downloads)
|
||||
|
||||
|
||||
Further information on the RAK11200 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK11200/Overview/#product-description).
|
||||
|
||||
- [RAK13300](https://store.rakwireless.com/products/rak13300-wisblock-lpwan)
|
||||
- **LoRa transceiver**
|
||||
- SX1262
|
||||
- **Frequency Options**
|
||||
- 433 MHz
|
||||
- 470 MHz
|
||||
- 864 MHz
|
||||
- 865 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- 920 MHz
|
||||
- 923 MHz
|
||||
- **Connectors**
|
||||
- U.FL antenna
|
||||
|
||||
|
||||
Further information on the RAK13300 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK13300/Overview/#product-description).
|
||||
|
||||
<img
|
||||
alt="RAK4631 5005 11200"
|
||||
src="/img/hardware/rak11200.jpg"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
41
docs/hardware/devices/rak/enclosures.mdx
Normal file
41
docs/hardware/devices/rak/enclosures.mdx
Normal file
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
id: enclosures
|
||||
title: Enclosures
|
||||
sidebar_label: Enclosures
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
## Created by KeithMon/Voltaic Enclosures
|
||||
|
||||
### Solar Base Station
|
||||
|
||||
Download from [Printables](https://www.printables.com/model/297089-meshtastic-solar-base-station-node-enclosure-for-3) or purchase from the creator's [Etsy Store](https://www.etsy.com/listing/1312727008/meshtastic-solar-base-station-off-grid).
|
||||
|
||||
![rak19003-micro](/img/enclosures/3dp-kmon-basestation.png)
|
||||
|
||||
|
||||
## Created by tropho/TonyG
|
||||
|
||||
### RAK5005 Case
|
||||
|
||||
Download from [Printables](https://www.printables.com/model/286651-rak5005-case-for-meshtastic) or purchase from the creator's [Etsy Store](https://www.etsy.com/listing/1158237722/meshtastic-rak5005-case).
|
||||
|
||||
![rak5005](/img/enclosures/3dp-tropho-rak5005.png)
|
||||
|
||||
### RAK19007 Case
|
||||
|
||||
Download from [Printables](https://www.printables.com/model/286657-rak19007-case-for-meshtastic) or purchase from the creator's [Etsy Store](https://www.etsy.com/listing/1302265084/meshtastic-rak19007-case).
|
||||
|
||||
![rak19007](/img/enclosures/3dp-tropho-rak19007.png)
|
||||
|
||||
### RAK19003 Case
|
||||
|
||||
Download from [Printables](https://www.printables.com/model/286662-rak19003-case-for-meshtastic) or purchase from the creator's [Etsy Store](https://www.etsy.com/listing/1316287559/meshtastic-rak19003-case).
|
||||
|
||||
![rak19003](/img/enclosures/3dp-tropho-rak19003.png)
|
||||
|
||||
### RAK19003 (Micro) Case
|
||||
|
||||
Download from [Printables](https://www.printables.com/model/286664-rak19003-micro-case-for-meshtastic) or purchase from the creator's [Etsy Store](https://www.etsy.com/listing/1302260756/meshtastic-rak19003-micro-case).
|
||||
|
||||
![rak19003-micro](/img/enclosures/3dp-tropho-rak19003-micro.png)
|
26
docs/hardware/devices/rak/index.mdx
Normal file
26
docs/hardware/devices/rak/index.mdx
Normal file
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
id: wisBlock
|
||||
title: RAK WisBlock Devices
|
||||
sidebar_label: RAK WisBlock
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
<!-- RAK LOGO here? -->
|
||||
|
||||
The RAK WisBlock is a modular hardware system that can be used to build Meshtastic devices.
|
||||
|
||||
RAK Wireless currently sells a [Meshtastic Starter kit](https://store.rakwireless.com/products/wisblock-meshtastic-starter-kit) that has the minimum you need to get started.
|
||||
|
||||
If you wish to purchase parts separately, you will need a [WisBlock Base Board](/docs/hardware/devices/rak/base-board) and a [WisBlock Core Module](/docs/hardware/devices/rak/core-module). Please ensure you choose the correct operating frequency for your country when purchasing.
|
||||
|
||||
You can optionally purchase peripherals such as a GPS module, Screen, Sensor, or other various modules.
|
||||
|
||||
Please see the RAK documentation for the correct way to connect your hardware to ensure that you do not damage the device. There is currently no pin required to pair RAK devices via BLE.
|
||||
|
||||
## Resources
|
||||
|
||||
- RAK's Wisblock [Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock)
|
||||
- RAK's [GitHub Page](https://github.com/RAKWireless/WisBlock) for the WisBlock
|
76
docs/hardware/devices/rak/peripherals.mdx
Normal file
76
docs/hardware/devices/rak/peripherals.mdx
Normal file
|
@ -0,0 +1,76 @@
|
|||
---
|
||||
id: peripherals
|
||||
title: Supported Peripherals
|
||||
sidebar_label: Peripherals
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
<Tabs
|
||||
groupId="rakmodules"
|
||||
defaultValue="GPS"
|
||||
values={[
|
||||
{label: 'GPS Module', value: 'GPS'},
|
||||
{label: 'Buzzer', value: 'Buzzer'},
|
||||
{label: 'I/O Module', value: 'IO'},
|
||||
{label: 'Environmental Sensor', value:'BME680'}
|
||||
]}>
|
||||
<TabItem value="GPS">
|
||||
|
||||
To add a GPS to the RAK5005-O base board, you need the [RAK1910 GPS sensor](https://store.rakwireless.com/collections/wisblock-sensor/products/rak1910-max-7q-gnss-location-sensor). It is supported on slot A of the 5005 board via UART.
|
||||
|
||||
- uBlox MAX-7Q GPS module
|
||||
- GPS and GLONASS satellite support
|
||||
|
||||
|
||||
Further information on the RAK1910 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1910/Overview/#product-description).
|
||||
|
||||
To add a GPS to the RAK19003 base board, you need the [RAK12500 GPS sensor](https://store.rakwireless.com/products/wisblock-gnss-location-module-rak12500). It is supported via I<sup>2</sup>C on slot B for firmware versions 1.49 and above.
|
||||
|
||||
- uBlox Zoe-M8Q GNSS receiver
|
||||
- GPS, GLONASS, QZSS and BeiDou satellite support
|
||||
|
||||
|
||||
Further information on the RAK12500 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12500/Overview/#product-description).
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Buzzer">
|
||||
|
||||
The [RAK18001 Buzzer Module](https://store.rakwireless.com/products/wisblock-buzzer-module-rak18001) is currently being tested for integration with the External Notifications plugin. There is currently a known conflict with buzzer if the module is placed in Slot D, although other slots should work.
|
||||
|
||||
Further information on the RAK18001 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK18001/Overview/#product-description).
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="IO">
|
||||
|
||||
The [RAK13002 IO Module](https://store.rakwireless.com/collections/wisblock-interface/products/adapter-module-rak13002) can be used to, among other things, add a user button to the RAK base boards (excluding the RAK19003 Mini base board). It features a number of different interface options:
|
||||
|
||||
- 2x I<sup>2</sup>C interfaces
|
||||
- 2x UART interfaces
|
||||
- 1x SPI interface
|
||||
- Upto 6x GPIOs
|
||||
- 2x ADC interfaces
|
||||
- 3.3v Power rails
|
||||
|
||||
|
||||
There is development activity in progress to get sensors such as this added to the Meshtastic Core.
|
||||
Further information on the RAK13002 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK13002/Overview).
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="BME680">
|
||||
|
||||
The [RAK1906 Environmental Sensor](https://store.rakwireless.com/products/rak1906-bme680-environment-sensor) is based on the Bosch BME680 module and has the following features:
|
||||
|
||||
- Temperature measurement (Range -40°C to +85°C)
|
||||
- Humidity measurement (Range 0% to 100%)
|
||||
- Barometer measurement (Range 300 to 1100 hPa)
|
||||
- Air Quality measurement
|
||||
|
||||
|
||||
There is development activity in progress to get sensors such as this added to the Meshtastic Core.
|
||||
Further information on the RAK1906 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1906/Overview/#product-description).
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
58
docs/hardware/devices/rak/screens.mdx
Normal file
58
docs/hardware/devices/rak/screens.mdx
Normal file
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
id: screens
|
||||
title: Screens
|
||||
sidebar_label: Screens
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
There are currently two different screens supported by the RAK WisBlock system:
|
||||
|
||||
<Tabs
|
||||
groupId="rakscreens"
|
||||
defaultValue="OLED"
|
||||
values={[
|
||||
{label: 'OLED Display', value: 'OLED'},
|
||||
{label: 'E-Ink Display', value: 'E-Ink'}
|
||||
]}>
|
||||
<TabItem value="OLED">
|
||||
|
||||
The [RAK1921 OLED display](https://store.rakwireless.com/products/rak1921-oled-display-panel) is a 0.96 inch monochrome display.
|
||||
|
||||
- 0.96 inch OLED display
|
||||
- Resolution 128 x 64 pixels
|
||||
- I<sup>2</sup>C interface
|
||||
|
||||
|
||||
This item requires soldering.
|
||||
Further information on the RAK1921 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1921/Overview/#product-description).
|
||||
Similar modules are widely available from other suppliers, but do check the boards as some have the VDD and GND pins swapped round.
|
||||
|
||||
[<img alt="0.96 inch OLED display" src="/img/hardware/screen.png" style={{zoom:'25%'}} />](/img/hardware/screen.png)
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="E-Ink">
|
||||
|
||||
The [RAK1400 EPD module](https://store.rakwireless.com/products/wisblock-epd-module-rak14000) is an ultra low power E-Ink display with three user buttons.
|
||||
|
||||
- 2.13 inch black and white E-Ink display
|
||||
- Three button module
|
||||
- Resolution 212 x 104 pixels
|
||||
- Occupies the IO Port of a Wisblock Base
|
||||
|
||||
|
||||
- Firmware for 5005 with RAK14000 e-paper: [`firmware-rak4631_eink-1.3.x.uf2`](/downloads)
|
||||
|
||||
<img
|
||||
alt="RAK4631 5005 14000"
|
||||
src="/img/hardware/rak4631_5005_epaper.jpg"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
Please note only the white-black display is supported at this time, the white-black-red display may work, but is not supported.
|
||||
Further information on the RAK14000 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK14000/Overview/#product-description).
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
|
@ -1,339 +0,0 @@
|
|||
---
|
||||
id: wisBlock
|
||||
title: RAK WisBlock
|
||||
sidebar_label: RAK WisBlock
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
The RAK WisBlock is a low power modular hardware system that can be used to build Meshtastic devices. Soldering is only required for the optional OLED screen.
|
||||
|
||||
RAK Wireless currently sell a [Meshtastic Starter kit](https://store.rakwireless.com/products/wisblock-meshtastic-starter-kit) that has the minimum you need to get started. If you wish to purchase parts separately, you will need a [base board](https://store.rakwireless.com/collections/wisblock-base), a [core 4631 LPWAN module](https://store.rakwireless.com/collections/wisblock-core/products/rak4631-lpwan-node), and optionally a GPS Sensor, screen or other module to build a Meshtastic device. Please ensure you choose the correct operating frequency for your country when purchasing.
|
||||
|
||||
Please see the RAK documentation for the correct way to connect your hardware to ensure that you do not damage the device. There is currently no pin required to pair RAK devices via BLE.
|
||||
|
||||
## RAK base boards
|
||||
<Tabs
|
||||
groupId="rakbase board"
|
||||
defaultValue="RAK5005-O"
|
||||
values={[
|
||||
{label: 'RAK5005-O', value: 'RAK5005-O'},
|
||||
{label: 'RAK19003', value: 'RAK19003'},
|
||||
{label: 'RAK19001', value: 'RAK19001'},
|
||||
{label: 'RAK19007', value:'RAK19007'}
|
||||
]}>
|
||||
<TabItem value="RAK5005-O">
|
||||
|
||||
[RAK5005-O](https://store.rakwireless.com/products/rak5005-o-base-board) - The original WisBlock Base Board
|
||||
|
||||
- Reset button
|
||||
- OLED screen support (OLED screen sold separately)
|
||||
- Connector for 3.7v LiPo battery (with charge controller)
|
||||
- Connector for 5v solar panel (max 5.5v)
|
||||
- 1x Core Module slot
|
||||
- 1x WisBlock IO Module slot
|
||||
- 4x WisBlock Sensor Module slots
|
||||
- I<sup>2</sup>C, UART, GPIOs and analog input accessible with solder contacts
|
||||
- Micro USB port for debugging and power
|
||||
|
||||
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).
|
||||
|
||||
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).
|
||||
|
||||
- [Update the bootloader](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/Quickstart/#updating-the-bootloader) on first use! This can be done easily with [Meshtastic-flasher](https://github.com/meshtastic/Meshtastic-gui-installer).
|
||||
- Firmware for 5005 base board: [`firmware-rak4631-1.x.x.uf2`](/downloads)
|
||||
|
||||
<img
|
||||
alt="RAK4631 5005"
|
||||
src="/img/hardware/rak4631_5005.png"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="RAK19003">
|
||||
|
||||
[RAK19003](https://store.rakwireless.com/products/wisblock-base-board-rak19003) - WisBlock Mini Base Board
|
||||
|
||||
- Reset button
|
||||
- OLED screen support (OLED screen sold separately)
|
||||
- Connector for 3.7v LiPo battery (with charge controller)
|
||||
- Connector for 5v solar panel (max 5.5v)
|
||||
- 1x Core Module slot
|
||||
- 2x WisBlock Sensor Module slots
|
||||
- I<sup>2</sup>C, UART and BOOT headers accessible with solder contacts
|
||||
- Micro USB port for debugging and power
|
||||
|
||||
|
||||
Further information on the RAK19003 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19003/Overview/#product-description).
|
||||
|
||||
It is currently not possible to add a user button to this board.
|
||||
|
||||
- [Update the bootloader](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/Quickstart/#updating-the-bootloader) on first use! This can be done easily with [Meshtastic-flasher](https://github.com/meshtastic/Meshtastic-gui-installer).
|
||||
- Firmware for 19003 base board: [`firmware-rak4631-1.x.x.uf2`](/downloads)
|
||||
|
||||
|
||||
<img
|
||||
alt="RAK4631 19003"
|
||||
src="/img/hardware/rak4631_19003.png"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="RAK19001">
|
||||
|
||||
[RAK19001](https://store.rakwireless.com/products/rak19001-wisblock-dual-io-base-board) - WisBlock Dual IO Base Board
|
||||
|
||||
:::caution
|
||||
This board should work with the RAK5005-O firmware, however this is currently unconfirmed.
|
||||
:::
|
||||
|
||||
- Reset and user definable buttons
|
||||
- OLED screen support (OLED screen sold separately)
|
||||
- Connector for 3.7v LiPo battery (with charge controller)
|
||||
- Separate connector for non-rechargeable batteries
|
||||
- Connector for 5v solar panel (max 5.5v)
|
||||
- 1x Core Module slot
|
||||
- 2x WisBlock IO Module slot
|
||||
- 6x WisBlock Sensor Module slots
|
||||
- I<sup>2</sup>C, SPI, UART, BOOT and GPIOs accessible with solder contacts
|
||||
- USB-C port for debugging and power
|
||||
- Battery selector switch
|
||||
|
||||
|
||||
Further information on the RAK19001 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19001/Overview/#product-description).
|
||||
|
||||
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).
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="RAK19007">
|
||||
|
||||
[RAK19007](https://store.rakwireless.com/products/rak19007-wisblock-base-board-2nd-gen) - WisBlock Base Board - 2nd Generation
|
||||
This is an upgrade to the original RAK5005-O base board.
|
||||
|
||||
:::caution
|
||||
This board should work with the RAK5005-O firmware, however this is currently unconfirmed.
|
||||
:::
|
||||
|
||||
- Reset button
|
||||
- OLED screen support (OLED screen sold separately)
|
||||
- Connector for 3.7v LiPo battery (with charge controller)
|
||||
- Connector for 5v solar panel (max 5.5v)
|
||||
- 1x Core Module slot
|
||||
- 1x WisBlock IO Module slot
|
||||
- 4x WisBlock Sensor Module slots
|
||||
- I<sup>2</sup>C, UART, BOOT and GPIOs accessible with solder contacts
|
||||
- USB-C port for debugging and power
|
||||
|
||||
|
||||
Further information on the RAK19007 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19007/Overview/#product-description).
|
||||
|
||||
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).
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
Flashing the firmware is a simple process. Connect your device to your computer via USB, click the reset button twice, and a drive will appear. On Windows, Linux, or Mac, drag the appropriate .uf2 firmware file onto the root of the drive and the device will restart and the firmware will be updated. Or, you can use [Meshtastic-flasher](https://github.com/meshtastic/Meshtastic-gui-installer). RAK have also provided [Installation instructions](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/Quickstart/#rak4631-lora-mesh-via-meshtastic) for Meshtastic.
|
||||
|
||||
|
||||
## Core Module
|
||||
|
||||
There are two core modules supported by Meshtastic:
|
||||
|
||||
<Tabs
|
||||
groupId="rakcore"
|
||||
defaultValue="RAK4631"
|
||||
values={[
|
||||
{label: 'RAK4631', value: 'RAK4631'},
|
||||
{label: 'RAK11200', value: 'RAK11200'}
|
||||
]}>
|
||||
<TabItem value="RAK4631">
|
||||
|
||||
The main supported code is the [WisBlock LPWAN Module RAK4631](https://store.rakwireless.com/products/rak4631-lpwan-node).
|
||||
(Please note this is different to the RAK4631-R which uses different firmware incompatible with Meshtastic).
|
||||
|
||||
- nRF52840 microprocessor - Bluetooth BLE 5.0 and very low power consumption
|
||||
- SX1262 - LoRa transceiver
|
||||
- Frequency options:
|
||||
- 433 MHz
|
||||
- 470 MHz
|
||||
- 799 MHz
|
||||
- 865 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- 920 MHz
|
||||
- 923 MHz
|
||||
- U.FL antenna connector
|
||||
|
||||
|
||||
<img
|
||||
alt="RAK4631 Core Module"
|
||||
src="/img/hardware/rak4631.png"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
Further information on the RAK4631 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/Overview/#product-description).
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="RAK11200">
|
||||
|
||||
The [RAK11200](https://store.rakwireless.com/products/wiscore-esp32-module-rak11200) is currently only supported on the RAK5005-O base board. This provides the benefits of WiFi, but sacrifices the very low power consumption of the nRF microprocessor used on the RAK4631.
|
||||
|
||||
- ESP32-WROVER microprocessor - Bluetooth 4.2 & WiFi 802.11 b/g/n
|
||||
|
||||
Further information on the RAK11200 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK11200/Overview/#product-description).
|
||||
|
||||
The RAK11200 does not contain a LoRa transceiver, and this needs to be added separately in the form of the [RAK13300 LPWAN module](https://store.rakwireless.com/products/rak13300-wisblock-lpwan). This occupies the IO Port of the base board.
|
||||
|
||||
The RAK13300 has the following specifications:
|
||||
- SX1262 - LoRa transceiver
|
||||
- Frequency options:
|
||||
- 433 MHz
|
||||
- 470 MHz
|
||||
- 864 MHz
|
||||
- 865 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- 920 MHz
|
||||
- 923 MHz
|
||||
- U.FL antenna connector
|
||||
|
||||
|
||||
Further information on the RAK13300 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK13300/Overview/#product-description).
|
||||
|
||||
- Firmware for 5005 with 11200: [`firmware-11200-1.3.x.bin`](/downloads)
|
||||
|
||||
<img
|
||||
alt="RAK4631 5005 11200"
|
||||
src="/img/hardware/rak11200.jpg"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
## Screens
|
||||
|
||||
There are currently two different screens supported by the RAK WisBlock system:
|
||||
|
||||
<Tabs
|
||||
groupId="rakscreens"
|
||||
defaultValue="OLED"
|
||||
values={[
|
||||
{label: 'OLED Display', value: 'OLED'},
|
||||
{label: 'E-Ink Display', value: 'E-Ink'}
|
||||
]}>
|
||||
<TabItem value="OLED">
|
||||
|
||||
The [RAK1921 OLED display](https://store.rakwireless.com/products/rak1921-oled-display-panel) is a 0.96 inch monochrome display.
|
||||
|
||||
- 0.96 inch OLED display
|
||||
- Resolution 128 x 64 pixels
|
||||
- I<sup>2</sup>C interface
|
||||
|
||||
|
||||
This item requires soldering.
|
||||
Further information on the RAK1921 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1921/Overview/#product-description).
|
||||
Similar modules are widely available from other suppliers, but do check the boards as some have the VDD and GND pins swapped round.
|
||||
|
||||
[<img alt="0.96 inch OLED display" src="/img/hardware/screen.png" style={{zoom:'25%'}} />](/img/hardware/screen.png)
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="E-Ink">
|
||||
|
||||
The [RAK1400 EPD module](https://store.rakwireless.com/products/wisblock-epd-module-rak14000) is an ultra low power E-Ink display with three user buttons.
|
||||
|
||||
- 2.13 inch black and white E-Ink display
|
||||
- Three button module
|
||||
- Resolution 212 x 104 pixels
|
||||
- Occupies the IO Port of a Wisblock Base
|
||||
|
||||
|
||||
- Firmware for 5005 with RAK14000 e-paper: [`firmware-rak4631_eink-1.3.x.uf2`](/downloads)
|
||||
|
||||
<img
|
||||
alt="RAK4631 5005 14000"
|
||||
src="/img/hardware/rak4631_5005_epaper.jpg"
|
||||
style={{ zoom: '50%' }}
|
||||
/>
|
||||
|
||||
Please note only the white-black display is supported at this time, the white-black-red display may work, but is not supported.
|
||||
Further information on the RAK14000 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK14000/Overview/#product-description).
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
## Supported modules
|
||||
|
||||
<Tabs
|
||||
groupId="rakmodules"
|
||||
defaultValue="GPS"
|
||||
values={[
|
||||
{label: 'GPS Module', value: 'GPS'},
|
||||
{label: 'Buzzer', value: 'Buzzer'},
|
||||
{label: 'I/O Module', value: 'IO'},
|
||||
{label: 'Environmental Sensor', value:'BME680'}
|
||||
]}>
|
||||
<TabItem value="GPS">
|
||||
|
||||
To add a GPS to the RAK5005-O base board, you need the [RAK1910 GPS sensor](https://store.rakwireless.com/collections/wisblock-sensor/products/rak1910-max-7q-gnss-location-sensor). It is supported on slot A of the 5005 board via UART.
|
||||
|
||||
- uBlox MAX-7Q GPS module
|
||||
- GPS and GLONASS satellite support
|
||||
|
||||
|
||||
Further information on the RAK1910 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1910/Overview/#product-description).
|
||||
|
||||
To add a GPS to the RAK19003 base board, you need the [RAK12500 GPS sensor](https://store.rakwireless.com/products/wisblock-gnss-location-module-rak12500). It is supported via I<sup>2</sup>C on slot B for firmware versions 1.49 and above.
|
||||
|
||||
- uBlox Zoe-M8Q GNSS receiver
|
||||
- GPS, GLONASS, QZSS and BeiDou satellite support
|
||||
|
||||
|
||||
Further information on the RAK12500 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12500/Overview/#product-description).
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Buzzer">
|
||||
|
||||
The [RAK18001 Buzzer Module](https://store.rakwireless.com/products/wisblock-buzzer-module-rak18001) is currently being tested for integration with the External Notifications plugin. There is currently a known conflict with buzzer if the module is placed in Slot D, although other slots should work.
|
||||
|
||||
Further information on the RAK18001 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK18001/Overview/#product-description).
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="IO">
|
||||
|
||||
The [RAK13002 IO Module](https://store.rakwireless.com/collections/wisblock-interface/products/adapter-module-rak13002) can be used to, among other things, add a user button to the RAK base boards (excluding the RAK19003 Mini base board). It features a number of different interface options:
|
||||
|
||||
- 2x I<sup>2</sup>C interfaces
|
||||
- 2x UART interfaces
|
||||
- 1x SPI interface
|
||||
- Upto 6x GPIOs
|
||||
- 2x ADC interfaces
|
||||
- 3.3v Power rails
|
||||
|
||||
|
||||
There is development activity in progress to get sensors such as this added to the Meshtastic Core.
|
||||
Further information on the RAK13002 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK13002/Overview).
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="BME680">
|
||||
|
||||
The [RAK1906 Environmental Sensor](https://store.rakwireless.com/products/rak1906-bme680-environment-sensor) is based on the Bosch BME680 module and has the following features:
|
||||
|
||||
- Temperature measurement (Range -40°C to +85°C)
|
||||
- Humidity measurement (Range 0% to 100%)
|
||||
- Barometer measurement (Range 300 to 1100 hPa)
|
||||
- Air Quality measurement
|
||||
|
||||
|
||||
There is development activity in progress to get sensors such as this added to the Meshtastic Core.
|
||||
Further information on the RAK1906 can be found on the [RAK Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1906/Overview/#product-description).
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
## RAK Wireless' Resources
|
||||
|
||||
- RAK's Wisblock [Documentation Center](https://docs.rakwireless.com/Product-Categories/WisBlock)
|
||||
- RAK's [GitHub Page](https://github.com/RAKWireless/WisBlock) for the WisBlock
|
|
@ -1,32 +0,0 @@
|
|||
---
|
||||
id: station-g1
|
||||
title: Station G1 device
|
||||
sidebar_label: Station G1
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
The Station G1 is the first dedicated hardware to be designed from scratch purely for Meshtastic Licensed (HAM) Operation by Neil Hao. It has been designed to be small and compact with the inclusion of 35dBm high power PA.
|
||||
|
||||
Only the US 915 MHz version is available currently. There should be an EU 433 MHz version available in the future.
|
||||
|
||||
### Features
|
||||
|
||||
- Meshtastic pre-installed
|
||||
- ESP32 WROOM microprocessor - WiFi & Bluetooth
|
||||
- Semtech SX1262 - LoRa Transceiver
|
||||
- Frequency options:
|
||||
- 915 MHz
|
||||
- Additional 35dBm Lora Power Amplifier to boost the transmit power
|
||||
- User button
|
||||
- 1.3 inch OLED screen
|
||||
- Optional GPS Module and IO Extension Socket
|
||||
- Optional 12V Battery Docker which can be used as Backup Power, or in scenarios that require mobility
|
||||
|
||||
### Resources
|
||||
|
||||
- Firmware file: `firmware-station-g1-1.x.x.bin`
|
||||
- [Purchase link](https://www.tindie.com/products/neilhao/meshtastic-mesh-device-station-edition/)
|
||||
|
||||
[<img alt="Station G1" src="https://uniteng.com/wiki/lib/exe/fetch.php?media=meshtastic:meshtastic_mesh_device_station_edition_overview.jpg" style={{zoom:'25%'}} />](https://uniteng.com/wiki/lib/exe/fetch.php?media=meshtastic:meshtastic_mesh_device_station_edition_overview.jpg)
|
||||
|
||||
Further information on the Station G1 can be found on [Unit Engineering's Wiki](https://uniteng.com/wiki/doku.php?id=meshtastic:station).
|
13
docs/hardware/devices/station-g1/buttons.mdx
Normal file
13
docs/hardware/devices/station-g1/buttons.mdx
Normal file
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
id: buttons
|
||||
title: Hardware Buttons
|
||||
sidebar_label: Buttons
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
## Functionality
|
||||
|
||||
- **Program button**
|
||||
- _**Single press**_ changes the page of information displayed on the screen.
|
||||
- _**Long press**_ adjusts the contrast of the screen.
|
||||
- _**Triple press**_ sends a broadcast message of the device position.
|
43
docs/hardware/devices/station-g1/index.mdx
Normal file
43
docs/hardware/devices/station-g1/index.mdx
Normal file
|
@ -0,0 +1,43 @@
|
|||
---
|
||||
id: station-g1
|
||||
title: Station G1 device
|
||||
sidebar_label: Station G1
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
The Station G1 is the second dedicated hardware device to be designed from scratch purely for Meshtastic Licensed (HAM) Operation by Neil Hao. It has been designed to be small and compact with the inclusion of 35dBm high power PA.
|
||||
|
||||
### Specifications
|
||||
|
||||
- **MCU**
|
||||
- ESP32 WROOM (WiFi & Bluetooth)
|
||||
- Bluetooth 4.2
|
||||
- **LoRa Transceiver**
|
||||
- Semtech SX1262
|
||||
- Additional 35dBm LoRa Power Amplifier to boost transmit power
|
||||
- **Frequency options**
|
||||
- US-915 MHz
|
||||
- EU-868 MHz
|
||||
- **Navigation Module**
|
||||
- ATGM336H-5N-71 (Supports GPS, BDS and GLONASS)
|
||||
- **Antenna**
|
||||
- SMA Socket
|
||||
- **Connectors**
|
||||
- USB-C
|
||||
|
||||
### Features
|
||||
|
||||
- Meshtastic pre-installed
|
||||
- User button
|
||||
- 1.3 inch OLED screen
|
||||
- Optional GPS Module and IO Extension Socket
|
||||
- Optional [12V Battery Docker](https://shop.uniteng.com/product/12v-battery-docker-for-station-edition-g1/) which can be used as Backup Power, or in scenarios that require mobility
|
||||
|
||||
### Resources
|
||||
|
||||
- Firmware file: `firmware-station-g1-1.x.x.bin`
|
||||
- [Purchase link](https://www.tindie.com/products/neilhao/meshtastic-mesh-device-station-edition/)
|
||||
|
||||
Further information on the Station G1 can be found on [Unit Engineering's Wiki](https://uniteng.com/wiki/doku.php?id=meshtastic:station).
|
||||
|
||||
![Station G1](/img/hardware/station-g1.jpg)
|
|
@ -1,138 +0,0 @@
|
|||
---
|
||||
id: tbeam
|
||||
title: LILYGO® TTGO T-Beam devices
|
||||
sidebar_label: LILYGO® T-Beam
|
||||
sidebar_position: 5
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
There are several versions of the T-Beam
|
||||
|
||||
<Tabs
|
||||
groupId="t-beam"
|
||||
defaultValue="1.1"
|
||||
values={[
|
||||
{label: 'T-Beam v1.1', value: '1.1'},
|
||||
{label: 'T-Beam with M8N', value: 'm8n'},
|
||||
{label: 'T-Beam with M8N & SX1262', value: 'sx1262'},
|
||||
{label: 'T-Beam v0.7', value:'0.7'}
|
||||
]}>
|
||||
|
||||
<TabItem value="1.1">
|
||||
|
||||
- Meshtastic preinstalled
|
||||
- ESP32 - WiFi & Bluetooth
|
||||
- SX1276 - LoRa Transceiver
|
||||
- Frequency options:
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- 923 MHz
|
||||
- NEO-6M - GPS receiver
|
||||
- SMA antenna connector
|
||||
- Power, Program and Reset switches
|
||||
- **Comes with 0.96 inch OLED display (some soldering required to assemble)**
|
||||
|
||||
|
||||
- Firmware file: `firmware-tbeam-1.x.x.bin`
|
||||
- [Purchase link](https://www.aliexpress.com/item/4001178678568.html)
|
||||
|
||||
[<img alt="LILYGO® TTGO T-Beam Meshtastic" src="/img/hardware/t-beam-meshtastic.png" style={{zoom:'25%'}} />](/img/hardware/t-beam-meshtastic.png)
|
||||
<!--[<img alt="LILYGO® TTGO T-Beam v1.1" src="/img/hardware/t-beam-v1.1.png" style={{zoom:'35%'}} />](/img/hardware/t-beam-v1.1.png)-->
|
||||
[<img alt="LILYGO® TTGO T-Beam v1.1 pinmap" src="/img/hardware/t-beam_v1.1_pinmap.webp" style={{zoom:'35%'}} />](/img/hardware/t-beam_v1.1_pinmap.webp)
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="m8n">
|
||||
|
||||
- ESP32 - WiFi & Bluetooth
|
||||
- SX1276 - LoRa Transceiver
|
||||
- Frequency options:
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- 923 MHz
|
||||
- **NEO-M8N - GNSS receiver (supports GPS, GLONASS, Galileo, BeiDou) - better GPS sensitivity**
|
||||
- U.FL antenna connector
|
||||
- Power, Program and Reset switches
|
||||
- Screen sold separately
|
||||
|
||||
|
||||
- Firmware file: `firmware-tbeam-1.x.x.bin`
|
||||
- [Purchase link](https://www.aliexpress.com/item/33047631119.html)
|
||||
|
||||
[<img alt="LILYGO® TTGO T-Beam M8N" src="/img/hardware/t-beam-m8n.png" style={{zoom:'25%'}} />](/img/hardware/t-beam-m8n.png)
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="sx1262">
|
||||
|
||||
- ESP32 - WiFi & Bluetooth
|
||||
- **SX1262 - LoRa Transceiver - improved performance**
|
||||
- Frequency options:
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- 923 MHz
|
||||
- **NEO-M8N - GNSS receiver (supports GPS, GLONASS, Galileo, BeiDou) - better GPS sensitivity**
|
||||
- U.FL antenna connector
|
||||
- Power, Program and Reset switches
|
||||
- Screen sold separately
|
||||
|
||||
|
||||
- Firmware file: `firmware-tbeam-1.x.x.bin`
|
||||
- [Purchase link](https://www.aliexpress.com/item/4001287221970.html)
|
||||
|
||||
[<img alt="LILYGO® TTGO T-Beam M8N & SX1262" src="/img/hardware/t-beam-sx1262.png" style={{zoom:'25%'}} />](/img/hardware/t-beam-sx1262.png)
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="0.7">
|
||||
|
||||
:::note
|
||||
This is an earlier version of the T-Beam board, and due to changes in the design in subsequent iterations this board uses a specific firmware file different from the other T-Beam boards.
|
||||
|
||||
`firmware-tbeam0.7-1.x.x.bin` is the correct firmware. `firmware-tbeam-1.x.x.bin` is incompatible. For all other T-Beam boards `firmware-tbeam-1.x.x.bin` is the correct selection.
|
||||
:::
|
||||
|
||||
- ESP32 - WiFi & Bluetooth
|
||||
- SX1276 - LoRa Transceiver
|
||||
- Frequency options:
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- NEO-6M - GPS receiver
|
||||
- SMA antenna connector
|
||||
- Power, Program and Reset switches
|
||||
- No GPS
|
||||
- Screen sold separately
|
||||
|
||||
|
||||
- Firmware file: `firmware-tbeam0.7-1.x.x.bin`
|
||||
- [Purchase link](https://www.aliexpress.com/item/4000469332610.html)
|
||||
|
||||
[<img alt="LILYGO TTGO T-Beam v0.7" src="/img/hardware/t-beam-v0.7.png" style={{zoom:'25%'}} />](/img/hardware/t-beam-v0.7.png)
|
||||
[<img alt="LILYGO TTGO T-Beam v0.7 pinmap" src="/img/hardware/t-beam_v0.7_pinmap.jpeg" style={{zoom:'25%'}} />](/img/hardware/t-beam_v0.7_pinmap.jpeg)
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
Further information on the LILYGO® T-Beam and LoRa devices can be found on LILYGO®'s [GitHub page](https://github.com/Xinyuan-LilyGO/LilyGo-LoRa-Series).
|
||||
|
||||
:::note
|
||||
All T-beam models have an 18650 size battery holder on the rear of the device. This is designed to the original specification of the 18650, and only fits unprotected flat top 18650 cells. Button top and protected cells are typically longer than 650mm, often approaching 700mm.
|
||||
:::
|
||||
|
||||
## Screen
|
||||
|
||||
- 0.96 inch OLED I<sup>2</sup>C display
|
||||
- [Purchase link](https://www.aliexpress.com/item/32922106384.html)
|
||||
|
||||
|
||||
[<img alt="0.96 inch OLED display" src="/img/hardware/screen.png" style={{zoom:'25%'}} />](/img/hardware/screen.png)
|
||||
|
||||
To attach the screen, connect VCC to 3v3, GND to GND, SCL to pin 22, and SDA to pin 21 as per the below image.
|
||||
|
||||
[<img alt="Connecting the OLED screen to a T-Beam" src="/img/hardware/t-beam-screen.jpg" style={{zoom:'50%'}} />](/img/hardware/t-beam-screen.jpg)
|
17
docs/hardware/devices/tbeam/buttons.mdx
Normal file
17
docs/hardware/devices/tbeam/buttons.mdx
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
id: buttons
|
||||
title: Hardware Buttons
|
||||
sidebar_label: Buttons
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
## Functionality
|
||||
|
||||
- **Reset Button (right)**
|
||||
- _**Single press**_ resets the device.
|
||||
- **Power Button (left)**
|
||||
- _**Long press**_ powers the device off or turns it back on again.
|
||||
- **Program button (middle)**
|
||||
- _**Single press**_ changes the page of information displayed on the screen.
|
||||
- _**Long press**_ adjusts the contrast of the screen.
|
||||
- _**Triple press**_ sends a broadcast message of the device position.
|
23
docs/hardware/devices/tbeam/enclosures.mdx
Normal file
23
docs/hardware/devices/tbeam/enclosures.mdx
Normal file
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
id: enclosures
|
||||
title: Enclosures
|
||||
sidebar_label: Enclosures
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
## Created by tropho/TonyG
|
||||
|
||||
### T-Beam V5 Case
|
||||
|
||||
Download from [Printables](https://www.printables.com/model/127253-t-beam-case-for-meshtastic-v5) or purchase from the creator's [Etsy Store](https://www.etsy.com/listing/1173559418/meshtastic-t-beam-case-for-neo-m8n).
|
||||
|
||||
#### Required Hardware
|
||||
|
||||
- (x4) M3x16mm socket-head cap screws
|
||||
- (x4) M3 nuts
|
||||
- (x4) M2x4mm screws (no nuts) to secure T-Beam to the frame
|
||||
|
||||
|
||||
<img src="/img/enclosures/3dp-tropho-tbeam.jpg" width="400" align="left"/>
|
||||
|
||||
<!-- ![TrophoTbeam](/img/enclosures/3dp-tropho-tbeam.jpg) -->
|
155
docs/hardware/devices/tbeam/index.mdx
Normal file
155
docs/hardware/devices/tbeam/index.mdx
Normal file
|
@ -0,0 +1,155 @@
|
|||
---
|
||||
id: tbeam
|
||||
title: LILYGO® TTGO T-Beam Devices
|
||||
sidebar_label: LILYGO® T-Beam
|
||||
sidebar_position: 5
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
All T-beam models have an 18650 size battery holder on the rear of the device. This is designed to the original specification of the 18650 and only fits unprotected flat top 18650 cells. Button top and protected cells are typically longer than 65mm, often approaching 70mm.
|
||||
|
||||
Further information on the LILYGO® T-Beam devices can be found on LILYGO®'s [GitHub page](https://github.com/Xinyuan-LilyGO/LilyGo-LoRa-Series).
|
||||
|
||||
|
||||
<Tabs
|
||||
groupId="t-beam"
|
||||
defaultValue="sx1262"
|
||||
values={[
|
||||
{label: 'T-Beam v0.7', value:'0.7'},
|
||||
{label: 'T-Beam v1.1', value: '1.1'},
|
||||
{label: 'T-Beam with M8N', value: 'm8n'},
|
||||
{label: 'T-Beam with M8N & SX1262', value: 'sx1262'}
|
||||
]}>
|
||||
|
||||
<TabItem value="0.7">
|
||||
|
||||
:::caution Firmware Version Notice
|
||||
This is an earlier version of the T-Beam board. Due to changes in the design this board uses a specific firmware file different from the other T-Beam boards.
|
||||
:::
|
||||
|
||||
|
||||
- **MCU**
|
||||
- ESP32 (WiFi & Bluetooth)
|
||||
- **LoRa Transceiver**
|
||||
- Semtech SX1276
|
||||
- **Frequency options**
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- **Navigation Module**
|
||||
- NEO-6M (GPS receiver)
|
||||
- **Connectors**
|
||||
- Micro USB
|
||||
- Antenna: SMA antenna connector
|
||||
|
||||
**Features**
|
||||
- Meshtastic preinstalled
|
||||
- Power, Program and Reset switches
|
||||
- Screen sold separately
|
||||
- No GPS
|
||||
|
||||
**Resources**
|
||||
- Firmware file: `firmware-tbeam0.7-X.X.X.xxxxxxx.bin`
|
||||
- Purchase link: [AliExpress](https://www.aliexpress.com/item/4000469332610.html)
|
||||
|
||||
|
||||
![T-Beam v0.7](/img/hardware/t-beam-v0.7.png)
|
||||
![T-Beam v0.7 pin map](/img/hardware/t-beam_v0.7_pinmap.jpeg)
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="1.1">
|
||||
|
||||
- **MCU**
|
||||
- ESP32 (WiFi & Bluetooth)
|
||||
- **LoRa Transceiver**
|
||||
- Semtech SX1276
|
||||
- **Frequency options**
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- 923 MHz
|
||||
- **Navigation Module**
|
||||
- NEO-6M (GPS receiver)
|
||||
- **Connectors**
|
||||
- Micro USB
|
||||
- Antenna: SMA antenna connector
|
||||
|
||||
**Features**
|
||||
- Meshtastic preinstalled
|
||||
- Power, Program and Reset switches
|
||||
- **Comes with 0.96 inch OLED display** (soldering required to assemble)
|
||||
|
||||
**Resources**
|
||||
- Firmware file: `firmware-tbeam-X.X.X.xxxxxxx.bin`
|
||||
- Purchase link: [AliExpress](https://www.aliexpress.com/item/4001178678568.html)
|
||||
|
||||
![TTGO T-Beam v1.1](/img/hardware/t-beam-v1.1.png)
|
||||
![TTGO T-Beam v1.1 pinmap](/img/hardware/t-beam_v1.1_pinmap.webp)
|
||||
|
||||
</TabItem>
|
||||
|
||||
<TabItem value="m8n">
|
||||
|
||||
- **MCU**
|
||||
- ESP32 (WiFi & Bluetooth)
|
||||
- **LoRa Transceiver**
|
||||
- Semtech SX1276
|
||||
- **Frequency options**
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- 923 MHz
|
||||
- **Navigation Module**
|
||||
- **NEO-M8N - GNSS receiver (supports GPS, GLONASS, Galileo, BeiDou)** (better GPS sensitivity)
|
||||
- **Connectors**
|
||||
- Micro USB
|
||||
- Antenna: U.FL antenna connector
|
||||
|
||||
**Features**
|
||||
- Meshtastic preinstalled
|
||||
- Power, Program and Reset switches
|
||||
- Screen sold separately
|
||||
|
||||
**Resources**
|
||||
- Firmware file: `firmware-tbeam-X.X.X.xxxxxxx.bin`
|
||||
- Purchase link: [AliExpress](https://www.aliexpress.com/item/33047631119.html)
|
||||
|
||||
![TTGO T-Beam M8N](/img/hardware/t-beam-m8n.png)
|
||||
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="sx1262">
|
||||
|
||||
|
||||
- **MCU**
|
||||
- ESP32 (WiFi & Bluetooth)
|
||||
- **LoRa Transceiver**
|
||||
- **Semtech SX1262** (improved performance)
|
||||
- **Frequency options**
|
||||
- 433 MHz
|
||||
- 868 MHz
|
||||
- 915 MHz
|
||||
- 923 MHz
|
||||
- **Navigation Module**
|
||||
- **NEO-M8N - GNSS receiver (supports GPS, GLONASS, Galileo, BeiDou)** (better GPS sensitivity)
|
||||
- **Connectors**
|
||||
- Micro USB
|
||||
- Antenna: U.FL antenna connector
|
||||
|
||||
**Features**
|
||||
- Meshtastic preinstalled
|
||||
- Power, Program and Reset switches
|
||||
- Screen sold separately
|
||||
|
||||
**Resources**
|
||||
- Firmware file: `firmware-tbeam-X.X.X.xxxxxxx.bin`
|
||||
- Purchase link: [AliExpress](https://www.aliexpress.com/item/4001287221970.html)
|
||||
|
||||
|
||||
![T-Beam M8N & SX1262](/img/hardware/t-beam-sx1262.png)
|
||||
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
24
docs/hardware/devices/tbeam/screens.mdx
Normal file
24
docs/hardware/devices/tbeam/screens.mdx
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
id: screens
|
||||
title: Screens
|
||||
sidebar_label: Screens
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
|
||||
## 0.96 inch OLED I<sup>2</sup>C display
|
||||
|
||||
- [Purchase link](https://www.aliexpress.com/item/32922106384.html)
|
||||
|
||||
![0.96 inch OLED display](/img/hardware/screen.png)
|
||||
|
||||
### Pin map
|
||||
|
||||
To attach the screen:
|
||||
|
||||
1. Connect VCC to 3v3
|
||||
2. Connect GND to GND
|
||||
3. Connect SCL to pin 22
|
||||
4. Connect SDA to pin 21
|
||||
|
||||
![Connecting the OLED screen to a T-Beam](/img/hardware/t-beam-screen.jpg)
|
|
@ -1,45 +0,0 @@
|
|||
---
|
||||
id: techo
|
||||
title: LILYGO® TTGO T-Echo devices
|
||||
sidebar_label: LILYGO® T-Echo
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
The T-Echo is the latest device to be release by LILYGO® supporting a low power consumption micro-controller.
|
||||
|
||||
### Features
|
||||
|
||||
- nRF52840 - Bluetooth BLE 5.0, NFC and very low power consumption
|
||||
- SX1262 - LoRa transceiver
|
||||
- 1.54" eInk display
|
||||
- L76K - GNSS receiver - Supporting GPS, BeiDou, GLONASS & QZSS
|
||||
- Reset, Program and capacitive touch buttons
|
||||
- U.FL antenna connector
|
||||
- Optional BME280 - Humidity and Pressure Sensor
|
||||
- Comes with a case and battery
|
||||
|
||||
|
||||
- Firmware file: `firmware-t-echo-2.x.x.uf2`
|
||||
- [Purchase link](https://www.aliexpress.com/item/1005002842456390.html)
|
||||
- TTGO's [GitHub page](https://github.com/Xinyuan-LilyGO/LilyGO-T-Echo) for the T-Echo
|
||||
|
||||
<img
|
||||
alt="LILYGO T-Echo"
|
||||
src="/img/hardware/t-echo.png"
|
||||
style={{ zoom: '15%' }}
|
||||
/>
|
||||
|
||||
### T-Echo button functions
|
||||
|
||||
- Capacitive top button
|
||||
- A short press refreshes the current screen
|
||||
- Button 1
|
||||
- A single press resets the device
|
||||
- A double press puts the device into bootloader mode ready to receive a new firmware
|
||||
- Button 2
|
||||
- A single press changes the page displayed on the device
|
||||
- A double press turns the screen backlight on/off
|
||||
- A long press turns the device off
|
||||
|
||||
|
||||
[<img alt="LILYGO T-Echo" src="/img/hardware/t-echo-lilygo.jpg" style={{zoom:'25%'}} />](/img/hardware/t-echo-lilygo.jpg)
|
21
docs/hardware/devices/techo/buttons.mdx
Normal file
21
docs/hardware/devices/techo/buttons.mdx
Normal file
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
id: buttons
|
||||
title: Hardware Buttons
|
||||
sidebar_label: Buttons
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
## Functionality
|
||||
|
||||
- **Capacitive Touch Button (Top)**
|
||||
- _**Short press**_ _currently no functionality_
|
||||
- **Reset Button (Button 1)**
|
||||
- _**Single press**_ resets the device.
|
||||
- _**Double press**_ puts the device into bootloader mode ready to receive new firmware.
|
||||
- **Program/Power Button (Button 2)**
|
||||
- _**Single press**_ changes the page displayed on the device.
|
||||
- _**Double press**_ turns the screen backlight on/off
|
||||
- _**Long press**_ signals the device to shutdown.
|
||||
|
||||
|
||||
![TechoButtons](/img/hardware/t-echo-lilygo.jpg)
|
16
docs/hardware/devices/techo/enclosures.mdx
Normal file
16
docs/hardware/devices/techo/enclosures.mdx
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
id: enclosures
|
||||
title: Enclosures
|
||||
sidebar_label: Enclosures
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
## Created by BrianN
|
||||
|
||||
### T-Echo Expedition Case
|
||||
|
||||
Download from [Thingiverse](https://www.thingiverse.com/thing:5028720).
|
||||
|
||||
<img src="/img/enclosures/3dp-briann-techo-exp.jpg" width="400" align="left"/>
|
||||
|
||||
<!-- ![T-Echo Expedition](/img/enclosures/3dp-briann-techo-exp.jpg) -->
|
37
docs/hardware/devices/techo/index.mdx
Normal file
37
docs/hardware/devices/techo/index.mdx
Normal file
|
@ -0,0 +1,37 @@
|
|||
---
|
||||
id: techo
|
||||
title: LILYGO® TTGO T-Echo devices
|
||||
sidebar_label: LILYGO® T-Echo
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
The T-Echo is the latest device to be release by LILYGO® supporting a low power consumption micro-controller.
|
||||
|
||||
### Specifications
|
||||
|
||||
- **MCU**
|
||||
- nRF52840
|
||||
- Bluetooth BLE 5.0 & NFC
|
||||
- Very low power consumption
|
||||
- **LoRa Transceiver**
|
||||
- Semtech SX1262
|
||||
- **Frequency options**
|
||||
- 915 MHz
|
||||
- **Navigation Module**
|
||||
- L76K GNSS receiver (Supports GPS, BeiDou, GLONASS & QZSS)
|
||||
- **Connectors**
|
||||
- U.FL antenna connector
|
||||
|
||||
### Features
|
||||
- Reset, Program and capacitive touch buttons
|
||||
- 1.54" eInk display
|
||||
- Optional BME280 - Humidity and Pressure Sensor
|
||||
- Comes with a case and battery
|
||||
|
||||
### Resources
|
||||
|
||||
- Firmware file: `firmware-t-echo-2.x.x.uf2`
|
||||
- [Purchase link](https://www.aliexpress.com/item/1005002842456390.html)
|
||||
- TTGO's [GitHub page](https://github.com/Xinyuan-LilyGO/LilyGO-T-Echo) for the T-Echo
|
||||
|
||||
![LILYGO T-Echo](/img/hardware/t-echo.png)
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
id: 3dprinted-enclosure
|
||||
title: 3D Printed Enclosures
|
||||
sidebar_label: 3D Printed
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
... WIP
|
|
@ -1,7 +0,0 @@
|
|||
label: Enclosures
|
||||
collapsible: true
|
||||
position: 3
|
||||
link:
|
||||
type: generated-index
|
||||
title: Enclosures
|
||||
slug: enclosures
|
|
@ -1,16 +0,0 @@
|
|||
---
|
||||
id: buttons
|
||||
title: Buttons
|
||||
sidebar_label: Buttons
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
A number of devices have buttons that can be used to interact with the firmware. These buttons have a number of different functions:
|
||||
|
||||
- Reset button - This is present on most devices.
|
||||
- Power button - This is present on some devices. A long press powers the device off or turns it back on again.
|
||||
- Program button - This is present of some devices and has a number of functions:
|
||||
- Single press - This changes the page of information displayed on the screen.
|
||||
- Double press - This sets the Bluetooth pairing code to `123456` (useful if you do not have a screen on the device).
|
||||
- Long press - This adjusts the contrast of the screen.
|
||||
- Long press during reboot - This turns on the software WiFi access point on devices that support WiFi.
|
|
@ -1,32 +0,0 @@
|
|||
---
|
||||
id: screens
|
||||
title: Screens
|
||||
sidebar_label: Screens
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
A number of devices have screens capable of displaying the messages received, information about the mesh, and other details. On powering the device it will display the Meshtastic splash screen with the version number for a couple of seconds:
|
||||
|
||||
![Splash screen](/img/screen/mesh-splash.jpg)
|
||||
|
||||
The screen is split up into pages, through which you can navigate using the program button as described above. The first page to be displayed will be the message screen where received messages are displayed along with the name of the node it came from. The devices will automatically switch to this page when a new message is received.
|
||||
|
||||
![Message page](/img/screen/mesh-message.jpg)
|
||||
|
||||
The next pages display information about the nodes that are currently on the mesh. This includes the distance and direction to that node, the signal strength, and the time last seen.
|
||||
|
||||
![Node page](/img/screen/mesh-node1.jpg) ![Node page](/img/screen/mesh-node2.jpg)
|
||||
|
||||
The next page shows information about the device, battery power, current / total nodes, number of GPS satellites seen, channel name, last digits of the MAC address, and a brief log including the names of the last nodes to join the mesh.
|
||||
|
||||
![Channel page](/img/screen/mesh-channel.jpg)
|
||||
|
||||
The final page shows current battery voltage and percent charge, as well as noting how long the device has been online and the current GPS time, and GPS location.
|
||||
|
||||
![GPS page](/img/screen/mesh-gps.jpg)
|
||||
|
||||
If the device WiFi has been enabled (only possible on ESP32 devices), another page appears displaying information about the WiFi settings, IP address, and number of devices connected to the WiFi.
|
||||
|
||||
![WiFi page](/img/screen/mesh-wifi.jpg)
|
||||
|
||||
With a further press of the program button, the screen will cycle round to the message page.
|
|
@ -10,7 +10,7 @@ sidebar_position: 9
|
|||
This project is still pretty young but moving at a pretty good pace. Not all features are fully implemented in the current alpha builds.
|
||||
|
||||
- We don't make these devices and they haven't been tested by UL or the FCC. If you use them, you are experimenting and we can't promise they won't burn your house down ;-)
|
||||
- The encryption implementation is good but see this list of [caveats](/docs/about/overview/encryption#summary-of-strengthsweaknesses-of-our-current-implementation) to determine risks you might face.
|
||||
- The encryption implementation is good but see this list of [caveats](/docs/overview/encryption#summary-of-strengthsweaknesses-of-our-current-implementation) to determine risks you might face.
|
||||
|
||||
## Legal FAQ
|
||||
|
||||
|
|
|
@ -8,4 +8,4 @@ You are hereby granted a two-year non-exclusive license to use the Meshtastic®
|
|||
|
||||
We ask that you include a line in your support text that states:
|
||||
|
||||
> Meshtastic® is a registered trademark of Geeksville Industries LLC. Meshtastic software components are released under various licenses, see GitHub for details. No warranty is provided - use at your own risk.
|
||||
> Meshtastic® is a registered trademark of Meshtastic LLC. Meshtastic software components are released under various licenses, see GitHub for details. No warranty is provided - use at your own risk.
|
||||
|
|
|
@ -4,11 +4,11 @@ title: Trademark Rules & Brand Guidelines
|
|||
sidebar_label: Trademark
|
||||
---
|
||||
|
||||
Meshtastic® is a registered trademark of Geeksville Industries LLC. Meshtastic software components are released under various licenses, see [GitHub](https://github.com/meshtastic) for details. No warranty is provided - use at your own risk.
|
||||
Meshtastic® is a registered trademark of Meshtastic LLC. Meshtastic software components are released under various licenses, see [GitHub](https://github.com/meshtastic) for details. No warranty is provided - use at your own risk.
|
||||
|
||||
# Meshtastic Trademark Policy
|
||||
|
||||
Meshtastic, and Meshtastic logo ("Meshtastic Logo"), either separately or in combination, are hereinafter referred to as "Meshtastic Trademarks" and are trademarks of the Geeksville Industries LLC. Except as provided in these guidelines, you may not use the Meshtastic Trademarks or any confusingly similar mark as a trademark for your product, or use the Meshtastic Trademarks in any other manner that might cause confusion in the marketplace, including but not limited to in advertising, on websites, or on software. In fact, the law obligates trademark owners to police their marks and prevent the use of confusingly similar names by third parties. If you have questions about this policy, please contact the Trademark Supervisor by enquiring at [trademark@meshtastic.org](mailto:trademark@meshtastic.org).
|
||||
Meshtastic, and Meshtastic logo ("Meshtastic Logo"), either separately or in combination, are hereinafter referred to as "Meshtastic Trademarks" and are trademarks of the Meshtastic LLC. Except as provided in these guidelines, you may not use the Meshtastic Trademarks or any confusingly similar mark as a trademark for your product, or use the Meshtastic Trademarks in any other manner that might cause confusion in the marketplace, including but not limited to in advertising, on websites, or on software. In fact, the law obligates trademark owners to police their marks and prevent the use of confusingly similar names by third parties. If you have questions about this policy, please contact the Trademark Supervisor by enquiring at [trademark@meshtastic.org](mailto:trademark@meshtastic.org).
|
||||
|
||||
# Usage That Does Not Require Written Permission
|
||||
|
||||
|
@ -120,7 +120,7 @@ One of the purposes of Meshtastic is to encourage the use of Meshtastic software
|
|||
|
||||
When using the Meshtastic Trademarks you must provide the proper trademark symbols and a trademark attribution statement.
|
||||
|
||||
Acceptable: Use for the first instance of the Meshtastic Logo include the ® mark, and include the statement "The Meshtastic logo trademark is the trademark of Geeksville Industries LLC."
|
||||
Acceptable: Use for the first instance of the Meshtastic Logo include the ® mark, and include the statement "The Meshtastic logo trademark is the trademark of Meshtastic LLC."
|
||||
|
||||
Unacceptable: Never using the ® mark for Meshtastic Logo, nor a trademark statement per the guidelines.
|
||||
|
||||
|
@ -154,6 +154,6 @@ Except as prohibited by law, the person or entity who is using the Meshtastic Tr
|
|||
|
||||
## Logo Usage Guidelines
|
||||
|
||||
The Meshtastic logo is a trademark of Geeksville Industries LLC. In order to protect and grow the Meshtastic brand, we have a distinguishable logo. When displaying the Meshtastic logo, please follow our standard Trademark Guidelines. Other sizes and resolutions of the logo, some suitable for print, can be found [here](https://github.com/meshtastic/design).
|
||||
The Meshtastic logo is a trademark of Meshtastic LLC. In order to protect and grow the Meshtastic brand, we have a distinguishable logo. When displaying the Meshtastic logo, please follow our standard Trademark Guidelines. Other sizes and resolutions of the logo, some suitable for print, can be found [here](https://github.com/meshtastic/design).
|
||||
|
||||
To join the discussion about Meshtastic Trademark policies, and participate in shaping future policy visit the [Meshtastic Discourse](http://meshtastic.discourse.group) or [Meshtastic Discord](https://discord.com/invite/UQJ5QuM7vq).
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
id: android-installation
|
||||
id: installation
|
||||
title: Android Application Installation
|
||||
sidebar_label: Installation
|
||||
sidebar_position: 1
|
||||
|
@ -44,6 +44,20 @@ It is recommended that you follow the [Meshtastic Discourse Alpha Testers](https
|
|||
|
||||
_Google Play and the Google Play logo are trademarks of Google LLC._
|
||||
|
||||
### Install with Obtainium
|
||||
|
||||
1. Download and Install the Obtanium app from [Github](https://github.com/ImranR98/Obtainium).
|
||||
2. Open the Obtanium app and navigate to `+ Add App`.
|
||||
3. Enter the Meshtastic Android Github Releases address as follows: `https://github.com/meshtastic/Meshtastic-Android/releases`.
|
||||
4. Under `Additional Options for Github` toggle as desired `Include prereleases`* or `Fallback to older releases` and press `Add`.
|
||||
5. The first time you add an application, obtainium will prompt you for permission to install unknown apps, you will need to toggle `Allow from this source` and press back. Obtainium will download the Android .APK from the Github release page.
|
||||
6. Press `Install`. Android Installer will prompt "Do you want to install this app?" press `Install`.
|
||||
7. Press `Open`.
|
||||
|
||||
Obtanium will provide notifications when a new release version of the Meshtastic App is available and allow you to update it from within the app.
|
||||
|
||||
*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.
|
||||
|
||||
### Install by Sideloading
|
||||
|
||||
The app can also be sideloaded by downloading the .APK from the [Github Releases](https://github.com/meshtastic/Meshtastic-Android/releases/latest) page.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
id: android-usage
|
||||
id: usage
|
||||
title: Android Application Usage
|
||||
sidebar_label: Usage
|
||||
sidebar_position: 2
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
id: apple-apps-usage
|
||||
id: usage
|
||||
title: Apple Application Usage
|
||||
sidebar_label: Usage
|
||||
---
|
||||
|
|
10
docs/software/community/index.mdx
Normal file
10
docs/software/community/index.mdx
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: Community
|
||||
slug: /software/community
|
||||
sidebar_label: Community
|
||||
sidebar_position: 10
|
||||
---
|
||||
|
||||
## Simulator
|
||||
|
||||
- https://github.com/GUVWAF/Meshtasticator
|
|
@ -91,12 +91,14 @@ sudo apt install -y python3 python3-pip python3-venv
|
|||
</Tabs>
|
||||
|
||||
|
||||
### Install App
|
||||
### Install or Upgrade App
|
||||
|
||||
For **Windows**, the [installer](https://github.com/meshtastic/Meshtastic-gui-installer/releases/download/winapp1.0.3/meshtastic-flasher.zip) will manage installing python and flasher updates automatically.
|
||||
|
||||
For **macOS** and **Linux**, it is recommended that you install using `pip`.
|
||||
|
||||
Note: Update an existing installation using `pip install meshtastic-flasher -U`
|
||||
|
||||
<Tabs
|
||||
groupId="operating-system"
|
||||
defaultValue="linux"
|
||||
|
|
10
package.json
10
package.json
|
@ -17,8 +17,8 @@
|
|||
"@docusaurus/core": "2.2.0",
|
||||
"@docusaurus/plugin-content-docs": "2.2.0",
|
||||
"@docusaurus/preset-classic": "2.2.0",
|
||||
"@headlessui/react": "^1.7.3",
|
||||
"@heroicons/react": "^2.0.12",
|
||||
"@headlessui/react": "^1.7.4",
|
||||
"@heroicons/react": "^2.0.13",
|
||||
"@leenguyen/react-flip-clock-countdown": "^1.3.1",
|
||||
"@mdx-js/react": "^1.6.22",
|
||||
"@meshtastic/meshtasticjs": "^0.6.113",
|
||||
|
@ -32,17 +32,17 @@
|
|||
"react-icons": "^4.6.0",
|
||||
"react-responsive-carousel": "^3.2.23",
|
||||
"swr": "^1.3.0",
|
||||
"tailwindcss": "^3.2.1",
|
||||
"tailwindcss": "^3.2.3",
|
||||
"url-search-params-polyfill": "^8.1.1",
|
||||
"use-breakpoint": "^3.0.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "2.2.0",
|
||||
"@meshtastic/eslint-config": "^1.0.8",
|
||||
"@tailwindcss/typography": "^0.5.7",
|
||||
"@tailwindcss/typography": "^0.5.8",
|
||||
"@tsconfig/docusaurus": "^1.0.6",
|
||||
"@types/node": "^18.11.9",
|
||||
"@types/react": "^18.0.24",
|
||||
"@types/react": "^18.0.25",
|
||||
"@types/react-dom": "^18.0.8",
|
||||
"prettier": "^2.7.1",
|
||||
"typescript": "^4.8.4"
|
||||
|
|
3509
pnpm-lock.yaml
3509
pnpm-lock.yaml
File diff suppressed because it is too large
Load diff
|
@ -1 +1 @@
|
|||
Subproject commit a0fe9ec8614cd27af7691869ccbd20c39e48a086
|
||||
Subproject commit c82c15aac71b9134d96c03dbe319916739cc8314
|
|
@ -6,4 +6,4 @@ sidebar_label: c
|
|||
|
||||
# Error : Something happened
|
||||
|
||||
Please go to [Android Usage](/docs/software/android/android-usage#join-a-channel) for more information.
|
||||
Please go to [Android Usage](/docs/software/android/usage#join-a-channel) for more information.
|
||||
|
|
|
@ -6,4 +6,4 @@ sidebar_label: d
|
|||
|
||||
# Error : Something happened
|
||||
|
||||
Please go to [Android Usage](/docs/software/android/android-usage#join-a-channel) for more information.
|
||||
Please go to [Android Usage](/docs/software/android/usage#join-a-channel) for more information.
|
|
@ -27,17 +27,12 @@ export const FirmwareCard = ({
|
|||
<div className="card__body">
|
||||
<p>{description}</p>
|
||||
</div>
|
||||
<div className="card__footer">
|
||||
{release?.length ? (
|
||||
<>
|
||||
<a
|
||||
href={release[0].assets[1]?.browser_download_url}
|
||||
className="button button--secondary button--block"
|
||||
>
|
||||
Download
|
||||
</a>
|
||||
<div className="card__footer mt-auto">
|
||||
<div className="margin-top--sm">
|
||||
<h3>Older versions</h3>
|
||||
<details>
|
||||
<summary>
|
||||
Older Versions
|
||||
</summary>
|
||||
{release.slice(1, 6).map((release) => {
|
||||
return (
|
||||
<div key={release.id}>
|
||||
|
@ -47,7 +42,16 @@ export const FirmwareCard = ({
|
|||
</div>
|
||||
);
|
||||
})}
|
||||
</details>
|
||||
</div>
|
||||
{release?.length ? (
|
||||
<>
|
||||
<a
|
||||
href={release[0].assets[1]?.browser_download_url}
|
||||
className="button button--secondary button--block margin-top--sm"
|
||||
>
|
||||
Download {variant}
|
||||
</a>
|
||||
</>
|
||||
) : (
|
||||
<button disabled className="button button--secondary button--block">
|
||||
|
|
|
@ -35,7 +35,7 @@ const Firmware = (): JSX.Element => {
|
|||
>
|
||||
<div className="container mt-8 flex flex-col gap-3">
|
||||
<h1 className="m-2">Flasher</h1>
|
||||
<div className="flex w-full overflow-hidden rounded-xl xl:h-64">
|
||||
<div className="flex w-full overflow-hidden rounded-xl">
|
||||
<div className="flex w-1/5 bg-gradient-to-r from-green-500 to-primary">
|
||||
<BoltIcon className="m-auto h-20" />
|
||||
</div>
|
||||
|
@ -47,7 +47,7 @@ const Firmware = (): JSX.Element => {
|
|||
<div className="card__body">
|
||||
<p>Desktop application to flash fimware to your devices.</p>
|
||||
</div>
|
||||
<div className="card__footer" style={{ marginTop: '1rem' }}>
|
||||
<div className="card__footer mt-auto">
|
||||
<a
|
||||
href="https://github.com/meshtastic/Meshtastic-gui-installer/releases/latest"
|
||||
className="m-auto flex rounded-lg border-4 border-transparent bg-accent p-1 font-semibold text-black shadow-md hover:text-black hover:brightness-110 active:border-green-200"
|
||||
|
@ -68,7 +68,7 @@ const Firmware = (): JSX.Element => {
|
|||
boards.
|
||||
</p>
|
||||
</div>
|
||||
<div className="card__footer" style={{ marginTop: '1rem' }}>
|
||||
<div className="card__footer mt-auto">
|
||||
<a
|
||||
href="https://flasher.meshtastic.org/"
|
||||
className="m-auto flex rounded-lg border-4 border-transparent bg-accent p-1 font-semibold text-black shadow-md hover:text-black hover:brightness-110 active:border-green-200"
|
||||
|
@ -87,12 +87,12 @@ const Firmware = (): JSX.Element => {
|
|||
Devices such as T-Echo and RAK4631 are flashed via filesystem.
|
||||
</p>
|
||||
</div>
|
||||
<div className="card__footer" style={{ marginTop: '1rem' }}>
|
||||
<div className="card__footer mt-auto">
|
||||
<a
|
||||
href="/docs/getting-started/flashing-firmware/nrf52/drag-n-drop"
|
||||
className="m-auto flex rounded-lg border-4 border-transparent bg-accent p-1 font-semibold text-black shadow-md hover:text-black hover:brightness-110 active:border-green-200"
|
||||
>
|
||||
view Instructions
|
||||
View Instructions
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -100,18 +100,24 @@ const Firmware = (): JSX.Element => {
|
|||
</div>
|
||||
{/* */}
|
||||
<h1 className="m-2">Apps</h1>
|
||||
<div className="flex w-full overflow-hidden rounded-xl lg:h-48">
|
||||
<div className="flex w-full overflow-hidden rounded-xl">
|
||||
<div className="flex w-1/5 bg-gradient-to-r from-rose-500 to-primary">
|
||||
<ComputerDesktopIcon className="m-auto h-20" />
|
||||
</div>
|
||||
<div className="flex w-full flex-col bg-primary lg:flex-row">
|
||||
<div className="flex p-4 lg:w-1/3">
|
||||
<div className="flex flex-grow rounded-md border-2 border-secondary bg-primary py-4 shadow-md hover:brightness-90 lg:py-0">
|
||||
<div className="flex w-full flex-col columns-3 bg-primary lg:flex-row">
|
||||
<div className="card m-4 border-2 border-secondary">
|
||||
<div className="card__header">
|
||||
<h3>Apple</h3>
|
||||
</div>
|
||||
<div className="card__body flex items-center">
|
||||
<div className="m-auto">
|
||||
<FaApple className="h-20 w-20" />
|
||||
</div>
|
||||
<div className="m-auto flex flex-col gap-3">
|
||||
<h2>Apple</h2>
|
||||
</div>
|
||||
<div className="card__body">
|
||||
Available on MacOS & iOS. Requires MacOS Ventura or iOS 16+.
|
||||
</div>
|
||||
<div className="card__footer mt-auto">
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
|
@ -123,19 +129,24 @@ const Firmware = (): JSX.Element => {
|
|||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div className="card m-4 border-2 border-secondary">
|
||||
<div className="card__header">
|
||||
<h3>Android</h3>
|
||||
</div>
|
||||
<div className="flex p-4 lg:w-1/3">
|
||||
<div className="relative flex flex-grow rounded-md border-2 border-secondary bg-primary py-4 shadow-md hover:brightness-90 lg:py-0">
|
||||
<div className="card__body flex items-center">
|
||||
<div className="m-auto">
|
||||
<FaAndroid className="h-20 w-20" />
|
||||
</div>
|
||||
<div className="m-auto flex flex-col gap-3">
|
||||
<h2>Android</h2>
|
||||
</div>
|
||||
<div className="card__body">
|
||||
Sideloading also available.
|
||||
</div>
|
||||
<div className="card__footer mt-auto">
|
||||
<a
|
||||
className="m-auto flex rounded-lg border-4 border-transparent bg-accent p-1 font-semibold text-black shadow-md hover:text-black hover:brightness-110 active:border-green-200"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="https://meshtastic.org/docs/software/android/android-installation"
|
||||
href="https://meshtastic.org/docs/software/android/installation"
|
||||
className="m-auto flex rounded-lg border-4 border-transparent bg-accent p-1 font-semibold text-black shadow-md hover:text-black hover:brightness-110 active:border-green-200"
|
||||
>
|
||||
F-Droid
|
||||
<ArrowTopRightOnSquareIcon className="m-auto ml-2 h-4" />
|
||||
|
@ -144,35 +155,39 @@ const Firmware = (): JSX.Element => {
|
|||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="https://play.google.com/store/apps/details?id=com.geeksville.mesh&referrer=utm_source=downloads-page"
|
||||
className="m-auto flex rounded-lg border-4 border-transparent bg-accent p-1 font-semibold text-black shadow-md hover:text-black hover:brightness-110 active:border-green-200"
|
||||
className="mt-4 flex rounded-lg border-4 border-transparent bg-accent p-1 font-semibold text-black shadow-md hover:text-black hover:brightness-110 active:border-green-200"
|
||||
>
|
||||
Play Store
|
||||
<ArrowTopRightOnSquareIcon className="m-auto ml-2 h-4" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div className="card m-4 border-2 border-secondary">
|
||||
<div className="card__header">
|
||||
<h3>Web</h3>
|
||||
</div>
|
||||
<div className="flex p-4 lg:w-1/3">
|
||||
<div className="flex flex-grow rounded-md border-2 border-secondary bg-primary py-4 shadow-md hover:brightness-90 lg:py-0">
|
||||
<div className="card__body flex items-center">
|
||||
<div className="m-auto">
|
||||
<GlobeAltIcon className="h-20 w-20" />
|
||||
</div>
|
||||
<div className="m-auto flex flex-col gap-3">
|
||||
<h2>Web</h2>
|
||||
</div>
|
||||
<div className="card__body">
|
||||
Requires Chromium based browsers.
|
||||
</div>
|
||||
<div className="card__footer mt-auto">
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="https://client.meshtastic.org"
|
||||
className="m-auto flex rounded-lg border-4 border-transparent bg-accent p-1 font-semibold text-black shadow-md hover:text-black hover:brightness-110 active:border-green-200"
|
||||
>
|
||||
meshtastic.org
|
||||
client.meshtastic.org
|
||||
<ArrowTopRightOnSquareIcon className="m-auto ml-2 h-4" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* */}
|
||||
<h1 className="m-2">Firmware</h1>
|
||||
<div className="flex w-full overflow-hidden rounded-xl">
|
||||
|
@ -202,12 +217,12 @@ const Firmware = (): JSX.Element => {
|
|||
things.
|
||||
</p>
|
||||
</div>
|
||||
<div className="card__footer" style={{ marginTop: '1rem' }}>
|
||||
<div className="card__footer mt-auto">
|
||||
<a
|
||||
href="https://nightly.link/meshtastic/firmware/workflows/main/master/built.zip"
|
||||
className="button button--secondary button--block"
|
||||
>
|
||||
Download
|
||||
Download Bleeding
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue