draft skeleton for getting started sections

This commit is contained in:
sigmahour 2022-11-04 17:09:56 -04:00
parent a8675efce5
commit b1058a4b7b
19 changed files with 261 additions and 134 deletions

View file

@ -205,4 +205,4 @@ A list of available modules is available [here](/docs/settings/moduleconfig).
### I'd like to write a module. How do I get started?
API documentation for creating modules is available [here](/docs/development/module-api).
API documentation for creating modules is available [here](/docs/development/device/module-api).

View file

@ -13,9 +13,9 @@ sidebar_position: 1
- **Bandwidth:** 125
- **Spread Factor:** 12
- **Coding Rate:** 4/8
- **Devices A:** [LILYGO TTGO T-Beam w/ SX1262](/docs/hardware/devices/tbeam)
- **Device A:** [LILYGO TTGO T-Beam w/ SX1262](/docs/hardware/devices/tbeam)
- **Antenna:** Omnidirectional
- **Devices B:** [LILYGO TTGO T-Beam w/ SX1262](/docs/hardware/devices/tbeam)
- **Device B:** [LILYGO TTGO T-Beam w/ SX1262](/docs/hardware/devices/tbeam)
- **Antenna:** Omnidirectional
![Topographical Map](https://canada1.discourse-cdn.com/free1/uploads/meshtastic/optimized/2X/a/a0a26e4d40a5b9ccba9185eb70e2eaf66f0b0587_2_1380x888.jpeg)

View file

@ -0,0 +1,15 @@
| Region Code | Description |
| :-------: | :--------: |
| `UNSET` | Unset |
| `US` | United States |
| `EU_433` | European Union 433MHz |
| `EU_868` | European Union 868MHz |
| `CN` | China |
| `JP` | Japan |
| `ANZ` | Australia & New Zealand |
| `KR` | Korea |
| `TW` | Taiwan |
| `RU` | Russia |
| `IN` | India |
| `NZ_865` | New Zealand 865MHz |
| `TH` | Thailand |

View file

@ -7,6 +7,7 @@ sidebar_label: LoRa
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.
@ -19,22 +20,7 @@ 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`.
| Region Code | Description |
| :-------: | :---------------------------------------------------------------------------------------: |
| `UNSET` | Unset |
| `US` | United States |
| `EU_433` | European Union 433MHz |
| `EU_868` | European Union 868MHz |
| `CN` | China |
| `JP` | Japan |
| `ANZ` | Australia & New Zealand |
| `KR` | Korea |
| `TW` | Taiwan |
| `RU` | Russia |
| `IN` | India |
| `NZ_865` | New Zealand 865MHz |
| `TH` | Thailand |
<LoRaRegions />
### Modem Preset

View file

@ -2,9 +2,10 @@
id: client-api
title: Client API (Serial/TCP/BLE)
sidebar_label: Client API
sidebar_position: 1
---
This document describes the protocol for external API clients using our devices. If you are interested in running your own code on the device itself, see the [module API](/docs/development/module-api) documentation instead.
This document describes the protocol for external API clients using our devices. If you are interested in running your own code on the device itself, see the [module API](/docs/development/device/module-api) documentation instead.
The Device API is designed to have only a simple stream of ToRadio and FromRadio packets and all polymorphism comes from the flexible set of Google Protocol Buffers which are sent over the wire. We use protocol buffers extensively both for the Bluetooth API and for packets inside the mesh or when providing packets to other applications on the phone.

View file

@ -2,6 +2,7 @@
id: error-codes
title: Critical Error Codes
sidebar_label: Error Codes
sidebar_position: 4
---
The device might report these fault codes on the screen, but it will also be outputted on the device serial output. If you encounter a fault code, please post on the forum and we'll try to help.

View file

@ -2,6 +2,7 @@
id: http-api
title: HTTP API
sidebar_label: HTTP API
sidebar_position: 2
---
:::info

View file

@ -2,7 +2,7 @@
id: module-api
title: Module API
sidebar_label: Module API
sidebar_position: 7
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.

View file

@ -2,7 +2,7 @@
id: docs
title: Maintaining Documentation
slug: /development/docs
sidebar_label: Documentation
sidebar_label: Docs
sidebar_position: 9
---
@ -14,7 +14,7 @@ All of our documentation resides on GitHub. Instructions for setting up your Git
Our documentation is powered by [Docusaurus](https://docusaurus.io) — a documentation platform built on React that utilizes markdown files. Because markdown files are easy to edit, most content changes should be fairly simple.
Another component that we use is [Vercel](https://vercel.com) — a platform for frontend frameworks and static sites. Instructions for setting up your instance of Vercel are located [here](/docs/development/documentation/publish#publish-to-vercel).
Another component that we use is [Vercel](https://vercel.com) — a platform for front-end frameworks and static sites. Instructions for setting up your instance of Vercel are located [here](/docs/development/documentation/publish#publish-to-vercel).
## Documentation Organization
@ -24,8 +24,8 @@ Another component that we use is [Vercel](https://vercel.com) — a platform for
| Meshtastic Software | `docs/software` | Current bulk of documentation running through each Meshtastic project. |
| Getting Started | `docs/getting-started` | Instructions on how to get the Meshtastic firmware onto a users device. |
| Device Settings | `docs/software/settings` | Details each user setting and provides explanations for what the setting does and how to configure the device using the various clients available (Android, CLI, iOS, Web) |
| Hardware Details | `docs/hardware` | Any hardware related content. Any time a user is attaching a peripheral accessory to their device. That includes 3d printed cases, antennas, buttons, chimes, rotary encoders, and screens. |
| Radio Mesh Details | `docs/mesh` | This section discusses everything relating to the Meshtastic mesh. Mesh health metrics will be discussed here as well as topics such as signal strength, range and anyting else pertaining to "over the air". |
| Hardware Details | `docs/hardware` | Any hardware related content. Any time a user is attaching a peripheral accessory to their device. That includes 3D printed cases, antennas, buttons, chimes, rotary encoders, and screens. |
| Radio Mesh Details | `docs/mesh` | This section discusses everything relating to the Meshtastic mesh. Mesh health metrics will be discussed here as well as topics such as signal strength, range and anything else pertaining to "over the air". |
| Contribute to Meshtastic | `docs/developers` | Details each of the projects and how they work together to give a developer an idea of how the Meshtastic ecosystem operates. |
| About the Documentation | `docs/maintaining-documentation` | This section explains how our documentation is organized, how to make edits to the documentation, view a local copy of your fork of the project. Style guides and tips will also be included here. |
| Legal | `docs/legal` | Any legal information. Most changes here will be handled by developers actually working on the projects that require any legal disclosures. Examples include: the Meshtastic trademark, terms of service, and privacy policy. |

View file

@ -0,0 +1,7 @@
label: Connect to Device
collapsible: true
position: 3
link:
type: generated-index
title: Connect to Device
slug: /getting-started/connect-device

View file

@ -0,0 +1,10 @@
---
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';

View file

@ -0,0 +1,15 @@
---
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

View file

@ -0,0 +1,10 @@
---
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';

View file

@ -9,7 +9,7 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
:::info
Before flashing confirm that you have [RAK4631](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/) and not a [RAK4631-R](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631-R/) If this is not the case, fear not. The hardware is identical but requires changing the bootloader. Instructions on how to do this are located [here](/docs/getting-started/flashing-firmware/nrf52/#convert-rak4631-r-to-rak4631).
Before flashing confirm that you have [RAK4631](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/) and not a [RAK4631-R](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631-R/) If this is not the case, fear not. The hardware is identical but requires changing the bootloader. Instructions on how to do this are located [here](/docs/guides/convert-rak4631r).
:::
## Upgrading from a previous version of Meshtastic

View file

@ -11,27 +11,3 @@ The NRF52 based devices have the easiest firmware upgrade process. No driver or
1. The [drag and drop](/docs/getting-started/flashing-firmware/nrf52/drag-n-drop) firmware installation is considered the "manual process" and recommended as the easiest solution.
2. The [Python Flasher](/docs/software/python/flasher) application does a lot under the hood to prevent you from needing to use the terminal. It also allows you to configure your device.
## Convert RAK4631-R to RAK4631
The only difference between the _RAK4631-R_ (RUI3) and the _RAK4631_ (Arduino) is the bootloader it is shipped with - the hardware is the same.
Meshtastic requires the Arduino bootloader on RAK WisBlock NRF52-based boards. The process of converting the bootloader only needs to be performed once.
This conversion requires the use of either a [DAPLink](https://daplink.io/) or [J-Link](https://www.segger.com/products/debug-probes/j-link/). The most reasonably priced and available is the [RAKDAP1](https://store.rakwireless.com/products/daplink-tool).
1. Install [Python](https://www.python.org/downloads/)
2. Install [pyOCD](https://pyocd.io/)
```shell
pip3 install pyocd
```
3. Download the required bootloader: [WisCore_RAK4631_Board_Bootloader.hex](https://github.com/RAKWireless/WisBlock/releases/download/0.4.2/WisCore_RAK4631_Board_Bootloader.hex)
4. Connect the RAKDAP as follows:
[<img src="/img/rak4631-rakdap1.png" style={{zoom:'25%'}} />](/img/rak4631-rakdap1.png)
5. Flash the bootloader
```shell
pyocd flash -t nrf52840 .\WisCore_RAK4631_Board_Bootloader.hex
```
6. Continue with the normal [flashing instructions](/docs/getting-started/flashing-firmware/nrf52/drag-n-drop)
Alternate methods of flashing are outlined [here](https://github.com/RAKWireless/WisBlock/tree/master/bootloader/RAK4630).

View file

@ -33,7 +33,7 @@ The NRF52 is much more power efficient than the esp32 and easier to update, but
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.
:::
## Connect Device
## Setup Working Environment
:::danger STOP! Put the power cable down!
Never power on the radio without attaching an antenna! _it could damage the radio chip._
@ -144,8 +144,65 @@ For RAK4631 users, if you have a RAK4631-R (the RUI3 bootloader version of the R
</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>
### Bluetooth
<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...
<div className="indexCtasBody">
<Link target="_blank"
className={'button button--outline button--lg cta--button'}
to={'/docs/getting-started/initial-config'}
>
Configure Device
</Link>
</div>
## Use Meshtastic
### with Command Line Tools
- [Python CLI](/docs/software/python/cli)
### with mobile apps
- [Android](/docs/category/android-app)
- [Apple](/docs/category/apple-apps)

View file

@ -0,0 +1,103 @@
---
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>

View file

@ -1,83 +0,0 @@
---
id: serial-drivers
title: Installing Serial Drivers
sidebar_label: Install Serial Drivers
sidebar_position: 1
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
:::caution
Make sure not to power the radio on without first attaching the antenna! You could damage the radio chip!
:::
Prior to connecting your Meshtastic device to the computer, you should perform the following basic checks.
## Verify data cable
Verify that you have a **data cable** and _not_ a **charging _only_ cable** before proceeding. 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, [test for driver installation](/docs/getting-started/serial-drivers/#test-for-driver-installation) to see if you need to install a driver to communicate with your device.
If you know you have installed the correct driver, the following step can be used to check if you have a proper data cable.
## Test for driver installation
You can verify that you have a proper data cable (rather than a charge-only type cable) and that the appropriate drivers for your system are installed by performing the following test:
_select your operating system below_
<Tabs
groupId="operating-system"
defaultValue="linux"
values={[
{label: 'Linux', value: 'linux'},
{label: 'macOS', value: 'macos'},
{label: 'Windows', value: 'windows'},
]}>
<TabItem value="linux">
1. Connect your Meshtastic device to your USB port
2. Open a **Terminal** and enter the following command:
```shell
lsusb
```
3. You should see something like:
```shell
ID xxxx:xxxx Silicon Labs CP210x UART Bridge
# or
ID xxxx:xxxx QinHeng Electronics USB Single Serial
# or
FIXME (WISBLOCK OUTPUT)
```
</TabItem>
<TabItem value="macos">
1. Navigate to `Apple Menu  > About This Mac > System Report... > Hardware > USB`.
2. You should see similar to one of the following entries:
- `CP210X USB to UART Bridge Controller`
- `CH9102 USB to UART Bridge Controller`
- `WisCore RAK4631 Board`
</TabItem>
<TabItem value="windows">
1. Navigate to `Device Manager > Ports (COM & LPT)`
2. You should see similar to one of the following entries:
- `Silicon Labs CP210X USB to UART Bridge (COM5)`
- `Silicon Labs CH9102 USB to UART Bridge (COM5)`
- `FIXME (WISBLOCK OUTPUT)`
</TabItem>
</Tabs>
If you can see your device, you are ready to flash the firmware. Skip to the [Flashing Firmware](/docs/getting-started/flashing-firmware/) section.
If you do not see your device after performing the check:
1. You may be using a charging-only cable.
2. You may need to install the USB serial driver corrosponding to your device ([ESP32](/docs/getting-started/serial-drivers/installing-esp32-serial-drivers) or [NRF52](/docs/getting-started/serial-drivers/installing-nrf52-serial-drivers)).

View file

@ -0,0 +1,28 @@
---
id: convert-rak4631r
title: Convert RAK4631-R to RAK4631
sidebar_label: Convert RAK4631-R
sidebar_position: 4
---
The only difference between the _RAK4631-R_ (RUI3) and the _RAK4631_ (Arduino) is the bootloader it is shipped with - the hardware is the same.
Meshtastic requires the Arduino bootloader on RAK WisBlock NRF52-based boards. The process of converting the bootloader only needs to be performed once.
This conversion requires the use of either a [DAPLink](https://daplink.io/) or [J-Link](https://www.segger.com/products/debug-probes/j-link/). The most reasonably priced and available is the [RAKDAP1](https://store.rakwireless.com/products/daplink-tool).
1. Install [Python](https://www.python.org/downloads/)
2. Install [pyOCD](https://pyocd.io/)
```shell
pip3 install pyocd
```
3. Download the required bootloader: [WisCore_RAK4631_Board_Bootloader.hex](https://github.com/RAKWireless/WisBlock/releases/download/0.4.2/WisCore_RAK4631_Board_Bootloader.hex)
4. Connect the RAKDAP as follows:
[<img src="/img/rak4631-rakdap1.png" style={{zoom:'25%'}} />](/img/rak4631-rakdap1.png)
5. Flash the bootloader
```shell
pyocd flash -t nrf52840 .\WisCore_RAK4631_Board_Bootloader.hex
```
6. Continue with the normal [flashing instructions](/docs/getting-started/flashing-firmware/nrf52/drag-n-drop)
Alternate methods of flashing are outlined [here](https://github.com/RAKWireless/WisBlock/tree/master/bootloader/RAK4630).