cleanup on development links

This commit is contained in:
sigmahour 2022-11-04 13:06:45 -04:00
parent a7eed056ae
commit a8675efce5
34 changed files with 144 additions and 138 deletions

View file

@ -9,7 +9,7 @@ sidebar_position: 3
### Where can I get additional help, ask questions, or bond with the Meshtastic community?
This site (which has a great search function) is the preferred place for up to date documentation. Many of our users and developers hang out on the [Meshtastic Discord](https://discord.gg/ktMAKGBnBs) server where you may connect with like-minded people.
This site (which has a great search function) is the preferred place for up-to-date documentation. Many of our users and developers hang out on the [Meshtastic Discord](https://discord.gg/ktMAKGBnBs) server where you may connect with like-minded people.
### How can I contribute to Meshtastic?

View file

@ -12,16 +12,16 @@ 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))
- No phone required for node to node communication
- No phone required for mesh communication
- Encrypted communication
- Excellent battery life (LoRa radios have a very low power draw)
- Excellent battery life
- Send and receive text messages between members of the mesh
- Enable optional GPS based location features
- Optional GPS based location features
- And more!
## How it works
The underlying technology, LoRa is a long range radio protocol that is available to most regions without needing certification like HAM operators.
The underlying technology, LoRa, is a long range radio protocol available to most regions without requiring certification like HAM operators.
The radios automatically rebroadcast messages they receive in order to create a mesh network so that everyone in the group can receive messages - even from the furthest member. Depending on settings used, the Meshtastic mesh can sustain up to 80 device nodes.
@ -38,7 +38,6 @@ If you are interested in a more technical overview of how Meshtastic works, visi
</Link>
</div>
## Contributors
Meshtastic is an open source project available on GitHub. Our generous volunteers donate their personal time to write and maintain this codebase. If you would like to contribute see our [GitHub](https://github.com/meshtastic), join our [Discord server](https://discord.gg/ktMAKGBnBs), and read up on our [forum](https://meshtastic.discourse.group).

View file

@ -12,8 +12,6 @@ We use the same channel maps as LoRaWAN (though this is not LoRaWAN).
See [this site](https://www.rfwireless-world.com/Tutorials/LoRa-channels-list.html) for more information.
See the LoRa Radio design datasheet: [LoRa Design Guide](/documents/LoRa_Design_Guide.pdf)
## 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).

View file

@ -2,5 +2,6 @@ label: Device
collapsible: true
position: 1
link:
slug: /development/device
type: generated-index
title: Device

View file

@ -1,5 +1,5 @@
---
id: device-api
id: client-api
title: Client API (Serial/TCP/BLE)
sidebar_label: Client API
---

View file

@ -1,5 +1,5 @@
---
id: critical-error-codes
id: error-codes
title: Critical Error Codes
sidebar_label: Error Codes
---

View file

@ -1,13 +0,0 @@
---
id: docusaurus
title: Docusaurus
sidebar_label: Docusaurus
---
## Overview
Meshtastic's documentation is set up using [Docusaurus](https://docusaurus.io). It is highly encouraged to look at [their documentation](https://docusaurus.io/docs) when looking for a solution to a problem with our docs. They most likely have thought of the use case you've discovered.
## Known Issues
- Admonitions within a `TabItem` component need to be completely unindented to show up correctly.

View file

@ -1,6 +1,7 @@
---
id: documentation
id: docs
title: Maintaining Documentation
slug: /development/docs
sidebar_label: Documentation
sidebar_position: 9
---
@ -9,11 +10,11 @@ Meshtastic documentation is an important ingredient to the overall project. We w
## Software Stack
All of our documentation resides on GitHub. Instructions for setting up your GitHub account are located [here](github).
All of our documentation resides on GitHub. Instructions for setting up your GitHub account are located [here](/docs/development/reference/github).
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. Instructions for setting up your instance of Docusaurus are located [here](docusaurus).
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](vercel).
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).
## Documentation Organization
@ -31,7 +32,7 @@ Another component that we use is [Vercel](https://vercel.com) — a platform for
## Quick Start
Assuming you have the [prerequisites installed](serve-docs-locally#prerequisites), running a local instance of Docusaurus takes three steps:
Assuming you have the [prerequisites installed](/docs/development/documentation/local-dev#prerequisites), running a local instance of Docusaurus takes three steps:
1. Fork/Clone the [meshtastic/meshtastic](https://github.com/meshtastic/meshtastic) repository and navigate to the root directory of the project.

View file

@ -1,7 +1,7 @@
---
id: serve-docs-locally
title: Setting up Local Documentation
sidebar_label: Serve Docs Locally
id: local-dev
title: Serving Docs Locally for Development
sidebar_label: Local Development
---
:::note

View file

@ -1,10 +1,12 @@
---
id: publish
title: Publishing Meshtastic.org
sidebar_label: Publish Meshtastic.org
sidebar_label: Publish
---
## Device
## Publish Live
### Device
- Update protobufs
@ -21,11 +23,11 @@ run bin/regen-protos.sh
- 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
#### Update Protobufs
## Android
### Android
### Pre-requisites
#### Pre-requisites
- Add repository secrets
- - KEYSTORE_FILENAME
@ -39,31 +41,31 @@ run bin/regen-protos.sh
keyAlias=upload
storeFile=nononononono.jks
### Instructions - Automated
#### Instructions - Automated
- Update protobufs
- Go to Actions / Make Release / Run Workflow
- Pick the Releases branch
- Enter the version found in app/gradle.build
## iOS
### iOS
TBD
## Meshtastic-flasher
### 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
#### 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
### 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
#### Pre-requisites
No pre-requisites are needed locally to make a release. All builds are done via Github Actions currently.
@ -74,7 +76,7 @@ pip3 install -r requirements.txt
pip install .
```
### Instructions
#### Instructions
- Update protobufs by running the "Update protobufs" workflow in Actions: https://github.com/meshtastic/Meshtastic-python/actions/workflows/update_protobufs.yml
@ -98,9 +100,43 @@ pytest -m smoke1
You need permissions in the GitHub project to make a build
:::
## Web
### 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).
## Publish to Vercel
Setting up a Vercel account is an optional step that can help you view your changes to the documentation in a server environment just like the actual docs. This can be helpful to include when submitting a pull request so that developers can review your changes and visually check that things look correct.
### Set up Vercel account
- Go to [vercel.com](https://vercel.com)
- Login with your GitHub account, click `Continue with GitHub`
### Link your fork of the project
- Click `New Project`
- Under `Import Git Repository` select `+ Add GitHub Account`
You'll be redirected to GitHub to allow access to select repositories.
- Select your fork of the project: `username/Meshtastic`
### Configure project
Configure project:
- Set a name for the project
- Select a framework preset: `Docusaurus 2`
- Click `Deploy`
That's it! You should now see your project with a green or orange status dot showing that your fork of the project has been compiled. There will be a commit-specific url that you can share to view your changes. There also will be a branch-specific url that you can view. If there are any errors it will show up red and include the logs for you to figure out what has gone wrong.
:::tip
There is a limited number of branch urls that you will be able to view. If you notice that option has disappeared, you can delete unused branches on your fork and that will enable that feature again.
Branch urls are helpful in PRs because they will remain constant, and you won't need to resubmit a new url for review each new commit if changes are requested.
:::

View file

@ -3,5 +3,6 @@ position: 1 # float position is supported
label: 'Style Guides'
collapsible: true # make the category collapsible
link:
slug: /development/docs/style-guide
type: generated-index
title: Style Guides

View file

@ -1,6 +1,6 @@
---
id: markdown-features
title: Style Guide - Markdown Features
id: markdown
title: Markdown Features
sidebar_label: Markdown Features
---

View file

@ -1,7 +1,7 @@
---
id: style-guide-settings
title: Style Guide - Settings Pages
sidebar_label: Settings Pages
id: config-pages
title: Config Pages
sidebar_label: Config Pages
---
## Overview

View file

@ -1,37 +0,0 @@
---
id: vercel
title: Vercel
sidebar_label: Vercel
---
## Overview
Setting up a Vercel account is an optional step that can help you view your changes to the documentation in a server environment just like the actual docs. This can be helpful to include when submitting a pull request so that developers can review your changes and visually check that things look correct.
## Set up Vercel account
- Go to [vercel.com](https://vercel.com)
- Login with your GitHub account, click `Continue with GitHub`
## Link your fork of the project
- Click `New Project`
- Under `Import Git Repository` select `+ Add GitHub Account`
You'll be redirected to GitHub to allow access to select repositories.
- Select your fork of the project: `username/Meshtastic`
## Configure project
Configure project:
- Set a name for the project
- Select a framework preset: `Docusaurus 2`
- Click `Deploy`
That's it! You should now see your project with a green or orange status dot showing that your fork of the project has been compiled. There will be a commit-specific url that you can share to view your changes. There also will be a branch-specific url that you can view. If there are any errors it will show up red and include the logs for you to figure out what has gone wrong.
:::tip
There is a limited number of branch urls that you will be able to view. If you notice that option has disappeared, you can delete unused branches on your fork and that will enable that feature again.
Branch urls are helpful in PRs because they will remain constant, and you won't need to resubmit a new url for review each new commit if changes are requested.
:::

View file

@ -4,4 +4,4 @@ position: 1
link:
type: generated-index
title: Firmware
slug: /firmware
slug: /development/firmware

View file

@ -1,7 +1,7 @@
---
id: build
title: Building Meshtastic Firmware
sidebar_label: Building Meshtastic
sidebar_label: Building Firmware
---
Meshtastic uses [PlatformIO](https://platformio.org), a development environment that enables easy multi-platform development and centralized tooling.

View file

@ -1,5 +1,5 @@
---
id: oled-l10n-guide
id: oled-guide
title: OLED Localization Guide
sidebar_label: OLED Localization
---

View file

@ -1,12 +1,14 @@
---
id: stacktrace-decode
title: Decoding Stacktraces
sidebar_label: Decoding Stacktraces
id: stacktraces
title: Stacktraces
sidebar_label: Stacktraces
---
## Decoding Stacktraces
You may encounter a situation where your device crashes and are left with a stacktrace, below are two methods of decoding them.
## Manual
### Manual
:::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.
@ -24,9 +26,9 @@ Now run the exception decoder:
bin/exception_decoder.py backtrace.txt
```
## Real Time
### Real-Time
In order to decode stack traces in real time, kep the following command (replacing `DEVICE_PORT` with your device's port) running in your terminal with the suspect device connected
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
```shell
pio device monitor --port DEVICE_PORT -f esp32_exception_decoder

View file

@ -1,7 +0,0 @@
position: 6 # float position is supported
label: 'Javascript'
collapsible: true # make the category collapsible
link:
type: generated-index
title: Javascript
slug: /software/js

View file

@ -5,7 +5,7 @@ sidebar_label: HTTP API
---
:::info
Methods and types for using the device [HTTP API](http://example.com) are exported
Methods and types for using the device [HTTP API](/docs/development/device/http-api) are exported
:::
```typescript

View file

@ -1,7 +1,9 @@
---
id: getting-started
title: Getting Started
sidebar_label: Getting Started
id: js
title: Getting Started with Meshtastic.js
slug: /development/js
sidebar_position: 6
sidebar_label: Javascript
---
:::tip

View file

@ -1,7 +0,0 @@
label: Python
collapsible: true # make the category collapsible
position: 5 # float position is supported
link:
type: generated-index
title: Python
slug: /software/python-cli

View file

@ -1,7 +1,8 @@
---
id: development
id: python
title: Meshtastic Python Development
sidebar_label: Development
sidebar_position: 5
sidebar_label: Python
---
## A note to developers of this lib

View file

@ -1,5 +1,5 @@
---
id: python-library
id: library
title: Using the Meshtastic Python Library
sidebar_label: Python Library
---

View file

@ -13,7 +13,6 @@ All of Meshtastic's code and documentation is hosted on GitHub. If you would lik
- Go to [github.com](https://github.com)
- Click `Sign Up`
## README Template
All Meshtastic developers should follow this convention when writing a README for a repository.

View file

@ -0,0 +1,8 @@
---
id: lora-design
title: LoRa Design Guide
sidebar_label: LoRa Datasheet
sidebar_position: 1
---
- [LoRa Design Guide Datasheet](/documents/LoRa_Design_Guide.pdf)

View file

@ -1,5 +1,5 @@
---
id: web-development-software
id: web-interface
title: Development Overview of the Web Interface
sidebar_label: Web Interface
sidebar_position: 4

View file

@ -1,5 +1,5 @@
---
id: web-partitions-software
id: esp32-partitions
title: Managing ESP32 partitions
sidebar_label: ESP32 partitions
---

View file

@ -12,22 +12,21 @@ import TabItem from '@theme/TabItem';
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).
:::
## Upgrading from a previous version of Meshtastic
If you are upgrading your NRF52 device from a previous version of Meshtastic rather than starting from scratch, you may need to do a full factory reset of the internal flash memory. Stale data saved by previous versions of the Meshtastic firmware can cause devices to get stuck in a crash loop at startup.
Follow the guide to [factory erase your NRF52](/docs/guides/nrf52-erase) device before continuing to [flash firmware](#flash-firmware).
## Flash Firmware
Download and unzip the latest firmware from [Meshtastic Downloads](https://meshtastic.org/downloads).
1. Connect your device to your computer with a data USB cable.
1. Connect your device to your computer with a USB data cable.
2. Double click the reset button on your device (this will put it into bootloader mode)
3. Notice a new drive will be mounted on your computer (Windows, Mac, or Linux)
4. Open this drive and you should see three files: `CURRENT.UF2`, `INDEX.HTM`, and `INFO_UF2.TXT`
5. Drop the appropriate appropriate `firmware-DEVICE_NAME-vx.x.x-xxxxxxx.uf2` file from the release you want to install onto this drive
5. Drop the appropriate firmware file (`firmware-DEVICE_NAME-vx.x.x-xxxxxxx.uf2`) from the release onto this drive.
Once the file has finished copying onto the drive, the device will reboot and install the Meshtastic firmware.
:::caution
If you're upgrading your NRF52 device from a previous version of Meshtastic rather than starting from scratch, you may need to do a full factory reset of the internal flash memory. Stale data saved by previous versions of the Meshtastic firmware can cause devices to get stuck in a crash loop at startup.
:::
Meshtastic uses the [littlefs](https://github.com/littlefs-project/littlefs) library to store configuration, logs, and other data in the internal flash of NRF52 devices. Updating the firmware does _not_ erase this additional data, which can cause issues when the format and location of data changes between releases.
To reset the flash storage on your NRF52 board, first follow steps 1-4 above. At step 5, copy the included file named `Meshtastic_nRF52_factory_erase.uf2` onto the virtual disk device instead of a `firmware-DEVICE_NAME...` binary. After the device resets, connect to it via serial console using the [Meshtastic CLI `--noproto`](/docs/software/python/cli/#--noproto) mode or a standalone serial client like `minicom`. When you connect to the serial console, press any key; you should see the message `Formating ... Done`.
Once the flash is erased you can use steps 2-5 above to re-install the latest Meshtastic firmware on a clean storage filesystem.

View file

@ -5,6 +5,6 @@ sidebar_label: Setup MQTT
sidebar_position: 1
---
import MFlasher from '../software/mqtt/index.mdx'
import MQTT from '../software/mqtt/index.mdx'
<MFlasher components={props.components} />
<MQTT components={props.components} />

View file

@ -2,9 +2,9 @@
id: remote-nodes
title: Remote Node Administration
sidebar_label: Administer Remote Nodes
sidebar_position: 1
sidebar_position: 2
---
import MFlasher from '../configuration/remote-admin.mdx'
import RemoteAdmin from '../configuration/remote-admin.mdx'
<MFlasher components={props.components} />
<RemoteAdmin components={props.components} />

View file

@ -0,0 +1,22 @@
---
id: nrf52-erase
title: Flash NRF52 Factory Erase
sidebar_label: Factory Erase NRF52
sidebar_position: 3
---
Meshtastic uses the [littlefs](https://github.com/littlefs-project/littlefs) library to store configuration, logs, and other data in the internal flash of NRF52 devices. Updating the firmware does _not_ erase this additional data, which can cause issues when the format and location of data changes between releases.
To reset the flash storage on your NRF52 board:
Download and unzip the latest firmware from [Meshtastic Downloads](https://meshtastic.org/downloads).
1. Connect your device to your computer with a USB data cable.
2. Double click the reset button on your device (this will put it into bootloader mode)
3. Notice a new drive will be mounted on your computer (Windows, Mac, or Linux)
4. Open this drive and you should see three files: `CURRENT.UF2`, `INDEX.HTM`, and `INFO_UF2.TXT`
5. Copy the included file named `Meshtastic_nRF52_factory_erase.uf2` onto the virtual disk device. The device should reboot.
6. Connect to the device via serial console using the [Meshtastic CLI `--noproto`](/docs/software/python/cli/#--noproto) mode or a standalone serial client like `minicom`.
7. Press any key, you should see the message: `Formatting... Done`.
Once the device has been erased, you can proceed to install the latest Meshtastic firmware on a clean storage filesystem by following the [flash firmware](/docs/getting-started/flashing-firmware/nrf52/drag-n-drop#flash-firmware) steps.

View file

@ -35,6 +35,7 @@ values={[
- 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)

View file

@ -85,4 +85,4 @@ Option 3) Flash the device with the SPIFFS instructions in platform.io.
This issue is likely found on old versions of the web interface. Device firmware now includes the web interface and the file system has been changed. Flashing the device with [Meshtastic-flasher](/docs/software/python/flasher) will update you to the current web interface. Access to the files in the filesystem is actively being developed, but is not currently available.
:::
Cause: Typically a small partition has been set aside from previous firmware installed on the module. Instructions for how to fix this can be found on the [ESP32-Partitions](/docs/development/web/web-partitions-software) page.
Cause: Typically a small partition has been set aside from previous firmware installed on the module. Instructions for how to fix this can be found on the [ESP32-Partitions](/docs/development/web/esp32-partitions) page.