diff --git a/website/docs/developers/android/build.md b/website/docs/developers/android/build.md new file mode 100644 index 00000000..eccf9df2 --- /dev/null +++ b/website/docs/developers/android/build.md @@ -0,0 +1,55 @@ +--- +id: build-app +title: Creating a build/development environment for the Android App +sidebar_label: Building Android App +--- + + +## Build instructions + +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 4.1.2 to build/debug (other versions might work but no promises) +* 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: + +``` + rm ./app/google-services.json + cp ./app/google-services-example.json ./app/google-services.json + rm ./app/src/main/res/values/mapbox-token.xml + cp ./app/special/mapbox-token.xml ./app/src/main/res/values/ + rm ./app/src/main/res/values/curfirmwareversion.xml + cp ./app/special/curfirmwareversion.xml ./app/src/main/res/values/ +``` + +* (unfortunately) you need to get a (free) mapbox developer token [here](https://docs.mapbox.com/android/maps/guides/install/) and put that token in your user gradle.properties. +``` +~/development/meshtastic/MeshUtil$ cat ~/.gradle/gradle.properties +MAPBOX_DOWNLOADS_TOKEN=sk.yourtokenherexxx +``` + +* 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 + +* analytics are included but can be disabled by the user on the settings screen + +* on dev devices + +```shell +adb shell setprop debug.firebase.analytics.app com.geeksville.mesh +adb shell setprop log.tag.FirebaseCrashlytics DEBUG +``` + +for verbose logging: +```shell +adb shell setprop log.tag.FA VERBOSE +``` + +## Publishing to google play + +(Only supported if you are a core developer that needs to do releases) \ No newline at end of file diff --git a/website/docs/developers/android/mapbox.md b/website/docs/developers/android/mapbox.md new file mode 100644 index 00000000..66ad6b87 --- /dev/null +++ b/website/docs/developers/android/mapbox.md @@ -0,0 +1,29 @@ +--- +id: mapbox +title: Setting up Mapbox with Meshtastic +sidebar_label: Mapbox Setup +--- + +If you build Meshtastic as per the standard instructions then you may notice that the maps are not shown. This is because there is an extra step to setting up MapBox (an external service) with Meshtastic. + +## Getting MapBox to work with your local copy of Meshtastic + +In order to compile a new version of Meshtastic that can use MapBox you will need to provide a token associated with your MapBox user account. + +This is fairly simple to do. + +* Create an account at MapBox +* Copy the public token associated with that account to the clipboard +* Paste that into the file "…/src/main/res/values/mapbox-token.xml" + +## Examples of what can be achieved with MapBox + +MapBox is an external service with many features that can be included in the Meshtastic app. + +The following link shows many of the available features: +https://docs.mapbox.com/mapbox-gl-js/examples/ + +## Basics of using MapBox with Android Apps + +MapBox provide a simple example of how to display a basic map in an Android App: +https://docs.mapbox.com/android/maps/overview/#add-a-map diff --git a/website/docs/developers/build.md b/website/docs/developers/build.md new file mode 100644 index 00000000..a336aad6 --- /dev/null +++ b/website/docs/developers/build.md @@ -0,0 +1,25 @@ +--- +id: build-env +title: Creating a build/development environment +sidebar_label: Building Meshtastic +--- + +This project uses the simple PlatformIO build system. PlatformIO is an extension to Microsoft VSCode. Workflows from building from the GUI or from the commandline are listed below. + +## GUI + +1. Install [Python](https://www.python.org/downloads/). +2. Install [Git](https://git-scm.com/downloads) or [GitHub Desktop](https://desktop.github.com/) +3. Install [Microsoft Visual Studio Code](https://code.visualstudio.com/) +4. Install [PlatformIO](https://platformio.org/platformio-ide). +5. Click the PlatformIO icon on the side bar. + ![platformio icon](https://user-images.githubusercontent.com/47490997/89482668-77c7ea00-d7ee-11ea-8785-5faf8ff99800.png) +6. Under `Quick Access, Miscellaneous, Clone Git Project` enter the URL of the Meshtastic repo found [here](https://github.com/meshtastic/Meshtastic-device). + ![image](https://user-images.githubusercontent.com/47490997/89483047-4c91ca80-d7ef-11ea-91f4-1d53d4e8acd9.png) +7. Select a file location to save the repo. +8. Once loaded, open the `platformio.ini` file. +9. At the line `default_envs` you can change it to the board type you are building for ie. `tlora-v2, tlora-v1, tlora-v2-1-1.6, tbeam, heltec, tbeam0.7` (boards are listed further down in the file). +10. The hardware can be configured for different countries by adding a definition to the `configuration.h` file. `#define HW_VERSION_US` or `HW_VERSION_EU433, HW_VERSION_EU865, HW_VERSION_CN, HW_VERSION_JP`. Other country settings can be found in `MeshRadio.h`. The default is `HW_VERSION_US`. +11. Click the PlatformIO icon on the side bar. Under `Project Tasks` you can now build or upload. + +Note - To get a clean build you may have to delete the auto-generated file `./.vscode/c_cpp_properties.json`, close and re-open Visual Studio and WAIT until the file is auto-generated before compiling again. diff --git a/website/docs/developers/codespaces.md b/website/docs/developers/codespaces.md new file mode 100644 index 00000000..43135699 --- /dev/null +++ b/website/docs/developers/codespaces.md @@ -0,0 +1,27 @@ +--- +id: codespaces +title: Creating a build/development environment online with Codespaces +sidebar_label: Building with Codespaces +--- + +GitHub Codespaces is a new feature to make is really easy for anyone to build device code (or other projects like out backend server) from scratch. This builds on our existing continuous integration test builds and uses either a bare browser or (optionally) Visual Studio Code. It is a great way for anyone who has problems installing and building locally to get a gauranteed good build environment in the cloud that works and feels just loike you are developing on your local machine. + +GitHub Codespaces is still in active beta and you need to [sign up](https://github.com/features/codespaces) to a waiting list to get access to it. + +![Request access to Codespaces](/img/codespaces/codespaces-request-sm.png) + +GitHub will then ask you about what languages you code in and what editors you use. + +![Codespaces language and editor survey](/img/codespaces/codespaces-languages-sm.png) + +After that you will be added to the waiting list and will be contacted when you can start using it. + +![On the Codespaces waiting list](/img/codespaces/codespaces-waitinglist-sm.png) + +Once you have been granted access, go to the project you wish to develop (for example the [Meshtastic device code](https://github.com/meshtastic/Meshtastic-device) or the [backend server code](https://github.com/meshtastic/meshtastic-backend)) and click the button in the upper right that says "Fork". It will ask you to confirm, then GitHub will generate your "fork" of the master code. + +Browse to your fork of the code and in the upper right of the window click on the "Code" dropdown button, then click "Open with Codespaces" + +Github will then create a new virtual machine for you. This will take a few minutes the first time it is created as it installs Platformio and other dependancies. + +You can now edit code and click to build and run just like you are on your own machine. \ No newline at end of file diff --git a/website/docs/developers/device/device-api.md b/website/docs/developers/device/device-api.md index 515c37c4..3e4a3980 100644 --- a/website/docs/developers/device/device-api.md +++ b/website/docs/developers/device/device-api.md @@ -4,7 +4,7 @@ title: Bluetooth/serial/TCP protocol API sidebar_label: Device API --- -(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 [on-device](plugin-api.md) 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 [plugin API](plugin-api.md) documentation instead. The Device API is design 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. diff --git a/website/docs/hardware/antenna/testing.md b/website/docs/hardware/antenna/testing.md index f4d8abb0..585dbcfb 100644 --- a/website/docs/hardware/antenna/testing.md +++ b/website/docs/hardware/antenna/testing.md @@ -22,7 +22,7 @@ On the topic of testing - performing your own testing and providing feedback is ## Signal strength testing -Real world testing is also discussed by Andreas Speiss (the 'guy with the Swiss accent') in his [tutorial](https://www.youtube.com/watch?v=J3PBL9oLPX8). He has written [code](https://github.com/SensorsIot/Antenna-Tester) for testing antennas using two Lora32 V1 boards to compare how different antennas behave. +Real world testing is also discussed by Andreas Speiss (the 'guy with the Swiss accent') in his [tutorial](https://www.youtube.com/watch?v=J3PBL9oLPX8). He has written [code](https://github.com/SensorsIot/Antenna-Tester) for testing antennas using two Lora32 V1 boards to compare how different antennas behave. Lilygo have also made code available for testing the rssi on the [LORA32](https://github.com/LilyGO/TTGO-LORA32) [boards](https://github.com/Xinyuan-LilyGO/TTGO-LoRa-Series) and the [T-Beam](https://github.com/LilyGO/TTGO-T-Beam). Here are a [couple](https://medium.com/home-wireless/testing-lora-antennas-at-915mhz-6d6b41ac8f1d) of [excellent](https://medium.com/home-wireless/testing-and-reviewing-lora-antennas-5b37dfa594a3) aerial comparisons. Their utility goes beyond the specific aerials tested, giving insight into: - Aerial types & their characteristics, diff --git a/website/docs/hardware/rak4631.md b/website/docs/hardware/rak4631.md index b629885b..a24f357f 100644 --- a/website/docs/hardware/rak4631.md +++ b/website/docs/hardware/rak4631.md @@ -25,5 +25,6 @@ There is currently fledgling support for the WisBlock RAK4631 module. The WisBlo * Firmware file: `firmware-rak4631-1.x.x.uf2` * [Purchase Link](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/Overview) +* [Installation instructions](https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/Quickstart/#rak4631-lora-mesh-via-meshtastic) RAK4631 Core Module \ No newline at end of file diff --git a/website/sidebars.js b/website/sidebars.js index 182e9605..bd3e4095 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -147,6 +147,8 @@ module.exports = { Protobufs: ["developers/protobufs/api"], }, "developers/api", + "developers/build-env", + "developers/codespaces", { Device: [ "developers/device/device-api", @@ -159,6 +161,12 @@ module.exports = { "developers/device/documents", ], }, + { + "Android App": [ + "developers/android/build-app", + "developers/android/mapbox", + ], + }, ], Legal: [ "legal/overview", diff --git a/website/static/img/codespaces/codespaces-languages-sm.png b/website/static/img/codespaces/codespaces-languages-sm.png new file mode 100644 index 00000000..20f602e9 Binary files /dev/null and b/website/static/img/codespaces/codespaces-languages-sm.png differ diff --git a/website/static/img/codespaces/codespaces-languages.png b/website/static/img/codespaces/codespaces-languages.png new file mode 100644 index 00000000..798965b6 Binary files /dev/null and b/website/static/img/codespaces/codespaces-languages.png differ diff --git a/website/static/img/codespaces/codespaces-request-sm.png b/website/static/img/codespaces/codespaces-request-sm.png new file mode 100644 index 00000000..5e1d6670 Binary files /dev/null and b/website/static/img/codespaces/codespaces-request-sm.png differ diff --git a/website/static/img/codespaces/codespaces-request.png b/website/static/img/codespaces/codespaces-request.png new file mode 100644 index 00000000..ea0a3779 Binary files /dev/null and b/website/static/img/codespaces/codespaces-request.png differ diff --git a/website/static/img/codespaces/codespaces-waitinglist-sm.png b/website/static/img/codespaces/codespaces-waitinglist-sm.png new file mode 100644 index 00000000..b7599cf4 Binary files /dev/null and b/website/static/img/codespaces/codespaces-waitinglist-sm.png differ diff --git a/website/static/img/codespaces/codespaces-waitinglist.png b/website/static/img/codespaces/codespaces-waitinglist.png new file mode 100644 index 00000000..0268f602 Binary files /dev/null and b/website/static/img/codespaces/codespaces-waitinglist.png differ