GithubHelp home page GithubHelp logo

meshtastic / meshtastic Goto Github PK

View Code? Open in Web Editor NEW
572.0 22.0 359.0 258.35 MB

Meshtastic project website and documentation

Home Page: https://meshtastic.org

License: GNU General Public License v3.0

JavaScript 11.48% CSS 13.69% TypeScript 74.83%
meshtastic

meshtastic's Introduction

Meshtastic

CI CLA assistant Fiscal Contributors Vercel

Overview

Website and documentation source for the Meshtastic project.

Stats

Alt

Development & Building

For complete instructions on setting up your development environment and for building and running the project locally, please refer to our Local Development Guide.

meshtastic's People

Contributors

andrekir avatar apt105 avatar arduionogp avatar caveman99 avatar charminultra avatar cordelster avatar crypto-smoke avatar garthvh avatar geeksville avatar guvwaf avatar harukitoreda avatar ianmcorvidae avatar james-coder avatar jfirwin avatar jopdyke avatar krazykerbalnaut avatar linagee avatar mc-hamster avatar mkinney avatar nestpebble avatar osmanovv avatar pdxlocations avatar rcarteraz avatar ricinnewmexico avatar sachaw avatar sigmahour avatar tavdog avatar tekstrand avatar thebentern avatar tomuk5 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meshtastic's Issues

Add social previews

Add social preview images for the website & all repo's, would be good to have a uniform template in the design repo for projects to use & include in the branding guidelines

Codespaces is out of beta

https://meshtastic.org/docs/developers/codespaces
This page says Codespaces is in beta and you should join the beta.

GitHub's page says it is now generally available, but you need to have Team or Enterprise. ($$$) https://github.blog/changelog/2021-08-11-codespaces-is-generally-available-for-team-and-enterprise/

https://github.com/pricing

Not sure how the Docs page should change for this. Encourage people to pay $4/mo? I've never used codespaces, so I don't know if it's worth that.

Feature idea: Compose messages without a paired phone

Say your phone battery (1-2 days) is dead, but your Meshtastic battery (7-8 days) is still going strong. It would be nice to have some minimal message-composition functionality, even if it's slow and awkward.

Several ideas come to mind:

Alphabet on screen, like "high-score-entry" on an arcade game, that you can navigate with a few buttons. Slowest, but probably simplest to implement.

Morse-code with a single button, for folks who know the code. There's plenty of existing code that does this already, but a lot of it sucks, and I don't know how much work it would be to find a good one and integrate it.

A menu of canned phrases with optional blanks to fill in, or words to flip like "did/didn't". There exist various brevity codes that may provide inspiration, or make up our own. I'm picturing categories like "location and people", "status/health", "weather/conditions", "need/find", "radio technical". So you navigate into the "location and people" category and there are phrases like "I've [not] reached my destination", "Please [don't] come [to my lat/lon]", "What is your ETA to [where you're going|here]?", "I'm here with ___", "Where would I find ___?", and so on. Pick one and you can then modify it before sending.

GPS display enhancements

  1. It would be nice to have an option to change the GPS elevation format similar to the GPS location format.
    Options like Feet MSL, Meters MSL, Feet HAE, Meters HAE, etc.

  2. When the device has no on-board GPS (i.e. Heltec LoRa32), it does not show it's own position on the on-device display's GPS page, only "NO GPS UNIT". Recommend, when the unit has no on-board GPS, but is getting valid location data from the paired phone, have the location display on the device's display.

  3. In-app option for setting GPS position and altitude format for all devices on the mesh on the user list.

Public key based authentication and addressing

To enable "bullet-proof" privacy, it would be good to provide an option of using assymetric cryptography both for protecting the communication and addressing.
The idea is that the fingerprint of the public key is used as the address of the device. Nobody can impersonate another person, because not having the matching private key, he or she won't be able to decrypt the message and negotiate the symmetric AES key used for further communication.
I have proposed a similar solution for WiFi mesh networks 8 years ago - https://groups.google.com/forum/#!msg/comp.os.linux.networking/4Cu_k2lYCSQ/WzlZ8BBHvSQJ , but never had time and/or knowledge sufficient to implement it.
If the described idea is a nonsense, please disregard my proposal.

Update docs to explain the need to chain commands

Now that all of the config sections and modules reboot when they are saved the CLI documentation needs to be updated to recommend chaining commands together by module.

There are also some edge cases that need documentation, any of the fixed position values (alt, lat, long) will reboot because they also save the fixed_position value in postion.config so they need to be chained together as well

Link to flashing instructions from Hardware pages?

I just got a T-Echo after using a T-Beam for several months and it took me a long time to figure out that the flashing instructions are completely different. I spent some time trying to get esptool to work before diving into the forums to find an answer.

Coming back to the docs, I see that there are flashing instructions for nRF52 devices, but I would have found them faster if there had been a link to them from the hardware page for the T-Echo.

I'd be happy to send a PR for the change, just wanted to check first if there was any objection.

Feature Request: Add simple LoRa devices to network

Im not sure if this is the right place for it, but something I would really love is to be able to have some devices on the Meshtastic network use this: https://pine64.com/product/pinephone-pinephone-pro-pindio-lora-add-on-case/

Basically, it is a LoRa chip integrated into the Pinephone, which is a full Linux smartphone. Is there a way to enable this chip to talk on the Meshtastic network? Would this require a driver/firmware? As the Pine64 LoRa project picks up speed this may be a good device to enable support for.

3d printable enclosures list

I have suggestion concerning enclosures and anything 3d-printing related and how we can add these objects to our documentation. In order to do this, we need to create an official meshtastic thingiverse account. The purpose of this account will not be to upload new objects; instead, we will create "official" collections of enclosures that can be easily linked and added to the documentation.

Thingiverse has a REST API which we can use to dynamically update the enclosures list and add them to the documentation:

https://www.thingiverse.com/developers/rest-api-reference

A simple ajax GET call will suffice:

const thingiverse = require('thingiverse-js');
const token = 'xxx';

thingiverse('collections/123456/things', { token }).then(res => {
  console.log(res.body);
}).catch(err => {
  console.log(err);
  console.log(thingiverse.getError(err.response));
});

This will make the different enclosure variations easier to find. When new ones are created, a request can be posted in the #enclosures channel or a "sticky" post on the forum. That way, they can be added to the collection.

Some material inaccurate or missings steps

I've been running through the material and have used trial/error and played around with some of these commands to get them to work. There are many things that may be out of date as well. Is there anyone maintaining this site? If not, I'm unable to make pull requests for meshtastic.org. I'd like to be able to contribute if I can.

Let me know what I can do and I can make contributions to this as well :)

Thanks!

combine/collapse the plugins doc

We probably don't need two different sections:

snippets from sidebars.js

So, we probably don't need two sets of "plugin" docs.

        Plugins: [
          "software/plugins/plugins",
          "software/plugins/range-test-plugin",
          "software/plugins/ext-notif-plugin",
          "software/plugins/canned-message-plugin",
          "software/plugins/serial-plugin",
          "software/plugins/store-forward-plugin",
          "software/plugins/environment-plugin",
        ],

and

        Plugins: [
          "software/settings/environmental-measurement-plugin",
          "software/settings/external-notification-plugin",
          "software/settings/canned-message-plugin-settings",
          "software/settings/range-test-plugin",
          "software/settings/serial-plugin",
          "software/settings/store-and-forward-plugin",
          "software/settings/rotary-encoder-settings",

Perhaps we combine the these respective pages?

m5stack eps32 paper

Is there any plans to support m5stack esp32 paper + LoRaWAN M5Stack 868 MHz (ASR6501)?

Outdated hardware pages

Issue to bring docs into alignment with current hardware availability and instructions.

Anyone please feel free to add any clarity points or issues you have experienced and we can address them here.

Documentation Change Request

Section in need of change
Hardware

Suggested Changes
While hardware page is already very useful, there is no compare page can be found in the web to highlight differences. Maybe Meshtastic community could solve this issue, and help to decide which device to purchase.

Also, there can be a some Meshtastic oriented suggestions for the specific hardware. See example below.

Additional Notes
Example1: LillyGo TTGO v1.0 does not provide a battery level measurement, but you can add that externally by connecting GPIO35 to both GND and Battery input via same value (10K?) resistors. And mark this new feature in variants/tlora_v1/variant.h by adding line #define BATTERY_PIN 35

Example2: I personally discovered, that LillyGo TTGO v1.0 has a quite week charging circuit, but are other devices are any better in that?

Example3: External notification module has hints on which pin to use on specific devices.

Example4: different LoRa chips are utilized in the boards, but what differences can we expect?

Garmin IQ Support [Placeholder]

I'd really like to see a Garmin IQ App for this. For example, whist cycling, it would be ace to have a realtime idea of how far off everyone else in the group is, especially on long, remote climbs, and not having to broadcast this to the planet. I can imagine having similar information for fell-runners and other long-distance events.
Having a stable and published Bluetooth API for the device would be core to this (partially addressed in #1), but the on-boarding would have to be a different flow as data entry on Garmin devices is pretty limited (potentially integrated into an existing App?).
If anyone else is interested in this, or has experience with the Garmin IQ platform, then I'm welcome to help and comments.

iOS App Does Not Always Notify on New Message

Using an ESP32 LoRa module with 1.3.39 alpha on it and the latest iOS app, when the phone screen is off and a message is received, it does appear on the screen on the ESP32, however it does not always appear in the app. Device section still shows device is connected (via Bluetooth). Closing and restarting the iOS app does then show the last message.

Privacy policy review

Objective: review our privacy policy to comply with Play Store requirements.

public link: https://meshtastic.org/docs/legal/privacy

changes are contributed to branch: https://github.com/meshtastic/Meshtastic/tree/privacy

Feedback appreciated.


Below is a compliance checklist for privacy policies. Your privacy policy must:

  • 1) Reference location data and your app’s use and handling of location data
  • 2) Clearly label that the page is a privacy policy, for example, listed as "privacy policy" in the title or have “privacy” in the URL and body of the page
  • 3) Be readable in a standard browser without any plug-ins or special handlers (for example, no PDFs, no uncommon MIME types)
  • 4) Be available on an active, visible URL
  • 5) Be non-editable
  • 6) Refer to your app by name
  • 7) Be linked on your app's Store listing page and/or within your app
  • 8) Have a URL that links to a single governing privacy policy in your website and/or Play Store listing rather than one that points to multiple privacy policies

TODO:

  • remove "Edit this page" from the link. Possible?
  • Review "The search engine for this website is provided by Algolia, please see their privacy policy for details of what information they collect."

Extra:

  • add "developer information and a privacy point of contact or a mechanism to submit inquiries" like [email protected]?

Channel Platform availability information is incorrect

Limited channel details can be saved on android and QR code scanning is available

Channel settings are only available on Apple platforms by scanning QR codes

CLI has complete channel editing

WebUI has completed channel settings

Linux application

This is a feature request to get a linux application with the same functionality of the android one.

Why do i want this? I am no fan of smartphones or apps on them per se.

PDF Handbook Generator

Synopisis

We should offer an PDF version of the documentation which users can download and view offline. Here are some requirements:

  1. The PDF should be based on the status of the source files of the current documentation
  2. A new release of the documentation should coincide with a newly generated PDF
  3. Generating a document should be based on some sort of Github action trigger
  4. The document artifacts should in turn be made available for download to the documentation website: https://meshtastic.org
  5. The document should have a cover sheet complete with current version number and if possible a table of contents

Documentation can be successfully generated with the following console commands. See Docusaurus Prince PDF:

npx docusaurus-prince-pdf -u https://meshtastic.org/docs/software --output meshtastic-docs.pdf

I was thinking the easiest way of doing this would be to put all the build tools into a docker image. This way, all the project dependencies will be encapsulated in the container and can be executed in any environment. In the container, the project would be built, spun up, then an internal process in the container could build and generate the document with Docusaurus Prince PDF.

I'm a noob with GitHub Actions, but have a lot of experience in configuring GitLab CI Pipelines. Is is possible to start a docker container within GitHub or does this have to happen on an external server?

Add Pinephone LoRa device to Meshtastic

Resubmitting as more specific issue:

I would really love to be able to use the Meshtastic network with this: https://pine64.com/product/pinephone-pinephone-pro-pindio-lora-add-on-case/

Basically, it is a LoRa chip integrated into the Pinephone, which is a full Linux smartphone. Is there a way to enable this chip to talk on the Meshtastic network? Would this require a driver/firmware? As the Pine64 LoRa project picks up speed this may be a good device to enable support for.

Info on this chip and driver progress:

https://github.com/lupyuen/pinephone-lora
https://codingfield.com/blog/2021-11/a-driver-for-the-pinephone-lora-backplate/

Firmware 1.2.59. Oled screen becomes unresponsive.

Please - if you just have a question, post in our forum instead. Please reserve this system for requesting changes to the Meshtastic documentation.

Describe what section of the docs is outdated or otherwise in need of change
Be as clear and concise as possible. Provide a URL or GitHub path to the doc you are referencing.

Suggested Changes
What specifically in that documentation area needs to be changed / removed / added?
If possible provide replacement text when requesting changes or new text to fill in missing documentation.

Additional Notes
Add any other context here.

Hey guys I made a post on the discourse a moment ago
( https://meshtastic.discourse.group/t/oled-screen-not-working-properly-fw-1-2-59/5662 )

The screen on my lilygo t beam does not function for more than a few mins after power up. Have to remove battery and power back on for screen to work again… for only a few mins. If I dont remove battery the board will power up and power down but screen will remain off. Sometimes screen becomes jumbled with letter/numbers and is unresponsive. Sometimes screen goes blank and is unresponsive. Sometimes the screen just freezes and doesnt ever dim and is unresponsive. I think its a problem with the screen sleep/ wake in the firmware. I turned on the setting “Is_always_on” via android app and turned off device sleep. Now the screen stays on but still freezes or becomes jumbled and is unresponsive after a few mins, until battery removal and repower. I saw one other post mentioning same issue on same FW.

Documentation Change Request - Add Donation Page

Describe what section of the docs is outdated or otherwise in need of change

We need to add a donate page. Donations are currently mentioned nowhere on the site.

Suggested Changes

I propose it be a top level page (meshtastic.org/donate) that explains our relationship with the Open Collective. They have widgets/buttons available here.

We should also mention sponsoring on GitHub will show up within open collective. Make sure users are able to donate both ways.

Making this an issue because I'm on mobile and figured this might be an easy issue to close. If no one beats me to it I'll take care of this next week.

Document all button click behavior

Not sure if we go for unified page or section in an existing area, or if we make this hardware specific but we need to document what all of the user button click behaviors do. The problem is that specific devices like the T-Beam and T-Echo have different sets of additional buttons and button behaviors.

Docs unclear on encryption setup

I'm talking about https://meshtastic.org/docs/software/settings/channel

The docs are saying that the only possible values are 0-9, all of which are wildly insecure and based on the publically available AES key distributed in the source code.

Reading meshtastic-device source code, I've noticed that --set-ch psk is supposed to accept 128 and 256 bit AES keys, but I'm not sure in what format and could not find it in the documentation. Is it a 16/32 character hex string, or the baseXX-encoded string found in the channel links, or something else? I can create a PR to fix the documentation but I need to know what's correct first.

Community links

There are other sources in the meshtastic project universe that should be displayed more prominently in the docs so they can be easily found:

  1. YouTube Channel - https://www.youtube.com/meshtastic
  2. Discord server - https://discord.com/invite/UQJ5QuM7vq
  3. Forum - https://meshtastic.discourse.group
  4. Github - https://github.com/meshtastic

Suggestion:

  1. Add these links to the footer of the page so they are visible on every page.
  2. Add a "Community" page to the documentation which lists the links.

Thoughts?

Documentation Change Request - Broken link on LilyGo Lora page

Describe what section of the docs is outdated or otherwise in need of change

The LILYGO LORA page has a broken link (the warning about potentially hazardous boards)

Suggested Changes

As the linked page is no longer available I suggest using the Internet Archive one:
https://web.archive.org/web/20220613134559/https://www.thethingsnetwork.org/community/berlin/post/warning-attention-users-of-ttgo21-v16-boards-labeled-t3_v16-on-pcb-battery-exploded-and-got-on-fire

Make an iOS client

Hi @kellyp (cc @girtsf),

Kelly was kind enough to be interested in making the iOS client (woot!). So I just made some notes on how the bluetooth API works. These notes might also be handy for Girts' interest in making a protocol client across the serial port (or possibly instead make a python bluetooth client that uses the bluetooth API? people might really dig that):

https://github.com/meshtastic/Meshtastic-esp32/blob/master/docs/software/bluetooth-api.md#meshbluetoothservice

Bluetooth goes to sleep, despite android app sleep period settings

I am using the Heltec device, I have flashed meshtastic 1.2.45 on it and using the latest android APK for the app.
The devices seem to fall asleep (bluetooth disconnects) after a few minutes, despite putting going to Advanced Settings > and setting the device sleep period to a very large number.
Am I doing something wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.