mirror of
https://github.com/meshtastic/meshtastic.git
synced 2024-11-09 23:24:10 -08:00
Repo updates
This commit is contained in:
parent
e7c5aec912
commit
f23dd78a6b
7
.gitmodules
vendored
7
.gitmodules
vendored
|
@ -1,9 +1,6 @@
|
|||
[submodule "static/img/meshtastic-design"]
|
||||
path = static/img/meshtastic-design
|
||||
url = https://github.com/meshtastic/meshtastic-design/
|
||||
[submodule "protobufs"]
|
||||
path = protobufs
|
||||
url = https://github.com/meshtastic/meshtastic-protobufs/
|
||||
url = https://github.com/meshtastic/protobufs/
|
||||
[submodule "static/design"]
|
||||
path = static/design
|
||||
url = https://github.com/meshtastic/meshtastic-design/
|
||||
url = https://github.com/meshtastic/design/
|
||||
|
|
|
@ -61,7 +61,7 @@ The build system is modular. Adding a new board variant for an already supported
|
|||
|
||||
1. do all of the above until your hardware runs fine
|
||||
2. [Send in a proposal to add a new board](https://github.com/meshtastic/firmware/issues/new?assignees=&labels=enhancement%2Ctriage&template=New+Board.yml&title=%5BBoard%5D%3A+)
|
||||
3. if approved, go to (https://github.com/meshtastic/Meshtastic-protobufs) and send a Pull Request for the mesh.proto file, adding your board to the HardwareModel enum.
|
||||
3. if approved, go to (https://github.com/meshtastic/protobufs) and send a Pull Request for the mesh.proto file, adding your board to the HardwareModel enum.
|
||||
4. change your define in `platformio.ini` from `PRIVATE_HW` to `YOUR_BOARD`. Adjust any macro guards in the code you need to support your board.
|
||||
5. add your board identifier to `configuration.h` on the firmware repo and send in that Pull Request too.
|
||||
6. wait for the Pulls to be merged back into Master.
|
||||
|
|
|
@ -52,7 +52,7 @@ Expected sequence for initial download:
|
|||
- Read a endConfig packet that indicates that the entire state you need has been sent
|
||||
- Read a series of MeshPackets until it returns empty to get any messages that arrived for this node while the phone was away
|
||||
|
||||
For definitions (and documentation) on FromRadio, ToRadio, MyNodeInfo, NodeInfo and User protocol buffers see [mesh.proto](https://github.com/meshtastic/Meshtastic-protobufs/blob/master/mesh.proto)
|
||||
For definitions (and documentation) on FromRadio, ToRadio, MyNodeInfo, NodeInfo and User protocol buffers see [mesh.proto](https://github.com/meshtastic/protobufs/blob/master/mesh.proto)
|
||||
|
||||
UUID for the service: 6ba1b218-15a8-461f-9fa8-5dcae273eafd
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ The routing protocol for Meshtastic is really quite simple (and suboptimal). If
|
|||
|
||||
### A Note About Protocol Buffers
|
||||
|
||||
Because we want our devices to work across various vendors and implementations, we use [Protocol Buffers](https://github.com/meshtastic/Meshtastic-protobufs) pervasively. For purposes of this document you mostly only
|
||||
Because we want our devices to work across various vendors and implementations, we use [Protocol Buffers](https://github.com/meshtastic/protobufs) pervasively. For purposes of this document you mostly only
|
||||
need to consider the MeshPacket and Subpacket message types.
|
||||
|
||||
### Layer 0: LoRa Radio
|
||||
|
@ -74,11 +74,11 @@ Given our use-case for the initial release, most of our protocol is built around
|
|||
|
||||
If any mesh node sees a packet with a HopLimit other than zero, it will decrement that HopLimit and attempt retransmission on behalf of the original sending node. In order to promote letting nodes that are further away flood the message, such that the message eventually reaches farther, the contention window (see Layer 1) for a flooding message depends on the Signal-to-Noise Ratio (SNR) of the received packet. The CW size is small for a low SNR, such that nodes that are further away are more likely to flood first and closer nodes that hear this will refrain from flooding.
|
||||
|
||||
### Example
|
||||
### Example
|
||||
|
||||
Below you see an example topology consisting of four nodes, where at a certain point node 0 wants to send a broadcast message.
|
||||
Due to limited coverage, it only reaches nodes 1 and 2. Since node 2 is farther away, its SNR is lower and therefore starts rebroadcasting earlier than 1.
|
||||
After node 0 received this rebroadcast, its message is acknowledged. Note that a message is already acknowledged once a rebroadcast from any Meshtastic node (whether or not it has the same encryption key) is received.
|
||||
Below you see an example topology consisting of four nodes, where at a certain point node 0 wants to send a broadcast message.
|
||||
Due to limited coverage, it only reaches nodes 1 and 2. Since node 2 is farther away, its SNR is lower and therefore starts rebroadcasting earlier than 1.
|
||||
After node 0 received this rebroadcast, its message is acknowledged. Note that a message is already acknowledged once a rebroadcast from any Meshtastic node (whether or not it has the same encryption key) is received.
|
||||
Since node 1 heard the rebroadcast by 2, it will not rebroadcast again. Node 3 heard the message for the first time and the HopLimit is not yet zero, so it starts a rebroadcast for potential other receivers.
|
||||
|
||||
![Mesh algorithm example](/img/SNR_based_flooding.png)
|
||||
![Mesh algorithm example](/img/SNR_based_flooding.png)
|
||||
|
|
|
@ -67,7 +67,7 @@ If you would like to proactively send messages (rather than just responding to t
|
|||
|
||||
For any new 'apps' that run on the device or via sister apps on phones/PCs they should pick and use a unique 'portnum' for their application.
|
||||
|
||||
If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to [the master list](https://github.com/meshtastic/Meshtastic-protobufs/blob/master/portnums.proto). PortNums should be assigned in the following range:
|
||||
If you are making a new app using meshtastic, please send in a pull request to add your 'portnum' to [the master list](https://github.com/meshtastic/protobufs/blob/master/portnums.proto). PortNums should be assigned in the following range:
|
||||
|
||||
- **0-63** Core Meshtastic use; do not use for third party apps
|
||||
- **64-127** Registered 3rd party apps. Send in a pull request that adds a new entry to portnums.proto to register your application
|
||||
|
|
|
@ -22,7 +22,7 @@ There are many technologies (and repositories) used in creating the Meshtastic e
|
|||
|
||||
## Protocol buffers
|
||||
|
||||
Most communication and interactions happen with protocol buffers. The [Meshtastic-protobufs](https://github.com/meshtastic/Meshtastic-protobufs) repo is where all of the protocol buffer changes happen. See the [Protobuf API Reference](/docs/developers/protobufs/api) for more details.
|
||||
Most communication and interactions happen with protocol buffers. The [Meshtastic Protobuf Definitions](https://github.com/meshtastic/protobufs) repo is where all of the protocol buffer changes happen. See the [Protobuf API Reference](/docs/developers/protobufs/api) for more details.
|
||||
|
||||
## Firmware
|
||||
|
||||
|
|
|
@ -11,12 +11,13 @@ Meshtastic® is a registered trademark of Geeksville Industries LLC. Meshtastic
|
|||
Meshtastic, and Meshtastic logo ("Meshtastic Logo"), either separately or in combination, are hereinafter referred to as "Meshtastic Trademarks" and are trademarks of the Geeksville Industries LLC. Except as provided in these guidelines, you may not use the Meshtastic Trademarks or any confusingly similar mark as a trademark for your product, or use the Meshtastic Trademarks in any other manner that might cause confusion in the marketplace, including but not limited to in advertising, on websites, or on software. In fact, the law obligates trademark owners to police their marks and prevent the use of confusingly similar names by third parties. If you have questions about this policy, please contact the Trademark Supervisor by enquiring at [trademark@meshtastic.org](mailto:trademark@meshtastic.org).
|
||||
|
||||
# Usage That Does Not Require Written Permission
|
||||
|
||||
Below are the guidelines for use of the Meshtastic Trademarks where, as long as you are in compliance with the guidelines, no advance written permission is necessary. In all cases, use is permitted only provided that:
|
||||
|
||||
* the use is not disparaging to Meshtastic or software distributed by Meshtastic.
|
||||
* the use does not imply sponsorship or endorsement by Meshtastic.
|
||||
* proper trademark symbols are used in connection with the Meshtastic Trademarks and the trademark attribution statement must appear as explained in Proper Trademark Use
|
||||
* the Logo Usage Guidelines are strictly observed
|
||||
- the use is not disparaging to Meshtastic or software distributed by Meshtastic.
|
||||
- the use does not imply sponsorship or endorsement by Meshtastic.
|
||||
- proper trademark symbols are used in connection with the Meshtastic Trademarks and the trademark attribution statement must appear as explained in Proper Trademark Use
|
||||
- the Logo Usage Guidelines are strictly observed
|
||||
|
||||
## Noncommercial and community web sites
|
||||
|
||||
|
@ -42,21 +43,21 @@ A copy of the use of the Meshtastic Trademarks is provided to the Trademark Supe
|
|||
|
||||
In the past, community members have inquired whether it is permissible to show support for Meshtastic by:
|
||||
|
||||
* displaying a link to the Meshtastic website using the Meshtastic Trademarks from a business web site
|
||||
* displaying the Meshtastic Trademarks as part of a business that utilizes Meshtastic software
|
||||
- displaying a link to the Meshtastic website using the Meshtastic Trademarks from a business web site
|
||||
- displaying the Meshtastic Trademarks as part of a business that utilizes Meshtastic software
|
||||
|
||||
The guidelines relating to such usage are set forth in this section.
|
||||
|
||||
It is permissible to use the Meshtastic Trademarks on business web sites, provided that:
|
||||
|
||||
* the web site has non-Meshtastic primary branding
|
||||
* the design logo hyperlinks to the Meshtastic website, [http://meshtastic.org/](http://meshtastic.org/)
|
||||
* the use does not imply sponsorship or endorsement by Meshtastic
|
||||
* the use of the Meshtastic Trademarks does not imply an association with nor any form of endorsement by Meshtastic
|
||||
* proper trademark symbols are used in connection with the Meshtastic Trademarks and the trademark attribution statement must appear as explained in Proper Trademark Use
|
||||
* the Logo Usage Guidelines are strictly observed
|
||||
* the site does not use visual styling that could be confusing to viewers or visitors as to whether the site is hosted by or on behalf of Meshtastic
|
||||
* A copy of the use of the Meshtastic Trademarks is provided to the Trademark Supervisor within seven (7) days of its initial use, for example by sending a URL or other copy of such use
|
||||
- the web site has non-Meshtastic primary branding
|
||||
- the design logo hyperlinks to the Meshtastic website, [http://meshtastic.org/](http://meshtastic.org/)
|
||||
- the use does not imply sponsorship or endorsement by Meshtastic
|
||||
- the use of the Meshtastic Trademarks does not imply an association with nor any form of endorsement by Meshtastic
|
||||
- proper trademark symbols are used in connection with the Meshtastic Trademarks and the trademark attribution statement must appear as explained in Proper Trademark Use
|
||||
- the Logo Usage Guidelines are strictly observed
|
||||
- the site does not use visual styling that could be confusing to viewers or visitors as to whether the site is hosted by or on behalf of Meshtastic
|
||||
- A copy of the use of the Meshtastic Trademarks is provided to the Trademark Supervisor within seven (7) days of its initial use, for example by sending a URL or other copy of such use
|
||||
|
||||
## Promotional events
|
||||
|
||||
|
@ -64,11 +65,11 @@ In the past, community members have inquired whether it is permissible to use th
|
|||
|
||||
It is permissible to use the Meshtastic Trademarks in such promotional events, provided that:
|
||||
|
||||
* the use does not imply sponsorship or endorsement by Meshtastic
|
||||
* the use of the Meshtastic Trademarks does not imply an association with or endorsement of the event of the goods distributed at such event
|
||||
* proper trademark symbols are used in connection with the Meshtastic Trademarks and the trademark attribution statement must appear as explained in Proper Trademark Use
|
||||
* the Logo Usage Guidelines are strictly observed
|
||||
* A copy of the use of the Meshtastic Trademarks is provided to the Trademark Supervisor within seven (7) days of its initial use, for example by sending a URL or other copy of such use
|
||||
- the use does not imply sponsorship or endorsement by Meshtastic
|
||||
- the use of the Meshtastic Trademarks does not imply an association with or endorsement of the event of the goods distributed at such event
|
||||
- proper trademark symbols are used in connection with the Meshtastic Trademarks and the trademark attribution statement must appear as explained in Proper Trademark Use
|
||||
- the Logo Usage Guidelines are strictly observed
|
||||
- A copy of the use of the Meshtastic Trademarks is provided to the Trademark Supervisor within seven (7) days of its initial use, for example by sending a URL or other copy of such use
|
||||
|
||||
If you would like to make some non-software goods to give away or sell at the event and don't already have a license to do so, see Non-software goods.
|
||||
|
||||
|
@ -76,10 +77,10 @@ If you would like to make some non-software goods to give away or sell at the ev
|
|||
|
||||
It is permissible to use the Meshtastic Trademarks in the title and content of a publication, provided that:
|
||||
|
||||
* the use is clearly in reference to the Meshtastic* the use does not imply sponsorship or endorsement of the publication by Meshtastic
|
||||
* proper trademark symbols are used in connection with the Meshtastic Trademarks and the trademark attribution statement must appear as explained in Proper Trademark Use
|
||||
* the Logo Usage Guidelines are strictly observed
|
||||
* A copy of the use of the Meshtastic Trademarks is provided to the Trademark Supervisor within seven (7) days of its initial use, for example by sending a URL or other copy of such use
|
||||
- the use is clearly in reference to the Meshtastic\* the use does not imply sponsorship or endorsement of the publication by Meshtastic
|
||||
- proper trademark symbols are used in connection with the Meshtastic Trademarks and the trademark attribution statement must appear as explained in Proper Trademark Use
|
||||
- the Logo Usage Guidelines are strictly observed
|
||||
- A copy of the use of the Meshtastic Trademarks is provided to the Trademark Supervisor within seven (7) days of its initial use, for example by sending a URL or other copy of such use
|
||||
|
||||
# Usage that Require Prior Written Approval
|
||||
|
||||
|
@ -101,9 +102,9 @@ Community members may request from the Trademark Supervisor designated by the Ad
|
|||
|
||||
The following uses of the Meshtastic Trademarks are not approved under any foreseeable circumstances.
|
||||
|
||||
* Violations of the Logo Usage Guidelines or Trademark Usage Guidelines
|
||||
* Any use outside these guidelines not by explicit written permission
|
||||
* Except as set forth herein, Meshtastic retains and reserves all rights to the Meshtastic Trademarks and their use, including the right to modify these guidelines.
|
||||
- Violations of the Logo Usage Guidelines or Trademark Usage Guidelines
|
||||
- Any use outside these guidelines not by explicit written permission
|
||||
- Except as set forth herein, Meshtastic retains and reserves all rights to the Meshtastic Trademarks and their use, including the right to modify these guidelines.
|
||||
|
||||
These guidelines (except for trademark licenses executed for non software goods) may be amended from time to time at the discretion of Meshtastic and such changes will be effective ten (10) days after the changes are posted. Meshtastic may provide you with notice of such changes, but need not do so. You are responsible for checking this site for any changes.
|
||||
|
||||
|
@ -153,6 +154,6 @@ Except as prohibited by law, the person or entity who is using the Meshtastic Tr
|
|||
|
||||
## Logo Usage Guidelines
|
||||
|
||||
The Meshtastic logo is a trademark of Geeksville Industries LLC. In order to protect and grow the Meshtastic brand, we have a distinguishable logo. When displaying the Meshtastic logo, please follow our standard Trademark Guidelines. Other sizes and resolutions of the logo, some suitable for print, can be found [here](https://github.com/meshtastic/meshtastic-design).
|
||||
The Meshtastic logo is a trademark of Geeksville Industries LLC. In order to protect and grow the Meshtastic brand, we have a distinguishable logo. When displaying the Meshtastic logo, please follow our standard Trademark Guidelines. Other sizes and resolutions of the logo, some suitable for print, can be found [here](https://github.com/meshtastic/design).
|
||||
|
||||
To join the discussion about Meshtastic Trademark policies, and participate in shaping future policy visit the [Meshtastic Discourse](http://meshtastic.discourse.group) or [Meshtastic Discord](https://discord.com/invite/UQJ5QuM7vq).
|
||||
To join the discussion about Meshtastic Trademark policies, and participate in shaping future policy visit the [Meshtastic Discourse](http://meshtastic.discourse.group) or [Meshtastic Discord](https://discord.com/invite/UQJ5QuM7vq).
|
||||
|
|
|
@ -224,6 +224,7 @@ if __name__ == '__main__':
|
|||
while client.loop() == 0:
|
||||
pass
|
||||
```
|
||||
|
||||
### Using MQTT with Node-RED
|
||||
|
||||
Node-RED is a free cross-platform programming tool for wiring together hardware, APIs, and online services developed originally by IBM for IOT. It is widely used for home automation by many non-professional programmers and runs well on Pi's. Node-red has many plug-in modules written by the community. I will use this platform as a practical example on how to interface with the MQTT features of Meshtastic. Everything can be done from GUI's without using command line.
|
||||
|
@ -233,7 +234,7 @@ Enable and enter network ssid/psk. Settings--> Device Config--> Network; Save.
|
|||
Set MQTT server address. Settings--> Module Config--> MQTT config; Verify Encryption Enabled is OFF. Turn JSON Output Enabled ON. Save.
|
||||
Go to Channel Editor and set uplink and downling enabled to True. Save.
|
||||
|
||||
Step two: if you don't want to depend on JSON decoding on the device, you can decode the proto messages off-device. To do that you will need to get the .proto files from https://github.com/meshtastic/Meshtastic-protobufs. They function as a schema and are required for decoding in Node-RED. Save the files where the node-RED application can access them and note the file path of the "mqtt.proto" file.
|
||||
Step two: if you don't want to depend on JSON decoding on the device, you can decode the proto messages off-device. To do that you will need to get the .proto files from https://github.com/meshtastic/protobufs. They function as a schema and are required for decoding in Node-RED. Save the files where the node-RED application can access them and note the file path of the "mqtt.proto" file.
|
||||
|
||||
Step three: install Node-RED plug-ins to your node-RED application for an embedded mqqt server and a protobuf decoder.
|
||||
https://flows.nodered.org/node/node-red-contrib-aedes
|
||||
|
|
Loading…
Reference in a new issue