Website and documentation source for the Meshtastic project.
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 project website and documentation
Home Page: https://meshtastic.org
License: GNU General Public License v3.0
Website and documentation source for the Meshtastic project.
For complete instructions on setting up your development environment and for building and running the project locally, please refer to our Local Development Guide.
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
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/
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.
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.
The build environment setup steps detailed here : https://meshtastic.org/docs/developers/build-env lists python3, g++ and zip as required packages to install. That list should also include python3-dev.
Without python3-dev the installation of platformio fails with a "fatal error: Python.h: No such file or directory"
The Python CLI documentation points to this page to set preference fields, however the region codes in the table do not match the values accepted by the Python CLI.
Update this table to reflect the acceptable values when setting the LoRa region in the Python CLI.
Hi
It would be nice to have the Node-Red flow as code to copy in the MQTT docs.
Thank you
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.
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.
In-app option for setting GPS position and altitude format for all devices on the mesh on the user list.
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.
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
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.
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.
I did see it can be done from the command-line tool, however the ability to set a custom key via the UI would be great.
When using the copy button in code blocks while using Safari as my browser, nothing gets copied. Works fine using Chrome/Edge though.
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.
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!
Describe what section of the docs is outdated or otherwise in need of change
Link which point to Vercel are 404.
E.g., https://meshtastic-python.vercel.app/meshtastic/index.html
Suggested Changes
Check the Vercel setup or update the links to the current location.
Additional Notes
Add any other context here.
Just adding this as a easy PR for someone to tackle if I don't beat them to it.
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?
Is there any plans to support m5stack esp32 paper + LoRaWAN M5Stack 868 MHz (ASR6501)?
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.
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?
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.
The 100$ Linux tablet PineTab will come with an optional LoRA adapter:
https://www.pine64.org/2020/05/15/may-update-pinetab-pre-orders-pinephone-qi-charging-more/
Might be a nice all in one device, although porting the Android app to qt Linux might not be so strait forward.
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.
Want to add CardKB to t-beam
empty
from https://meshtastic.org/docs/settings/config
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:
The current purchase link leads to the store page of the SoftRF version. It should be updated with the link to the page of the Meshtastic version: https://m.aliexpress.com/item/1005003026107533.html
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
Is there any plans to support Atom DTU LoRaWAN 868 МГц (ASR6501)?
https://meshtastic.org/docs/getting-started/flashing-firmware says, "If you have already downloaded/installed the MacOS WCH-IC CH340 ("CH341SER_MAC") drivers via the CH34x_Install_V1.5.pkg, you will have to Uninstall the kernel extension" and the command it gives issudo -rf /Library/Extensions/usbserial.kext
, but there's supposed to be an rm
in there.
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.
--upgrade in /docs/software/community/community-pygui
Windows
python -m pip install --upgraade meshtastic-pygui
We should offer an PDF version of the documentation which users can download and view offline. Here are some requirements:
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?
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/
Theres still some pages with good info on @ https://github.com/meshtastic/Meshtastic-device/wiki
Once it's done, I can remove it
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.
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.
needs to be removed from the docs
Ethernet has been added
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.
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.
There are other sources in the meshtastic project universe that should be displayed more prominently in the docs so they can be easily found:
Suggestion:
Thoughts?
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
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):
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?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.