Fix firmware repo links

This commit is contained in:
Sacha Weatherstone 2022-10-31 17:45:47 +10:00
parent 4adf3e359c
commit e7c5aec912
No known key found for this signature in database
GPG key ID: 7AB2D7E206124B31
12 changed files with 56 additions and 55 deletions

View file

@ -273,7 +273,7 @@ The `region` variable sets which region your radio is configured to work in. It
| Unset | 903.08 | 2.16 | 13 | 0 | | Unset | 903.08 | 2.16 | 13 | 0 |
:::note :::note
For more details about `region` settings, you can see the source code [here](https://github.com/meshtastic/Meshtastic-device/blob/master/src/mesh/RadioInterface.cpp) For more details about `region` settings, you can see the source code [here](https://github.com/meshtastic/firmware/blob/master/src/mesh/RadioInterface.cpp)
::: :::
#### Set Region #### Set Region

View file

@ -9,7 +9,7 @@ Meshtastic 1.2 was a beta version that has been superceded by 1.3. Version 1.2 i
While 1.2 is end of life, it may continue to be useful for certain networks with Android only users, or users of ATAK until the forwarder is updated. While 1.2 is end of life, it may continue to be useful for certain networks with Android only users, or users of ATAK until the forwarder is updated.
* Last 1.2 Python api version install: pip install meshtastic==1.2.95 - Last 1.2 Python api version install: pip install meshtastic==1.2.95
* Final 1.2 Meshtastic Flasher install: pip install meshtastic-flasher==1.0.106 (Do not attempt to install 1.3.x firmware with this release) - Final 1.2 Meshtastic Flasher install: pip install meshtastic-flasher==1.0.106 (Do not attempt to install 1.3.x firmware with this release)
* [Final 1.2 Device Firmware](https://github.com/meshtastic/Meshtastic-device/releases/tag/v1.2.65.0adc5ce) - [Final 1.2 Device Firmware](https://github.com/meshtastic/firmware/releases/tag/v1.2.65.0adc5ce)
* [Final 1.2 Android App](https://github.com/meshtastic/Meshtastic-Android/releases/tag/1.2.67) - [Final 1.2 Android App](https://github.com/meshtastic/Meshtastic-Android/releases/tag/1.2.67)

View file

@ -8,7 +8,7 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem'; import TabItem from '@theme/TabItem';
:::note :::note
This is still under development, use at your own risk. Report any bugs you see by creating an issue on the [meshtastic/Meshtastic-device](https://github.com/meshtastic/Meshtastic-device) repository or comment on our forum. This is still under development, use at your own risk. Report any bugs you see by creating an issue on the [meshtastic/firmware](https://github.com/meshtastic/firmware) repository or comment on our forum.
::: :::
:::caution :::caution

View file

@ -115,10 +115,10 @@ This is a mini-doc/RFC sketching out a development plan to satisfy a number of 1
::: :::
- [MQTT](https://opensource.com/article/18/6/mqtt) internet accessible API. Issue #[369](https://github.com/meshtastic/Meshtastic-device/issues/169) - [MQTT](https://opensource.com/article/18/6/mqtt) internet accessible API. Issue #[369](https://github.com/meshtastic/firmware/issues/169)
- An open API to easily run custom mini-apps on the devices - An open API to easily run custom mini-apps on the devices
- A text messaging bridge when a node in the mesh can gateway to the internet. Issue #[353](https://github.com/meshtastic/Meshtastic-device/issues/353) and this nicely documented [android issue](https://github.com/meshtastic/Meshtastic-Android/issues/2). - A text messaging bridge when a node in the mesh can gateway to the internet. Issue #[353](https://github.com/meshtastic/firmware/issues/353) and this nicely documented [android issue](https://github.com/meshtastic/Meshtastic-Android/issues/2).
- An easy way to let desktop app developers remotely control GPIOs. Issue #[182](https://github.com/meshtastic/Meshtastic-device/issues/182) - An easy way to let desktop app developers remotely control GPIOs. Issue #[182](https://github.com/meshtastic/firmware/issues/182)
- Remote attribute access (to change settings of distant nodes). Issue #182 - Remote attribute access (to change settings of distant nodes). Issue #182
## Short term goals ## Short term goals

View file

@ -10,7 +10,7 @@ Meshtastic uses the [PlatformIO](https://platformio.org) development environment
1. Install PlatformIO, following the instructions available [here](https://platformio.org/platformio-ide). 1. Install PlatformIO, following the instructions available [here](https://platformio.org/platformio-ide).
2. Clone the `meshtastic-device` repository located [here](https://github.com/meshtastic/meshtastic-device). ([Instructions on cloning](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)) 2. Clone the `firmware` repository located [here](https://github.com/meshtastic/firmware). ([Instructions on cloning](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository))
3. Clone the [Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) 3. Clone the [Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules)
@ -33,7 +33,7 @@ The build system is modular. Adding a new board variant for an already supported
### Building for your own DIY hardware or mod that you don't want to distribute ### Building for your own DIY hardware or mod that you don't want to distribute
1. go to the `variants` folder in the Meshtastic-device sourcecode and make a new directory for your hardware, let's call it `m5stack_atom` and copy an existing configuration you wanna modify 1. go to the `variants` folder in the firmware sourcecode and make a new directory for your hardware, let's call it `m5stack_atom` and copy an existing configuration you wanna modify
```shell ```shell
cd variants; mkdir m5stack_atom cd variants; mkdir m5stack_atom
@ -60,9 +60,9 @@ The build system is modular. Adding a new board variant for an already supported
### Adding a new off-the-shelf or DIY hardware that you want to distribute (e.g. add a new canon board) ### Adding a new off-the-shelf or DIY hardware that you want to distribute (e.g. add a new canon board)
1. do all of the above until your hardware runs fine 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/Meshtastic-device/issues/new?assignees=&labels=enhancement%2Ctriage&template=New+Board.yml&title=%5BBoard%5D%3A+) 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/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. 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 Meshtastic-device repo and send in that Pull Request too. 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. 6. wait for the Pulls to be merged back into Master.
7. profit :-) 7. profit :-)

View file

@ -18,9 +18,9 @@ Packets can be sent/received either as raw binary structures or as [Protobufs](h
The relevant bits of the class hierarchy are as follows The relevant bits of the class hierarchy are as follows
- [MeshModule](http://github.com/meshtastic/meshtastic-device/tree/master/src/mesh/MeshModule.h) (in src/mesh/MeshModule.h) - you probably don't want to use this baseclass directly - [MeshModule](http://github.com/meshtastic/firmware/tree/master/src/mesh/MeshModule.h) (in src/mesh/MeshModule.h) - you probably don't want to use this baseclass directly
- [SinglePortModule](http://github.com/meshtastic/meshtastic-device/tree/master/src/mesh/SinglePortModule.h) (in src/mesh/SinglePortModule.h) - for modules that send/receive from a single port number (the normal case) - [SinglePortModule](http://github.com/meshtastic/firmware/tree/master/src/mesh/SinglePortModule.h) (in src/mesh/SinglePortModule.h) - for modules that send/receive from a single port number (the normal case)
- [ProtobufModule](http://github.com/meshtastic/meshtastic-device/tree/master/src/mesh/ProtobufModule.h) (in src/mesh/ProtobufModule.h) - for modules that send/receive a single particular Protobuf type. Inherit from this if you are using protocol buffers in your module. - [ProtobufModule](http://github.com/meshtastic/firmware/tree/master/src/mesh/ProtobufModule.h) (in src/mesh/ProtobufModule.h) - for modules that send/receive a single particular Protobuf type. Inherit from this if you are using protocol buffers in your module.
You will typically want to inherit from either SinglePortModule (if you are just sending/receiving raw bytes) or ProtobufModule (if you are sending/receiving protobufs). You'll implement your own handleReceived/handleReceivedProtobuf - probably based on the example code. You will typically want to inherit from either SinglePortModule (if you are just sending/receiving raw bytes) or ProtobufModule (if you are sending/receiving protobufs). You'll implement your own handleReceived/handleReceivedProtobuf - probably based on the example code.
@ -37,19 +37,19 @@ service.sendToMesh(p);
## Example modules ## Example modules
A number of [key services](http://github.com/meshtastic/meshtastic-device/tree/master/src/modules) are implemented using the module API, these modules are as follows: A number of [key services](http://github.com/meshtastic/firmware/tree/master/src/modules) are implemented using the module API, these modules are as follows:
- [TextMessageModule](http://github.com/meshtastic/meshtastic-device/tree/master/src/modules/TextMessageModule.h) - receives text messages and displays them on the LCD screen/stores them in the local DB - [TextMessageModule](http://github.com/meshtastic/firmware/tree/master/src/modules/TextMessageModule.h) - receives text messages and displays them on the LCD screen/stores them in the local DB
- [NodeInfoModule](http://github.com/meshtastic/meshtastic-device/tree/master/src/modules/NodeInfoModule.h) - receives/sends User information to other nodes so that usernames are available in the databases - [NodeInfoModule](http://github.com/meshtastic/firmware/tree/master/src/modules/NodeInfoModule.h) - receives/sends User information to other nodes so that usernames are available in the databases
- [RemoteHardwareModule](http://github.com/meshtastic/meshtastic-device/tree/master/src/modules/RemoteHardwareModule.h) - a module that provides easy remote access to device hardware (for things like turning GPIOs on or off). Intended to be a more extensive example and provide a useful feature of its own. See [remote-hardware](/docs/software/device/remote-hardware-service) for details. - [RemoteHardwareModule](http://github.com/meshtastic/firmware/tree/master/src/modules/RemoteHardwareModule.h) - a module that provides easy remote access to device hardware (for things like turning GPIOs on or off). Intended to be a more extensive example and provide a useful feature of its own. See [remote-hardware](/docs/software/device/remote-hardware-service) for details.
- [ReplyModule](http://github.com/meshtastic/meshtastic-device/tree/master/src/modules/ReplyModule.h) - a simple module that just replies to any packet it receives (provides a 'ping' service). - [ReplyModule](http://github.com/meshtastic/firmware/tree/master/src/modules/ReplyModule.h) - a simple module that just replies to any packet it receives (provides a 'ping' service).
## Getting started ## Getting started
The easiest way to get started is: The easiest way to get started is:
- [Build and install](/docs/developers/firmware/build) the standard codebase from GitHub. - [Build and install](/docs/developers/firmware/build) the standard codebase from GitHub.
- Copy [src/modules/ReplyModule.\*](http://github.com/meshtastic/meshtastic-device/tree/master/src/modules/ReplyModule.cpp) into src/modules/YourModule.*. Then change the port number from *PortNum_REPLY_APP* to *PortNum_PRIVATE_APP\*. - Copy [src/modules/ReplyModule.\*](http://github.com/meshtastic/firmware/tree/master/src/modules/ReplyModule.cpp) into src/modules/YourModule.*. Then change the port number from *PortNum_REPLY_APP* to *PortNum_PRIVATE_APP\*.
- Edit moduless/Moduless.cpp:setupModules() to add a call to create an instance of your module (see comment at head of that function) - Edit moduless/Moduless.cpp:setupModules() to add a call to create an instance of your module (see comment at head of that function)
- Rebuild with your new messaging goodness and install on the device - Rebuild with your new messaging goodness and install on the device
- Use the [meshtastic commandline tool](https://github.com/meshtastic/Meshtastic-python) to send a packet to your board, for example `meshtastic --dest 1234 --sendping`, where _1234_ is another mesh node to send the ping to. - Use the [meshtastic commandline tool](https://github.com/meshtastic/Meshtastic-python) to send a packet to your board, for example `meshtastic --dest 1234 --sendping`, where _1234_ is another mesh node to send the ping to.
@ -57,11 +57,11 @@ The easiest way to get started is:
## Threading ## Threading
It is very common that you would like your module to be invoked periodically. It is very common that you would like your module to be invoked periodically.
We use a crude/basic cooperative threading system to allow this on any of our supported platforms. Simply inherit from OSThread and implement runOnce(). See the OSThread [documentation](http://github.com/meshtastic/meshtastic-device/tree/master/src/concurrency/OSThread.h) for more details. We use a crude/basic cooperative threading system to allow this on any of our supported platforms. Simply inherit from OSThread and implement runOnce(). See the OSThread [documentation](http://github.com/meshtastic/firmware/tree/master/src/concurrency/OSThread.h) for more details.
## Sending messages ## Sending messages
If you would like to proactively send messages (rather than just responding to them), just call service.sendToMesh(). For an example of this see [NodeInfoModule::sendOurNodeInfo(...)](http://github.com/meshtastic/meshtastic-device/tree/master/src/modules/NodeInfoModule.cpp). If you would like to proactively send messages (rather than just responding to them), just call service.sendToMesh(). For an example of this see [NodeInfoModule::sendOurNodeInfo(...)](http://github.com/meshtastic/firmware/tree/master/src/modules/NodeInfoModule.cpp).
## Picking a port number ## Picking a port number

View file

@ -26,11 +26,11 @@ Most communication and interactions happen with protocol buffers. The [Meshtasti
## Firmware ## Firmware
The [Meshtastic-device](https://github.com/meshtastic/Meshtastic-device) is where all of the firmware development happens. This is where the code for the ESP32 and nRF52 based devices is developed. It is mainly C and C++ code.Think Arduino. It is where the first level of hardware interaction begins and ends. The [firmware](https://github.com/meshtastic/firmware) is where all of the firmware development happens. This is where the code for the ESP32 and nRF52 based devices is developed. It is mainly C and C++ code.Think Arduino. It is where the first level of hardware interaction begins and ends.
## Modules ## Modules
[Modules](/docs/settings/moduleconfig) are also implemented mainly in the Meshtastic-device repo above. Typically, you would add functionality in the protobufs repo and the device repo to implement module functionality. You probably also want to have some client/device use/interact with the module and that is where the Device support comes into play. [Modules](/docs/settings/moduleconfig) are also implemented mainly in the firmware repo above. Typically, you would add functionality in the protobufs repo and the device repo to implement module functionality. You probably also want to have some client/device use/interact with the module and that is where the Device support comes into play.
## Device Support ## Device Support

View file

@ -9,7 +9,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 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 [Downloads](/downloads) page. If you wish to view the code or contribute to development of the firmware, please visit the device code <a href="https://github.com/meshtastic/Meshtastic-device">GitHub page</a>. The latest firmware can be downloaded from the [Downloads](/downloads) page. If you wish to view the code or contribute to development of the firmware, please visit the device code <a href="https://github.com/meshtastic/firmware">GitHub page</a>.
:::info :::info
Please be aware that there are significant changes between version branches 1.2.x and 1.3.x which mean that devices need to be running the same branch of firmware to be able to talk to each other. Python, Android, and other software applications will also need to be running the same branch to be able to talk to the device. Please be aware that there are significant changes between version branches 1.2.x and 1.3.x which mean that devices need to be running the same branch of firmware to be able to talk to each other. Python, Android, and other software applications will also need to be running the same branch to be able to talk to the device.

View file

@ -2,7 +2,6 @@
id: linux-native-application id: linux-native-application
title: Linux native application title: Linux native application
sidebar_label: Linux native application sidebar_label: Linux native application
--- ---
The device software can also run on a native Linux machine thanks to the [Portduino framework](https://github.com/geeksville/framework-portduino). The device software can also run on a native Linux machine thanks to the [Portduino framework](https://github.com/geeksville/framework-portduino).
@ -14,14 +13,16 @@ In this way, you can let multiple instances of the application communicate with
For instructions on how to use it, see the [interactive simulator](https://github.com/GUVWAF/Meshtasticator/blob/master/INTERACTIVE_SIM.md) that also emulates a wireless environment using simulated positions of the nodes. For instructions on how to use it, see the [interactive simulator](https://github.com/GUVWAF/Meshtasticator/blob/master/INTERACTIVE_SIM.md) that also emulates a wireless environment using simulated positions of the nodes.
## Usage with a Linux machine {#usage-with-a-linux-machine} ## Usage with a Linux machine {#usage-with-a-linux-machine}
The easiest way of building the native application is using Visual Studio Code with the PlatformIO extension. The easiest way of building the native application is using Visual Studio Code with the PlatformIO extension.
See the instructions for creating such a building environment [here](/docs/developers/Firmware/build). See the instructions for creating such a building environment [here](/docs/developers/Firmware/build).
Then after opening the Meshtastic-device repository in Visual Studio Code, simply click on the PlatformIO extension in the left bar, select native and click on 'Build'. Then after opening the firmware repository in Visual Studio Code, simply click on the PlatformIO extension in the left bar, select native and click on 'Build'.
This will generate the binary file 'program' which you can find in `.pio/build/native/`. This will generate the binary file 'program' which you can find in `.pio/build/native/`.
Once in this directory or when you copied the file to your current directory, launch the application with `./program`. Once in this directory or when you copied the file to your current directory, launch the application with `./program`.
Additional arguments can be given to the program, which are listed as follows: Additional arguments can be given to the program, which are listed as follows:
- `-d DIRECTORY`: The directory to use as the virtual filesystem (VFS). - `-d DIRECTORY`: The directory to use as the virtual filesystem (VFS).
- `-e`: Erase the virtual filesystem before use. - `-e`: Erase the virtual filesystem before use.
- `-h MAC_ADDRESS`: The MAC address to assign to this virtual machine. - `-h MAC_ADDRESS`: The MAC address to assign to this virtual machine.
@ -49,7 +50,7 @@ or, to get an interactive shell on the docker created container:
`docker run -it -p 4403:4403 meshtastic/device bash` `docker run -it -p 4403:4403 meshtastic/device bash`
You might want to mount your local development folder: You might want to mount your local development folder:
firmware
`docker run -it --mount type=bind,source=/PathToMyProjects/Meshtastic/Meshtastic-device-mybranch,target=/Meshtastic-device-mybranch -p 4403:4403 meshtastic/device bash` `docker run -it --mount type=bind,source=/PathToMyProjects/Meshtastic/Meshtastic-device-mybranch,target=/Meshtastic-device-mybranch -p 4403:4403 meshtastic/device bash`
### Build the native application ### Build the native application

View file

@ -36,7 +36,7 @@ pio run --target erase --environment tbeam
Then re-install the firmware ie using ESPHome Flasher. Then re-install the firmware ie using ESPHome Flasher.
Requires: [Python](https://www.python.org), [Pio](https://pypi.org/project/pio), command to be run in the root directory of the meshtastic-device project once youve cloned it (this last requirement is an assumption based on pio not knowing what a tbeam is, may also require Visual Studio Code and PlatformIO as these were installed during use). Requires: [Python](https://www.python.org), [Pio](https://pypi.org/project/pio), command to be run in the root directory of the firmware project once youve cloned it (this last requirement is an assumption based on pio not knowing what a tbeam is, may also require Visual Studio Code and PlatformIO as these were installed during use).
### Esptool.py ### Esptool.py
@ -53,13 +53,13 @@ Requires: [Python](https://www.python.org) and [esptool.py](https://github.com/e
### Visual Studio & PlatformIO ### Visual Studio & PlatformIO
There is also the method of using the Visual Studio IDE. This requires having Visual Studio and PlatformIO installed, along with having cloned the meshtastic-device code as per the [build instructions](/docs/developers/firmware/build). After loading the project in Visual Studio, select the PlatformIO alien icon, then find the appropriate device, and then click the Erase Flash command. There is also the method of using the Visual Studio IDE. This requires having Visual Studio and PlatformIO installed, along with having cloned the firmware code as per the [build instructions](/docs/developers/firmware/build). After loading the project in Visual Studio, select the PlatformIO alien icon, then find the appropriate device, and then click the Erase Flash command.
![Erasing the flash using PlatformIO in Visual Studio Code](/img/platformio-erase.png) ![Erasing the flash using PlatformIO in Visual Studio Code](/img/platformio-erase.png)
https://meshtastic.discourse.group/t/configuring-channel-via-python-api/1948/17 https://meshtastic.discourse.group/t/configuring-channel-via-python-api/1948/17
Requires: [Visual Studio Code](https://code.visualstudio.com), [PlatformIO](https://platformio.org), cloned copy of the Meshtastic-device project Requires: [Visual Studio Code](https://code.visualstudio.com), [PlatformIO](https://platformio.org), cloned copy of the Meshtastic Firmware project
## How do I know it's worked? ## How do I know it's worked?

View file

@ -16,7 +16,7 @@ import { HeaderText } from './_components/HeaderText';
const Firmware = (): JSX.Element => { const Firmware = (): JSX.Element => {
const { data, error } = useSWR<Release[]>( const { data, error } = useSWR<Release[]>(
'https://api.github.com/repos/meshtastic/meshtastic-device/releases', 'https://api.github.com/repos/meshtastic/firmware/releases',
fetcher, fetcher,
); );
@ -133,7 +133,7 @@ const Firmware = (): JSX.Element => {
</div> </div>
<div className="card__footer" style={{ marginTop: '1rem' }}> <div className="card__footer" style={{ marginTop: '1rem' }}>
<a <a
href="https://nightly.link/meshtastic/meshtastic-device/workflows/main/master/built.zip" href="https://nightly.link/meshtastic/firmware/workflows/main/master/built.zip"
className="button button--secondary button--block" className="button button--secondary button--block"
> >
Download Download

View file

@ -62,7 +62,7 @@ const Hardware = (): JSX.Element => {
))} ))}
<li className="group relative"> <li className="group relative">
<a <a
href="https://github.com/meshtastic/Meshtastic-device/issues/new?assignees=&labels=enhancement%2Ctriage&template=New+Board.yml&title=%5BBoard%5D%3A+" href="https://github.com/meshtastic/firmware/issues/new?assignees=&labels=enhancement%2Ctriage&template=New+Board.yml&title=%5BBoard%5D%3A+"
className="flex aspect-[4/3] rounded-lg border-2 border-dashed border-mute group-hover:border-tertiaryInv" className="flex aspect-[4/3] rounded-lg border-2 border-dashed border-mute group-hover:border-tertiaryInv"
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"