From aee0d94bae5bc5691fb7e6c20a2836a3de273afe Mon Sep 17 00:00:00 2001 From: sigmahour <111950404+sigmahour@users.noreply.github.com> Date: Tue, 1 Nov 2022 04:44:02 -0400 Subject: [PATCH 1/5] getting started updates (#481) Co-authored-by: sigmahour <> --- .../flashing-firmware/esp32/index.mdx | 7 +- .../flashing-firmware/esp32/web-flasher.mdx | 4 +- .../flashing-firmware/index.mdx | 8 +-- .../{flashing-nrf52.mdx => drag-n-drop.mdx} | 8 +-- .../flashing-firmware/nrf52/index.mdx | 29 ++++---- .../nrf52/python-flasher.mdx | 2 +- docs/getting-started/serial-drivers/index.mdx | 66 ++++++++++++------- .../serial-drivers/serial-drivers-esp32.mdx | 2 - .../serial-drivers/serial-drivers-nrf52.mdx | 38 ++++++----- docs/hardware/supported/heltec.mdx | 1 - docs/hardware/supported/techo.mdx | 2 +- docs/software/python/cli/development.mdx | 42 ++++++++---- docs/software/python/meshtastic-flasher.mdx | 33 ++++------ 13 files changed, 139 insertions(+), 103 deletions(-) rename docs/getting-started/flashing-firmware/nrf52/{flashing-nrf52.mdx => drag-n-drop.mdx} (92%) diff --git a/docs/getting-started/flashing-firmware/esp32/index.mdx b/docs/getting-started/flashing-firmware/esp32/index.mdx index 5b79ba23..31b5cf5c 100644 --- a/docs/getting-started/flashing-firmware/esp32/index.mdx +++ b/docs/getting-started/flashing-firmware/esp32/index.mdx @@ -10,4 +10,9 @@ import TabItem from '@theme/TabItem'; ## Recommended Flashing Method for ESP32 Devices -For ESP32 based device users (TBEAM, TLORA, Heltec etc.) we recommend using the [web based installer](https://flasher.meshtastic.org) or the [Meshtastic Flasher application](/docs/software/python/flasher). The 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. \ No newline at end of file +For ESP32 based device users (TBEAM, TLORA, Heltec etc.) + +We recommend using the following methods for flashing ESP32 devices: + +1. [Web-based installer](https://flasher.meshtastic.org) - The browser application requires either Chrome or Edge broswers but is an excellent choice for quickly flashing devices. +2. [Python Flasher](/docs/software/python/flasher) - The 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. \ No newline at end of file diff --git a/docs/getting-started/flashing-firmware/esp32/web-flasher.mdx b/docs/getting-started/flashing-firmware/esp32/web-flasher.mdx index 0bf4531b..6a84e362 100644 --- a/docs/getting-started/flashing-firmware/esp32/web-flasher.mdx +++ b/docs/getting-started/flashing-firmware/esp32/web-flasher.mdx @@ -1,9 +1,9 @@ --- id: web-flasher title: Using Meshtastic Web Flasher -sidebar_label: Web Flasher +sidebar_label: Web Flasher (recommended) sidebar_position: 1 --- -[Web-based Installer](https://flasher.meshtastic.org) \ No newline at end of file +The [Web-based Installer](https://flasher.meshtastic.org) requires Chrome or Edge browser. \ No newline at end of file diff --git a/docs/getting-started/flashing-firmware/index.mdx b/docs/getting-started/flashing-firmware/index.mdx index 53e87e63..1ab54421 100644 --- a/docs/getting-started/flashing-firmware/index.mdx +++ b/docs/getting-started/flashing-firmware/index.mdx @@ -12,14 +12,8 @@ import TabItem from '@theme/TabItem'; Make sure not to power the radio on without first attaching the antenna! You could damage the radio chip! ::: -## Easiest Firmware install options - -If you have RAK NRF based devices or a LilyGO T-Echo, [the drag and drop firmware installation process](/docs/getting-started/flashing-firmware/nrf52/flashing-nrf52) is the easiest solution. - -For ESP32 based device users (TBEAM, TLORA, Heltec etc.) we recommend using the [web based installer](https://flasher.meshtastic.org) or the [Meshtastic Flasher application](/docs/software/python/flasher). The 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. - ## Manual Firmware Installation Firmware can be downloaded from the [Downloads](/downloads) page. Your initial installation has to happen over USB from your Mac, Windows, or Linux computer. -If you choose to flash the firmware using the manual method, [ESP32 based devices](/docs/getting-started/flashing-firmware/esp32/flashing-esp32) and [NRF52 based devices](/docs/getting-started/flashing-firmware/nrf52/flashing-nrf52) have different methods. Select the appropriate one. If you don't know what chipset your device is, take a look at our supported hardware section. +If you choose to flash the firmware using the manual method, [ESP32 based devices](/docs/getting-started/flashing-firmware/esp32/) and [NRF52 based devices](/docs/getting-started/flashing-firmware/nrf52/) have different methods. Select the appropriate one. If you don't know what chipset your device is, take a look at our [supported hardware](/docs/category/supported-hardware) section. diff --git a/docs/getting-started/flashing-firmware/nrf52/flashing-nrf52.mdx b/docs/getting-started/flashing-firmware/nrf52/drag-n-drop.mdx similarity index 92% rename from docs/getting-started/flashing-firmware/nrf52/flashing-nrf52.mdx rename to docs/getting-started/flashing-firmware/nrf52/drag-n-drop.mdx index 1bf315fb..ee1c9fe9 100644 --- a/docs/getting-started/flashing-firmware/nrf52/flashing-nrf52.mdx +++ b/docs/getting-started/flashing-firmware/nrf52/drag-n-drop.mdx @@ -1,10 +1,10 @@ --- -id: flashing-nrf52 -title: Drag & Drop NRF52 Firmware Updates -sidebar_label: Drag & Drop +id: drag-n-drop +title: Drag & Drop NRF52 Firmware Updates +sidebar_label: Drag & Drop (recommended) pagination_prev: getting-started/flashing-firmware/flashing-firmware pagination_next: getting-started/flashing-firmware/esp32/flashing-esp32 -sidebar_position: 2 +sidebar_position: 1 --- import Tabs from '@theme/Tabs'; diff --git a/docs/getting-started/flashing-firmware/nrf52/index.mdx b/docs/getting-started/flashing-firmware/nrf52/index.mdx index 3dc0d6b2..1ad92f4d 100644 --- a/docs/getting-started/flashing-firmware/nrf52/index.mdx +++ b/docs/getting-started/flashing-firmware/nrf52/index.mdx @@ -10,33 +10,34 @@ import TabItem from '@theme/TabItem'; ## Recommended Flashing Method for NRF52 Devices -If you have RAK NRF based devices or a LilyGO T-Echo, [the drag and drop firmware installation process](/docs/getting-started/flashing-firmware/nrf52/flashing-nrf52) is the easiest solution. +If you have RAK NRF based devices or a LilyGO T-Echo +1. The [drag and drop](/docs/getting-started/flashing-firmware/nrf52/drag-n-drop) firmware installation process is the easiest solution. ## Convert RAK4631-R to RAK4631 -Running Meshtastic on RAK WisBlock NRF52 based boards relies on the avaliability of the Arduino bootloader. +The RAK4631-R is just the same as the RAK4631 in terms of hardware, the only difference is the bootloader it is shipped with. -This process only needs to be performed once +The RAK4631-R is shipped with the RUI3 bootloader, the RAK4631 with the Arduino bootloader. + +Running Meshtastic on RAK WisBlock NRF52-based boards relies on the Arduino bootloader. + +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 avaliable 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 -``` - + ```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/rak4631-rakdap1.png) 5. Flash the bootloader - -```shell -pyocd flash -t nrf52840 .\WisCore_RAK4631_Board_Bootloader.hex -``` - -6. Continue with the [normal instructions](/docs/getting-started/flashing-firmware/nrf52/flashing-nrf52) + ```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). \ No newline at end of file diff --git a/docs/getting-started/flashing-firmware/nrf52/python-flasher.mdx b/docs/getting-started/flashing-firmware/nrf52/python-flasher.mdx index 02776928..669150f2 100644 --- a/docs/getting-started/flashing-firmware/nrf52/python-flasher.mdx +++ b/docs/getting-started/flashing-firmware/nrf52/python-flasher.mdx @@ -2,7 +2,7 @@ id: meshtastic-flasher-nrf52 title: Using Python Meshtastic Flasher sidebar_label: Python Flasher -sidebar_position: 1 +sidebar_position: 2 --- import MFlasher from '../../../software/python/meshtastic-flasher.mdx' diff --git a/docs/getting-started/serial-drivers/index.mdx b/docs/getting-started/serial-drivers/index.mdx index 329ff078..43d44365 100644 --- a/docs/getting-started/serial-drivers/index.mdx +++ b/docs/getting-started/serial-drivers/index.mdx @@ -8,27 +8,25 @@ 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 you have a data cable (not a charging only cable) before proceeding. There's 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. +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 data cable, check the following to see if you need to install a driver to communicate with your device. +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. -:::tip -If you know you have installed the correct driver, the following step can be used to check if your cable is a data cable. -::: +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. +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: -If you can see your device, you are ready to flash the firmware. Skip to the [Choose Firmware Flashing Method section](#choose-firmware-flashing-method). - -If you do not see your device in the following test, you either: - -1. Need to [install a driver](#install-appropriate-drivers). -2. Are currently using a charging only cable. +_select your operating system below_ -Connect your Meshtastic device to your USB port, open a `Terminal` and enter the following command: -```shell -lsusb -``` +1. Connect your Meshtastic device to your USB port +2. Open a **Terminal** and enter the following command: -You should see something like: `ID xxxx:xxxx Silicon Labs CP210x UART Bridge`, `ID xxxx:xxxx QinHeng Electronics USB Single Serial`, or `FIXME (WISBLOCK OUTPUT)`. + ```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) + ``` -Navigate to `Apple Menu  > About This Mac > System Report... > Hardware > USB`. You should see something like `CP210X USB to UART Bridge Controller`, `CH9102 USB to UART Bridge Controller`, or `WisCore RAK4631 Board`. If not download the appropriate drivers below. +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` - - + + -Navigate to `Device Manager > Ports (COM & LPT)`. You should see something like `Silicon Labs CP210X USB to UART Bridge (COM5)`, `Silicon Labs CH9102 USB to UART Bridge (COM5)`, or `FIXME (WISBLOCK OUTPUT)`. If not download the appropriate drivers below. +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)` - + + +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)). \ No newline at end of file diff --git a/docs/getting-started/serial-drivers/serial-drivers-esp32.mdx b/docs/getting-started/serial-drivers/serial-drivers-esp32.mdx index f9b59358..064523ed 100644 --- a/docs/getting-started/serial-drivers/serial-drivers-esp32.mdx +++ b/docs/getting-started/serial-drivers/serial-drivers-esp32.mdx @@ -30,7 +30,6 @@ values={[ - - [CP210X USB to UART bridge - Download](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers) @@ -38,7 +37,6 @@ values={[ - - [CP210X USB to UART bridge - Download](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers) diff --git a/docs/getting-started/serial-drivers/serial-drivers-nrf52.mdx b/docs/getting-started/serial-drivers/serial-drivers-nrf52.mdx index c0d92e2a..50193a85 100644 --- a/docs/getting-started/serial-drivers/serial-drivers-nrf52.mdx +++ b/docs/getting-started/serial-drivers/serial-drivers-nrf52.mdx @@ -8,10 +8,6 @@ sidebar_position: 2 import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -:::important -Reboot your computer after you have installed the driver to complete the installation. -::: - ## Install NRF52 USB to Serial Drivers - [CH9102 Driver - MacOS Download](https://github.com/WCHSoftGroup/ch34xser_macos) - - - - -- [CH9102 Driver - Windows Download](http://www.wch-ic.com/downloads/CH341SER_EXE.html) - - - - - -## Remove the CH34x USB Driver (macOS) +:::important +Reboot your computer after you have installed the driver to complete the installation. +::: :::caution -With the latest versions of MacOS, the USB Serial driver is built-in. Do _NOT_ download the USB device drivers unless required. If you downloaded/installed any already, please remove them: +With the latest versions of MacOS, the USB Serial driver is built-in. Do _NOT_ download the USB device drivers unless required. If you downloaded/installed any already, please remove them. ::: +### Remove the CH34x USB Driver (macOS) + If you have already downloaded/installed the MacOS WCH-IC CH340/CH341 ("CH341SER_MAC") drivers via the CH34x_Install_V1.5.pkg, you will have to Uninstall the kernel extension: @@ -58,4 +52,16 @@ Uninstall the kernel extension: 3. `sudo rm -rf /Library/Extensions/usbserial.kext` 4. Reboot + + + +- [CH9102 Driver - Windows Download](http://www.wch-ic.com/downloads/CH341SER_EXE.html) + +:::important +Reboot your computer after you have installed the driver to complete the installation. +::: + + + + \ No newline at end of file diff --git a/docs/hardware/supported/heltec.mdx b/docs/hardware/supported/heltec.mdx index f2bb792c..16f223fe 100644 --- a/docs/hardware/supported/heltec.mdx +++ b/docs/hardware/supported/heltec.mdx @@ -23,7 +23,6 @@ Using this device with a battery is not recommended. - Reset and Program switches - No GPS - - Firmware file: `firmware-heltec-1.x.x.bin` [](/img/hardware/heltec-v2.png) diff --git a/docs/hardware/supported/techo.mdx b/docs/hardware/supported/techo.mdx index 98dedeaf..d00e7655 100644 --- a/docs/hardware/supported/techo.mdx +++ b/docs/hardware/supported/techo.mdx @@ -7,7 +7,7 @@ sidebar_position: 2 The T-Echo is the latest device to be release by LILYGO® supporting a low power consumption microcontroller. -### See [Getting Started](/docs/getting-started/flashing-firmware/nrf52/flashing-nrf52) +### See [Getting Started](/docs/getting-started/flashing-firmware/nrf52/) - firmware file: `firmware-t-echo-1.x.x.uf2` - [Purchase link](https://www.aliexpress.com/item/1005002842456390.html) diff --git a/docs/software/python/cli/development.mdx b/docs/software/python/cli/development.mdx index b88ac473..1d7525e5 100644 --- a/docs/software/python/cli/development.mdx +++ b/docs/software/python/cli/development.mdx @@ -6,7 +6,7 @@ sidebar_label: Development ## A note to developers of this lib -We use the visual-studio-code default python formatting conventions (autopep8). So if you use that IDE you should be able to use "Format Document" and not generate unrelated diffs. If you use some other editor, please do not change formatting on lines you have not changed yourself. +We use the Visual Studio Code (VScode) default python formatting conventions (autopep8). So if you use that IDE you should be able to use "Format Document" and not generate unrelated diffs. If you use some other editor, please do not change formatting on lines you have not changed yourself. If you need to build a new release you will need: @@ -42,7 +42,7 @@ Possible options for testing: pytest -vv ``` -- To run just unit tests: +**Run just unit tests** ``` pytest @@ -52,13 +52,13 @@ pytest -m unit make ``` -- To run just integration tests: +**Run just integration tests** ``` pytest -m int ``` -- To run the smoke test with only one device connected serially (aka smoke1): +**Run the smoke test with only one device connected serially (aka smoke1)** ``` pytest -m smoke1 @@ -67,31 +67,35 @@ pytest -m smoke1 CAUTION: Running smoke1 will reset values on the device, including the region to 1 (US). Be sure to hit the reset button on the device after the test is completed. -- To run the smoke test with only two device connected serially (aka smoke2): +**Run the smoke test with only two device connected serially (aka smoke2)** ``` pytest -m smoke2 ``` -- To run the wifi smoke test: +**Run the wifi smoke test** ``` pytest -m smokewifi ``` -- To run a specific test: +**Run a specific test** ``` pytest -msmoke1 meshtastic/tests/test_smoke1.py::test_smoke1_info + # or to run a specific smoke2 test pytest -m smoke2 meshtastic/tests/test_smoke2.py::test_smoke2_info + # or to run a specific smoke_wifi test pytest -m smokewifi meshtastic/tests/test_smoke_wifi.py::test_smokewifi_info ``` -- To add another classification of tests such as "unit" or "smoke1", see [pytest.ini](https://github.com/meshtastic/Meshtastic-python/blob/master/pytest.ini). +**Add another classification of tests such as "unit" or "smoke1"** -- To see the unit test code coverage: +See [pytest.ini](https://github.com/meshtastic/Meshtastic-python/blob/master/pytest.ini). + +**To see the unit test code coverage** ``` pytest --cov=meshtastic @@ -101,7 +105,7 @@ pytest --cov-report html --cov=meshtastic make cov ``` -- To see slowest unit tests, you can run: +**To see slowest unit tests, you can run** ``` pytest --durations=0 @@ -109,8 +113,24 @@ pytest --durations=0 make slow ``` -See the [API documentation](https://python.meshtastic.org) or you can generate them locally by running: +**Generate the Python API documentation** + +Pre-generated: [API documentation](https://python.meshtastic.org) ``` bin/regen-docs.sh ``` + +## Wire encoding + +When sending protobuf packets over serial or TCP each packet is preceded by uint32 sent in network byte order (big endian). +The upper 16 bits must be 0x94C3. The lower 16 bits are packet length (this encoding gives room to eventually allow quite large packets). + +Implementations validate length against the maximum possible size of a BLE packet (our lowest common denominator) of 512 bytes. If the +length provided is larger than that we assume the packet is corrupted and begin again looking for 0x4403 framing. + +The packets flowing towards the device are ToRadio protobufs, the packets flowing from the device are FromRadio protobufs. +The 0x94C3 marker can be used as framing to (eventually) resync if packets are corrupted over the wire. + +Note: the 0x94C3 framing was chosen to prevent confusion with the 7 bit ascii character set. It also doesn't collide with any valid utf8 encoding. This makes it a bit easier to start a device outputting regular debug output on its serial port and then only after it has received a valid packet from the PC, turn off unencoded debug printing and switch to this +packet encoding. diff --git a/docs/software/python/meshtastic-flasher.mdx b/docs/software/python/meshtastic-flasher.mdx index aa524410..31441b78 100644 --- a/docs/software/python/meshtastic-flasher.mdx +++ b/docs/software/python/meshtastic-flasher.mdx @@ -20,9 +20,7 @@ The following operating systems are currently supported: Windows, Mac, and Ubunt ## Prerequisites -### Verify `python3` is installed - -#### Check `python3` version +### Verify that Python3 is installed -
- -Install/Update `python3` - +### Install or Update Python3 + - [Download directly from python.org](https://www.python.org/downloads/macos/) -- [Homebrew](https://brew.sh/) +- [Homebrew](https://brew.sh/): `brew install python@3.9` - [MacPorts](https://www.macports.org/) @@ -93,15 +89,12 @@ sudo apt install -y python3 python3-pip python3-venv -
### Install App - -For windows there is an [executable file](https://github.com/meshtastic/Meshtastic-gui-installer/releases/tag/untagged-9a69e6946635cd38df7d) that will manage installing python and flasher updates for you. +For **Windows**, the [installer](https://github.com/meshtastic/Meshtastic-gui-installer/releases/tag/untagged-9a69e6946635cd38df7d) will manage installing python and flasher updates automatically. -For MacOS and Linux it is recommended that you install using `pip` - +For **MacOS** and **Linux**, it is recommended that you install using `pip`. - - ## Flashing the Device -The Meshtastic Flasher will flash the latest firmware to esp32 and nrf52 devices. This is a newly developed application (as of February 1, 2022), so there may be some issues discovered as it is tested by users. +The Meshtastic Flasher will flash the latest firmware on esp32 and nrf52 devices. This is a newly developed application (as of February 1, 2022), so there may be some issues discovered as it is tested by users. There are three steps: -- Click the "GET VERSIONS" button to get the versions available (from GitHub). -- Click the "DETECT DEVICE" button to determine the port and device variant connected. -- Click the "FLASH" button to flash the version selected, using the port selected to the device. +1. Click the **GET VERSIONS** button to get the versions available (from GitHub). +2. Click the **DETECT DEVICE** button to determine the port and device variant connected. +3. Click the **FLASH** button to flash the version selected using the port selected to the device. ## Issues? @@ -202,5 +193,5 @@ The code can be found at the [Meshtastic-gui-installer repo](https://github.com/ The following are known limitations: - Raspberry Pi is not available, since it is arm-based and there are no pre-built libraries for [PySide](https://wiki.qt.io/Qt_for_Python) -- Ubuntu 20.04 is the version used for testing, it may work with other versions -- see [README](https://github.com/meshtastic/Meshtastic-gui-installer/blob/master/README.md) for more details +- Ubuntu 20.04 is the version used for testing, it may work with other versions. +- See [README](https://github.com/meshtastic/Meshtastic-gui-installer/blob/master/README.md) for more details. From a2ebdc8bb73e702e99687adf388a13f28f822f85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Tue, 1 Nov 2022 10:55:11 +0100 Subject: [PATCH 2/5] Have to switch it on as well now... --- docs/software/python/cli/uses.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/software/python/cli/uses.mdx b/docs/software/python/cli/uses.mdx index 8651f35a..6eddb973 100644 --- a/docs/software/python/cli/uses.mdx +++ b/docs/software/python/cli/uses.mdx @@ -41,7 +41,7 @@ meshtastic --setlat 25.2 --setlon -16.8 --setalt 120 Or to configure an ESP32 based board to join a Wifi network as a station: ```shell -meshtastic --set network.wifi_ssid mywifissid --set network.wifi_psk mywifipsw +meshtastic --set network.wifi_ssid mywifissid --set network.wifi_psk mywifipsw --set network.wifi_enabled 1 ``` :::note From e10ac5d09f981fa4dcb6c64bf6fe7c90d8b940fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Tue, 1 Nov 2022 11:44:20 +0100 Subject: [PATCH 3/5] updating more proto references, adding eth reference (#483) --- docs/software/mqtt/index.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/software/mqtt/index.mdx b/docs/software/mqtt/index.mdx index 998cd4c3..0103e503 100644 --- a/docs/software/mqtt/index.mdx +++ b/docs/software/mqtt/index.mdx @@ -82,8 +82,9 @@ If the message received contains valid JSON in the payload, the JSON is deserial Check out [MQTT Settings](/docs/settings/moduleconfig/mqtt) for full information. For quick start instructions, read on. -- Connect your gateway node to wifi, by setting the `wifi_ssid` and `wifi_password` preferences. -- Configure your broker settings: `mqtt_server`, `mqtt_username`, and `mqtt_password`. If all are left blank, the device will connect to the Meshtastic broker. +- Connect your gateway node to wifi, by setting the `network.wifi_ssid`, `network.wifi_psk` and `network.wifi_enabled` preferences. +- Alternatively use the RAK4631 with Ethernet Module RAK13800, by setting `network.eth_mode` and `network.eth_enabled`. +- Configure your broker settings: `mqtt.address`, `mqtt.username`, and `mqtt.password`. If all are left blank, the device will connect to the Meshtastic broker. - Set `uplink_enabled` and `downlink_enabled` as appropriate for each channel. Most users will just have a single channel (at channel index 0). `meshtastic --ch-index 0 --ch-set uplink_enabled true` `uplink_enabled` will tell the device to publish mesh packets to MQTT. From af0865b1e215d5b495f9ac44c6233a95b95fdff7 Mon Sep 17 00:00:00 2001 From: Sacha Weatherstone Date: Tue, 1 Nov 2022 23:45:25 +1100 Subject: [PATCH 4/5] launch banner (To be merged Nov 1) (#470) * launch banner * Downloads page overhaul start * Fix link to launch content * 2.0 updates --- docs/developers/Firmware/device-api.mdx | 2 +- docusaurus.config.js | 5 + package.json | 2 +- pnpm-lock.yaml | 36 +-- src/pages/2.0/index.tsx | 97 +++++--- .../downloads/_components/FirmwareCard.tsx | 2 +- src/pages/downloads/index.tsx | 230 +++++++++--------- 7 files changed, 201 insertions(+), 173 deletions(-) diff --git a/docs/developers/Firmware/device-api.mdx b/docs/developers/Firmware/device-api.mdx index da956e64..0b3a98a3 100644 --- a/docs/developers/Firmware/device-api.mdx +++ b/docs/developers/Firmware/device-api.mdx @@ -24,7 +24,7 @@ The 4 byte header is constructed to both provide framing and to not look line 'n - Byte 2: MSB of protobuf length - Byte 3: LSB of protobuf length -The receiver will validate length and if >512 it will assume the packet is corrupted and return to looking for START1. While looking for START1 any other characters are printed as "debug output". For small example implementation of this reader see the meshtastic-python implementation. +The receiver will validate length and if >512 it will assume the packet is corrupted and return to looking for START1. While looking for START1 any other characters are printed as "debug output". For small example implementation of this reader see the python implementation. ## MeshBluetoothService (the BLE API) diff --git a/docusaurus.config.js b/docusaurus.config.js index 2674a11d..a373fc44 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -15,6 +15,11 @@ const config = { organizationName: 'meshtastic', projectName: 'meshtastic', themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ { + announcementBar: { + id: '2_0', + content: + '🎉 Meshtastic 2.0 Has Now Launched! Check it Out Here 🎉', + }, colorMode: { respectPrefersColorScheme: true, }, diff --git a/package.json b/package.json index c157d134..d93383a8 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@meshtastic/eslint-config": "^1.0.8", "@tailwindcss/typography": "^0.5.7", "@tsconfig/docusaurus": "^1.0.6", - "@types/node": "^18.11.8", + "@types/node": "^18.11.9", "@types/react": "^18.0.24", "@types/react-dom": "^18.0.8", "prettier": "^2.7.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb3c290c..1b78c59e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ specifiers: '@meshtastic/eslint-config': ^1.0.8 '@tailwindcss/typography': ^0.5.7 '@tsconfig/docusaurus': ^1.0.6 - '@types/node': ^18.11.8 + '@types/node': ^18.11.9 '@types/react': ^18.0.24 '@types/react-dom': ^18.0.8 autoprefixer: ^10.4.13 @@ -58,7 +58,7 @@ devDependencies: '@meshtastic/eslint-config': 1.0.8 '@tailwindcss/typography': 0.5.7_tailwindcss@3.2.1 '@tsconfig/docusaurus': 1.0.6 - '@types/node': 18.11.8 + '@types/node': 18.11.9 '@types/react': 18.0.24 '@types/react-dom': 18.0.8 prettier: 2.7.1 @@ -2929,26 +2929,26 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: false /@types/bonjour/3.5.10: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: false /@types/connect-history-api-fallback/1.3.5: resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} dependencies: '@types/express-serve-static-core': 4.17.28 - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: false /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: false /@types/eslint-scope/3.7.3: @@ -2969,7 +2969,7 @@ packages: /@types/express-serve-static-core/4.17.28: resolution: {integrity: sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 dev: false @@ -2999,7 +2999,7 @@ packages: /@types/http-proxy/1.17.8: resolution: {integrity: sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: false /@types/json-schema/7.0.11: @@ -3012,7 +3012,7 @@ packages: /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: false /@types/mdast/3.0.10: @@ -3029,8 +3029,8 @@ packages: resolution: {integrity: sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==} dev: false - /@types/node/18.11.8: - resolution: {integrity: sha512-uGwPWlE0Hj972KkHtCDVwZ8O39GmyjfMane1Z3GUBGGnkZ2USDq7SxLpVIiIHpweY9DS0QTDH0Nw7RNBsAAZ5A==} + /@types/node/18.11.9: + resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} /@types/parse-json/4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} @@ -3087,7 +3087,7 @@ packages: /@types/responselike/1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: false /@types/retry/0.12.1: @@ -3097,7 +3097,7 @@ packages: /@types/sax/1.2.4: resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: false /@types/scheduler/0.16.2: @@ -3113,13 +3113,13 @@ packages: resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==} dependencies: '@types/mime': 1.3.2 - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: false /@types/sockjs/0.3.33: resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: false /@types/unist/2.0.6: @@ -3129,7 +3129,7 @@ packages: /@types/ws/8.5.3: resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: false /@typescript-eslint/eslint-plugin/5.22.0_4bcn5aatkhkr3q2dzj4ewaqjbe: @@ -5050,7 +5050,7 @@ packages: resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} engines: {node: '>= 0.8'} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 require-like: 0.1.2 dev: false @@ -6235,7 +6235,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 merge-stream: 2.0.0 supports-color: 8.1.1 diff --git a/src/pages/2.0/index.tsx b/src/pages/2.0/index.tsx index fe1249b5..345981d1 100644 --- a/src/pages/2.0/index.tsx +++ b/src/pages/2.0/index.tsx @@ -10,9 +10,9 @@ import Layout from '@theme/Layout'; const TwoPointZero = (): JSX.Element => { const stats = [ - { label: 'Active Nodes', value: 'xx+' }, + { label: 'Active Nodes', value: 'A Lot!' }, { label: 'Community Members', value: '4000+' }, - { label: 'Total Commits', value: '4800+' }, + { label: 'Firmware Commits', value: '4900+' }, { label: 'Community Donations', value: '$5700+' }, ]; const logos = [ @@ -87,12 +87,12 @@ const TwoPointZero = (): JSX.Element => { giveaways, so jump in and win some prizes.

- + Find Out More + {

- Tincidunt integer commodo, cursus etiam aliquam - neque, et. Consectetur pretium in volutpat, diam. - Montes, magna cursus nulla feugiat dignissim id - lobortis amet. + Meshtastic is the neatest open source I've ever + seen!

- Quote author + Elvis Presley

@@ -254,34 +252,64 @@ const TwoPointZero = (): JSX.Element => { -
+
{/* Content area */}

A brief overview of all the changes and improvements

-

- Sagittis scelerisque nulla cursus in enim consectetur - quam. Dictum urna sed consectetur neque tristique - pellentesque. Blandit amet, sed aenean erat arcu morbi. - Cursus faucibus nunc nisl netus morbi vel porttitor vitae - ut. Amet vitae fames senectus vitae. -

+

Monumental stuff!

- Sollicitudin tristique eros erat odio sed vitae, consequat - turpis elementum. Lorem nibh vel, eget pretium arcu vitae. - Eros eu viverra donec ut volutpat donec laoreet quam urna. - Sollicitudin tristique eros erat odio sed vitae, consequat - turpis elementum. Lorem nibh vel, eget pretium arcu vitae. - Eros eu viverra donec ut volutpat donec laoreet quam urna. +

  • + Completely new LoRA band plan with faster messaging +
  • +
  • Smarter and more reliable mesh routing
  • +
  • + Unlimited nodes* (80 Connected at a time, oldest node + will be removed when a new node joins the mesh) +
  • +
  • + New messaging additions: waypoints, reactions + (tap-backs), and telemetry +
  • +
  • + Improvements for Canned Messages module and CardKB + messaging for stand alone communicator devices +
  • +
  • Sensor, Screen, and Input device auto-detection
  • +
  • New devices supported (6 new targets!)
  • +
  • + Added over the air bluetooth updates for NRF devices + (RAK-4631) +
  • +
  • Ethernet support via RAK-13800
  • +
  • + Compass improvements for larger screens and + customizations +
  • +

    Nerd stuff!

    - Rhoncus nisl, libero egestas diam fermentum dui. At quis - tincidunt vel ultricies. Vulputate aliquet velit faucibus - semper. Pellentesque in venenatis vestibulum consectetur - nibh id. In id ut tempus egestas. Enim sit aliquam nec, a. - Morbi enim fermentum lacus in. Viverra. +

  • New filesystem for ESP32 (LittleFS)
  • +
  • + Upgraded Arduino framework for both NRF52 and ESP32 +
  • +
  • New bluetooth stack for ESP32 (NimBLE)
  • +
  • Unified GPS stack now using NMEA
  • +
  • Support for more I2C sensors
  • +
  • Support for ATECCA608B Cryptographic Coprocessor
  • +
  • More Serial module I/O modes
  • +
  • JSON messages over MQTT
  • +
  • + Device codebase refactored and optimized in many areas +
  • +
  • + Completely restructured protobufs and configuration +
  • @@ -303,11 +331,6 @@ const TwoPointZero = (): JSX.Element => {
    ))} -
    - - Further reading... - -
    @@ -415,7 +438,7 @@ const TwoPointZero = (): JSX.Element => { diff --git a/src/pages/downloads/_components/FirmwareCard.tsx b/src/pages/downloads/_components/FirmwareCard.tsx index febe68af..6c82cb8c 100644 --- a/src/pages/downloads/_components/FirmwareCard.tsx +++ b/src/pages/downloads/_components/FirmwareCard.tsx @@ -14,7 +14,7 @@ export const FirmwareCard = ({ release, }: releaseCardProps): JSX.Element => { return ( -
    +
    { const { data, error } = useSWR( @@ -28,87 +33,112 @@ const Firmware = (): JSX.Element => { title="Downloads" description="Downloads for the Meshtastic project" > -
    -
    - +
    +

    Flasher

    +
    +
    + +
    +
    +
    +

    Meshtastic Flasher

    +

    + Desktop application to flash fimware to your devices. +

    + + Download + + +
    +
    -
    - - pip, - ' follow ', - - these instructions - , - '.', - ]} - /> + {/* */} +

    Apps

    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +

    Apple

    + + App Store + + +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    -
    - -
      - - download the latest .apk - , - ' from Github', - ]} - /> - -
    -
    -
    - -
      + {/* */} +

      Firmware

      +
      +
      + +
      +
      {data && !error ? ( <> { description="Upcoming changes for testing. For those who want new features." release={alpha} /> -
      +

      Bleeding

      @@ -148,39 +178,9 @@ const Firmware = (): JSX.Element => { )} -
    - Once downloaded, follow the flashing instructions for{' '} - - ESP32 chipsets - - ,{' '} - - NRF52 chipsets - - , or the{' '} - - GUI instructions for Meshtastic Flasher - - . +
    -
    - - Google Play and the Google Play logo are trademarks of Google LLC. - -
    -
    +
    ); }; From 30dfe9f720bb39e790e59fff42ec7b58b37353ea Mon Sep 17 00:00:00 2001 From: Sacha Weatherstone Date: Tue, 1 Nov 2022 22:52:50 +1000 Subject: [PATCH 5/5] update llc in footer --- docusaurus.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index a373fc44..1c4ca954 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -69,7 +69,7 @@ const config = { ], }, footer: { - copyright: `Powered by ▲ Vercel | Meshtastic® is a registered trademark of Geeksville Industries LLC. | Legal Information.`, + copyright: `Powered by ▲ Vercel | Meshtastic® is a registered trademark of Meshtastic LLC. | Legal Information.`, }, algolia: { appId: 'IG2GQB8L3V',