From abf3fec604837c81d507f65262b84ad0058f996b Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 5 Mar 2025 13:13:49 -0600 Subject: [PATCH 01/76] Xiao nrf52 kit hw_model --- meshtastic/mesh.proto | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 502e65a..92c69b0 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -675,7 +675,11 @@ enum HardwareModel { * https://www.loraitalia.it */ MESHLINK = 87; - + + /* + * Seeed XIAO nRF52840 + Wio SX1262 kit + */ + XIAO_NRF52_KIT = 88; /* * ------------------------------------------------------------------------------------------------------------------------------------------ From 245daac0b2491af225a35c061033821d4a7c7d6a Mon Sep 17 00:00:00 2001 From: Chris Danis Date: Wed, 5 Mar 2025 16:12:33 -0500 Subject: [PATCH 02/76] telemetry: add dps310 --- meshtastic/telemetry.proto | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 4b5b3f2..29fdcf6 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -557,6 +557,10 @@ enum TelemetrySensorType { */ DFROBOT_RAIN = 35; + /* + * Infineon DPS310 High accuracy pressure and temperature + */ + DPS310 = 36; } /* From 0c818c0ae86a29c9a56d38538e921f301324d94b Mon Sep 17 00:00:00 2001 From: landandair Date: Thu, 6 Mar 2025 17:56:37 -0600 Subject: [PATCH 03/76] Add RNS Tunnel App Portnum - Added RNS tunnel app to Port 76 - Encoding is handled by RNS_Over_Meshtastic app --- meshtastic/portnums.proto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meshtastic/portnums.proto b/meshtastic/portnums.proto index a4b55e5..c711afa 100644 --- a/meshtastic/portnums.proto +++ b/meshtastic/portnums.proto @@ -206,6 +206,12 @@ enum PortNum { */ POWERSTRESS_APP = 74; + /* + * Reticulum Network Stack Tunnel App + * ENCODING: Fragmented RNS Packet. Handled by Meshtastic RNS interface + */ + RETICULUM_TUNNEL_APP = 76; + /* * Private applications should use portnums >= 256. * To simplify initial development and testing you can use "PRIVATE_APP" From d9061086e358dd4765c5b9bab95d3152600a43b3 Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Fri, 7 Mar 2025 19:52:48 +0800 Subject: [PATCH 04/76] Add RAK12035VB Soil Moisture Sensor As per @Justin-Mann , the RAK12035 is a Soil Moisture Sensor made by RAKWireless. Up to three can be connected using the wisblock architecture. --- meshtastic/telemetry.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 29fdcf6..0a7db6a 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -561,6 +561,11 @@ enum TelemetrySensorType { * Infineon DPS310 High accuracy pressure and temperature */ DPS310 = 36; + + /* + * RAKWireless RAK12035 Soil Moisture Sensor Module + */ + DPS310 = 37; } /* From 06572741de59e16be9d205aa8ea0423cb00d17e2 Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Fri, 7 Mar 2025 19:58:18 +0800 Subject: [PATCH 05/76] Update telemetry.proto --- meshtastic/telemetry.options | 1 + meshtastic/telemetry.proto | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/meshtastic/telemetry.options b/meshtastic/telemetry.options index 79b1f12..a429c3e 100644 --- a/meshtastic/telemetry.options +++ b/meshtastic/telemetry.options @@ -3,6 +3,7 @@ *EnvironmentMetrics.iaq int_size:16 *EnvironmentMetrics.wind_direction int_size:16 +*EnvironmentMetrics.soil_moisture int_size:8 *LocalStats.num_online_nodes int_size:16 *LocalStats.num_total_nodes int_size:16 diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 0a7db6a..4b41edd 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -143,7 +143,16 @@ message EnvironmentMetrics { * Rainfall in the last 24 hours in mm */ optional float rainfall_24h = 20; - + + /* + * Soil moisture measured (% 1-100) + */ + optional uint32 soil_moisture = 21; + + /* + * Soil temperature measured (*C) + */ + optional float soil_temperature = 22; } /* @@ -565,7 +574,7 @@ enum TelemetrySensorType { /* * RAKWireless RAK12035 Soil Moisture Sensor Module */ - DPS310 = 37; + RAK12035 = 37; } /* From db4578960ece523d7a95ed88bc6ef166139d2ecc Mon Sep 17 00:00:00 2001 From: pdxlocations <117498748+pdxlocations@users.noreply.github.com> Date: Thu, 13 Mar 2025 21:32:30 -0700 Subject: [PATCH 06/76] Update NTP Server Comments change 0.pool.ntp.org to meshtastic.pool.ntp.org in NTP Server Commente --- meshtastic/config.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meshtastic/config.proto b/meshtastic/config.proto index 95eb13e..9edc77c 100644 --- a/meshtastic/config.proto +++ b/meshtastic/config.proto @@ -492,7 +492,7 @@ message Config { string wifi_psk = 4; /* - * NTP server to use if WiFi is conneced, defaults to `0.pool.ntp.org` + * NTP server to use if WiFi is conneced, defaults to `meshtastic.pool.ntp.org` */ string ntp_server = 5; @@ -1139,4 +1139,4 @@ message Config { SessionkeyConfig sessionkey = 9; DeviceUIConfig device_ui = 10; } -} \ No newline at end of file +} From 524e78869b52edc7800d497647f258b179980b03 Mon Sep 17 00:00:00 2001 From: Aleksey Vasilenko Date: Fri, 14 Mar 2025 13:31:25 +0200 Subject: [PATCH 07/76] device_ui: add Ukrainian --- meshtastic/device_ui.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/device_ui.proto b/meshtastic/device_ui.proto index 9ac40a3..bec8200 100644 --- a/meshtastic/device_ui.proto +++ b/meshtastic/device_ui.proto @@ -273,6 +273,11 @@ enum Language { */ SLOVENIAN = 15; + /* + * Ukrainian + */ + UKRAINIAN = 16; + /* * Simplified Chinese (experimental) */ From 3d11dc97ad14da3df24ab7e6b078ba18a9aa9058 Mon Sep 17 00:00:00 2001 From: Aleksey Vasilenko Date: Fri, 14 Mar 2025 13:44:49 +0200 Subject: [PATCH 08/76] Fix empty doc to satisfy picky linters --- meshtastic/admin.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index e9691ed..f4718c1 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -74,7 +74,7 @@ message AdminMessage { SECURITY_CONFIG = 7; /* - * + * Session key config */ SESSIONKEY_CONFIG = 8; From 327ddc8261afbd4f1d261115d8214941a7cc3e01 Mon Sep 17 00:00:00 2001 From: Aleksey Vasilenko Date: Fri, 14 Mar 2025 13:55:54 +0200 Subject: [PATCH 09/76] Cleanup formatting - trim excessive spaces, add missing newlines, etc. --- meshtastic/config.proto | 16 ++++++------- meshtastic/device_ui.proto | 43 +++++++++++++++++----------------- meshtastic/deviceonly.proto | 4 ++-- meshtastic/interdevice.proto | 2 +- meshtastic/mesh.proto | 26 ++++++++++---------- meshtastic/module_config.proto | 2 +- meshtastic/portnums.proto | 2 +- meshtastic/powermon.proto | 2 +- meshtastic/telemetry.proto | 26 ++++++++++---------- 9 files changed, 61 insertions(+), 62 deletions(-) diff --git a/meshtastic/config.proto b/meshtastic/config.proto index 95eb13e..e51715f 100644 --- a/meshtastic/config.proto +++ b/meshtastic/config.proto @@ -41,7 +41,7 @@ message Config { * Description: Combination of both ROUTER and CLIENT. Not for mobile devices. * Deprecated in v2.3.15 because improper usage is impacting public meshes: Use ROUTER or CLIENT instead. */ - + ROUTER_CLIENT = 3 [deprecated = true]; /* @@ -207,7 +207,7 @@ message Config { string tzdef = 11; /* - * If true, disable the default blinking LED (LED_PIN) behavior on the device + * If true, disable the default blinking LED (LED_PIN) behavior on the device */ bool led_heartbeat_disabled = 12; } @@ -380,7 +380,7 @@ message Config { */ message PowerConfig { /* - * Description: Will sleep everything as much as possible, for the tracker and sensor role this will also include the lora radio. + * Description: Will sleep everything as much as possible, for the tracker and sensor role this will also include the lora radio. * Don't use this setting if you want to use your device with the phone apps or are using a device without a user button. * Technical Details: Works for ESP32 devices and NRF52 devices in the Sensor or Tracker roles */ @@ -434,7 +434,7 @@ message Config { * If non-zero, we want powermon log outputs. With the particular (bitfield) sources enabled. * Note: we picked an ID of 32 so that lower more efficient IDs can be used for more frequently used options. */ - uint64 powermon_enables = 32; + uint64 powermon_enables = 32; } /* @@ -850,17 +850,17 @@ message Config { * Singapore 923mhz */ SG_923 = 18; - + /* * Philippines 433mhz */ PH_433 = 19; - + /* * Philippines 868mhz */ PH_868 = 20; - + /* * Philippines 915mhz */ @@ -1139,4 +1139,4 @@ message Config { SessionkeyConfig sessionkey = 9; DeviceUIConfig device_ui = 10; } -} \ No newline at end of file +} diff --git a/meshtastic/device_ui.proto b/meshtastic/device_ui.proto index 9ac40a3..b283087 100644 --- a/meshtastic/device_ui.proto +++ b/meshtastic/device_ui.proto @@ -19,24 +19,24 @@ message DeviceUIConfig { uint32 version = 1; /* - * TFT display brightness 1..255 + * TFT display brightness 1..255 */ uint32 screen_brightness = 2; /* - * Screen timeout 0..900 + * Screen timeout 0..900 */ uint32 screen_timeout = 3; /* - * Screen/Settings lock enabled + * Screen/Settings lock enabled */ bool screen_lock = 4; bool settings_lock = 5; uint32 pin_code = 6; /* - * Color theme + * Color theme */ Theme theme = 7; @@ -48,12 +48,12 @@ message DeviceUIConfig { uint32 ring_tone_id = 10; /* - * Localization + * Localization */ Language language = 11; /* - * Node list filter + * Node list filter */ NodeFilter node_filter = 12; @@ -84,32 +84,32 @@ message NodeFilter { * Filter offline nodes */ bool offline_switch = 2; - + /* * Filter nodes w/o public key */ bool public_key_switch = 3; - + /* * Filter based on hops away */ int32 hops_away = 4; - + /* * Filter nodes w/o position */ bool position_switch = 5; - + /* * Filter nodes by matching name string */ string node_name = 6; - + /* * Filter based on channel */ int32 channel = 7; - + } message NodeHighlight { @@ -122,7 +122,7 @@ message NodeHighlight { * Highlight nodes w/ position */ bool position_switch = 2; - + /* * Highlight nodes w/ telemetry data */ @@ -132,12 +132,12 @@ message NodeHighlight { * Highlight nodes w/ iaq data */ bool iaq_switch = 4; - + /* * Highlight nodes by matching name string */ string node_name = 5; - + } message GeoPoint { @@ -147,10 +147,10 @@ message GeoPoint { int32 zoom = 1; /* - * Coordinate: latitude + * Coordinate: latitude */ int32 latitude = 2; - + /* * Coordinate: longitude */ @@ -167,7 +167,7 @@ message Map { * Map tile style */ string style = 2; - + /* * Map scroll follows GPS */ @@ -227,17 +227,17 @@ enum Language { * Swedish */ SWEDISH = 6; - + /* * Finnish */ FINNISH = 7; - + /* * Polish */ POLISH = 8; - + /* * Turkish */ @@ -283,4 +283,3 @@ enum Language { */ TRADITIONAL_CHINESE = 31; } - diff --git a/meshtastic/deviceonly.proto b/meshtastic/deviceonly.proto index 481bfba..ea6ef25 100644 --- a/meshtastic/deviceonly.proto +++ b/meshtastic/deviceonly.proto @@ -156,7 +156,7 @@ message NodeInfoLite { bool is_ignored = 11; /* - * Last byte of the node number of the node that should be used as the next hop to reach this node. + * Last byte of the node number of the node that should be used as the next hop to reach this node. */ uint32 next_hop = 12; } @@ -288,4 +288,4 @@ message ChannelFile { * The node's user (owner) information */ User owner = 6; -} \ No newline at end of file +} diff --git a/meshtastic/interdevice.proto b/meshtastic/interdevice.proto index 5b890b2..54e950f 100644 --- a/meshtastic/interdevice.proto +++ b/meshtastic/interdevice.proto @@ -41,4 +41,4 @@ message InterdeviceMessage { string nmea = 1; SensorData sensor = 2; } -} \ No newline at end of file +} diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 92c69b0..0b5fa97 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -339,7 +339,7 @@ enum HardwareModel { * Heltec HRU-3601: https://heltec.org/project/hru-3601/ */ HELTEC_HRU_3601 = 23; - + /* * Heltec Wireless Bridge */ @@ -542,7 +542,7 @@ enum HardwareModel { CDEBYTE_EORA_S3 = 61; /* - * TWC_MESH_V4 + * TWC_MESH_V4 * Adafruit NRF52840 feather express with SX1262, SSD1306 OLED and NEO6M GPS */ TWC_MESH_V4 = 62; @@ -558,27 +558,27 @@ enum HardwareModel { * ESP32-D0WDQ6 With SX1276/SKY66122, SSD1306 OLED and No GPS */ RADIOMASTER_900_BANDIT_NANO = 64; - + /* * Heltec Capsule Sensor V3 with ESP32-S3 CPU, Portable LoRa device that can replace GNSS modules or sensors */ HELTEC_CAPSULE_SENSOR_V3 = 65; - + /* * Heltec Vision Master T190 with ESP32-S3 CPU, and a 1.90 inch TFT display */ HELTEC_VISION_MASTER_T190 = 66; - + /* * Heltec Vision Master E213 with ESP32-S3 CPU, and a 2.13 inch E-Ink display */ HELTEC_VISION_MASTER_E213 = 67; - + /* * Heltec Vision Master E290 with ESP32-S3 CPU, and a 2.9 inch E-Ink display */ HELTEC_VISION_MASTER_E290 = 68; - + /* * Heltec Mesh Node T114 board with nRF52840 CPU, and a 1.14 inch TFT display, Ultimate low-power design, * specifically adapted for the Meshtatic project @@ -594,7 +594,7 @@ enum HardwareModel { * Seeed studio T1000-E tracker card. NRF52840 w/ LR1110 radio, GPS, button, buzzer, and sensors. */ TRACKER_T1000_E = 71; - + /* * RAK3172 STM32WLE5 Module (https://store.rakwireless.com/products/wisduo-lpwan-module-rak3172) */ @@ -626,7 +626,7 @@ enum HardwareModel { * */ RP2040_FEATHER_RFM95 = 76; - + /* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, CoreS3, Paper) https://m5stack.com/ */ M5STACK_COREBASIC = 77; M5STACK_CORE2 = 78; @@ -636,7 +636,7 @@ enum HardwareModel { /* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, CoreS3, Paper) https://m5stack.com/ */ M5STACK_CORES3 = 80; - + /* Seeed XIAO S3 DK*/ SEEED_XIAO_S3 = 81; @@ -1101,12 +1101,12 @@ message MeshPacket { /* * Higher priority for specific message types (portnums) to distinguish between other reliable packets. - */ + */ HIGH = 100; /* * Higher priority alert message used for critical alerts which take priority over other reliable packets. - */ + */ ALERT = 110; /* @@ -1271,7 +1271,7 @@ message MeshPacket { bool pki_encrypted = 17; /* - * Last byte of the node number of the node that should be used as the next hop in routing. + * Last byte of the node number of the node that should be used as the next hop in routing. * Set by the firmware internally, clients are not supposed to set this. */ uint32 next_hop = 18; diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index aa30abc..4f18d5f 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -136,7 +136,7 @@ message ModuleConfig { * Whether in addition to sending it to MQTT and the PhoneAPI, our NeighborInfo should be transmitted over LoRa. * Note that this is not available on a channel with default key and name. */ - bool transmit_over_lora = 3; + bool transmit_over_lora = 3; } /* diff --git a/meshtastic/portnums.proto b/meshtastic/portnums.proto index c711afa..76df5db 100644 --- a/meshtastic/portnums.proto +++ b/meshtastic/portnums.proto @@ -229,4 +229,4 @@ enum PortNum { * Currently we limit port nums to no higher than this value */ MAX = 511; -} \ No newline at end of file +} diff --git a/meshtastic/powermon.proto b/meshtastic/powermon.proto index 5f65b51..dbb89b9 100644 --- a/meshtastic/powermon.proto +++ b/meshtastic/powermon.proto @@ -101,4 +101,4 @@ message PowerStressMessage { Opcode cmd = 1; float num_seconds = 2; -} \ No newline at end of file +} diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 4b41edd..1285b70 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -72,7 +72,7 @@ message EnvironmentMetrics { */ optional float current = 6; - /* + /* * relative scale IAQ value as measured by Bosch BME680 . value 0-500. * Belongs to Air Quality but is not particle but VOC measurement. Other VOC values can also be put in here. */ @@ -143,12 +143,12 @@ message EnvironmentMetrics { * Rainfall in the last 24 hours in mm */ optional float rainfall_24h = 20; - + /* * Soil moisture measured (% 1-100) */ optional uint32 soil_moisture = 21; - + /* * Soil temperature measured (*C) */ @@ -253,7 +253,7 @@ message AirQualityMetrics { * 10.0um Particle Count */ optional uint32 particles_100um = 12; - + /* * 10.0um Particle Count */ @@ -281,7 +281,7 @@ message LocalStats { * Number of packets sent */ uint32 num_packets_tx = 4; - + /* * Number of packets received (both good and bad) */ @@ -500,17 +500,17 @@ enum TelemetrySensorType { * AMS TSL25911FN RGB Light Sensor */ TSL25911FN = 22; - + /* * AHT10 Integrated temperature and humidity sensor */ AHT10 = 23; /* - * DFRobot Lark Weather station (temperature, humidity, pressure, wind speed and direction) + * DFRobot Lark Weather station (temperature, humidity, pressure, wind speed and direction) */ DFROBOT_LARK = 24; - + /* * NAU7802 Scale Chip or compatible */ @@ -537,15 +537,15 @@ enum TelemetrySensorType { CUSTOM_SENSOR = 29; /* - * MAX30102 Pulse Oximeter and Heart-Rate Sensor + * MAX30102 Pulse Oximeter and Heart-Rate Sensor */ MAX30102 = 30; - + /* * MLX90614 non-contact IR temperature sensor */ MLX90614 = 31; - + /* * SCD40/SCD41 CO2, humidity, temperature sensor */ @@ -555,7 +555,7 @@ enum TelemetrySensorType { * ClimateGuard RadSens, radiation, Geiger-Muller Tube */ RADSENS = 33; - + /* * High accuracy current and voltage */ @@ -570,7 +570,7 @@ enum TelemetrySensorType { * Infineon DPS310 High accuracy pressure and temperature */ DPS310 = 36; - + /* * RAKWireless RAK12035 Soil Moisture Sensor Module */ From 72a2685709529e19a2e5a7155c1e91e599e06da8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Sat, 15 Mar 2025 11:24:58 +0100 Subject: [PATCH 10/76] Thinknodes and T-ETH --- meshtastic/mesh.proto | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 0b5fa97..50ee9b8 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -680,6 +680,19 @@ enum HardwareModel { * Seeed XIAO nRF52840 + Wio SX1262 kit */ XIAO_NRF52_KIT = 88; + + /* + * Elecrow ThinkNode M1 & M2 + * https://www.elecrow.com/wiki/ThinkNode-M1_Transceiver_Device(Meshtastic)_Power_By_nRF52840.html + * https://www.elecrow.com/wiki/ThinkNode-M2_Transceiver_Device(Meshtastic)_Power_By_NRF52840.html (this actually uses ESP32-S3) + */ + THINKNODE_M1 = 89; + THINKNODE_M2 = 90; + + /* + * Lilygo T-ETH-Elite + */ + T-ETH-ELITE = 91; /* * ------------------------------------------------------------------------------------------------------------------------------------------ From 474a5286c90e6ffb2b7481f824a599cd7b188fea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Sat, 15 Mar 2025 11:26:16 +0100 Subject: [PATCH 11/76] woopsie --- meshtastic/mesh.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 50ee9b8..7ce744c 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -692,7 +692,7 @@ enum HardwareModel { /* * Lilygo T-ETH-Elite */ - T-ETH-ELITE = 91; + T_ETH_ELITE = 91; /* * ------------------------------------------------------------------------------------------------------------------------------------------ From fbc8234432ecf2193f76a6d1693e7b9f3fc8e449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Fri, 21 Mar 2025 13:31:52 +0100 Subject: [PATCH 12/76] add HRI-3621 --- meshtastic/mesh.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 7ce744c..2e15118 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -693,6 +693,11 @@ enum HardwareModel { * Lilygo T-ETH-Elite */ T_ETH_ELITE = 91; + + /* + * Heltec HRI-3621 industrial probe + */ + HELTEC_SENSOR_HUB = 92; /* * ------------------------------------------------------------------------------------------------------------------------------------------ From 306cdbf472bf769fb464bc3500411021658437ec Mon Sep 17 00:00:00 2001 From: Chris LaFlash Date: Tue, 25 Mar 2025 09:32:11 -0700 Subject: [PATCH 13/76] Add go_package path for nanopb.proto --- nanopb.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/nanopb.proto b/nanopb.proto index 2f27e34..1c107c1 100644 --- a/nanopb.proto +++ b/nanopb.proto @@ -9,6 +9,7 @@ syntax = "proto2"; import "google/protobuf/descriptor.proto"; +option go_package = "github.com/meshtastic/go/generated"; option java_package = "fi.kapsi.koti.jpa.nanopb"; enum FieldType { From 6d7c9e618051455ad82e184bd3a7f2ad569944f7 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 26 Mar 2025 07:27:23 -0500 Subject: [PATCH 14/76] Add is_attended to User --- meshtastic/deviceonly.proto | 5 +++++ meshtastic/mesh.proto | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/meshtastic/deviceonly.proto b/meshtastic/deviceonly.proto index ea6ef25..a988478 100644 --- a/meshtastic/deviceonly.proto +++ b/meshtastic/deviceonly.proto @@ -94,6 +94,11 @@ message UserLite { * This is sent out to other nodes on the mesh to allow them to compute a shared secret key. */ bytes public_key = 7; + + /* + * Whether or not the node is attended by a User + */ + optional bool is_attended = 8; } message NodeInfoLite { diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 2e15118..3fb0840 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -781,6 +781,11 @@ message User { * This is sent out to other nodes on the mesh to allow them to compute a shared secret key. */ bytes public_key = 8; + + /* + * Whether or not the node is attended by a User + */ + optional bool is_attended = 9; } /* From f00e96f12da48abfa9a992f8b5546fd75a370250 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Fri, 28 Mar 2025 20:12:22 -0500 Subject: [PATCH 15/76] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9e36197..f837862 100644 --- a/README.md +++ b/README.md @@ -14,3 +14,4 @@ The [Protobuf](https://developers.google.com/protocol-buffers) message definitio ## Stats ![Alt](https://repobeats.axiom.co/api/embed/47e9ee1d81d9c0fdd2b4b5b4c673adb1756f6db5.svg "Repobeats analytics image") + From 6da320326b9f6eda36478b967b5d4853fa1b6d97 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sun, 30 Mar 2025 08:50:59 -0500 Subject: [PATCH 16/76] Add bluetooth config to excludes --- meshtastic/mesh.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 2e15118..38a9ee0 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -2037,6 +2037,11 @@ enum ExcludedModules { * Paxcounter module */ PAXCOUNTER_CONFIG = 0x1000; + + /* + * Bluetooth module + */ + BLUETOOTH_CONFIG = 0x2000; } /* From 2d2ebcd1706469f7eadd17a6b6accab1c377eaa3 Mon Sep 17 00:00:00 2001 From: Hannes Fuchs Date: Sun, 30 Mar 2025 17:00:16 +0200 Subject: [PATCH 17/76] Fix comment description of CO2 telemetry value --- meshtastic/telemetry.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 1285b70..3ca7d07 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -255,7 +255,7 @@ message AirQualityMetrics { optional uint32 particles_100um = 12; /* - * 10.0um Particle Count + * CO2 concentration in ppm */ optional uint32 co2 = 13; } From 484d002a52bc20fa9f91ebf1b216d585c5f93a1b Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sun, 30 Mar 2025 19:27:40 -0500 Subject: [PATCH 18/76] Add bluetooth --- meshtastic/mesh.proto | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 38a9ee0..9023294 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -2039,9 +2039,14 @@ enum ExcludedModules { PAXCOUNTER_CONFIG = 0x1000; /* - * Bluetooth module + * Bluetooth config (not technically a module, but used to indicate bluetooth capabilities) */ BLUETOOTH_CONFIG = 0x2000; + + /* + * Network config (not technically a module, but used to indicate network capabilities) + */ + NETWORK_CONFIG = 0x4000; } /* From b772c713945a33aea94e6cff03880328e7c35589 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Thu, 3 Apr 2025 19:32:17 -0500 Subject: [PATCH 19/76] Reserved fried chicken HWMODEL --- meshtastic/mesh.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 9023294..bcae1de 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -699,6 +699,11 @@ enum HardwareModel { */ HELTEC_SENSOR_HUB = 92; + /* + * Reserved Fried Chicken ID for future use + */ + RESERVED_FRIED_CHICKEN = 93; + /* * ------------------------------------------------------------------------------------------------------------------------------------------ * 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. From 5a5ab103d2f6aa071fca29417475681a2cec5dcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Mon, 7 Apr 2025 11:46:44 +0200 Subject: [PATCH 20/76] add existing 128x64 screen setting to protos (#672) --- meshtastic/config.proto | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/meshtastic/config.proto b/meshtastic/config.proto index 06a66b8..0e51cdd 100644 --- a/meshtastic/config.proto +++ b/meshtastic/config.proto @@ -603,17 +603,17 @@ message Config { */ enum OledType { /* - * Default / Auto + * Default / Autodetect */ OLED_AUTO = 0; /* - * Default / Auto + * Default / Autodetect */ OLED_SSD1306 = 1; /* - * Default / Auto + * Default / Autodetect */ OLED_SH1106 = 2; @@ -621,6 +621,11 @@ message Config { * Can not be auto detected but set by proto. Used for 128x128 screens */ OLED_SH1107 = 3; + + /* + * Can not be auto detected but set by proto. Used for 128x64 screens + */ + OLED_SH1107_128_64 = 4; } /* From f9aa5cfd08cf14917fce54e5ebc0441b35ce32b3 Mon Sep 17 00:00:00 2001 From: "Aaron.Lee" <32860565+Heltec-Aaron-Lee@users.noreply.github.com> Date: Wed, 9 Apr 2025 19:55:20 +0800 Subject: [PATCH 21/76] Add Heltec MeshPocket definition (#673) --- meshtastic/mesh.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index bcae1de..893d5aa 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -703,6 +703,11 @@ enum HardwareModel { * Reserved Fried Chicken ID for future use */ RESERVED_FRIED_CHICKEN = 93; + + /* + * Heltec Magnetic Power Bank with Meshtastic compatible + */ + HELTEC_MESH_POCKET = 94; /* * ------------------------------------------------------------------------------------------------------------------------------------------ From b982b36dfab2e96b8f8be90af891c68ebf8790c2 Mon Sep 17 00:00:00 2001 From: dylanli Date: Wed, 16 Apr 2025 15:37:53 +0800 Subject: [PATCH 22/76] add seeed solar node defination (#675) --- meshtastic/mesh.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 893d5aa..7cbee78 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -709,6 +709,11 @@ enum HardwareModel { */ HELTEC_MESH_POCKET = 94; + /* + * Seeed Solar Node + */ + SEEED_SOLAR_NODE = 95; + /* * ------------------------------------------------------------------------------------------------------------------------------------------ * 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. From 27fac39141d99fe727a0a1824c5397409b1aea75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Thu, 17 Apr 2025 12:04:32 +0200 Subject: [PATCH 23/76] add more hwid's --- meshtastic/mesh.proto | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 7cbee78..2af5d98 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -714,6 +714,16 @@ enum HardwareModel { */ SEEED_SOLAR_NODE = 95; + /* + * NomadStar Meteor Pro https://nomadstar.ch/ + */ + NOMADSTAR_METEOR_PRO = 96; + + /* + * Elecrow CrowPanel Advance models, ESP32-S3 and TFT with SX1262 radio plugin + */ + CROWPANEL = 97; + /* * ------------------------------------------------------------------------------------------------------------------------------------------ * 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. From 81c3153396cd05a45b5f0f8e8dedb9c783d2167e Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Tue, 29 Apr 2025 06:15:31 -0500 Subject: [PATCH 24/76] Add dsstore --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store From 280f9d1bf8390d9011a6001a1cf75415471715e9 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sun, 4 May 2025 06:34:23 -0500 Subject: [PATCH 25/76] Name --- meshtastic/mesh.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 3fb0840..248e283 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -785,7 +785,7 @@ message User { /* * Whether or not the node is attended by a User */ - optional bool is_attended = 9; + bool is_unmessagable = 9; } /* From 5b3bbb8f6a538a3516982ef5ffa85bcd160d8a49 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sun, 4 May 2025 08:36:40 -0500 Subject: [PATCH 26/76] VE.Direct serial mode --- meshtastic/module_config.proto | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 4f18d5f..50b4640 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -331,6 +331,9 @@ message ModuleConfig { CALTOPO = 5; // Ecowitt WS85 weather station WS85 = 6; + // VE.Direct is a serial protocol used by Victron Energy products + // https://beta.ivc.no/wiki/index.php/Victron_VE_Direct_DIY_Cable + VE_DIRECT = 7; } /* From ecdc0a53922a36d3272bd57bae3d6d2fd685e2e3 Mon Sep 17 00:00:00 2001 From: Alexander Begoon Date: Sat, 10 May 2025 00:35:39 +0200 Subject: [PATCH 27/76] Add MAX17261 lipo battery gauge --- meshtastic/telemetry.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 3ca7d07..68b4e5d 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -575,6 +575,11 @@ enum TelemetrySensorType { * RAKWireless RAK12035 Soil Moisture Sensor Module */ RAK12035 = 37; + + /* + * MAX17261 lipo battery gauge + */ + MAX17261 = 38; } /* From d266887bb2197a448a62b792bb6f1785888730ad Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Mon, 12 May 2025 19:27:32 -0500 Subject: [PATCH 28/76] Add contact admin message --- meshtastic/admin.proto | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index f4718c1..0c3e40b 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -397,6 +397,11 @@ message AdminMessage { */ bool commit_edit_settings = 65; + /* + * Add a contact (User) to the nodedb + */ + Contact add_contact = 66; + /* * Tell the node to factory reset config everything; all device state and configuration will be returned to factory defaults and BLE bonds will be cleared. */ @@ -472,3 +477,15 @@ message NodeRemoteHardwarePinsResponse { */ repeated NodeRemoteHardwarePin node_remote_hardware_pins = 1; } + +message Contact { + /* + * The node number of the contact + */ + uint32 node_num = 1; + + /* + * The User of the contact + */ + User user = 2; +} \ No newline at end of file From 816595c8bbdfc3b4388e11348ccd043294d58705 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Mon, 12 May 2025 19:46:27 -0500 Subject: [PATCH 29/76] Name it --- meshtastic/admin.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index 0c3e40b..b6fc552 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -400,7 +400,7 @@ message AdminMessage { /* * Add a contact (User) to the nodedb */ - Contact add_contact = 66; + SharedContact add_contact = 66; /* * Tell the node to factory reset config everything; all device state and configuration will be returned to factory defaults and BLE bonds will be cleared. @@ -478,7 +478,7 @@ message NodeRemoteHardwarePinsResponse { repeated NodeRemoteHardwarePin node_remote_hardware_pins = 1; } -message Contact { +message SharedContact { /* * The node number of the contact */ From 4239bfc2f8275acf97b378984a73619d10ab9550 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 14 May 2025 10:38:53 -0500 Subject: [PATCH 30/76] Remove attended --- meshtastic/deviceonly.proto | 5 ----- 1 file changed, 5 deletions(-) diff --git a/meshtastic/deviceonly.proto b/meshtastic/deviceonly.proto index a988478..ea6ef25 100644 --- a/meshtastic/deviceonly.proto +++ b/meshtastic/deviceonly.proto @@ -94,11 +94,6 @@ message UserLite { * This is sent out to other nodes on the mesh to allow them to compute a shared secret key. */ bytes public_key = 7; - - /* - * Whether or not the node is attended by a User - */ - optional bool is_attended = 8; } message NodeInfoLite { From ca6ea45b527d804ededab7804f70a7ee9fd64871 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 14 May 2025 10:40:52 -0500 Subject: [PATCH 31/76] Update mesh.proto --- meshtastic/mesh.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 248e283..df02247 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -783,7 +783,7 @@ message User { bytes public_key = 8; /* - * Whether or not the node is attended by a User + * Whether or not the node can be messaged */ bool is_unmessagable = 9; } From af475e647253cc677d4c46d24eb8f2b55e0e8bda Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 14 May 2025 10:44:33 -0500 Subject: [PATCH 32/76] Also add to UserLite --- meshtastic/deviceonly.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/deviceonly.proto b/meshtastic/deviceonly.proto index ea6ef25..9c7a664 100644 --- a/meshtastic/deviceonly.proto +++ b/meshtastic/deviceonly.proto @@ -94,6 +94,11 @@ message UserLite { * This is sent out to other nodes on the mesh to allow them to compute a shared secret key. */ bytes public_key = 7; + + /* + * Whether or not the node can be messaged + */ + bool is_unmessagable = 9; } message NodeInfoLite { From 8cb3e62a0d35d470e3d5d9950c0f1d85ccb35b22 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 14 May 2025 13:23:41 -0500 Subject: [PATCH 33/76] Optional --- meshtastic/deviceonly.proto | 2 +- meshtastic/mesh.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/meshtastic/deviceonly.proto b/meshtastic/deviceonly.proto index 9c7a664..3be781f 100644 --- a/meshtastic/deviceonly.proto +++ b/meshtastic/deviceonly.proto @@ -98,7 +98,7 @@ message UserLite { /* * Whether or not the node can be messaged */ - bool is_unmessagable = 9; + optional bool is_unmessagable = 9; } message NodeInfoLite { diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 02caaac..eedc872 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -810,7 +810,7 @@ message User { /* * Whether or not the node can be messaged */ - bool is_unmessagable = 9; + optional bool is_unmessagable = 9; } /* From bd3e8b2fc80c35c8bc92f55e8b1f3afa443f3027 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 14 May 2025 13:28:57 -0500 Subject: [PATCH 34/76] Explicit map report opt-in --- meshtastic/module_config.proto | 5 +++++ meshtastic/mqtt.proto | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 50b4640..06ca899 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -95,6 +95,11 @@ message ModuleConfig { * Bits of precision for the location sent (default of 32 is full precision). */ uint32 position_precision = 2; + + /* + * Whether we should report our location to the map + */ + optional bool should_report_location = 3; } /* diff --git a/meshtastic/mqtt.proto b/meshtastic/mqtt.proto index 2dbc820..00c2b2e 100644 --- a/meshtastic/mqtt.proto +++ b/meshtastic/mqtt.proto @@ -103,4 +103,9 @@ message MapReport { * Number of online nodes (heard in the last 2 hours) this node has in its list that were received locally (not via MQTT) */ uint32 num_online_local_nodes = 13; + + /* + * User has opted in to share their location (map report) with the mqtt server + */ + bool has_opted_in = 14; } From 1e507865aaab8cb686e0dda03a8f095fab6eca62 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 14 May 2025 13:31:31 -0500 Subject: [PATCH 35/76] Clarification --- meshtastic/mqtt.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/meshtastic/mqtt.proto b/meshtastic/mqtt.proto index 00c2b2e..7cbf5d0 100644 --- a/meshtastic/mqtt.proto +++ b/meshtastic/mqtt.proto @@ -106,6 +106,7 @@ message MapReport { /* * User has opted in to share their location (map report) with the mqtt server + * Controlled by map_report.should_report_location */ bool has_opted_in = 14; } From a8da85a73f2a016b7c27b46adb3346db99373d78 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 14 May 2025 13:32:22 -0500 Subject: [PATCH 36/76] Clarification --- meshtastic/mqtt.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/mqtt.proto b/meshtastic/mqtt.proto index 7cbf5d0..4edf0c4 100644 --- a/meshtastic/mqtt.proto +++ b/meshtastic/mqtt.proto @@ -108,5 +108,5 @@ message MapReport { * User has opted in to share their location (map report) with the mqtt server * Controlled by map_report.should_report_location */ - bool has_opted_in = 14; + bool has_opted_report_location = 14; } From 3a35144931d64674f7978a391d0358a8d8aa5dde Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 14 May 2025 14:13:12 -0500 Subject: [PATCH 37/76] Update module_config.proto --- meshtastic/module_config.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 06ca899..588def6 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -99,7 +99,7 @@ message ModuleConfig { /* * Whether we should report our location to the map */ - optional bool should_report_location = 3; + bool should_report_location = 3; } /* From f76d353f383a2e5de43a6f08562e499706603fc3 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 14 May 2025 14:13:51 -0500 Subject: [PATCH 38/76] Update module_config.proto --- meshtastic/module_config.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 588def6..e6c1694 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -97,7 +97,7 @@ message ModuleConfig { uint32 position_precision = 2; /* - * Whether we should report our location to the map + * Whether we have opted-in to report our location to the map */ bool should_report_location = 3; } From 4eb0aebaef1304a5516b6fa864cb4c55daed9147 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Wed, 14 May 2025 16:58:20 -0500 Subject: [PATCH 39/76] Add Linux Host Metrics (#685) * Add Linux Host Metrics * Tweak to load values --- meshtastic/telemetry.options | 4 +++ meshtastic/telemetry.proto | 51 ++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/meshtastic/telemetry.options b/meshtastic/telemetry.options index a429c3e..f930bcd 100644 --- a/meshtastic/telemetry.options +++ b/meshtastic/telemetry.options @@ -10,3 +10,7 @@ *HealthMetrics.heart_bpm int_size:8 *HealthMetrics.spO2 int_size:8 + +*HostMetrics.load1 int_size:16 +*HostMetrics.load5 int_size:16 +*HostMetrics.load15 int_size:16 \ No newline at end of file diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 68b4e5d..3e4af66 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -340,6 +340,52 @@ message LocalStats { optional float temperature = 3; } +/* + * Linux host metrics + */ +message HostMetrics { + /* + * Host system uptime + */ + uint32 uptime_seconds = 1; + + /* + * Host system free memory + */ + uint64 freemem_bytes = 2; + + /* + * Host system disk space free for / + */ + uint64 diskfree1_bytes = 3; + + /* + * Secondary system disk space free + */ + optional uint64 diskfree2_bytes = 4; + + /* + * Tertiary disk space free + */ + optional uint64 diskfree3_bytes = 5; + + /* + * Host system one minute load in 1/100ths + */ + uint32 load1 = 6; + + /* + * Host system five minute load in 1/100ths + */ + uint32 load5 = 7; + + /* + * Host system fifteen minute load in 1/100ths + */ + uint32 load15 = 8; +} + + /* * Types of Measurements the telemetry module is equipped to handle */ @@ -379,6 +425,11 @@ message Telemetry { * Health telemetry metrics */ HealthMetrics health_metrics = 7; + + /* + * Linux host metrics + */ + HostMetrics host_metrics = 8; } } From 490d0123b5357f058e26aba3652be805239967aa Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Sat, 17 May 2025 10:23:47 -0500 Subject: [PATCH 40/76] Add the user_string to HostMetrics (#686) --- meshtastic/telemetry.proto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 3e4af66..06734ae 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -383,6 +383,12 @@ message HostMetrics { * Host system fifteen minute load in 1/100ths */ uint32 load15 = 8; + + /* + * Optional User-provided string for arbitrary host system information + * that doesn't make sense as a dedicated entry. + */ + optional string user_string = 9; } From 475694e62b0fdac3469abc15c6d66d05fc9ad69a Mon Sep 17 00:00:00 2001 From: Michael Cullen Date: Sat, 17 May 2025 17:27:03 +0200 Subject: [PATCH 41/76] Add PCT2075 sensor (#687) This is a temperature sensor --- meshtastic/telemetry.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 06734ae..bfc64dc 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -637,6 +637,11 @@ enum TelemetrySensorType { * MAX17261 lipo battery gauge */ MAX17261 = 38; + + /* + * PCT2075 Temperature Sensor + */ + PCT2075 = 39; } /* From d8b709aa5da85959a80a06a6624761678a96f9c0 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Sat, 17 May 2025 12:28:08 -0500 Subject: [PATCH 42/76] Add missed max_size for optional HostMetrics string (#688) --- meshtastic/telemetry.options | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meshtastic/telemetry.options b/meshtastic/telemetry.options index f930bcd..3c7238a 100644 --- a/meshtastic/telemetry.options +++ b/meshtastic/telemetry.options @@ -13,4 +13,5 @@ *HostMetrics.load1 int_size:16 *HostMetrics.load5 int_size:16 -*HostMetrics.load15 int_size:16 \ No newline at end of file +*HostMetrics.load15 int_size:16 +*HostMetrics.user_string max_size:200 From 2b59c7f519ab895847e2cd6316abcd2a28ba4cfb Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Tue, 20 May 2025 18:22:37 -0500 Subject: [PATCH 43/76] add nodeinfo bool/bitfield for is_manually_validated --- meshtastic/deviceonly.proto | 6 ++++++ meshtastic/mesh.proto | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/meshtastic/deviceonly.proto b/meshtastic/deviceonly.proto index 3be781f..623532a 100644 --- a/meshtastic/deviceonly.proto +++ b/meshtastic/deviceonly.proto @@ -164,6 +164,12 @@ message NodeInfoLite { * Last byte of the node number of the node that should be used as the next hop to reach this node. */ uint32 next_hop = 12; + + /* + * Bitfield for storing booleans. + * LSB 0 is_manually_validated + */ + uint32 bitfield = 13; } /* diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index eedc872..c2c68b5 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1459,6 +1459,13 @@ message NodeInfo { * Persists between NodeDB internal clean ups */ bool is_ignored = 11; + + /* + * True if node public key has been validated. + * Persists between NodeDB internal clean ups + * LSB 0 of the bitfield + */ + bool is_manually_validated = 12; } /* From 08d7a07a4a94bd2ecb7e73e1bc577ca84180b745 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Tue, 20 May 2025 19:25:52 -0500 Subject: [PATCH 44/76] Better name for is_key_manually_verified --- meshtastic/deviceonly.proto | 2 +- meshtastic/mesh.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/meshtastic/deviceonly.proto b/meshtastic/deviceonly.proto index 623532a..acde0f1 100644 --- a/meshtastic/deviceonly.proto +++ b/meshtastic/deviceonly.proto @@ -167,7 +167,7 @@ message NodeInfoLite { /* * Bitfield for storing booleans. - * LSB 0 is_manually_validated + * LSB 0 is_key_manually_verified */ uint32 bitfield = 13; } diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index c2c68b5..74898c3 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1465,7 +1465,7 @@ message NodeInfo { * Persists between NodeDB internal clean ups * LSB 0 of the bitfield */ - bool is_manually_validated = 12; + bool is_key_manually_verified = 12; } /* From 117ea15f6fa5a3ce4eff707653fc2f6712fadd0f Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Tue, 20 May 2025 19:41:21 -0500 Subject: [PATCH 45/76] Update mesh.proto --- meshtastic/mesh.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 74898c3..6d7798f 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1461,7 +1461,7 @@ message NodeInfo { bool is_ignored = 11; /* - * True if node public key has been validated. + * True if node public key has been verified. * Persists between NodeDB internal clean ups * LSB 0 of the bitfield */ From 657651891ad8040b2238b203882ad14064cbf091 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sat, 24 May 2025 06:51:16 -0500 Subject: [PATCH 46/76] Add heap free and total to local stats telemetry message --- meshtastic/telemetry.proto | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index bfc64dc..0f2400c 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -318,6 +318,16 @@ message LocalStats { * This will always be zero for ROUTERs/REPEATERs. If this number is high, some other node(s) is/are relaying faster than you. */ uint32 num_tx_relay_canceled = 11; + + /* + * Number of bytes used in the heap + */ + uint32 heap_total_bytes = 12; + + /* + * Number of bytes free in the heap + */ + uint32 heap_free_bytes = 13; } /* From 0b815a6f93064d6fef4eb86f830a9717fd92a5c7 Mon Sep 17 00:00:00 2001 From: Xavier horwood <39760456+Xavierhorwood@users.noreply.github.com> Date: Wed, 28 May 2025 02:37:07 +1000 Subject: [PATCH 47/76] Add Ipv6 Option (#692) --- meshtastic/config.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/config.proto b/meshtastic/config.proto index 0e51cdd..c2a4df2 100644 --- a/meshtastic/config.proto +++ b/meshtastic/config.proto @@ -521,6 +521,11 @@ message Config { */ uint32 enabled_protocols = 10; + /* + * Enable/Disable ipv6 support + */ + bool ipv6_enabled = 11; + /* * Available flags auxiliary network protocols */ From deff1ca54eb7ae8f1d63370b5d0698de3f6d9bc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Tue, 27 May 2025 21:34:41 +0200 Subject: [PATCH 48/76] new HWID's --- meshtastic/mesh.proto | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 6d7798f..da5a0f4 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -724,6 +724,21 @@ enum HardwareModel { */ CROWPANEL = 97; + /* + * "Lilygo" LINK32 board with sensors + */ + LINK_32 = 98; + + /* + * Seeed Tracker L1 + */ + SEEED_TRACKER_L1 = 99; + + /* + * Seeed Tracker L1 EINK driver + */ + SEEED_TRACKER_L1_EINK = 100; + /* * ------------------------------------------------------------------------------------------------------------------------------------------ * 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. From 7a256cad538b60e1e8252b624419d1b901c16801 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Tue, 27 May 2025 22:06:12 +0200 Subject: [PATCH 49/76] Update meshtastic/mesh.proto Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- meshtastic/mesh.proto | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index da5a0f4..0fdd3f9 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -724,17 +724,17 @@ enum HardwareModel { */ CROWPANEL = 97; - /* + /** * "Lilygo" LINK32 board with sensors */ LINK_32 = 98; - /* + /** * Seeed Tracker L1 */ SEEED_TRACKER_L1 = 99; - /* + /** * Seeed Tracker L1 EINK driver */ SEEED_TRACKER_L1_EINK = 100; From fa4d98594cacd590fb55c78e8302f8ede43f1648 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Tue, 27 May 2025 22:06:41 +0200 Subject: [PATCH 50/76] Update meshtastic/mesh.proto Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- meshtastic/mesh.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 0fdd3f9..75aa949 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -725,7 +725,7 @@ enum HardwareModel { CROWPANEL = 97; /** - * "Lilygo" LINK32 board with sensors + * Lilygo LINK32 board with sensors */ LINK_32 = 98; From 4a108827a9712d7b40254e5bd533b7d929fdd490 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Tue, 27 May 2025 22:18:06 +0200 Subject: [PATCH 51/76] Add another one --- meshtastic/mesh.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 75aa949..4ceea69 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -738,6 +738,11 @@ enum HardwareModel { * Seeed Tracker L1 EINK driver */ SEEED_TRACKER_L1_EINK = 100; + + /* + * Reserved ID for future and past use + */ + QWANTZ_TINY_ARMS = 101; /* * ------------------------------------------------------------------------------------------------------------------------------------------ From 0268354426b29af53dd891cb99217b42e3f1b43e Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Tue, 27 May 2025 15:33:19 -0500 Subject: [PATCH 52/76] Key validation messages (#690) * Add the transport messages for a key validation protocol --- meshtastic/admin.proto | 57 ++++++++++++++++++++++++++++++++++++++- meshtastic/mesh.options | 9 +++++++ meshtastic/mesh.proto | 44 ++++++++++++++++++++++++++++++ meshtastic/portnums.proto | 5 ++++ 4 files changed, 114 insertions(+), 1 deletion(-) diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index b6fc552..91fbb2b 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -402,6 +402,11 @@ message AdminMessage { */ SharedContact add_contact = 66; + /* + * Initiate or respond to a key verification request + */ + KeyVerificationAdmin key_verification = 67; + /* * Tell the node to factory reset config everything; all device state and configuration will be returned to factory defaults and BLE bonds will be cleared. */ @@ -488,4 +493,54 @@ message SharedContact { * The User of the contact */ User user = 2; -} \ No newline at end of file +} + + /* + * This message is used by a client to initiate or complete a key verification + */ +message KeyVerificationAdmin { + /* + * Three stages of this request. + */ + enum MessageType { + + /* + * This is the first stage, where a client initiates + */ + INITIATE_VERIFICATION = 0; + + /* + * After the nonce has been returned over the mesh, the client prompts for the security number + * And uses this message to provide it to the node. + */ + PROVIDE_SECURITY_NUMBER = 1; + + /* + * Once the user has compared the verification message, this message notifies the node. + */ + DO_VERIFY = 2; + + /* + * This is the cancel path, can be taken at any point + */ + DO_NOT_VERIFY = 3; + + } + + MessageType message_type = 1; + + /* + * The nodenum we're requesting + */ + uint32 remote_nodenum = 2; + + /* + * The nonce is used to track the connection + */ + uint64 nonce = 3; + + /* + * The 4 digit code generated by the remote node, and communicated outside the mesh + */ + optional uint32 security_number = 4; +} diff --git a/meshtastic/mesh.options b/meshtastic/mesh.options index e2c905d..49dd597 100644 --- a/meshtastic/mesh.options +++ b/meshtastic/mesh.options @@ -58,6 +58,15 @@ *ClientNotification.message max_size:400 +*KeyVerificationNumberInform.remote_longname max_size:40 +*KeyVerificationNumberRequest.remote_longname max_size:40 +*KeyVerificationFinal.remote_longname max_size:40 +*KeyVerificationFinal.verification_characters max_size:10 + +*KeyVerification.hash1 max_size:32 +*KeyVerification.hash2 max_size:32 + + # MyMessage.name max_size:40 # or fixed_length or fixed_count, or max_count diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 6d7798f..dffdf98 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1011,6 +1011,28 @@ message Data { optional uint32 bitfield = 9; } +/* + * The actual over-the-mesh message doing KeyVerification + */ +message KeyVerification { + + /* + * random value Selected by the requesting node + */ + uint64 nonce = 1; + + /* + * The final authoritative hash, only to be sent by NodeA at the end of the handshake + */ + bytes hash1 = 2; + + /* + * The intermediary hash (actually derived from hash1), + * sent from NodeB to NodeA in response to the initial message. + */ + bytes hash2 = 3; +} + /* * Waypoint message, used to share arbitrary locations across the mesh */ @@ -1800,6 +1822,28 @@ message ClientNotification { * The message body of the notification */ string message = 4; + + oneof payload_variant { + KeyVerificationNumberInform key_verification_number_inform = 11; + KeyVerificationNumberRequest key_verification_number_request = 12; + KeyVerificationFinal key_verification_final = 13; + } +} + +message KeyVerificationNumberInform { + uint64 nonce = 1; + string remote_longname = 2; + uint32 security_number = 3; +} +message KeyVerificationNumberRequest { + uint64 nonce = 1; + string remote_longname = 2; +} +message KeyVerificationFinal { + uint64 nonce = 1; + string remote_longname = 2; + bool isSender = 3; + string verification_characters = 4; } /* diff --git a/meshtastic/portnums.proto b/meshtastic/portnums.proto index 76df5db..0203392 100644 --- a/meshtastic/portnums.proto +++ b/meshtastic/portnums.proto @@ -110,6 +110,11 @@ enum PortNum { */ ALERT_APP = 11; + /* + * Module/port for handling key verification requests. + */ + KEY_VERIFICATION_APP = 12; + /* * Provides a 'ping' service that replies to any packet it receives. * Also serves as a small example module. From 24c7a3d287a4bd269ce191827e5dabd8ce8f57a7 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 28 May 2025 06:13:31 -0500 Subject: [PATCH 53/76] WIO --- meshtastic/mesh.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 2010853..4472934 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -732,12 +732,12 @@ enum HardwareModel { /** * Seeed Tracker L1 */ - SEEED_TRACKER_L1 = 99; + SEEED_WIO_TRACKER_L1 = 99; /** * Seeed Tracker L1 EINK driver */ - SEEED_TRACKER_L1_EINK = 100; + SEEED_WIO_TRACKER_L1_EINK = 100; /* * Reserved ID for future and past use From f9927457f6d69c15ba02a0c58e5bad34a1b32377 Mon Sep 17 00:00:00 2001 From: mverch67 Date: Thu, 5 Jun 2025 18:06:04 +0200 Subject: [PATCH 54/76] bulgarian language support --- meshtastic/device_ui.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/device_ui.proto b/meshtastic/device_ui.proto index 138f5e8..1b11ada 100644 --- a/meshtastic/device_ui.proto +++ b/meshtastic/device_ui.proto @@ -278,6 +278,11 @@ enum Language { */ UKRAINIAN = 16; + /* + * Bulgarian + */ + BULGARIAN = 17; + /* * Simplified Chinese (experimental) */ From 81c4d4864361770a55320cb51c7a809fac637722 Mon Sep 17 00:00:00 2001 From: mverch67 Date: Thu, 5 Jun 2025 18:16:24 +0200 Subject: [PATCH 55/76] add T-Deck Pro and TLora Pager HW model IDs --- meshtastic/mesh.proto | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 4472934..ea183b8 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -744,6 +744,16 @@ enum HardwareModel { */ QWANTZ_TINY_ARMS = 101; + /** + * Lilygo T-Deck Pro + */ + T_DECK_PRO = 102; + + /** + * Lilygo TLora Pager + */ + T_LORA_PAGER = 103; + /* * ------------------------------------------------------------------------------------------------------------------------------------------ * 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. From 758115714f2f6989c9e8378e59e0e70eeb5c6895 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sat, 7 Jun 2025 06:32:08 -0500 Subject: [PATCH 56/76] Added buzzer mode --- meshtastic/config.proto | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/meshtastic/config.proto b/meshtastic/config.proto index c2a4df2..48b77f0 100644 --- a/meshtastic/config.proto +++ b/meshtastic/config.proto @@ -150,6 +150,36 @@ message Config { CORE_PORTNUMS_ONLY = 5; } + /* + * Defines buzzer behavior for audio feedback + */ + enum BuzzerMode { + /* + * Default behavior. + * Buzzer is enabled for all audio feedback including button presses and alerts. + */ + ALL_ENABLED = 0; + + /* + * Disabled. + * All buzzer audio feedback is disabled. + */ + DISABLED = 1; + + /* + * Notifications Only. + * Buzzer is enabled only for notifications and alerts, but not for button presses. + * External notification config determines the specifics of the notification behavior. + */ + NOTIFICATIONS_ONLY = 2; + + /* + * Non-notification system buzzer tones only. + * Buzzer is enabled only for non-notification tones such as button presses, startup, shutdown, but not for alerts. + */ + SYSTEM_ONLY = 3; + } + /* * Sets the role of node */ @@ -210,6 +240,12 @@ message Config { * If true, disable the default blinking LED (LED_PIN) behavior on the device */ bool led_heartbeat_disabled = 12; + + /* + * Controls buzzer behavior for audio feedback + * Defaults to ENABLED + */ + BuzzerMode buzzer_mode = 13; } /* From abd60b70f0306697ea2cf82a873bf5748bc65e5f Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sat, 7 Jun 2025 06:33:59 -0500 Subject: [PATCH 57/76] Annotation --- meshtastic/config.options | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meshtastic/config.options b/meshtastic/config.options index 9310cf0..3f6d81c 100644 --- a/meshtastic/config.options +++ b/meshtastic/config.options @@ -1,5 +1,7 @@ # longest current is 45 chars, plan with a bit of buffer *DeviceConfig.tzdef max_size:65 +*DeviceConfig.buzzer_mode int_size:8 + *NetworkConfig.wifi_ssid max_size:33 *NetworkConfig.wifi_psk max_size:65 From 7c7621a39b7eff216c87da5a7b0beeea1462a60f Mon Sep 17 00:00:00 2001 From: csrutil Date: Sun, 8 Jun 2025 16:29:12 +0800 Subject: [PATCH 58/76] add protobufs for GAT562 Mesh Trial Tracker --- meshtastic/mesh.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index ea183b8..03162d8 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -754,6 +754,11 @@ enum HardwareModel { */ T_LORA_PAGER = 103; + /** + * GAT562 Mesh Trial Tracker + */ + GAT562_MESH_TRIAL_TRACKER = 104; + /* * ------------------------------------------------------------------------------------------------------------------------------------------ * 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. From 9468fa39801b6e53143a7079d8e7ae0680ab1590 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Wed, 11 Jun 2025 12:39:51 -0500 Subject: [PATCH 59/76] Add blank messages for ClientNotification oneof --- meshtastic/mesh.proto | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 03162d8..e58c22c 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1862,6 +1862,8 @@ message ClientNotification { KeyVerificationNumberInform key_verification_number_inform = 11; KeyVerificationNumberRequest key_verification_number_request = 12; KeyVerificationFinal key_verification_final = 13; + DuplicatedPublicKey duplicated_public_key = 14; + LowEntropyKey low_entropy_key = 15; } } @@ -1880,7 +1882,8 @@ message KeyVerificationFinal { bool isSender = 3; string verification_characters = 4; } - +message DuplicatedPublicKey {} +message LowEntropyKey {} /* * Individual File info for the device */ From f7824eb09df989dde7537202043d20efdc6074bb Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 11 Jun 2025 17:27:19 -0500 Subject: [PATCH 60/76] Implement send_input_event --- meshtastic/admin.options | 5 +++++ meshtastic/admin.proto | 29 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/meshtastic/admin.options b/meshtastic/admin.options index 022c4fd..0e2df37 100644 --- a/meshtastic/admin.options +++ b/meshtastic/admin.options @@ -2,6 +2,11 @@ *AdminMessage.session_passkey max_size:8 +*InputEvent.event_code max_size:8 +*InputEvent.kb_char max_size:8 +*InputEvent.touch_x max_size:16 +*InputEvent.touch_y max_size:16 + *AdminMessage.set_canned_message_module_messages max_size:201 *AdminMessage.get_canned_message_module_messages_response max_size:201 *AdminMessage.delete_file_request max_size:201 diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index 91fbb2b..227ba49 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -166,6 +166,28 @@ message AdminMessage { SD = 1; } + /* + * Input event message to be sent to the node. + */ + message InputEvent { + /* + * The input event code + */ + uint32 event_code = 1; + /* + * Keyboard character code + */ + uint32 kb_char = 2; + /* + * The touch X coordinate + */ + uint32 touch_x = 3; + /* + * The touch Y coordinate + */ + uint32 touch_y = 4; + } + /* * TODO: REPLACE */ @@ -296,6 +318,13 @@ message AdminMessage { * Remove backups of the node's preferences */ BackupLocation remove_backup_preferences = 26; + + /* + * Send an input event to the node. + * This is used to trigger phyiscal input events like button presses, touch events, etc. + */ + InputEvent send_input_event = 27; + /* * Set the owner for this node */ From 20510c79b42bea5af76f0427c351547853c7709f Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 11 Jun 2025 18:58:40 -0500 Subject: [PATCH 61/76] Update meshtastic/admin.options Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- meshtastic/admin.options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/admin.options b/meshtastic/admin.options index 0e2df37..f3db113 100644 --- a/meshtastic/admin.options +++ b/meshtastic/admin.options @@ -3,7 +3,7 @@ *AdminMessage.session_passkey max_size:8 *InputEvent.event_code max_size:8 -*InputEvent.kb_char max_size:8 +*AdminMessage.InputEvent.kb_char max_size:8 *InputEvent.touch_x max_size:16 *InputEvent.touch_y max_size:16 From 3d345339354597af324e330ceca6bc3be06596f6 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 11 Jun 2025 18:59:12 -0500 Subject: [PATCH 62/76] Update meshtastic/admin.options Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- meshtastic/admin.options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/admin.options b/meshtastic/admin.options index f3db113..43ac44c 100644 --- a/meshtastic/admin.options +++ b/meshtastic/admin.options @@ -5,7 +5,7 @@ *InputEvent.event_code max_size:8 *AdminMessage.InputEvent.kb_char max_size:8 *InputEvent.touch_x max_size:16 -*InputEvent.touch_y max_size:16 +*AdminMessage.InputEvent.touch_y max_size:16 *AdminMessage.set_canned_message_module_messages max_size:201 *AdminMessage.get_canned_message_module_messages_response max_size:201 From 07eb2a85abdd0ee00713be573aa285c233f56c50 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 11 Jun 2025 18:59:36 -0500 Subject: [PATCH 63/76] Update admin.options --- meshtastic/admin.options | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meshtastic/admin.options b/meshtastic/admin.options index 43ac44c..2f54135 100644 --- a/meshtastic/admin.options +++ b/meshtastic/admin.options @@ -2,9 +2,9 @@ *AdminMessage.session_passkey max_size:8 -*InputEvent.event_code max_size:8 +*AdminMessage.InputEvent.event_code max_size:8 *AdminMessage.InputEvent.kb_char max_size:8 -*InputEvent.touch_x max_size:16 +*AdminMessage.InputEvent.touch_x max_size:16 *AdminMessage.InputEvent.touch_y max_size:16 *AdminMessage.set_canned_message_module_messages max_size:201 From 579578394cf584ae6ee78df47fe3f8625d19d27e Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 11 Jun 2025 19:07:05 -0500 Subject: [PATCH 64/76] Update meshtastic/admin.proto Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- meshtastic/admin.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index 227ba49..f9e73b2 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -321,7 +321,7 @@ message AdminMessage { /* * Send an input event to the node. - * This is used to trigger phyiscal input events like button presses, touch events, etc. + * This is used to trigger physical input events like button presses, touch events, etc. */ InputEvent send_input_event = 27; From 0c112881dfb4aa24a61ee55dd4c46abbfc093717 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 11 Jun 2025 19:10:00 -0500 Subject: [PATCH 65/76] Int size --- meshtastic/admin.options | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meshtastic/admin.options b/meshtastic/admin.options index 2f54135..4a28ff2 100644 --- a/meshtastic/admin.options +++ b/meshtastic/admin.options @@ -2,10 +2,10 @@ *AdminMessage.session_passkey max_size:8 -*AdminMessage.InputEvent.event_code max_size:8 -*AdminMessage.InputEvent.kb_char max_size:8 -*AdminMessage.InputEvent.touch_x max_size:16 -*AdminMessage.InputEvent.touch_y max_size:16 +*AdminMessage.InputEvent.event_code int_size:8 +*AdminMessage.InputEvent.kb_char int_size:8 +*AdminMessage.InputEvent.touch_x int_size:16 +*AdminMessage.InputEvent.touch_y int_size:16 *AdminMessage.set_canned_message_module_messages max_size:201 *AdminMessage.get_canned_message_module_messages_response max_size:201 From 9ccc49deaff04df724003b68b5ad1edd4aa9c91d Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Sat, 14 Jun 2025 10:29:43 +1000 Subject: [PATCH 66/76] As reported by @monkeypants, the MY_433 region is not legal in ANZ due to power limits being too high. This patch introduced an ANZ_433 region to match the requirements in Australia and New Zealand. 433.05 - 434.79 MHz, 25mW EIRP max, No duty cycle restrictions AU Low Interference Potential https://www.acma.gov.au/licences/low-interference-potential-devices-lipd-class-licence NZ General User Radio Licence for Short Range Devices https://gazette.govt.nz/notice/id/2022-go3100 Fixes https://github.com/meshtastic/firmware/issues/7032 --- meshtastic/config.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/config.proto b/meshtastic/config.proto index 48b77f0..d587207 100644 --- a/meshtastic/config.proto +++ b/meshtastic/config.proto @@ -911,6 +911,11 @@ message Config { * Philippines 915mhz */ PH_915 = 21; + /* + * Australia / New Zealand 433MHz + */ + ANZ_433 = 22; + } /* From a1cc3e697d826ba3b00182aa8eaa4d6a521b13e7 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sun, 15 Jun 2025 06:23:36 -0500 Subject: [PATCH 67/76] Add ability to block Shared contacts --- meshtastic/admin.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index f9e73b2..c93a964 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -522,6 +522,11 @@ message SharedContact { * The User of the contact */ User user = 2; + + /* + * Add this contact to the blocked / ignored list + */ + bool should_ignore = 3; } /* From 8d3870241b8cb2d3858e23eee02fab2c0454a2b2 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Thu, 19 Jun 2025 18:26:10 -0500 Subject: [PATCH 68/76] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index f837862..9e36197 100644 --- a/README.md +++ b/README.md @@ -14,4 +14,3 @@ The [Protobuf](https://developers.google.com/protocol-buffers) message definitio ## Stats ![Alt](https://repobeats.axiom.co/api/embed/47e9ee1d81d9c0fdd2b4b5b4c673adb1756f6db5.svg "Repobeats analytics image") - From 6791138f0ba2b7c471072bd4bba6cbb8bacffe2d Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Fri, 20 Jun 2025 19:31:33 -0500 Subject: [PATCH 69/76] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9e36197..f837862 100644 --- a/README.md +++ b/README.md @@ -14,3 +14,4 @@ The [Protobuf](https://developers.google.com/protocol-buffers) message definitio ## Stats ![Alt](https://repobeats.axiom.co/api/embed/47e9ee1d81d9c0fdd2b4b5b4c673adb1756f6db5.svg "Repobeats analytics image") + From 386fa53c1596c8dfc547521f08df107f4cb3a275 Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Wed, 25 Jun 2025 20:05:19 +0200 Subject: [PATCH 70/76] Add ADS1X15 voltage metrics (#711) * Add ADS1X15 voltage metrics * Add 8 channels to allow for daisy chaining of ADS1X15 --- meshtastic/telemetry.proto | 55 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 0f2400c..2631644 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -188,6 +188,56 @@ message PowerMetrics { * Current (Ch3) */ optional float ch3_current = 6; + + /* + * Voltage (Ch4) + */ + optional float ch4_voltage = 7; + + /* + * Current (Ch4) + */ + optional float ch4_current = 8; + + /* + * Voltage (Ch5) + */ + optional float ch5_voltage = 9; + + /* + * Current (Ch5) + */ + optional float ch5_current = 10; + + /* + * Voltage (Ch6) + */ + optional float ch6_voltage = 11; + + /* + * Current (Ch6) + */ + optional float ch6_current = 12; + + /* + * Voltage (Ch7) + */ + optional float ch7_voltage = 13; + + /* + * Current (Ch7) + */ + optional float ch7_current = 14; + + /* + * Voltage (Ch8) + */ + optional float ch8_voltage = 15; + + /* + * Current (Ch8) + */ + optional float ch8_current = 16; } /* @@ -652,6 +702,11 @@ enum TelemetrySensorType { * PCT2075 Temperature Sensor */ PCT2075 = 39; + + /* + * ADS1X15 ADC + */ + ADS1X15 = 40; } /* From efd4d5c5535c84611e3dd0d54018fe3b1ddb7e6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Thu, 26 Jun 2025 15:12:24 +0200 Subject: [PATCH 71/76] bring back port 77 accidentally removed --- meshtastic/portnums.proto | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meshtastic/portnums.proto b/meshtastic/portnums.proto index 0203392..e388a6f 100644 --- a/meshtastic/portnums.proto +++ b/meshtastic/portnums.proto @@ -217,6 +217,13 @@ enum PortNum { */ RETICULUM_TUNNEL_APP = 76; + /* + * App for transporting Cayenne Low Power Payload, popular for LoRaWAN sensor nodes. Offers ability to send + * arbitrary telemetry over meshtastic that is not covered by telemetry.proto + * ENCODING: CayenneLLP + */ + CAYENNE_APP = 77; + /* * Private applications should use portnums >= 256. * To simplify initial development and testing you can use "PRIVATE_APP" From 1d05974fe41c9e1d1938c6181c26703654e3de3a Mon Sep 17 00:00:00 2001 From: "Daniel.Cao" <144674500+DanielCao0@users.noreply.github.com> Date: Thu, 26 Jun 2025 21:23:52 +0800 Subject: [PATCH 72/76] feat: add support for RAKwireless wiscore RAK3312 and Wismeshtag (#714) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add RAKwireless hardware models 1.RAK3112 2.Wismeshtag * Rename RAKwireless RAK3112 to RAK3312 in HardwareModel enum * keep ID's in sequence --------- Co-authored-by: Daniel.Cao Co-authored-by: Thomas Göttgens --- meshtastic/mesh.proto | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index e58c22c..bf0d6d6 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -758,6 +758,18 @@ enum HardwareModel { * GAT562 Mesh Trial Tracker */ GAT562_MESH_TRIAL_TRACKER = 104; + + /** + * RAKwireless WisMesh Tag + */ + WISMESH_TAG = 105; + + /** + * RAKwireless WisBlock Core RAK3312 https://docs.rakwireless.com/product-categories/wisduo/rak3112-module/overview/ + */ + RAK3312 = 106; + + /* * ------------------------------------------------------------------------------------------------------------------------------------------ From 2097da996c74a666fe5a35658128cf61f2944b0e Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Thu, 26 Jun 2025 19:35:59 -0500 Subject: [PATCH 73/76] Update regarding hw_model policies --- .github/pull_request_template.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 6eba5cc..5908107 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -10,3 +10,21 @@ - [ ] All top level messages commented - [ ] All enum members have unique descriptions + + +### New Hardware Model Acceptance Policy + +Due to limited availability and ongoing support, new Hardware Models will only be accepted by [Meshtastic Backers and Partners](https://meshtastic.com/). The Meshtastic team reserves the right to make exceptions to this policy. + +#### Alternative for Community Contributors + +You are welcome to use one of the existing DIY hardware models in your PlatformIO environment and create a pull request in the firmware project. Please note the following conditions: + +- The device will **not** be officially supported by the core Meshtastic team. +- The device will **not** appear in the [Web Flasher](https://flasher.meshtastic.org/) or Github release assets. +- You will be responsible for ongoing maintenance and support. +- Community-contributed / DIY hardware models are considered experimental and will likely have limited or no testing. + +#### Getting Official Support + +To have your hardware model officially supported and included in the Meshtastic ecosystem, consider becoming a Meshtastic Backer or Partner. Visit [meshtastic.com](https://meshtastic.com/) for more information about partnership opportunities. From 32e442a6882916cecb0462727b3aedfed5122b57 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Tue, 1 Jul 2025 20:11:29 -0500 Subject: [PATCH 74/76] Base UI display config settings --- meshtastic/device_ui.options | 3 ++- meshtastic/device_ui.proto | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/meshtastic/device_ui.options b/meshtastic/device_ui.options index 5aa61d0..67bee23 100644 --- a/meshtastic/device_ui.options +++ b/meshtastic/device_ui.options @@ -2,9 +2,10 @@ *DeviceUIConfig.screen_timeout int_size:16 *DeviceUIConfig.ring_tone_id int_size:8 *DeviceUIConfig.calibration_data max_size:16 +*DeviceUIConfig.compass_mode int_size:8 *NodeFilter.node_name max_size:16 *NodeFilter.hops_away int_size:8 *NodeFilter.channel int_size:8 *NodeHighlight.node_name max_size:16 *GeoPoint.zoom int_size:8 -*Map.style max_size:20 +*Map.style max_size:20 \ No newline at end of file diff --git a/meshtastic/device_ui.proto b/meshtastic/device_ui.proto index 1b11ada..b943600 100644 --- a/meshtastic/device_ui.proto +++ b/meshtastic/device_ui.proto @@ -71,6 +71,23 @@ message DeviceUIConfig { * Map related data */ Map map_data = 15; + + /* + * Compass mode + */ + CompassMode compass_mode = 16; + + /* + * RGB color for BaseUI + * 0xRRGGBB format, e.g. 0xFF0000 for red + */ + uint32 screen_rgb_color = 17; + + /* + * Clockface analog style + * true for analog clockface, false for digital clockface + */ + bool is_clockface_analog = 18; } @@ -174,6 +191,23 @@ message Map { bool follow_gps = 3; } +enum CompassMode { + /* + * Compass with dynamic ring and heading + */ + DYNAMIC = 0; + + /* + * Compass with fixed ring and heading + */ + FIXED_RING = 1; + + /* + * Compass with heading and freeze option + */ + FREEZE_HEADING = 2; +} + enum Theme { /* * Dark From 7069b8570dc6108d8972d18df6933d50941b133f Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Wed, 2 Jul 2025 11:06:53 +0200 Subject: [PATCH 75/76] Add CO2 sensor temperature and relative humidity --- meshtastic/telemetry.proto | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 2631644..c39a586 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -308,6 +308,16 @@ message AirQualityMetrics { * CO2 concentration in ppm */ optional uint32 co2 = 13; + + /* + * CO2 sensor temperature in degC + */ + optional float co2_temperature = 14; + + /* + * CO2 sensor relative humidity in % + */ + optional float co2_humidity = 15; } /* From 95a1ea92301f8fe97c45d217f7aff850399524db Mon Sep 17 00:00:00 2001 From: rcarteraz Date: Wed, 2 Jul 2025 11:43:48 -0700 Subject: [PATCH 76/76] should be from, not by --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 5908107..8db5e30 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -14,7 +14,7 @@ ### New Hardware Model Acceptance Policy -Due to limited availability and ongoing support, new Hardware Models will only be accepted by [Meshtastic Backers and Partners](https://meshtastic.com/). The Meshtastic team reserves the right to make exceptions to this policy. +Due to limited availability and ongoing support, new Hardware Models will only be accepted from [Meshtastic Backers and Partners](https://meshtastic.com/). The Meshtastic team reserves the right to make exceptions to this policy. #### Alternative for Community Contributors