From 3b9997e2aa293f0482c20ca48590fe117013ac54 Mon Sep 17 00:00:00 2001 From: apt105 <73254487+apt105@users.noreply.github.com> Date: Sat, 5 Jun 2021 01:14:02 +0100 Subject: [PATCH] update links and installation details --- README.md | 76 +----------------- website/docs/software/android/installation.md | 8 +- website/docs/software/device/device.md | 1 + website/docs/software/js/getting-started.md | 2 + website/docs/software/python/installation.md | 26 ++++++ website/static/img/amazon-fire-button.png | Bin 0 -> 33631 bytes 6 files changed, 36 insertions(+), 77 deletions(-) create mode 100644 website/static/img/amazon-fire-button.png diff --git a/README.md b/README.md index 65105895..6b559aa6 100644 --- a/README.md +++ b/README.md @@ -33,85 +33,11 @@ ## What is Meshtastic? - - - - -

Meshtastic® is a project that lets you use inexpensive GPS mesh radios as an extensible, super long battery life mesh GPS communicator. These radios are great for hiking, skiing, paragliding - essentially any hobby where you don't have reliable internet access. Each member of your private mesh can always see the location and distance of all other members and any text messages sent to your group chat.

The radios automatically create a mesh to forward packets as needed, so everyone in the group can receive messages from even the furthest member. The radios will optionally work with your phone, but no phone is required.

-
-## Getting started -###### Description, should mention: - -You will require atleast one of [these](https://github.com/meshtastic/meshtastic-device#supported-hardware) devices - -- Link to device compatability table on `meshtastic/meshtastic-device` -- Link to flashing instructions - -## Community - -###### Description, should mention: - -- Discussions tab: https://github.com/meshtastic/Meshtastic/discussions -- Forum -- Slack -- unofficial/international communities -- Maybe have an `awesome-meshtastic` page, have all of the apps and extensions ppl have made - -## Software - -###### Description - -#### Meshtastic App - - - - - -
-

-The official Meshtastic Android app, It provides messaging, channel configuration and a real time map. It also has inbuilt functionality for updating device firmware over Bluetooth -

-
- -#### Meshtastic Device - - - - - -
-

-The paramount Meshtastic project, the device firmware itself. Runs on supported hardware that allows the creation of mesh networks at any scale -

-
- -#### Meshtastic.js - - - - - -
-

-TypeScript library for interfacting with Meshtastic -

-
- -#### Meshtastic-python - - - - - -
-

-Description about product -

-
+

Please see our website for more information about Meshtastic

\ No newline at end of file diff --git a/website/docs/software/android/installation.md b/website/docs/software/android/installation.md index c910ffab..c70b1188 100644 --- a/website/docs/software/android/installation.md +++ b/website/docs/software/android/installation.md @@ -3,12 +3,16 @@ id: android-installation title: Android application installation sidebar_label: Installation --- -Our Android application is available to download on Google Play. +~Our Android application is available to download on Google Play.~ Our Google Play listing has been removed by google due to a recent policy change by them with respect to the background location accesss (which our app needs). We've started the 'appeal' process, but for now you'll need to get the app from other places. -

Download at https://play.google.com/store/apps/details?id=com.geeksville.mesh

+The app is also available on the Amazon [Appstore](https://www.amazon.com/Geeksville-Industries-Meshtastic/dp/B08CY9394Q). You will need to install the Amazon Appstore onto your phone in order to install the Meshtastic application. + +

Download at https://play.google.com/store/apps/details?id=com.geeksville.mesh - Download at https://www.amazon.com/Geeksville-Industries-Meshtastic/dp/B08CY9394Q

The application may not be found if your phone/Android version are too old. The minimum Android version is 5.0 (Lollipop 2014, first BLE support). However Android 6, Marshmallow 2015, is recommended as the Bluetooth is more stable. +The app can also be sideloaded by downloading the .apk from the GitHub releases page. If you wish to view the code or contribute to development of the app, please visit the app's GitHub page. + On installing the Meshtastic app, load it and navigate to the settings page. The app will ask you to give it permissions to access your location. This is needed for any app to use bluetooth, as the app is then able to scan the local area for bluetooth devices and, in theory, could triangulate your location based the devices it sees. If you give location permissions "only while using the app", the app will only be able to use bluetooth while it is open and visible to the user. This means if the screen is locked, or you are using another app, Meshtastic will not be able to use bluetooth, and will not be able to receive any messages from the node. [![Messages page](/img/android/android-messages-sm.png)](/img/android/android-messages-sm.png) [![Nodes page](/img/android/android-nodes-sm.png)](/img/android/android-nodes.png) [![Channel page](/img/android/android-channel-sm.png)](/img/android/android-channel.png) [![Settings page](/img/android/android-settings-sm.png)](/img/android/android-settings.png) [![Debug page](/img/android/android-debug-sm.png)](/img/android/android-debug.png) diff --git a/website/docs/software/device/device.md b/website/docs/software/device/device.md index f58f03b3..97c1c410 100644 --- a/website/docs/software/device/device.md +++ b/website/docs/software/device/device.md @@ -8,6 +8,7 @@ The device firmware runs on the nodes to build the mesh for communication. Each 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 GibHut releases page, which also contains the release notes for each version. If you wish to view the code or contribute to development of the firmware, please visit the device code GitHub page. ### Buttons A number of devices support buttons that can be used to interact with the firmware. These buttons have a number of different functions: diff --git a/website/docs/software/js/getting-started.md b/website/docs/software/js/getting-started.md index 190a401c..6f01b702 100644 --- a/website/docs/software/js/getting-started.md +++ b/website/docs/software/js/getting-started.md @@ -12,6 +12,8 @@ Full API docummentation is avaliable at [js.meshtastic.org](https://js.meshtasti Meshtastic.js is a JavaScript library that provides an interface to Meshtastic devices. It can be used to build applications to interface with a Meshtastic network. Currently HTTP(S) and Bluetooth connections are supported. +If you wish to view the code or contribute to development of the library, please visit the JavaScript code GitHub page. + ## Connection methods ### HTTP(S) diff --git a/website/docs/software/python/installation.md b/website/docs/software/python/installation.md index 8b19c678..74fbad96 100644 --- a/website/docs/software/python/installation.md +++ b/website/docs/software/python/installation.md @@ -10,6 +10,8 @@ This is a python library for using Meshtastic devices. This small library (and e [Full documentation](https://meshtastic.github.io/Meshtastic-python) for the library, including examples, is available. +If you wish to view the code or contribute to development of the python library or the command line interface, please visit the Meshtastic python GitHub page. + Installation is easily done through the [Python package installer pip](https://pypi.org/project/meshtastic/) (note, you must use pip version 20 or later): @@ -119,5 +122,28 @@ Installation is easily done through the [Python package installer pip](https://p pip3 install --upgrade meshtastic ``` + + +* Install [Termux](https://f-droid.org/en/packages/com.termux/) from the F-Droid app store (Google play does not currently support the latest builds) +* Load Termux and update the package list + ``` + pkg update + ``` +* Upgrade the installed packages + ``` + pkg upgrade + ``` +* Install python + ``` + pkg install python + ``` +* Upgrade pip and installed meshtastic and its dependancies + ``` + pip install --upgrade pip pytap2 wheel mesthtastic + ``` + +:::note +Be aware that currently the Meshtastic CLI is not able to control the nodes over USB through termux, but you can control devices over wifi using the `--host x.x.x.x` option with the device IP address. However, only ESP32 devices can use wifi currently. +::: \ No newline at end of file diff --git a/website/static/img/amazon-fire-button.png b/website/static/img/amazon-fire-button.png new file mode 100644 index 0000000000000000000000000000000000000000..b581f7eed7a9e936f56017a661ed2ea608cc7db2 GIT binary patch literal 33631 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