mirror of
https://github.com/meshtastic/firmware.git
synced 2025-09-19 08:17:26 +00:00
Compare commits
26 Commits
98b4a29ef9
...
4915a07c2a
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4915a07c2a | ||
![]() |
68413486e3 | ||
![]() |
af79970ad7 | ||
![]() |
4edeca5f84 | ||
![]() |
b0e3039732 | ||
![]() |
92511ab10b | ||
![]() |
b0a4087a0c | ||
![]() |
1b2fc00b99 | ||
![]() |
69d01a8088 | ||
![]() |
09c082fd00 | ||
![]() |
020e9102a8 | ||
![]() |
2d45afafe5 | ||
![]() |
56002155c6 | ||
![]() |
547a57256d | ||
![]() |
ea72abff22 | ||
![]() |
4024bfdeeb | ||
![]() |
6d8be13266 | ||
![]() |
4a1239f811 | ||
![]() |
44cf6d388e | ||
![]() |
c3f89a6db8 | ||
![]() |
332dbaf573 | ||
![]() |
92225eb6c3 | ||
![]() |
03770b799f | ||
![]() |
1790407078 | ||
![]() |
7dd3629501 | ||
![]() |
cabeb40c30 |
183
.devcontainer/99-platformio-udev.rules
Normal file
183
.devcontainer/99-platformio-udev.rules
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
# Copyright (c) 2014-present PlatformIO <contact@platformio.org>
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
#####################################################################################
|
||||||
|
#
|
||||||
|
# INSTALLATION
|
||||||
|
#
|
||||||
|
# Please visit > https://docs.platformio.org/en/latest/core/installation/udev-rules.html
|
||||||
|
#
|
||||||
|
#####################################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Boards
|
||||||
|
#
|
||||||
|
|
||||||
|
# CP210X USB UART
|
||||||
|
ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea[67][013]", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="80a9", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# FT231XS USB UART
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Prolific Technology, Inc. PL2303 Serial Port
|
||||||
|
ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# QinHeng Electronics HL-340 USB-Serial adapter
|
||||||
|
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
# QinHeng Electronics CH343 USB-Serial adapter
|
||||||
|
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55d3", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
# QinHeng Electronics CH9102 USB-Serial adapter
|
||||||
|
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="55d4", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Arduino boards
|
||||||
|
ATTRS{idVendor}=="2341", ATTRS{idProduct}=="[08][023]*", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="[08][02]*", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Arduino SAM-BA
|
||||||
|
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{MTP_NO_PROBE}="1"
|
||||||
|
|
||||||
|
# Digistump boards
|
||||||
|
ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Maple with DFU
|
||||||
|
ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="000[34]", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# USBtiny
|
||||||
|
ATTRS{idProduct}=="0c9f", ATTRS{idVendor}=="1781", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# USBasp V2.0
|
||||||
|
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Teensy boards
|
||||||
|
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1"
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", MODE:="0666"
|
||||||
|
KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", MODE:="0666"
|
||||||
|
|
||||||
|
# TI Stellaris Launchpad
|
||||||
|
ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# TI MSP430 Launchpad
|
||||||
|
ATTRS{idVendor}=="0451", ATTRS{idProduct}=="f432", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# GD32V DFU Bootloader
|
||||||
|
ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# FireBeetle-ESP32
|
||||||
|
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7522", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Wio Terminal
|
||||||
|
ATTRS{idVendor}=="2886", ATTRS{idProduct}=="[08]02d", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Raspberry Pi Pico
|
||||||
|
ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="[01]*", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# AIR32F103
|
||||||
|
ATTRS{idVendor}=="0d28", ATTRS{idProduct}=="0204", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# STM32 virtual COM port
|
||||||
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Debuggers
|
||||||
|
#
|
||||||
|
|
||||||
|
# Black Magic Probe
|
||||||
|
SUBSYSTEM=="tty", ATTRS{interface}=="Black Magic GDB Server", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
SUBSYSTEM=="tty", ATTRS{interface}=="Black Magic UART Port", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# opendous and estick
|
||||||
|
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="204f", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Original FT232/FT245/FT2232/FT232H/FT4232
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="60[01][104]", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# DISTORTEC JTAG-lock-pick Tiny 2
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8220", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# TUMPA, TUMPA Lite
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a9[89]", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# XDS100v2
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="a6d0", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Xverve Signalyzer Tool (DT-USB-ST), Signalyzer LITE (DT-USB-SLITE)
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bca[01]", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# TI/Luminary Stellaris Evaluation Board FTDI (several)
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bcd[9a]", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# egnite Turtelizer 2
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bdc8", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Section5 ICEbear
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="c14[01]", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Amontec JTAGkey and JTAGkey-tiny
|
||||||
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="cff8", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# TI ICDI
|
||||||
|
ATTRS{idVendor}=="0451", ATTRS{idProduct}=="c32a", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# STLink probes
|
||||||
|
ATTRS{idVendor}=="0483", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Hilscher NXHX Boards
|
||||||
|
ATTRS{idVendor}=="0640", ATTRS{idProduct}=="0028", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Hitex probes
|
||||||
|
ATTRS{idVendor}=="0640", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Altera USB Blaster
|
||||||
|
ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Amontec JTAGkey-HiSpeed
|
||||||
|
ATTRS{idVendor}=="0fbb", ATTRS{idProduct}=="1000", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# SEGGER J-Link
|
||||||
|
ATTRS{idVendor}=="1366", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Raisonance RLink
|
||||||
|
ATTRS{idVendor}=="138e", ATTRS{idProduct}=="9000", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Debug Board for Neo1973
|
||||||
|
ATTRS{idVendor}=="1457", ATTRS{idProduct}=="5118", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Olimex probes
|
||||||
|
ATTRS{idVendor}=="15ba", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# USBprog with OpenOCD firmware
|
||||||
|
ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c63", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# TI/Luminary Stellaris In-Circuit Debug Interface (ICDI) Board
|
||||||
|
ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Marvell Sheevaplug
|
||||||
|
ATTRS{idVendor}=="9e88", ATTRS{idProduct}=="9e8f", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Keil Software, Inc. ULink
|
||||||
|
ATTRS{idVendor}=="c251", ATTRS{idProduct}=="2710", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# CMSIS-DAP compatible adapters
|
||||||
|
ATTRS{product}=="*CMSIS-DAP*", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Atmel AVR Dragon
|
||||||
|
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2107", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Espressif USB JTAG/serial debug unit
|
||||||
|
ATTRS{idVendor}=="303a", ATTRS{idProduct}=="1001", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
||||||
|
|
||||||
|
# Zephyr framework USB CDC-ACM
|
||||||
|
ATTRS{idVendor}=="2fe3", ATTRS{idProduct}=="0100", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{ID_MM_PORT_IGNORE}="1"
|
@ -1,6 +1,9 @@
|
|||||||
FROM mcr.microsoft.com/devcontainers/cpp:1-debian-12
|
FROM mcr.microsoft.com/devcontainers/cpp:1-debian-12
|
||||||
|
|
||||||
# [Optional] Uncomment this section to install additional packages.
|
USER root
|
||||||
|
|
||||||
|
# trunk-ignore(terrascan/AC_DOCKER_0002): Known terrascan issue
|
||||||
|
# trunk-ignore(hadolint/DL3008): Use latest version of packages
|
||||||
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||||
&& apt-get -y install --no-install-recommends \
|
&& apt-get -y install --no-install-recommends \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
@ -20,6 +23,16 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
|||||||
python3-wheel \
|
python3-wheel \
|
||||||
wget \
|
wget \
|
||||||
zip \
|
zip \
|
||||||
|
usbutils \
|
||||||
|
hwdata \
|
||||||
|
gpg \
|
||||||
|
gnupg2 \
|
||||||
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
RUN pipx install platformio==6.1.15
|
RUN pipx install platformio==6.1.15
|
||||||
|
|
||||||
|
COPY 99-platformio-udev.rules /etc/udev/rules.d/99-platformio-udev.rules
|
||||||
|
|
||||||
|
USER vscode
|
||||||
|
|
||||||
|
HEALTHCHECK NONE
|
@ -13,13 +13,24 @@
|
|||||||
},
|
},
|
||||||
"customizations": {
|
"customizations": {
|
||||||
"vscode": {
|
"vscode": {
|
||||||
"extensions": ["ms-vscode.cpptools", "platformio.platformio-ide"]
|
"extensions": [
|
||||||
|
"ms-vscode.cpptools",
|
||||||
|
"platformio.platformio-ide",
|
||||||
|
"Trunk.io"
|
||||||
|
],
|
||||||
|
"unwantedRecommendations": ["ms-azuretools.vscode-docker"],
|
||||||
|
"settings": {
|
||||||
|
"extensions.ignoreRecommendations": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||||
"forwardPorts": [4403],
|
"forwardPorts": [4403],
|
||||||
|
|
||||||
|
// Use "--device=" to make a local device available inside the container.
|
||||||
|
// "runArgs": ["--device=/dev/ttyACM0"],
|
||||||
|
|
||||||
// Run commands to prepare the container for use
|
// Run commands to prepare the container for use
|
||||||
"postCreateCommand": ".devcontainer/setup.sh"
|
"postCreateCommand": ".devcontainer/setup.sh"
|
||||||
}
|
}
|
||||||
|
7
.github/workflows/build_native.yml
vendored
7
.github/workflows/build_native.yml
vendored
@ -56,17 +56,18 @@ jobs:
|
|||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
continue-on-error: true # FIXME: Failing docker login auth
|
continue-on-error: true # FIXME: Failing docker login auth
|
||||||
with:
|
with:
|
||||||
|
logout: true
|
||||||
username: meshtastic
|
username: meshtastic
|
||||||
password: ${{ secrets.DOCKER_FIRMWARE_TOKEN }}
|
password: ${{ secrets.DOCKER_FIRMWARE_TOKEN }}
|
||||||
|
|
||||||
- name: Docker setup
|
- name: Docker setup
|
||||||
if: ${{ github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }}
|
if: ${{ github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }}
|
||||||
continue-on-error: true # FIXME: Failing docker login auth
|
continue-on-error: true
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: Docker build and push tagged versions
|
- name: Docker build and push tagged versions
|
||||||
if: ${{ github.event_name == 'workflow_dispatch' }}
|
if: ${{ github.event_name == 'workflow_dispatch' }}
|
||||||
continue-on-error: true # FIXME: Failing docker login auth
|
continue-on-error: true
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
@ -76,7 +77,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Docker build and push
|
- name: Docker build and push
|
||||||
if: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }}
|
if: ${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request_target' && github.event_name != 'pull_request' }}
|
||||||
continue-on-error: true # FIXME: Failing docker login auth
|
continue-on-error: true
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
|
2
.github/workflows/main_matrix.yml
vendored
2
.github/workflows/main_matrix.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
|||||||
else
|
else
|
||||||
TARGETS=$(./bin/generate_ci_matrix.py ${{matrix.arch}} quick)
|
TARGETS=$(./bin/generate_ci_matrix.py ${{matrix.arch}} quick)
|
||||||
fi
|
fi
|
||||||
echo "Name: ${{ github.ref_name }} Base: ${{ github.base_ref }} Head: ${{ github.head_ref }} Ref: ${{ github.ref }} Targets: $TARGETS"
|
echo "Name: ${{ github.ref_name }} Base: ${{ github.base_ref }} } Ref: ${{ github.ref }} Targets: $TARGETS"
|
||||||
echo "${{matrix.arch}}=$(jq -cn --argjson environments "$TARGETS" '{board: $environments}')" >> $GITHUB_OUTPUT
|
echo "${{matrix.arch}}=$(jq -cn --argjson environments "$TARGETS" '{board: $environments}')" >> $GITHUB_OUTPUT
|
||||||
outputs:
|
outputs:
|
||||||
esp32: ${{ steps.jsonStep.outputs.esp32 }}
|
esp32: ${{ steps.jsonStep.outputs.esp32 }}
|
||||||
|
17
.github/workflows/package_amd64.yml
vendored
17
.github/workflows/package_amd64.yml
vendored
@ -47,18 +47,18 @@ jobs:
|
|||||||
- name: build .debpkg
|
- name: build .debpkg
|
||||||
run: |
|
run: |
|
||||||
mkdir -p .debpkg/DEBIAN
|
mkdir -p .debpkg/DEBIAN
|
||||||
mkdir -p .debpkg/usr/share/doc/meshtasticd/web
|
mkdir -p .debpkg/usr/share/meshtasticd/web
|
||||||
mkdir -p .debpkg/usr/sbin
|
mkdir -p .debpkg/usr/sbin
|
||||||
mkdir -p .debpkg/etc/meshtasticd
|
mkdir -p .debpkg/etc/meshtasticd
|
||||||
mkdir -p .debpkg/etc/meshtasticd/config.d
|
mkdir -p .debpkg/etc/meshtasticd/config.d
|
||||||
mkdir -p .debpkg/etc/meshtasticd/available.d
|
mkdir -p .debpkg/etc/meshtasticd/available.d
|
||||||
mkdir -p .debpkg/usr/lib/systemd/system/
|
mkdir -p .debpkg/usr/lib/systemd/system/
|
||||||
tar -xf build.tar -C .debpkg/usr/share/doc/meshtasticd/web
|
tar -xf build.tar -C .debpkg/usr/share/meshtasticd/web
|
||||||
shopt -s dotglob nullglob
|
shopt -s dotglob nullglob
|
||||||
if [ -d .debpkg/usr/share/doc/meshtasticd/web/build ]; then mv .debpkg/usr/share/doc/meshtasticd/web/build/* .debpkg/usr/share/doc/meshtasticd/web/; fi
|
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then mv .debpkg/usr/share/meshtasticd/web/build/* .debpkg/usr/share/meshtasticd/web/; fi
|
||||||
if [ -d .debpkg/usr/share/doc/meshtasticd/web/build ]; then rmdir .debpkg/usr/share/doc/meshtasticd/web/build; fi
|
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then rmdir .debpkg/usr/share/meshtasticd/web/build; fi
|
||||||
if [ -d .debpkg/usr/share/doc/meshtasticd/web/.DS_Store ]; then rm -f .debpkg/usr/share/doc/meshtasticd/web/.DS_Store; fi
|
if [ -d .debpkg/usr/share/meshtasticd/web/.DS_Store ]; then rm -f .debpkg/usr/share/meshtasticd/web/.DS_Store; fi
|
||||||
gunzip .debpkg/usr/share/doc/meshtasticd/web/ -r
|
gunzip .debpkg/usr/share/meshtasticd/web/ -r
|
||||||
cp release/meshtasticd_linux_x86_64 .debpkg/usr/sbin/meshtasticd
|
cp release/meshtasticd_linux_x86_64 .debpkg/usr/sbin/meshtasticd
|
||||||
cp bin/config-dist.yaml .debpkg/etc/meshtasticd/config.yaml
|
cp bin/config-dist.yaml .debpkg/etc/meshtasticd/config.yaml
|
||||||
cp bin/config.d/* .debpkg/etc/meshtasticd/available.d/ -r
|
cp bin/config.d/* .debpkg/etc/meshtasticd/available.d/ -r
|
||||||
@ -66,6 +66,11 @@ jobs:
|
|||||||
cp bin/meshtasticd.service .debpkg/usr/lib/systemd/system/meshtasticd.service
|
cp bin/meshtasticd.service .debpkg/usr/lib/systemd/system/meshtasticd.service
|
||||||
echo "/etc/meshtasticd/config.yaml" > .debpkg/DEBIAN/conffiles
|
echo "/etc/meshtasticd/config.yaml" > .debpkg/DEBIAN/conffiles
|
||||||
chmod +x .debpkg/DEBIAN/conffiles
|
chmod +x .debpkg/DEBIAN/conffiles
|
||||||
|
# Transition /usr/share/doc/meshtasticd to /usr/share/meshtasticd
|
||||||
|
echo "rm -rf /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/preinst
|
||||||
|
chmod +x .debpkg/DEBIAN/preinst
|
||||||
|
echo "ln -sf /usr/share/meshtasticd /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/postinst
|
||||||
|
chmod +x .debpkg/DEBIAN/postinst
|
||||||
|
|
||||||
- uses: jiro4989/build-deb-action@v3
|
- uses: jiro4989/build-deb-action@v3
|
||||||
with:
|
with:
|
||||||
|
17
.github/workflows/package_raspbian.yml
vendored
17
.github/workflows/package_raspbian.yml
vendored
@ -47,18 +47,18 @@ jobs:
|
|||||||
- name: build .debpkg
|
- name: build .debpkg
|
||||||
run: |
|
run: |
|
||||||
mkdir -p .debpkg/DEBIAN
|
mkdir -p .debpkg/DEBIAN
|
||||||
mkdir -p .debpkg/usr/share/doc/meshtasticd/web
|
mkdir -p .debpkg/usr/share/meshtasticd/web
|
||||||
mkdir -p .debpkg/usr/sbin
|
mkdir -p .debpkg/usr/sbin
|
||||||
mkdir -p .debpkg/etc/meshtasticd
|
mkdir -p .debpkg/etc/meshtasticd
|
||||||
mkdir -p .debpkg/etc/meshtasticd/config.d
|
mkdir -p .debpkg/etc/meshtasticd/config.d
|
||||||
mkdir -p .debpkg/etc/meshtasticd/available.d
|
mkdir -p .debpkg/etc/meshtasticd/available.d
|
||||||
mkdir -p .debpkg/usr/lib/systemd/system/
|
mkdir -p .debpkg/usr/lib/systemd/system/
|
||||||
tar -xf build.tar -C .debpkg/usr/share/doc/meshtasticd/web
|
tar -xf build.tar -C .debpkg/usr/share/meshtasticd/web
|
||||||
shopt -s dotglob nullglob
|
shopt -s dotglob nullglob
|
||||||
if [ -d .debpkg/usr/share/doc/meshtasticd/web/build ]; then mv .debpkg/usr/share/doc/meshtasticd/web/build/* .debpkg/usr/share/doc/meshtasticd/web/; fi
|
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then mv .debpkg/usr/share/meshtasticd/web/build/* .debpkg/usr/share/meshtasticd/web/; fi
|
||||||
if [ -d .debpkg/usr/share/doc/meshtasticd/web/build ]; then rmdir .debpkg/usr/share/doc/meshtasticd/web/build; fi
|
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then rmdir .debpkg/usr/share/meshtasticd/web/build; fi
|
||||||
if [ -d .debpkg/usr/share/doc/meshtasticd/web/.DS_Store ]; then rm -f .debpkg/usr/share/doc/meshtasticd/web/.DS_Store; fi
|
if [ -d .debpkg/usr/share/meshtasticd/web/.DS_Store ]; then rm -f .debpkg/usr/share/meshtasticd/web/.DS_Store; fi
|
||||||
gunzip .debpkg/usr/share/doc/meshtasticd/web/ -r
|
gunzip .debpkg/usr/share/meshtasticd/web/ -r
|
||||||
cp release/meshtasticd_linux_aarch64 .debpkg/usr/sbin/meshtasticd
|
cp release/meshtasticd_linux_aarch64 .debpkg/usr/sbin/meshtasticd
|
||||||
cp bin/config-dist.yaml .debpkg/etc/meshtasticd/config.yaml
|
cp bin/config-dist.yaml .debpkg/etc/meshtasticd/config.yaml
|
||||||
cp bin/config.d/* .debpkg/etc/meshtasticd/available.d/ -r
|
cp bin/config.d/* .debpkg/etc/meshtasticd/available.d/ -r
|
||||||
@ -66,6 +66,11 @@ jobs:
|
|||||||
cp bin/meshtasticd.service .debpkg/usr/lib/systemd/system/meshtasticd.service
|
cp bin/meshtasticd.service .debpkg/usr/lib/systemd/system/meshtasticd.service
|
||||||
echo "/etc/meshtasticd/config.yaml" > .debpkg/DEBIAN/conffiles
|
echo "/etc/meshtasticd/config.yaml" > .debpkg/DEBIAN/conffiles
|
||||||
chmod +x .debpkg/DEBIAN/conffiles
|
chmod +x .debpkg/DEBIAN/conffiles
|
||||||
|
# Transition /usr/share/doc/meshtasticd to /usr/share/meshtasticd
|
||||||
|
echo "rm -rf /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/preinst
|
||||||
|
chmod +x .debpkg/DEBIAN/preinst
|
||||||
|
echo "ln -sf /usr/share/meshtasticd /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/postinst
|
||||||
|
chmod +x .debpkg/DEBIAN/postinst
|
||||||
|
|
||||||
- uses: jiro4989/build-deb-action@v3
|
- uses: jiro4989/build-deb-action@v3
|
||||||
with:
|
with:
|
||||||
|
17
.github/workflows/package_raspbian_armv7l.yml
vendored
17
.github/workflows/package_raspbian_armv7l.yml
vendored
@ -47,18 +47,18 @@ jobs:
|
|||||||
- name: build .debpkg
|
- name: build .debpkg
|
||||||
run: |
|
run: |
|
||||||
mkdir -p .debpkg/DEBIAN
|
mkdir -p .debpkg/DEBIAN
|
||||||
mkdir -p .debpkg/usr/share/doc/meshtasticd/web
|
mkdir -p .debpkg/usr/share/meshtasticd/web
|
||||||
mkdir -p .debpkg/usr/sbin
|
mkdir -p .debpkg/usr/sbin
|
||||||
mkdir -p .debpkg/etc/meshtasticd
|
mkdir -p .debpkg/etc/meshtasticd
|
||||||
mkdir -p .debpkg/etc/meshtasticd/config.d
|
mkdir -p .debpkg/etc/meshtasticd/config.d
|
||||||
mkdir -p .debpkg/etc/meshtasticd/available.d
|
mkdir -p .debpkg/etc/meshtasticd/available.d
|
||||||
mkdir -p .debpkg/usr/lib/systemd/system/
|
mkdir -p .debpkg/usr/lib/systemd/system/
|
||||||
tar -xf build.tar -C .debpkg/usr/share/doc/meshtasticd/web
|
tar -xf build.tar -C .debpkg/usr/share/meshtasticd/web
|
||||||
shopt -s dotglob nullglob
|
shopt -s dotglob nullglob
|
||||||
if [ -d .debpkg/usr/share/doc/meshtasticd/web/build ]; then mv .debpkg/usr/share/doc/meshtasticd/web/build/* .debpkg/usr/share/doc/meshtasticd/web/; fi
|
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then mv .debpkg/usr/share/meshtasticd/web/build/* .debpkg/usr/share/meshtasticd/web/; fi
|
||||||
if [ -d .debpkg/usr/share/doc/meshtasticd/web/build ]; then rmdir .debpkg/usr/share/doc/meshtasticd/web/build; fi
|
if [ -d .debpkg/usr/share/meshtasticd/web/build ]; then rmdir .debpkg/usr/share/meshtasticd/web/build; fi
|
||||||
if [ -d .debpkg/usr/share/doc/meshtasticd/web/.DS_Store ]; then rm -f .debpkg/usr/share/doc/meshtasticd/web/.DS_Store; fi
|
if [ -d .debpkg/usr/share/meshtasticd/web/.DS_Store ]; then rm -f .debpkg/usr/share/meshtasticd/web/.DS_Store; fi
|
||||||
gunzip .debpkg/usr/share/doc/meshtasticd/web/ -r
|
gunzip .debpkg/usr/share/meshtasticd/web/ -r
|
||||||
cp release/meshtasticd_linux_armv7l .debpkg/usr/sbin/meshtasticd
|
cp release/meshtasticd_linux_armv7l .debpkg/usr/sbin/meshtasticd
|
||||||
cp bin/config-dist.yaml .debpkg/etc/meshtasticd/config.yaml
|
cp bin/config-dist.yaml .debpkg/etc/meshtasticd/config.yaml
|
||||||
cp bin/config.d/* .debpkg/etc/meshtasticd/available.d/ -r
|
cp bin/config.d/* .debpkg/etc/meshtasticd/available.d/ -r
|
||||||
@ -66,6 +66,11 @@ jobs:
|
|||||||
cp bin/meshtasticd.service .debpkg/usr/lib/systemd/system/meshtasticd.service
|
cp bin/meshtasticd.service .debpkg/usr/lib/systemd/system/meshtasticd.service
|
||||||
echo "/etc/meshtasticd/config.yaml" > .debpkg/DEBIAN/conffiles
|
echo "/etc/meshtasticd/config.yaml" > .debpkg/DEBIAN/conffiles
|
||||||
chmod +x .debpkg/DEBIAN/conffiles
|
chmod +x .debpkg/DEBIAN/conffiles
|
||||||
|
# Transition /usr/share/doc/meshtasticd to /usr/share/meshtasticd
|
||||||
|
echo "rm -rf /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/preinst
|
||||||
|
chmod +x .debpkg/DEBIAN/preinst
|
||||||
|
echo "ln -sf /usr/share/meshtasticd /usr/share/doc/meshtasticd" > .debpkg/DEBIAN/postinst
|
||||||
|
chmod +x .debpkg/DEBIAN/postinst
|
||||||
|
|
||||||
- uses: jiro4989/build-deb-action@v3
|
- uses: jiro4989/build-deb-action@v3
|
||||||
with:
|
with:
|
||||||
|
6
.github/workflows/update_protobufs.yml
vendored
6
.github/workflows/update_protobufs.yml
vendored
@ -17,9 +17,9 @@ jobs:
|
|||||||
|
|
||||||
- name: Download nanopb
|
- name: Download nanopb
|
||||||
run: |
|
run: |
|
||||||
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.9-linux-x86.tar.gz
|
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.9.1-linux-x86.tar.gz
|
||||||
tar xvzf nanopb-0.4.9-linux-x86.tar.gz
|
tar xvzf nanopb-0.4.9.1-linux-x86.tar.gz
|
||||||
mv nanopb-0.4.9-linux-x86 nanopb-0.4.9
|
mv nanopb-0.4.9.1-linux-x86 nanopb-0.4.9
|
||||||
|
|
||||||
- name: Re-generate protocol buffers
|
- name: Re-generate protocol buffers
|
||||||
run: |
|
run: |
|
||||||
|
@ -4,31 +4,32 @@ cli:
|
|||||||
plugins:
|
plugins:
|
||||||
sources:
|
sources:
|
||||||
- id: trunk
|
- id: trunk
|
||||||
ref: v1.6.4
|
ref: v1.6.6
|
||||||
uri: https://github.com/trunk-io/plugins
|
uri: https://github.com/trunk-io/plugins
|
||||||
lint:
|
lint:
|
||||||
enabled:
|
enabled:
|
||||||
- trufflehog@3.83.6
|
- prettier@3.4.2
|
||||||
|
- trufflehog@3.86.1
|
||||||
- yamllint@1.35.1
|
- yamllint@1.35.1
|
||||||
- bandit@1.7.10
|
- bandit@1.8.0
|
||||||
- checkov@3.2.287
|
- checkov@3.2.334
|
||||||
- terrascan@1.19.9
|
- terrascan@1.19.9
|
||||||
- trivy@0.56.2
|
- trivy@0.58.0
|
||||||
#- trufflehog@3.63.2-rc0
|
#- trufflehog@3.63.2-rc0
|
||||||
- taplo@0.9.3
|
- taplo@0.9.3
|
||||||
- ruff@0.7.3
|
- ruff@0.8.3
|
||||||
- isort@5.13.2
|
- isort@5.13.2
|
||||||
- markdownlint@0.42.0
|
- markdownlint@0.43.0
|
||||||
- oxipng@9.1.2
|
- oxipng@9.1.3
|
||||||
- svgo@3.3.2
|
- svgo@3.3.2
|
||||||
- actionlint@1.7.4
|
- actionlint@1.7.4
|
||||||
- flake8@7.1.1
|
- flake8@7.1.1
|
||||||
- hadolint@2.12.0
|
- hadolint@2.12.1-beta
|
||||||
- shfmt@3.6.0
|
- shfmt@3.6.0
|
||||||
- shellcheck@0.10.0
|
- shellcheck@0.10.0
|
||||||
- black@24.10.0
|
- black@24.10.0
|
||||||
- git-diff-check
|
- git-diff-check
|
||||||
- gitleaks@8.21.1
|
- gitleaks@8.21.2
|
||||||
- clang-format@16.0.3
|
- clang-format@16.0.3
|
||||||
#- prettier@3.3.3
|
#- prettier@3.3.3
|
||||||
ignore:
|
ignore:
|
||||||
@ -39,11 +40,11 @@ runtimes:
|
|||||||
enabled:
|
enabled:
|
||||||
- python@3.10.8
|
- python@3.10.8
|
||||||
- go@1.21.0
|
- go@1.21.0
|
||||||
- node@18.12.1
|
- node@18.20.5
|
||||||
actions:
|
actions:
|
||||||
disabled:
|
disabled:
|
||||||
- trunk-announce
|
- trunk-announce
|
||||||
enabled:
|
enabled:
|
||||||
- trunk-fmt-pre-commit
|
- trunk-fmt-pre-commit
|
||||||
- trunk-check-pre-push
|
- trunk-check-pre-push
|
||||||
- trunk-upgrade-available
|
- trunk-upgrade-available
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
[nrf52_base]
|
[nrf52_base]
|
||||||
; Instead of the standard nordicnrf52 platform, we use our fork which has our added variant files
|
; Instead of the standard nordicnrf52 platform, we use our fork which has our added variant files
|
||||||
platform = platformio/nordicnrf52@^10.5.0
|
platform = platformio/nordicnrf52@^10.7.0
|
||||||
extends = arduino_base
|
extends = arduino_base
|
||||||
platform_packages =
|
platform_packages =
|
||||||
; our custom Git version until they merge our PR
|
; our custom Git version until they merge our PR
|
||||||
framework-arduinoadafruitnrf52 @ https://github.com/geeksville/Adafruit_nRF52_Arduino.git
|
framework-arduinoadafruitnrf52 @ https://github.com/geeksville/Adafruit_nRF52_Arduino.git
|
||||||
|
toolchain-gccarmnoneeabi@~1.90301.0
|
||||||
|
|
||||||
build_type = debug
|
build_type = debug
|
||||||
build_flags =
|
build_flags =
|
||||||
@ -28,4 +29,4 @@ lib_deps=
|
|||||||
|
|
||||||
lib_ignore =
|
lib_ignore =
|
||||||
BluetoothOTA
|
BluetoothOTA
|
||||||
lvgl
|
lvgl
|
@ -155,7 +155,7 @@ Logging:
|
|||||||
|
|
||||||
Webserver:
|
Webserver:
|
||||||
# Port: 443 # Port for Webserver & Webservices
|
# Port: 443 # Port for Webserver & Webservices
|
||||||
# RootPath: /usr/share/doc/meshtasticd/web # Root Dir of WebServer
|
# RootPath: /usr/share/meshtasticd/web # Root Dir of WebServer
|
||||||
|
|
||||||
General:
|
General:
|
||||||
MaxNodes: 200
|
MaxNodes: 200
|
||||||
|
9
bin/config.d/OpenWRT-One-mikroBUS-LR-IOT-CLICK.yaml
Normal file
9
bin/config.d/OpenWRT-One-mikroBUS-LR-IOT-CLICK.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
## https://www.mikroe.com/lr-iot-click
|
||||||
|
Lora:
|
||||||
|
Module: lr1110 # OpenWRT ONE mikroBUS with LR-IOT-CLICK
|
||||||
|
# CS: 25
|
||||||
|
IRQ: 10
|
||||||
|
Busy: 12
|
||||||
|
# Reset: 2
|
||||||
|
spidev: spidev2.0
|
||||||
|
DIO3_TCXO_VOLTAGE: 1.6
|
@ -48,6 +48,6 @@
|
|||||||
"require_upload_port": true,
|
"require_upload_port": true,
|
||||||
"wait_for_upload_port": true
|
"wait_for_upload_port": true
|
||||||
},
|
},
|
||||||
"url": "FIXME",
|
"url": "https://lilygo.cc/products/t-echo-lilygo",
|
||||||
"vendor": "TTGO"
|
"vendor": "LILYGO"
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ default_envs = tbeam
|
|||||||
;default_envs = tlora-v2
|
;default_envs = tlora-v2
|
||||||
;default_envs = tlora-v2-1-1_6
|
;default_envs = tlora-v2-1-1_6
|
||||||
;default_envs = tlora-v2-1-1_6-tcxo
|
;default_envs = tlora-v2-1-1_6-tcxo
|
||||||
|
;default_envs = tlora-v3-3-0-tcxo
|
||||||
;default_envs = tlora-t3s3-v1
|
;default_envs = tlora-t3s3-v1
|
||||||
;default_envs = t-echo
|
;default_envs = t-echo
|
||||||
;default_envs = canaryone
|
;default_envs = canaryone
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 00c9c9932ea50c14cdc44d497d2672a0031641ce
|
Subproject commit 2cffaf53e3faf1b6e41a8b8f05312f2f893be413
|
@ -409,13 +409,13 @@ void setup()
|
|||||||
digitalWrite(AQ_SET_PIN, HIGH);
|
digitalWrite(AQ_SET_PIN, HIGH);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef T_DECK
|
#if defined(T_DECK)
|
||||||
// enable keyboard
|
// enable keyboard
|
||||||
pinMode(KB_POWERON, OUTPUT);
|
pinMode(KB_POWERON, OUTPUT);
|
||||||
digitalWrite(KB_POWERON, HIGH);
|
digitalWrite(KB_POWERON, HIGH);
|
||||||
// There needs to be a delay after power on, give LILYGO-KEYBOARD some startup time
|
// There needs to be a delay after power on, give LILYGO-KEYBOARD some startup time
|
||||||
// otherwise keyboard and touch screen will not work
|
// otherwise keyboard and touch screen will not work
|
||||||
delay(800);
|
delay(200);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Currently only the tbeam has a PMU
|
// Currently only the tbeam has a PMU
|
||||||
@ -577,7 +577,6 @@ void setup()
|
|||||||
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::INA3221, meshtastic_TelemetrySensorType_INA3221);
|
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::INA3221, meshtastic_TelemetrySensorType_INA3221);
|
||||||
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::MAX17048, meshtastic_TelemetrySensorType_MAX17048);
|
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::MAX17048, meshtastic_TelemetrySensorType_MAX17048);
|
||||||
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::MCP9808, meshtastic_TelemetrySensorType_MCP9808);
|
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::MCP9808, meshtastic_TelemetrySensorType_MCP9808);
|
||||||
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::MCP9808, meshtastic_TelemetrySensorType_MCP9808);
|
|
||||||
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::SHT31, meshtastic_TelemetrySensorType_SHT31);
|
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::SHT31, meshtastic_TelemetrySensorType_SHT31);
|
||||||
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::SHTC3, meshtastic_TelemetrySensorType_SHTC3);
|
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::SHTC3, meshtastic_TelemetrySensorType_SHTC3);
|
||||||
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::LPS22HB, meshtastic_TelemetrySensorType_LPS22);
|
scannerToSensorsMap(i2cScanner, ScanI2C::DeviceType::LPS22HB, meshtastic_TelemetrySensorType_LPS22);
|
||||||
|
@ -48,8 +48,10 @@ template <typename T> bool LR11x0Interface<T>::init()
|
|||||||
digitalWrite(LR11X0_POWER_EN, HIGH);
|
digitalWrite(LR11X0_POWER_EN, HIGH);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ARCH_PORTDUINO
|
||||||
|
float tcxoVoltage = (float)settingsMap[dio3_tcxo_voltage] / 1000;
|
||||||
// FIXME: correct logic to default to not using TCXO if no voltage is specified for LR11x0_DIO3_TCXO_VOLTAGE
|
// FIXME: correct logic to default to not using TCXO if no voltage is specified for LR11x0_DIO3_TCXO_VOLTAGE
|
||||||
#if !defined(LR11X0_DIO3_TCXO_VOLTAGE)
|
#elif !defined(LR11X0_DIO3_TCXO_VOLTAGE)
|
||||||
float tcxoVoltage =
|
float tcxoVoltage =
|
||||||
0; // "TCXO reference voltage to be set on DIO3. Defaults to 1.6 V, set to 0 to skip." per
|
0; // "TCXO reference voltage to be set on DIO3. Defaults to 1.6 V, set to 0 to skip." per
|
||||||
// https://github.com/jgromes/RadioLib/blob/690a050ebb46e6097c5d00c371e961c1caa3b52e/src/modules/LR11x0/LR11x0.h#L471C26-L471C104
|
// https://github.com/jgromes/RadioLib/blob/690a050ebb46e6097c5d00c371e961c1caa3b52e/src/modules/LR11x0/LR11x0.h#L471C26-L471C104
|
||||||
|
@ -70,6 +70,78 @@ static unsigned char userprefs_admin_key_1[] = USERPREFS_USE_ADMIN_KEY_1;
|
|||||||
static unsigned char userprefs_admin_key_2[] = USERPREFS_USE_ADMIN_KEY_2;
|
static unsigned char userprefs_admin_key_2[] = USERPREFS_USE_ADMIN_KEY_2;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HELTEC_MESH_NODE_T114
|
||||||
|
|
||||||
|
uint32_t read8(uint8_t bits, uint8_t dummy, uint8_t cs, uint8_t sck, uint8_t mosi, uint8_t dc, uint8_t rst)
|
||||||
|
{
|
||||||
|
uint32_t ret = 0;
|
||||||
|
uint8_t SDAPIN = mosi;
|
||||||
|
pinMode(SDAPIN, INPUT_PULLUP);
|
||||||
|
digitalWrite(dc, HIGH);
|
||||||
|
for (int i = 0; i < dummy; i++) { // any dummy clocks
|
||||||
|
digitalWrite(sck, HIGH);
|
||||||
|
delay(1);
|
||||||
|
digitalWrite(sck, LOW);
|
||||||
|
delay(1);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < bits; i++) { // read results
|
||||||
|
ret <<= 1;
|
||||||
|
delay(1);
|
||||||
|
if (digitalRead(SDAPIN))
|
||||||
|
ret |= 1;
|
||||||
|
;
|
||||||
|
digitalWrite(sck, HIGH);
|
||||||
|
delay(1);
|
||||||
|
digitalWrite(sck, LOW);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
void write9(uint8_t val, uint8_t dc_val, uint8_t cs, uint8_t sck, uint8_t mosi, uint8_t dc, uint8_t rst)
|
||||||
|
{
|
||||||
|
pinMode(mosi, OUTPUT);
|
||||||
|
digitalWrite(dc, dc_val);
|
||||||
|
for (int i = 0; i < 8; i++) { // send command
|
||||||
|
digitalWrite(mosi, (val & 0x80) != 0);
|
||||||
|
delay(1);
|
||||||
|
digitalWrite(sck, HIGH);
|
||||||
|
delay(1);
|
||||||
|
digitalWrite(sck, LOW);
|
||||||
|
val <<= 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t readwrite8(uint8_t cmd, uint8_t bits, uint8_t dummy, uint8_t cs, uint8_t sck, uint8_t mosi, uint8_t dc, uint8_t rst)
|
||||||
|
{
|
||||||
|
digitalWrite(cs, LOW);
|
||||||
|
write9(cmd, 0, cs, sck, mosi, dc, rst);
|
||||||
|
uint32_t ret = read8(bits, dummy, cs, sck, mosi, dc, rst);
|
||||||
|
digitalWrite(cs, HIGH);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t get_st7789_id(uint8_t cs, uint8_t sck, uint8_t mosi, uint8_t dc, uint8_t rst)
|
||||||
|
{
|
||||||
|
pinMode(cs, OUTPUT);
|
||||||
|
digitalWrite(cs, HIGH);
|
||||||
|
pinMode(cs, OUTPUT);
|
||||||
|
pinMode(sck, OUTPUT);
|
||||||
|
pinMode(mosi, OUTPUT);
|
||||||
|
pinMode(dc, OUTPUT);
|
||||||
|
pinMode(rst, OUTPUT);
|
||||||
|
digitalWrite(rst, LOW); // Hardware Reset
|
||||||
|
delay(10);
|
||||||
|
digitalWrite(rst, HIGH);
|
||||||
|
delay(10);
|
||||||
|
|
||||||
|
uint32_t ID = 0;
|
||||||
|
ID = readwrite8(0x04, 24, 1, cs, sck, mosi, dc, rst);
|
||||||
|
ID = readwrite8(0x04, 24, 1, cs, sck, mosi, dc, rst); // ST7789 needs twice
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
bool meshtastic_DeviceState_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_iter_t *field)
|
bool meshtastic_DeviceState_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_iter_t *field)
|
||||||
{
|
{
|
||||||
if (ostream) {
|
if (ostream) {
|
||||||
@ -489,6 +561,12 @@ void NodeDB::installDefaultConfig(bool preserveKey = false)
|
|||||||
#if defined(ST7735_CS) || defined(USE_EINK) || defined(ILI9341_DRIVER) || defined(ILI9342_DRIVER) || defined(ST7789_CS) || \
|
#if defined(ST7735_CS) || defined(USE_EINK) || defined(ILI9341_DRIVER) || defined(ILI9342_DRIVER) || defined(ST7789_CS) || \
|
||||||
defined(HX8357_CS) || defined(USE_ST7789)
|
defined(HX8357_CS) || defined(USE_ST7789)
|
||||||
bool hasScreen = true;
|
bool hasScreen = true;
|
||||||
|
#ifdef HELTEC_MESH_NODE_T114
|
||||||
|
uint32_t st7789_id = get_st7789_id(ST7789_NSS, ST7789_SCK, ST7789_SDA, ST7789_RS, ST7789_RESET);
|
||||||
|
if (st7789_id == 0xFFFFFF) {
|
||||||
|
hasScreen = false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#elif ARCH_PORTDUINO
|
#elif ARCH_PORTDUINO
|
||||||
bool hasScreen = false;
|
bool hasScreen = false;
|
||||||
if (settingsMap[displayPanel])
|
if (settingsMap[displayPanel])
|
||||||
@ -541,7 +619,7 @@ void NodeDB::initConfigIntervals()
|
|||||||
|
|
||||||
config.display.screen_on_secs = default_screen_on_secs;
|
config.display.screen_on_secs = default_screen_on_secs;
|
||||||
|
|
||||||
#if defined(T_WATCH_S3) || defined(T_DECK) || defined(RAK14014)
|
#if defined(T_WATCH_S3) || defined(T_DECK) || defined(MESH_TAB) || defined(RAK14014)
|
||||||
config.power.is_power_saving = true;
|
config.power.is_power_saving = true;
|
||||||
config.display.screen_on_secs = 30;
|
config.display.screen_on_secs = 30;
|
||||||
config.power.wait_bluetooth_secs = 30;
|
config.power.wait_bluetooth_secs = 30;
|
||||||
@ -774,12 +852,12 @@ void NodeDB::installDefaultDeviceState()
|
|||||||
#ifdef USERPREFS_CONFIG_OWNER_LONG_NAME
|
#ifdef USERPREFS_CONFIG_OWNER_LONG_NAME
|
||||||
snprintf(owner.long_name, sizeof(owner.long_name), USERPREFS_CONFIG_OWNER_LONG_NAME);
|
snprintf(owner.long_name, sizeof(owner.long_name), USERPREFS_CONFIG_OWNER_LONG_NAME);
|
||||||
#else
|
#else
|
||||||
snprintf(owner.long_name, sizeof(owner.long_name), "Meshtastic %02x%02x", ourMacAddr[4], ourMacAddr[5]);
|
snprintf(owner.long_name, sizeof(owner.long_name), "Meshtastic %04x", getNodeNum() & 0x0ffff);
|
||||||
#endif
|
#endif
|
||||||
#ifdef USERPREFS_CONFIG_OWNER_SHORT_NAME
|
#ifdef USERPREFS_CONFIG_OWNER_SHORT_NAME
|
||||||
snprintf(owner.short_name, sizeof(owner.short_name), USERPREFS_CONFIG_OWNER_SHORT_NAME);
|
snprintf(owner.short_name, sizeof(owner.short_name), USERPREFS_CONFIG_OWNER_SHORT_NAME);
|
||||||
#else
|
#else
|
||||||
snprintf(owner.short_name, sizeof(owner.short_name), "%02x%02x", ourMacAddr[4], ourMacAddr[5]);
|
snprintf(owner.short_name, sizeof(owner.short_name), "%04x", getNodeNum() & 0x0ffff);
|
||||||
#endif
|
#endif
|
||||||
snprintf(owner.id, sizeof(owner.id), "!%08x", getNodeNum()); // Default node ID now based on nodenum
|
snprintf(owner.id, sizeof(owner.id), "!%08x", getNodeNum()); // Default node ID now based on nodenum
|
||||||
memcpy(owner.macaddr, ourMacAddr, sizeof(owner.macaddr));
|
memcpy(owner.macaddr, ourMacAddr, sizeof(owner.macaddr));
|
||||||
@ -1422,4 +1500,4 @@ void recordCriticalError(meshtastic_CriticalErrorCode code, uint32_t address, co
|
|||||||
LOG_ERROR("A critical failure occurred, portduino is exiting");
|
LOG_ERROR("A critical failure occurred, portduino is exiting");
|
||||||
exit(2);
|
exit(2);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -50,9 +50,7 @@ template <typename T> bool SX126xInterface<T>::init()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ARCH_PORTDUINO
|
#if ARCH_PORTDUINO
|
||||||
float tcxoVoltage = 0;
|
float tcxoVoltage = (float)settingsMap[dio3_tcxo_voltage] / 1000;
|
||||||
if (settingsMap[dio3_tcxo_voltage])
|
|
||||||
tcxoVoltage = 1.8;
|
|
||||||
if (settingsMap[sx126x_ant_sw] != RADIOLIB_NC) {
|
if (settingsMap[sx126x_ant_sw] != RADIOLIB_NC) {
|
||||||
digitalWrite(settingsMap[sx126x_ant_sw], HIGH);
|
digitalWrite(settingsMap[sx126x_ant_sw], HIGH);
|
||||||
pinMode(settingsMap[sx126x_ant_sw], OUTPUT);
|
pinMode(settingsMap[sx126x_ant_sw], OUTPUT);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/admin.pb.h"
|
#include "meshtastic/admin.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_ADMIN_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_ADMIN_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_ADMIN_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_ADMIN_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/apponly.pb.h"
|
#include "meshtastic/apponly.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_APPONLY_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_APPONLY_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_APPONLY_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_APPONLY_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/atak.pb.h"
|
#include "meshtastic/atak.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_ATAK_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_ATAK_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_ATAK_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_ATAK_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/cannedmessages.pb.h"
|
#include "meshtastic/cannedmessages.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_CANNEDMESSAGES_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_CANNEDMESSAGES_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_CANNEDMESSAGES_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_CANNEDMESSAGES_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/channel.pb.h"
|
#include "meshtastic/channel.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_CHANNEL_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_CHANNEL_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_CHANNEL_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_CHANNEL_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/clientonly.pb.h"
|
#include "meshtastic/clientonly.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_CLIENTONLY_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_CLIENTONLY_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_CLIENTONLY_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_CLIENTONLY_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/config.pb.h"
|
#include "meshtastic/config.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_CONFIG_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_CONFIG_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_CONFIG_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_CONFIG_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/connection_status.pb.h"
|
#include "meshtastic/connection_status.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_CONNECTION_STATUS_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_CONNECTION_STATUS_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_CONNECTION_STATUS_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_CONNECTION_STATUS_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/device_ui.pb.h"
|
#include "meshtastic/device_ui.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_DEVICE_UI_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_DEVICE_UI_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_DEVICE_UI_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_DEVICE_UI_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/deviceonly.pb.h"
|
#include "meshtastic/deviceonly.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_DEVICEONLY_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_DEVICEONLY_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_DEVICEONLY_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_DEVICEONLY_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/localonly.pb.h"
|
#include "meshtastic/localonly.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_LOCALONLY_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_LOCALONLY_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_LOCALONLY_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_LOCALONLY_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/mesh.pb.h"
|
#include "meshtastic/mesh.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_MESH_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_MESH_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_MESH_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_MESH_PB_H_INCLUDED
|
||||||
@ -220,6 +220,9 @@ typedef enum _meshtastic_HardwareModel {
|
|||||||
the same frame format.
|
the same frame format.
|
||||||
Runs on linux, see https://github.com/Jorropo/routastic */
|
Runs on linux, see https://github.com/Jorropo/routastic */
|
||||||
meshtastic_HardwareModel_ROUTASTIC = 85,
|
meshtastic_HardwareModel_ROUTASTIC = 85,
|
||||||
|
/* Mesh-Tab, esp32 based
|
||||||
|
https://github.com/valzzu/Mesh-Tab */
|
||||||
|
meshtastic_HardwareModel_MESH_TAB = 86,
|
||||||
/* ------------------------------------------------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
Reserved ID For developing private Ports. These will show up in live traffic sparsely, so we can use a high number. Keep it within 8 bits.
|
Reserved ID For developing private Ports. These will show up in live traffic sparsely, so we can use a high number. Keep it within 8 bits.
|
||||||
------------------------------------------------------------------------------------------------------------------------------------------ */
|
------------------------------------------------------------------------------------------------------------------------------------------ */
|
||||||
@ -414,6 +417,8 @@ typedef enum _meshtastic_MeshPacket_Priority {
|
|||||||
meshtastic_MeshPacket_Priority_RESPONSE = 80,
|
meshtastic_MeshPacket_Priority_RESPONSE = 80,
|
||||||
/* Higher priority for specific message types (portnums) to distinguish between other reliable packets. */
|
/* Higher priority for specific message types (portnums) to distinguish between other reliable packets. */
|
||||||
meshtastic_MeshPacket_Priority_HIGH = 100,
|
meshtastic_MeshPacket_Priority_HIGH = 100,
|
||||||
|
/* Higher priority alert message used for critical alerts which take priority over other reliable packets. */
|
||||||
|
meshtastic_MeshPacket_Priority_ALERT = 110,
|
||||||
/* Ack/naks are sent with very high priority to ensure that retransmission
|
/* Ack/naks are sent with very high priority to ensure that retransmission
|
||||||
stops as soon as possible */
|
stops as soon as possible */
|
||||||
meshtastic_MeshPacket_Priority_ACK = 120,
|
meshtastic_MeshPacket_Priority_ACK = 120,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/module_config.pb.h"
|
#include "meshtastic/module_config.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_MODULE_CONFIG_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_MODULE_CONFIG_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_MODULE_CONFIG_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_MODULE_CONFIG_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/mqtt.pb.h"
|
#include "meshtastic/mqtt.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_MQTT_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_MQTT_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_MQTT_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_MQTT_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/paxcount.pb.h"
|
#include "meshtastic/paxcount.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_PAXCOUNT_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_PAXCOUNT_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_PAXCOUNT_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_PAXCOUNT_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/portnums.pb.h"
|
#include "meshtastic/portnums.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_PORTNUMS_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_PORTNUMS_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_PORTNUMS_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_PORTNUMS_PB_H_INCLUDED
|
||||||
@ -72,6 +72,8 @@ typedef enum _meshtastic_PortNum {
|
|||||||
/* Same as Text Message but originating from Detection Sensor Module.
|
/* Same as Text Message but originating from Detection Sensor Module.
|
||||||
NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9 */
|
NOTE: This portnum traffic is not sent to the public MQTT starting at firmware version 2.2.9 */
|
||||||
meshtastic_PortNum_DETECTION_SENSOR_APP = 10,
|
meshtastic_PortNum_DETECTION_SENSOR_APP = 10,
|
||||||
|
/* Same as Text Message but used for critical alerts. */
|
||||||
|
meshtastic_PortNum_ALERT_APP = 11,
|
||||||
/* Provides a 'ping' service that replies to any packet it receives.
|
/* Provides a 'ping' service that replies to any packet it receives.
|
||||||
Also serves as a small example module.
|
Also serves as a small example module.
|
||||||
ENCODING: ASCII Plaintext */
|
ENCODING: ASCII Plaintext */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/powermon.pb.h"
|
#include "meshtastic/powermon.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_POWERMON_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_POWERMON_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_POWERMON_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_POWERMON_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/remote_hardware.pb.h"
|
#include "meshtastic/remote_hardware.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_REMOTE_HARDWARE_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_REMOTE_HARDWARE_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_REMOTE_HARDWARE_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_REMOTE_HARDWARE_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/rtttl.pb.h"
|
#include "meshtastic/rtttl.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_RTTTL_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_RTTTL_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_RTTTL_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_RTTTL_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/storeforward.pb.h"
|
#include "meshtastic/storeforward.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_STOREFORWARD_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_STOREFORWARD_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_STOREFORWARD_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_STOREFORWARD_PB_H_INCLUDED
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/telemetry.pb.h"
|
#include "meshtastic/telemetry.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_TELEMETRY_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_TELEMETRY_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_TELEMETRY_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_TELEMETRY_PB_H_INCLUDED
|
||||||
@ -79,7 +79,9 @@ typedef enum _meshtastic_TelemetrySensorType {
|
|||||||
/* SCD40/SCD41 CO2, humidity, temperature sensor */
|
/* SCD40/SCD41 CO2, humidity, temperature sensor */
|
||||||
meshtastic_TelemetrySensorType_SCD4X = 32,
|
meshtastic_TelemetrySensorType_SCD4X = 32,
|
||||||
/* ClimateGuard RadSens, radiation, Geiger-Muller Tube */
|
/* ClimateGuard RadSens, radiation, Geiger-Muller Tube */
|
||||||
meshtastic_TelemetrySensorType_RADSENS = 33
|
meshtastic_TelemetrySensorType_RADSENS = 33,
|
||||||
|
/* High accuracy current and voltage */
|
||||||
|
meshtastic_TelemetrySensorType_INA226 = 34
|
||||||
} meshtastic_TelemetrySensorType;
|
} meshtastic_TelemetrySensorType;
|
||||||
|
|
||||||
/* Struct definitions */
|
/* Struct definitions */
|
||||||
@ -304,8 +306,8 @@ extern "C" {
|
|||||||
|
|
||||||
/* Helper constants for enums */
|
/* Helper constants for enums */
|
||||||
#define _meshtastic_TelemetrySensorType_MIN meshtastic_TelemetrySensorType_SENSOR_UNSET
|
#define _meshtastic_TelemetrySensorType_MIN meshtastic_TelemetrySensorType_SENSOR_UNSET
|
||||||
#define _meshtastic_TelemetrySensorType_MAX meshtastic_TelemetrySensorType_RADSENS
|
#define _meshtastic_TelemetrySensorType_MAX meshtastic_TelemetrySensorType_INA226
|
||||||
#define _meshtastic_TelemetrySensorType_ARRAYSIZE ((meshtastic_TelemetrySensorType)(meshtastic_TelemetrySensorType_RADSENS+1))
|
#define _meshtastic_TelemetrySensorType_ARRAYSIZE ((meshtastic_TelemetrySensorType)(meshtastic_TelemetrySensorType_INA226+1))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb constant definitions */
|
/* Automatically generated nanopb constant definitions */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#include "meshtastic/xmodem.pb.h"
|
#include "meshtastic/xmodem.pb.h"
|
||||||
#if PB_PROTO_HEADER_VERSION != 40
|
#if PB_PROTO_HEADER_VERSION != 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Automatically generated nanopb header */
|
/* Automatically generated nanopb header */
|
||||||
/* Generated by nanopb-0.4.9 */
|
/* Generated by nanopb-0.4.9.1 */
|
||||||
|
|
||||||
#ifndef PB_MESHTASTIC_MESHTASTIC_XMODEM_PB_H_INCLUDED
|
#ifndef PB_MESHTASTIC_MESHTASTIC_XMODEM_PB_H_INCLUDED
|
||||||
#define PB_MESHTASTIC_MESHTASTIC_XMODEM_PB_H_INCLUDED
|
#define PB_MESHTASTIC_MESHTASTIC_XMODEM_PB_H_INCLUDED
|
||||||
|
@ -93,6 +93,7 @@ void registerHandlers(HTTPServer *insecureServer, HTTPSServer *secureServer)
|
|||||||
ResourceNode *nodeJsonScanNetworks = new ResourceNode("/json/scanNetworks", "GET", &handleScanNetworks);
|
ResourceNode *nodeJsonScanNetworks = new ResourceNode("/json/scanNetworks", "GET", &handleScanNetworks);
|
||||||
ResourceNode *nodeJsonBlinkLED = new ResourceNode("/json/blink", "POST", &handleBlinkLED);
|
ResourceNode *nodeJsonBlinkLED = new ResourceNode("/json/blink", "POST", &handleBlinkLED);
|
||||||
ResourceNode *nodeJsonReport = new ResourceNode("/json/report", "GET", &handleReport);
|
ResourceNode *nodeJsonReport = new ResourceNode("/json/report", "GET", &handleReport);
|
||||||
|
ResourceNode *nodeJsonNodes = new ResourceNode("/json/nodes", "GET", &handleNodes);
|
||||||
ResourceNode *nodeJsonFsBrowseStatic = new ResourceNode("/json/fs/browse/static", "GET", &handleFsBrowseStatic);
|
ResourceNode *nodeJsonFsBrowseStatic = new ResourceNode("/json/fs/browse/static", "GET", &handleFsBrowseStatic);
|
||||||
ResourceNode *nodeJsonDelete = new ResourceNode("/json/fs/delete/static", "DELETE", &handleFsDeleteStatic);
|
ResourceNode *nodeJsonDelete = new ResourceNode("/json/fs/delete/static", "DELETE", &handleFsDeleteStatic);
|
||||||
|
|
||||||
@ -112,6 +113,7 @@ void registerHandlers(HTTPServer *insecureServer, HTTPSServer *secureServer)
|
|||||||
secureServer->registerNode(nodeJsonFsBrowseStatic);
|
secureServer->registerNode(nodeJsonFsBrowseStatic);
|
||||||
secureServer->registerNode(nodeJsonDelete);
|
secureServer->registerNode(nodeJsonDelete);
|
||||||
secureServer->registerNode(nodeJsonReport);
|
secureServer->registerNode(nodeJsonReport);
|
||||||
|
secureServer->registerNode(nodeJsonNodes);
|
||||||
// secureServer->registerNode(nodeUpdateFs);
|
// secureServer->registerNode(nodeUpdateFs);
|
||||||
// secureServer->registerNode(nodeDeleteFs);
|
// secureServer->registerNode(nodeDeleteFs);
|
||||||
secureServer->registerNode(nodeAdmin);
|
secureServer->registerNode(nodeAdmin);
|
||||||
@ -680,6 +682,78 @@ void handleReport(HTTPRequest *req, HTTPResponse *res)
|
|||||||
delete value;
|
delete value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void handleNodes(HTTPRequest *req, HTTPResponse *res)
|
||||||
|
{
|
||||||
|
ResourceParameters *params = req->getParams();
|
||||||
|
std::string content;
|
||||||
|
|
||||||
|
if (!params->getQueryParameter("content", content)) {
|
||||||
|
content = "json";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (content == "json") {
|
||||||
|
res->setHeader("Content-Type", "application/json");
|
||||||
|
res->setHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
res->setHeader("Access-Control-Allow-Methods", "GET");
|
||||||
|
} else {
|
||||||
|
res->setHeader("Content-Type", "text/html");
|
||||||
|
res->println("<pre>");
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONArray nodesArray;
|
||||||
|
|
||||||
|
uint32_t readIndex = 0;
|
||||||
|
const meshtastic_NodeInfoLite *tempNodeInfo = nodeDB->readNextMeshNode(readIndex);
|
||||||
|
while (tempNodeInfo != NULL) {
|
||||||
|
if (tempNodeInfo->has_user) {
|
||||||
|
JSONObject node;
|
||||||
|
|
||||||
|
char id[16];
|
||||||
|
snprintf(id, sizeof(id), "!%08x", tempNodeInfo->num);
|
||||||
|
|
||||||
|
node["id"] = new JSONValue(id);
|
||||||
|
node["snr"] = new JSONValue(tempNodeInfo->snr);
|
||||||
|
node["via_mqtt"] = new JSONValue(BoolToString(tempNodeInfo->via_mqtt));
|
||||||
|
node["last_heard"] = new JSONValue((int)tempNodeInfo->last_heard);
|
||||||
|
node["position"] = new JSONValue();
|
||||||
|
|
||||||
|
if (nodeDB->hasValidPosition(tempNodeInfo)) {
|
||||||
|
JSONObject position;
|
||||||
|
position["latitude"] = new JSONValue((float)tempNodeInfo->position.latitude_i * 1e-7);
|
||||||
|
position["longitude"] = new JSONValue((float)tempNodeInfo->position.longitude_i * 1e-7);
|
||||||
|
position["altitude"] = new JSONValue((int)tempNodeInfo->position.altitude);
|
||||||
|
node["position"] = new JSONValue(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject user;
|
||||||
|
node["long_name"] = new JSONValue(tempNodeInfo->user.long_name);
|
||||||
|
node["short_name"] = new JSONValue(tempNodeInfo->user.short_name);
|
||||||
|
char macStr[18];
|
||||||
|
snprintf(macStr, sizeof(macStr), "%02X:%02X:%02X:%02X:%02X:%02X", tempNodeInfo->user.macaddr[0],
|
||||||
|
tempNodeInfo->user.macaddr[1], tempNodeInfo->user.macaddr[2], tempNodeInfo->user.macaddr[3],
|
||||||
|
tempNodeInfo->user.macaddr[4], tempNodeInfo->user.macaddr[5]);
|
||||||
|
node["mac_address"] = new JSONValue(macStr);
|
||||||
|
node["hw_model"] = new JSONValue(tempNodeInfo->user.hw_model);
|
||||||
|
|
||||||
|
nodesArray.push_back(new JSONValue(node));
|
||||||
|
}
|
||||||
|
tempNodeInfo = nodeDB->readNextMeshNode(readIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
// collect data to inner data object
|
||||||
|
JSONObject jsonObjInner;
|
||||||
|
jsonObjInner["nodes"] = new JSONValue(nodesArray);
|
||||||
|
|
||||||
|
// create json output structure
|
||||||
|
JSONObject jsonObjOuter;
|
||||||
|
jsonObjOuter["data"] = new JSONValue(jsonObjInner);
|
||||||
|
jsonObjOuter["status"] = new JSONValue("ok");
|
||||||
|
// serialize and write it to the stream
|
||||||
|
JSONValue *value = new JSONValue(jsonObjOuter);
|
||||||
|
res->print(value->Stringify().c_str());
|
||||||
|
delete value;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This supports the Apple Captive Network Assistant (CNA) Portal
|
This supports the Apple Captive Network Assistant (CNA) Portal
|
||||||
*/
|
*/
|
||||||
|
@ -13,6 +13,7 @@ void handleFsBrowseStatic(HTTPRequest *req, HTTPResponse *res);
|
|||||||
void handleFsDeleteStatic(HTTPRequest *req, HTTPResponse *res);
|
void handleFsDeleteStatic(HTTPRequest *req, HTTPResponse *res);
|
||||||
void handleBlinkLED(HTTPRequest *req, HTTPResponse *res);
|
void handleBlinkLED(HTTPRequest *req, HTTPResponse *res);
|
||||||
void handleReport(HTTPRequest *req, HTTPResponse *res);
|
void handleReport(HTTPRequest *req, HTTPResponse *res);
|
||||||
|
void handleNodes(HTTPRequest *req, HTTPResponse *res);
|
||||||
void handleUpdateFs(HTTPRequest *req, HTTPResponse *res);
|
void handleUpdateFs(HTTPRequest *req, HTTPResponse *res);
|
||||||
void handleDeleteFsContent(HTTPRequest *req, HTTPResponse *res);
|
void handleDeleteFsContent(HTTPRequest *req, HTTPResponse *res);
|
||||||
void handleFs(HTTPRequest *req, HTTPResponse *res);
|
void handleFs(HTTPRequest *req, HTTPResponse *res);
|
||||||
|
@ -74,7 +74,7 @@
|
|||||||
#include "modules/StoreForwardModule.h"
|
#include "modules/StoreForwardModule.h"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)
|
#if defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040) || defined(ARCH_PORTDUINO)
|
||||||
#if !MESHTASTIC_EXCLUDE_EXTERNALNOTIFICATION
|
#if !MESHTASTIC_EXCLUDE_EXTERNALNOTIFICATION
|
||||||
#include "modules/ExternalNotificationModule.h"
|
#include "modules/ExternalNotificationModule.h"
|
||||||
#endif
|
#endif
|
||||||
@ -223,7 +223,7 @@ void setupModules()
|
|||||||
storeForwardModule = new StoreForwardModule();
|
storeForwardModule = new StoreForwardModule();
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040)
|
#if defined(ARCH_ESP32) || defined(ARCH_NRF52) || defined(ARCH_RP2040) || defined(ARCH_PORTDUINO)
|
||||||
#if !MESHTASTIC_EXCLUDE_EXTERNALNOTIFICATION
|
#if !MESHTASTIC_EXCLUDE_EXTERNALNOTIFICATION
|
||||||
externalNotificationModule = new ExternalNotificationModule();
|
externalNotificationModule = new ExternalNotificationModule();
|
||||||
#endif
|
#endif
|
||||||
@ -245,4 +245,4 @@ void setupModules()
|
|||||||
// NOTE! This module must be added LAST because it likes to check for replies from other modules and avoid sending extra
|
// NOTE! This module must be added LAST because it likes to check for replies from other modules and avoid sending extra
|
||||||
// acks
|
// acks
|
||||||
routingModule = new RoutingModule();
|
routingModule = new RoutingModule();
|
||||||
}
|
}
|
||||||
|
@ -73,11 +73,11 @@ void StoreForwardModule::populatePSRAM()
|
|||||||
LOG_DEBUG("Before PSRAM init: heap %d/%d PSRAM %d/%d", memGet.getFreeHeap(), memGet.getHeapSize(), memGet.getFreePsram(),
|
LOG_DEBUG("Before PSRAM init: heap %d/%d PSRAM %d/%d", memGet.getFreeHeap(), memGet.getHeapSize(), memGet.getFreePsram(),
|
||||||
memGet.getPsramSize());
|
memGet.getPsramSize());
|
||||||
|
|
||||||
/* Use a maximum of 2/3 the available PSRAM unless otherwise specified.
|
/* Use a maximum of 3/4 the available PSRAM unless otherwise specified.
|
||||||
Note: This needs to be done after every thing that would use PSRAM
|
Note: This needs to be done after every thing that would use PSRAM
|
||||||
*/
|
*/
|
||||||
uint32_t numberOfPackets =
|
uint32_t numberOfPackets =
|
||||||
(this->records ? this->records : (((memGet.getFreePsram() / 3) * 2) / sizeof(PacketHistoryStruct)));
|
(this->records ? this->records : (((memGet.getFreePsram() / 4) * 3) / sizeof(PacketHistoryStruct)));
|
||||||
this->records = numberOfPackets;
|
this->records = numberOfPackets;
|
||||||
#if defined(ARCH_ESP32)
|
#if defined(ARCH_ESP32)
|
||||||
this->packetHistory = static_cast<PacketHistoryStruct *>(ps_calloc(numberOfPackets, sizeof(PacketHistoryStruct)));
|
this->packetHistory = static_cast<PacketHistoryStruct *>(ps_calloc(numberOfPackets, sizeof(PacketHistoryStruct)));
|
||||||
@ -198,6 +198,9 @@ void StoreForwardModule::historyAdd(const meshtastic_MeshPacket &mp)
|
|||||||
this->packetHistory[this->packetHistoryTotalCount].to = mp.to;
|
this->packetHistory[this->packetHistoryTotalCount].to = mp.to;
|
||||||
this->packetHistory[this->packetHistoryTotalCount].channel = mp.channel;
|
this->packetHistory[this->packetHistoryTotalCount].channel = mp.channel;
|
||||||
this->packetHistory[this->packetHistoryTotalCount].from = getFrom(&mp);
|
this->packetHistory[this->packetHistoryTotalCount].from = getFrom(&mp);
|
||||||
|
this->packetHistory[this->packetHistoryTotalCount].id = mp.id;
|
||||||
|
this->packetHistory[this->packetHistoryTotalCount].reply_id = p.reply_id;
|
||||||
|
this->packetHistory[this->packetHistoryTotalCount].emoji = (bool)p.emoji;
|
||||||
this->packetHistory[this->packetHistoryTotalCount].payload_size = p.payload.size;
|
this->packetHistory[this->packetHistoryTotalCount].payload_size = p.payload.size;
|
||||||
memcpy(this->packetHistory[this->packetHistoryTotalCount].payload, p.payload.bytes, meshtastic_Constants_DATA_PAYLOAD_LEN);
|
memcpy(this->packetHistory[this->packetHistoryTotalCount].payload, p.payload.bytes, meshtastic_Constants_DATA_PAYLOAD_LEN);
|
||||||
|
|
||||||
@ -244,8 +247,11 @@ meshtastic_MeshPacket *StoreForwardModule::preparePayload(NodeNum dest, uint32_t
|
|||||||
|
|
||||||
p->to = local ? this->packetHistory[i].to : dest; // PhoneAPI can handle original `to`
|
p->to = local ? this->packetHistory[i].to : dest; // PhoneAPI can handle original `to`
|
||||||
p->from = this->packetHistory[i].from;
|
p->from = this->packetHistory[i].from;
|
||||||
|
p->id = this->packetHistory[i].id;
|
||||||
p->channel = this->packetHistory[i].channel;
|
p->channel = this->packetHistory[i].channel;
|
||||||
|
p->decoded.reply_id = this->packetHistory[i].reply_id;
|
||||||
p->rx_time = this->packetHistory[i].time;
|
p->rx_time = this->packetHistory[i].time;
|
||||||
|
p->decoded.emoji = (uint32_t)this->packetHistory[i].emoji;
|
||||||
|
|
||||||
// Let's assume that if the server received the S&F request that the client is in range.
|
// Let's assume that if the server received the S&F request that the client is in range.
|
||||||
// TODO: Make this configurable.
|
// TODO: Make this configurable.
|
||||||
@ -617,4 +623,4 @@ StoreForwardModule::StoreForwardModule()
|
|||||||
disable();
|
disable();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
@ -13,7 +13,10 @@ struct PacketHistoryStruct {
|
|||||||
uint32_t time;
|
uint32_t time;
|
||||||
uint32_t to;
|
uint32_t to;
|
||||||
uint32_t from;
|
uint32_t from;
|
||||||
|
uint32_t id;
|
||||||
uint8_t channel;
|
uint8_t channel;
|
||||||
|
uint32_t reply_id;
|
||||||
|
bool emoji;
|
||||||
uint8_t payload[meshtastic_Constants_DATA_PAYLOAD_LEN];
|
uint8_t payload[meshtastic_Constants_DATA_PAYLOAD_LEN];
|
||||||
pb_size_t payload_size;
|
pb_size_t payload_size;
|
||||||
};
|
};
|
||||||
|
@ -113,12 +113,18 @@ bool AirQualityTelemetryModule::getAirQualityTelemetry(meshtastic_Telemetry *m)
|
|||||||
|
|
||||||
m->time = getTime();
|
m->time = getTime();
|
||||||
m->which_variant = meshtastic_Telemetry_air_quality_metrics_tag;
|
m->which_variant = meshtastic_Telemetry_air_quality_metrics_tag;
|
||||||
|
m->variant.air_quality_metrics.has_pm10_standard = true;
|
||||||
m->variant.air_quality_metrics.pm10_standard = data.pm10_standard;
|
m->variant.air_quality_metrics.pm10_standard = data.pm10_standard;
|
||||||
|
m->variant.air_quality_metrics.has_pm25_standard = true;
|
||||||
m->variant.air_quality_metrics.pm25_standard = data.pm25_standard;
|
m->variant.air_quality_metrics.pm25_standard = data.pm25_standard;
|
||||||
|
m->variant.air_quality_metrics.has_pm100_standard = true;
|
||||||
m->variant.air_quality_metrics.pm100_standard = data.pm100_standard;
|
m->variant.air_quality_metrics.pm100_standard = data.pm100_standard;
|
||||||
|
|
||||||
|
m->variant.air_quality_metrics.has_pm10_environmental = true;
|
||||||
m->variant.air_quality_metrics.pm10_environmental = data.pm10_env;
|
m->variant.air_quality_metrics.pm10_environmental = data.pm10_env;
|
||||||
|
m->variant.air_quality_metrics.has_pm25_environmental = true;
|
||||||
m->variant.air_quality_metrics.pm25_environmental = data.pm25_env;
|
m->variant.air_quality_metrics.pm25_environmental = data.pm25_env;
|
||||||
|
m->variant.air_quality_metrics.has_pm100_environmental = true;
|
||||||
m->variant.air_quality_metrics.pm100_environmental = data.pm100_env;
|
m->variant.air_quality_metrics.pm100_environmental = data.pm100_env;
|
||||||
|
|
||||||
LOG_INFO("Send: PM1.0(Standard)=%i, PM2.5(Standard)=%i, PM10.0(Standard)=%i", m->variant.air_quality_metrics.pm10_standard,
|
LOG_INFO("Send: PM1.0(Standard)=%i, PM2.5(Standard)=%i, PM10.0(Standard)=%i", m->variant.air_quality_metrics.pm10_standard,
|
||||||
|
@ -87,7 +87,8 @@ void getMacAddr(uint8_t *dmac)
|
|||||||
if (strlen(optionMac) >= 12) {
|
if (strlen(optionMac) >= 12) {
|
||||||
MAC_from_string(optionMac, dmac);
|
MAC_from_string(optionMac, dmac);
|
||||||
} else {
|
} else {
|
||||||
uint32_t hwId = sscanf(optionMac, "%u", &hwId);
|
uint32_t hwId;
|
||||||
|
sscanf(optionMac, "%u", &hwId);
|
||||||
dmac[0] = 0x80;
|
dmac[0] = 0x80;
|
||||||
dmac[1] = 0;
|
dmac[1] = 0;
|
||||||
dmac[2] = hwId >> 24;
|
dmac[2] = hwId >> 24;
|
||||||
@ -365,7 +366,10 @@ bool loadConfig(const char *configPath)
|
|||||||
settingsMap[use_sx1268] = true;
|
settingsMap[use_sx1268] = true;
|
||||||
}
|
}
|
||||||
settingsMap[dio2_as_rf_switch] = yamlConfig["Lora"]["DIO2_AS_RF_SWITCH"].as<bool>(false);
|
settingsMap[dio2_as_rf_switch] = yamlConfig["Lora"]["DIO2_AS_RF_SWITCH"].as<bool>(false);
|
||||||
settingsMap[dio3_tcxo_voltage] = yamlConfig["Lora"]["DIO3_TCXO_VOLTAGE"].as<bool>(false);
|
settingsMap[dio3_tcxo_voltage] = yamlConfig["Lora"]["DIO3_TCXO_VOLTAGE"].as<float>(0) * 1000;
|
||||||
|
if (settingsMap[dio3_tcxo_voltage] == 0 && yamlConfig["Lora"]["DIO3_TCXO_VOLTAGE"].as<bool>(false)) {
|
||||||
|
settingsMap[dio3_tcxo_voltage] = 1800; // default millivolts for "true"
|
||||||
|
}
|
||||||
settingsMap[cs] = yamlConfig["Lora"]["CS"].as<int>(RADIOLIB_NC);
|
settingsMap[cs] = yamlConfig["Lora"]["CS"].as<int>(RADIOLIB_NC);
|
||||||
settingsMap[irq] = yamlConfig["Lora"]["IRQ"].as<int>(RADIOLIB_NC);
|
settingsMap[irq] = yamlConfig["Lora"]["IRQ"].as<int>(RADIOLIB_NC);
|
||||||
settingsMap[busy] = yamlConfig["Lora"]["Busy"].as<int>(RADIOLIB_NC);
|
settingsMap[busy] = yamlConfig["Lora"]["Busy"].as<int>(RADIOLIB_NC);
|
||||||
@ -529,4 +533,4 @@ bool MAC_from_string(std::string mac_str, uint8_t *dmac)
|
|||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
17
variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h
Normal file
17
variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#include "RadioLib.h"
|
||||||
|
|
||||||
|
// RF Switch Matrix SubG RFO_HP_LF / RFO_LP_LF / RFI_[NP]_LF0
|
||||||
|
// DIO5 -> RFSW0_V1
|
||||||
|
// DIO6 -> RFSW1_V2
|
||||||
|
// DIO7 -> ANT_CTRL_ON + ESP_IO9/LR_GPS_ANT_DC_EN -> RFI_GPS (Bias-T GPS) (LR11x0 only)
|
||||||
|
|
||||||
|
static const uint32_t rfswitch_dio_pins[] = {RADIOLIB_LR11X0_DIO5, RADIOLIB_LR11X0_DIO6, RADIOLIB_LR11X0_DIO7, RADIOLIB_NC,
|
||||||
|
RADIOLIB_NC};
|
||||||
|
|
||||||
|
static const Module::RfSwitchMode_t rfswitch_table[] = {
|
||||||
|
// mode DIO5 DIO6 DIO7
|
||||||
|
{LR11x0::MODE_STBY, {LOW, LOW, LOW}}, {LR11x0::MODE_RX, {HIGH, LOW, LOW}},
|
||||||
|
{LR11x0::MODE_TX, {LOW, HIGH, LOW}}, {LR11x0::MODE_TX_HP, {LOW, HIGH, LOW}},
|
||||||
|
{LR11x0::MODE_TX_HF, {LOW, LOW, LOW}}, {LR11x0::MODE_GNSS, {LOW, LOW, HIGH}},
|
||||||
|
{LR11x0::MODE_WIFI, {LOW, LOW, LOW}}, END_OF_MODE_TABLE,
|
||||||
|
};
|
@ -122,12 +122,13 @@ NRF52 PRO MICRO PIN ASSIGNMENT
|
|||||||
#define USE_SX1262
|
#define USE_SX1262
|
||||||
#define USE_RF95
|
#define USE_RF95
|
||||||
#define USE_SX1268
|
#define USE_SX1268
|
||||||
|
#define USE_LR1121
|
||||||
|
|
||||||
// RF95 CONFIG
|
// RF95 CONFIG
|
||||||
|
|
||||||
#define LORA_DIO0 (0 + 29) // P0.10 IRQ
|
#define LORA_DIO0 (0 + 29) // P0.29 BUSY
|
||||||
#define LORA_DIO1 (0 + 10) // P0.10 IRQ
|
#define LORA_DIO1 (0 + 10) // P0.10 IRQ
|
||||||
#define LORA_RESET (0 + 9) // P0.09
|
#define LORA_RESET (0 + 9) // P0.09 NRST
|
||||||
|
|
||||||
// RX/TX for RFM95/SX127x
|
// RX/TX for RFM95/SX127x
|
||||||
#define RF95_RXEN (0 + 17) // P0.17
|
#define RF95_RXEN (0 + 17) // P0.17
|
||||||
@ -143,6 +144,19 @@ NRF52 PRO MICRO PIN ASSIGNMENT
|
|||||||
#define SX126X_RXEN (0 + 17) // P0.17
|
#define SX126X_RXEN (0 + 17) // P0.17
|
||||||
#define SX126X_TXEN RADIOLIB_NC // Assuming that DIO2 is connected to TXEN pin. If not, TXEN must be connected.
|
#define SX126X_TXEN RADIOLIB_NC // Assuming that DIO2 is connected to TXEN pin. If not, TXEN must be connected.
|
||||||
|
|
||||||
|
// LR1121
|
||||||
|
#ifdef USE_LR1121
|
||||||
|
#define LR1121_IRQ_PIN (0 + 10) // P0.10 IRQ
|
||||||
|
#define LR1121_NRESET_PIN LORA_RESET // P0.09 NRST
|
||||||
|
#define LR1121_BUSY_PIN (0 + 29) // P0.29 BUSY
|
||||||
|
#define LR1121_SPI_NSS_PIN LORA_CS // P1.13
|
||||||
|
#define LR1121_SPI_SCK_PIN LORA_SCK
|
||||||
|
#define LR1121_SPI_MOSI_PIN LORA_MOSI
|
||||||
|
#define LR1121_SPI_MISO_PIN LORA_MISO
|
||||||
|
#define LR11X0_DIO3_TCXO_VOLTAGE 1.8
|
||||||
|
#define LR11X0_DIO_AS_RF_SWITCH
|
||||||
|
#endif
|
||||||
|
|
||||||
// #define SX126X_MAX_POWER 8 set this if using a high-power board!
|
// #define SX126X_MAX_POWER 8 set this if using a high-power board!
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -164,6 +178,7 @@ settings.
|
|||||||
| Seeed | Wio-SX1262 | yes | Int | Sooooo cute! |
|
| Seeed | Wio-SX1262 | yes | Int | Sooooo cute! |
|
||||||
| AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** |
|
| AI-Thinker | RA-02 | No | Int | SX1278 **433mhz band only** |
|
||||||
| RF Solutions | RFM95 | No | Int | Untested |
|
| RF Solutions | RFM95 | No | Int | Untested |
|
||||||
|
| Ebyte | E80-900M2213S | Yes | Int | LR1121 radio |
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -179,4 +194,4 @@ extern float tcxoVoltage; // make this available everywhere
|
|||||||
* Arduino objects - C++ only
|
* Arduino objects - C++ only
|
||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -1,11 +1,9 @@
|
|||||||
[env:buildroot]
|
[env:buildroot]
|
||||||
extends = portduino_base
|
extends = portduino_base
|
||||||
; The pkg-config commands below optionally add link flags.
|
; Optional libraries should be appended to `PLATFORMIO_BUILD_FLAGS`
|
||||||
; the || : is just a "or run the null command" to avoid returning an error code
|
; environment variable in the buildroot environment.
|
||||||
build_flags = ${portduino_base.build_flags} -O0 -I variants/portduino-buildroot
|
build_flags = ${portduino_base.build_flags} -O0 -I variants/portduino-buildroot
|
||||||
-std=c++17
|
-std=c++17
|
||||||
!pkg-config --libs libulfius --silence-errors || :
|
|
||||||
!pkg-config --libs openssl --silence-errors || :
|
|
||||||
board = buildroot
|
board = buildroot
|
||||||
lib_deps = ${portduino_base.lib_deps}
|
lib_deps = ${portduino_base.lib_deps}
|
||||||
build_src_filter = ${portduino_base.build_src_filter}
|
build_src_filter = ${portduino_base.build_src_filter}
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
// rxd = 9
|
// rxd = 9
|
||||||
|
|
||||||
#define EXT_NOTIFY_OUT 22
|
#define EXT_NOTIFY_OUT 22
|
||||||
#undef BUTTON_PIN // Pin 17 used for antenna switching via DIO4
|
#define BUTTON_PIN -1 // Pin 17 used for antenna switching via DIO4
|
||||||
|
|
||||||
#define LED_PIN PIN_LED
|
#define LED_PIN PIN_LED
|
||||||
|
|
||||||
@ -57,4 +57,4 @@
|
|||||||
#define SX126X_DIO2_AS_RF_SWITCH // Antenna switch CTRL
|
#define SX126X_DIO2_AS_RF_SWITCH // Antenna switch CTRL
|
||||||
#define SX126X_RXEN LORA_DIO4 // Antenna switch !CTRL via GPIO17
|
#define SX126X_RXEN LORA_DIO4 // Antenna switch !CTRL via GPIO17
|
||||||
// #define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
// #define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
[env:tlora-v2-1-1_6-tcxo]
|
[env:tlora-v2-1-1_6-tcxo]
|
||||||
extends = esp32_base
|
extends = esp32_base
|
||||||
|
board_level = extra
|
||||||
board = ttgo-lora32-v21
|
board = ttgo-lora32-v21
|
||||||
build_flags =
|
build_flags =
|
||||||
${esp32_base.build_flags}
|
${esp32_base.build_flags}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
[env:tlora-v2-1-1_8]
|
[env:tlora-v2-1-1_8]
|
||||||
extends = esp32_base
|
extends = esp32_base
|
||||||
|
board_level = extra
|
||||||
board = ttgo-lora32-v21
|
board = ttgo-lora32-v21
|
||||||
|
|
||||||
build_flags =
|
build_flags =
|
||||||
|
11
variants/tlora_v3_3_0_tcxo/platformio.ini
Normal file
11
variants/tlora_v3_3_0_tcxo/platformio.ini
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[env:tlora-v3-3-0-tcxo]
|
||||||
|
extends = esp32_base
|
||||||
|
board = ttgo-lora32-v21
|
||||||
|
board_level = extra
|
||||||
|
build_flags =
|
||||||
|
${esp32_base.build_flags}
|
||||||
|
-D TLORA_V2_1_16
|
||||||
|
-I variants/tlora_v2_1_16
|
||||||
|
-D GPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
|
||||||
|
-D LORA_TCXO_GPIO=12
|
||||||
|
-D BUTTON_PIN=0
|
Loading…
Reference in New Issue
Block a user