From 30eb05a8a97a216d602e50b3c38d6086ba52cd5d Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Wed, 4 Sep 2024 14:30:54 -0500 Subject: [PATCH 01/29] Adds OKToMqtt bool to data --- meshtastic/mesh.proto | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 23d2b9c..4dfdac0 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -888,6 +888,11 @@ message Data { * a message a heart or poop emoji. */ fixed32 emoji = 8; + + /* + * Defaults to false. Indicates the user approves the packet being uploaded to MQTT. + */ + bool OKToMqtt = 9; } /* @@ -1889,4 +1894,4 @@ message ChunkedPayloadResponse { */ resend_chunks resend_chunks = 4; } -} \ No newline at end of file +} From fce5ab584fecd0113d168e792af894b8b63afb1a Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Fri, 6 Sep 2024 11:57:23 -0500 Subject: [PATCH 02/29] Rename ok_to_mqtt and add config --- meshtastic/config.proto | 7 ++++++- meshtastic/mesh.proto | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/meshtastic/config.proto b/meshtastic/config.proto index 66d149f..0ad0b26 100644 --- a/meshtastic/config.proto +++ b/meshtastic/config.proto @@ -973,6 +973,11 @@ message Config { * If true, the device will not process any packets received via LoRa that passed via MQTT anywhere on the path towards it. */ bool ignore_mqtt = 104; + + /* + * Sets the ok_to_mqtt bit on outgoing packets + */ + bool config_ok_to_mqtt = 105; } message BluetoothConfig { @@ -1070,4 +1075,4 @@ message Config { SecurityConfig security = 8; SessionkeyConfig sessionkey = 9; } -} \ No newline at end of file +} diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 4dfdac0..ed2e3aa 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -892,7 +892,7 @@ message Data { /* * Defaults to false. Indicates the user approves the packet being uploaded to MQTT. */ - bool OKToMqtt = 9; + optional bool ok_to_mqtt = 9; } /* From 0acaec6eff00e748beeae89148093221f131cd9c Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Fri, 6 Sep 2024 18:27:22 -0500 Subject: [PATCH 03/29] Move ok_to_mqtt from flag to bitfield (#574) --- meshtastic/mesh.options | 3 ++- meshtastic/mesh.proto | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/meshtastic/mesh.options b/meshtastic/mesh.options index 541e4c9..cb85daa 100644 --- a/meshtastic/mesh.options +++ b/meshtastic/mesh.options @@ -18,6 +18,7 @@ # note: this payload length is ONLY the bytes that are sent inside of the Data protobuf (excluding protobuf overhead). The 16 byte header is # outside of this envelope *Data.payload max_size:237 +*Data.bitfield int_size:8 *NodeInfo.channel int_size:8 *NodeInfo.hops_away int_size:8 @@ -72,4 +73,4 @@ *ChunkedPayload.chunk_count int_size:16 *ChunkedPayload.chunk_index int_size:16 -*ChunkedPayload.payload_chunk max_size:228 \ No newline at end of file +*ChunkedPayload.payload_chunk max_size:228 diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index ed2e3aa..ae8631b 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -890,9 +890,9 @@ message Data { fixed32 emoji = 8; /* - * Defaults to false. Indicates the user approves the packet being uploaded to MQTT. + * Bitfield for extra flags. First use is to indicate that user approves the packet being uploaded to MQTT. */ - optional bool ok_to_mqtt = 9; + optional uint32 bitfield = 9; } /* From a883cfe739aa7d531777809c83160908244a29a0 Mon Sep 17 00:00:00 2001 From: andrekir Date: Sat, 14 Sep 2024 23:15:15 -0300 Subject: [PATCH 04/29] add fixed_position, ringtone, and canned_messages to `DeviceProfile` --- meshtastic/clientonly.options | 4 +++- meshtastic/clientonly.proto | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/meshtastic/clientonly.options b/meshtastic/clientonly.options index bc98b39..c47944a 100644 --- a/meshtastic/clientonly.options +++ b/meshtastic/clientonly.options @@ -1,2 +1,4 @@ *DeviceProfile.long_name max_size:40 -*DeviceProfile.short_name max_size:5 \ No newline at end of file +*DeviceProfile.short_name max_size:5 +*DeviceProfile.ringtone max_size:231 +*DeviceProfile.canned_messages max_size:201 \ No newline at end of file diff --git a/meshtastic/clientonly.proto b/meshtastic/clientonly.proto index b1a27b1..2b919ef 100644 --- a/meshtastic/clientonly.proto +++ b/meshtastic/clientonly.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package meshtastic; import "meshtastic/localonly.proto"; +import "meshtastic/mesh.proto"; option csharp_namespace = "Meshtastic.Protobufs"; option go_package = "github.com/meshtastic/go/generated"; @@ -39,4 +40,19 @@ message DeviceProfile { * The ModuleConfig of the node */ optional LocalModuleConfig module_config = 5; + + /* + * Fixed position data + */ + optional Position fixed_position = 6; + + /* + * Ringtone for ExternalNotification + */ + optional string ringtone = 7; + + /* + * Predefined messages for CannedMessage + */ + optional string canned_messages = 8; } From 84a60f4e62228a15c7b5a149f93fbe430d7555f4 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sun, 15 Sep 2024 19:24:15 -0500 Subject: [PATCH 05/29] Add generic detail payload variant to TAKPacket --- meshtastic/atak.options | 1 + meshtastic/atak.proto | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/meshtastic/atak.options b/meshtastic/atak.options index 6baa7ea..cec1ca3 100644 --- a/meshtastic/atak.options +++ b/meshtastic/atak.options @@ -5,3 +5,4 @@ *GeoChat.message max_size:200 *GeoChat.to max_size:120 *GeoChat.to_callsign max_size:120 +*TAKPacket.detail max_size:220 \ No newline at end of file diff --git a/meshtastic/atak.proto b/meshtastic/atak.proto index ccde335..2fbc2e5 100644 --- a/meshtastic/atak.proto +++ b/meshtastic/atak.proto @@ -40,6 +40,12 @@ message TAKPacket { * ATAK GeoChat message */ GeoChat chat = 6; + + /* + * Generic CoT detail XML + * May be compressed / truncated by the sender + */ + bytes detail = 7; } } From 0347af720cb0c195a629d5f35dd538df25c6f1fb Mon Sep 17 00:00:00 2001 From: Jacob Powers <5566081+powersjcb@users.noreply.github.com> Date: Mon, 16 Sep 2024 20:19:41 -0600 Subject: [PATCH 06/29] Update deviceonly.proto --- meshtastic/deviceonly.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/deviceonly.proto b/meshtastic/deviceonly.proto index b3fb440..91367bf 100644 --- a/meshtastic/deviceonly.proto +++ b/meshtastic/deviceonly.proto @@ -141,7 +141,7 @@ message NodeInfoLite { /* * Number of hops away from us this node is (0 if adjacent) */ - uint32 hops_away = 9; + optional uint32 hops_away = 9; /* * True if node is in our favorites list From 292538b8fbc237d0736a77f6a4479437787c9ebd Mon Sep 17 00:00:00 2001 From: Jacob Powers <5566081+powersjcb@users.noreply.github.com> Date: Mon, 16 Sep 2024 20:20:45 -0600 Subject: [PATCH 07/29] 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 ae8631b..1dab94a 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1306,7 +1306,7 @@ message NodeInfo { /* * Number of hops away from us this node is (0 if adjacent) */ - uint32 hops_away = 9; + optional uint32 hops_away = 9; /* * True if node is in our favorites list From a5cf8b5ac38cf541ee27ab99237788f1e91355d6 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Mon, 16 Sep 2024 21:36:03 -0500 Subject: [PATCH 08/29] More Admin Errors --- meshtastic/mesh.proto | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index ae8631b..227d3a7 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -811,7 +811,17 @@ message Routing { /* * The receiving node does not have a Public Key to decode with */ - PKI_UNKNOWN_PUBKEY = 35; + PKI_UNKNOWN_PUBKEY = 35; + + /* + * Admin packet otherwise checks out, but uses a bogus or expired session key + */ + ADMIN_BAD_SESSION_KEY = 36; + + /* + * Admin packet sent using PKC, but not from a public key on the admin key list + */ + ADMIN_PUBLIC_KEY_UNAUTHORIZED = 37; } oneof variant { From c5108cfd6bbc59adef44575dcec3067cbfbfeac1 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Mon, 16 Sep 2024 21:52:43 -0500 Subject: [PATCH 09/29] Update max_count of admin_key to 3 (#575) --- meshtastic/config.options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/config.options b/meshtastic/config.options index ecd4679..9310cf0 100644 --- a/meshtastic/config.options +++ b/meshtastic/config.options @@ -19,4 +19,4 @@ *SecurityConfig.public_key max_size:32 *SecurityConfig.private_key max_size:32 *SecurityConfig.admin_key max_size:32 -*SecurityConfig.admin_key max_count:1 +*SecurityConfig.admin_key max_count:3 From cc2f12bc7a3c2c5ba2940651affe16a09aaecd78 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Tue, 17 Sep 2024 17:30:02 -0500 Subject: [PATCH 10/29] Adds the hasPKC bool to device metadata capabilities --- meshtastic/mesh.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 6a487e7..4997a12 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1828,6 +1828,11 @@ message DeviceMetadata { * Has Remote Hardware enabled */ bool hasRemoteHardware = 10; + + /* + * Has PKC capabilities + */ + bool hasPKC = 11; } /* From c4636e0232bf0fc214d6848d4eace9d3d4bbb985 Mon Sep 17 00:00:00 2001 From: Augusto Zanellato Date: Thu, 19 Sep 2024 21:48:47 +0200 Subject: [PATCH 11/29] Add DetectionSensorConfig.broadcast_all_state_transitions --- meshtastic/module_config.proto | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 9945e1b..2385700 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -183,6 +183,13 @@ message ModuleConfig { * Only applicable if the board uses pull-up resistors on the pin */ bool use_pullup = 8; + + /* + * Whether or not all the state transition should be broadcasted. + * Causes an additional message to be sent to mesh when detection state goes + * back to false. + */ + bool broadcast_all_state_transitions = 9; } /* From 3ff3dab75dbd58378660a41303d0cd7e3e444912 Mon Sep 17 00:00:00 2001 From: Augusto Zanellato Date: Fri, 20 Sep 2024 00:37:28 +0200 Subject: [PATCH 12/29] DetectionSensor: make triggering more flexible --- meshtastic/module_config.proto | 39 ++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 2385700..504826e 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -137,20 +137,39 @@ message ModuleConfig { * Detection Sensor Module Config */ message DetectionSensorConfig { + + enum TriggerType { + // Event is triggered if pin is low + LOGIC_LOW = 0; + // Event is triggered if pin is high + LOGIC_HIGH = 1; + // Event is triggered when pin goes high to low + FALLING_EDGE = 2; + // Event is triggered when pin goes low to high + RISING_EDGE = 3; + // Event is triggered on every pin state change, low is considered to be + // "active" + EITHER_EDGE_ACTIVE_LOW = 4; + // Event is triggered on every pin state change, high is considered to be + // "active" + EITHER_EDGE_ACTIVE_HIGH = 5; + } /* * Whether the Module is enabled */ bool enabled = 1; /* - * Interval in seconds of how often we can send a message to the mesh when a state change is detected + * Interval in seconds of how often we can send a message to the mesh when a + * trigger event is detected */ uint32 minimum_broadcast_secs = 2; /* - * Interval in seconds of how often we should send a message to the mesh with the current state regardless of changes - * When set to 0, only state changes will be broadcasted - * Works as a sort of status heartbeat for peace of mind + * Interval in seconds of how often we should send a message to the mesh + * with the current state regardless of trigger events When set to 0, only + * trigger events will be broadcasted Works as a sort of status heartbeat + * for peace of mind */ uint32 state_broadcast_secs = 3; @@ -173,23 +192,15 @@ message ModuleConfig { uint32 monitor_pin = 6; /* - * Whether or not the GPIO pin state detection is triggered on HIGH (1) - * Otherwise LOW (0) + * The type of trigger event to be used */ - bool detection_triggered_high = 7; + TriggerType detection_trigger_type = 7; /* * Whether or not use INPUT_PULLUP mode for GPIO pin * Only applicable if the board uses pull-up resistors on the pin */ bool use_pullup = 8; - - /* - * Whether or not all the state transition should be broadcasted. - * Causes an additional message to be sent to mesh when detection state goes - * back to false. - */ - bool broadcast_all_state_transitions = 9; } /* From a711a17d471ca8d6f61074e5a24cffdc348e5451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Sat, 21 Sep 2024 11:54:41 +0200 Subject: [PATCH 13/29] heltec-wireless-bridge --- meshtastic/mesh.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 4997a12..f49084d 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -338,6 +338,11 @@ enum HardwareModel { * Heltec HRU-3601: https://heltec.org/project/hru-3601/ */ HELTEC_HRU_3601 = 23; + + /* + * Heltec Wireless Bridge + */ + HELTEC_WIRELESS_BRIDGE = 24; /* * B&Q Consulting Station Edition G1: https://uniteng.com/wiki/doku.php?id=meshtastic:station From 9dbb2ae4efef6bc0bb763b264385df2a5c01ffac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Sat, 21 Sep 2024 14:54:52 +0200 Subject: [PATCH 14/29] Pico2 --- meshtastic/mesh.proto | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index f49084d..512df17 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -624,10 +624,15 @@ enum HardwareModel { * ^^^ short A0 to switch to I2C address 0x3C * */ -RP2040_FEATHER_RFM95 = 76; + RP2040_FEATHER_RFM95 = 76; + /* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, Paper) https://m5stack.com/ */ M5STACK_COREBASIC=77; M5STACK_CORE2=78; + + /* Pico2 with Waveshare Hat, same as Pico */ + RPI_PICO2=79; + /* * ------------------------------------------------------------------------------------------------------------------------------------------ * 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 c12bb5beea54bd7243ca1c7de7be9a670c8670d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20BOU=C3=89?= Date: Sun, 22 Sep 2024 15:47:28 +0200 Subject: [PATCH 15/29] Add support for M5Stack CoreS3 variant --- meshtastic/mesh.proto | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 512df17..2f196a1 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -432,7 +432,7 @@ enum HardwareModel { DR_DEV = 41; /* - * M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, Paper) https://m5stack.com/ + * M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, CoreS3, Paper) https://m5stack.com/ */ M5STACK = 42; @@ -626,9 +626,10 @@ enum HardwareModel { */ RP2040_FEATHER_RFM95 = 76; - /* M5 esp32 based MCU modules with enclosure, TFT and LORA Shields. All Variants (Basic, Core, Fire, Core2, Paper) https://m5stack.com/ */ + /* 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; + M5STACK_CORES3=80; /* Pico2 with Waveshare Hat, same as Pico */ RPI_PICO2=79; From 67f9d80eb2db49eed3bf940a2c1500111e4b2b48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Sun, 22 Sep 2024 17:21:09 +0200 Subject: [PATCH 16/29] Update mesh.proto For our own sanity, please keep the numerical order --- meshtastic/mesh.proto | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 2f196a1..e599a3d 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -629,10 +629,12 @@ 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_COREBASIC=77; M5STACK_CORE2=78; - M5STACK_CORES3=80; /* Pico2 with Waveshare Hat, same as Pico */ RPI_PICO2=79; + + /* 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; /* * ------------------------------------------------------------------------------------------------------------------------------------------ From 206e046e3421f264acfce6179dd4ae6d6194eb59 Mon Sep 17 00:00:00 2001 From: Augusto Zanellato Date: Tue, 24 Sep 2024 11:10:35 +0200 Subject: [PATCH 17/29] set detection_trigger_type max_size --- meshtastic/module_config.options | 1 + 1 file changed, 1 insertion(+) diff --git a/meshtastic/module_config.options b/meshtastic/module_config.options index 68aba7c..fdde1b3 100644 --- a/meshtastic/module_config.options +++ b/meshtastic/module_config.options @@ -26,3 +26,4 @@ *DetectionSensorConfig.monitor_pin int_size:8 *DetectionSensorConfig.name max_size:20 +*DetectionSensorConfig.detection_trigger_type max_size:8 From 7ef4ee191a7fae80590fbd868bf6972d5f0b9914 Mon Sep 17 00:00:00 2001 From: Dylanliacc Date: Tue, 24 Sep 2024 18:26:48 +0800 Subject: [PATCH 18/29] feat: add seeed xiao s3 --- meshtastic/mesh.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index e599a3d..e593dcb 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -636,6 +636,8 @@ 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 + M5STACK_CORES3=81; /* * ------------------------------------------------------------------------------------------------------------------------------------------ * 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 fb9a48dae761b5cbfc4efeba3e9f6d58599a0a69 Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Tue, 24 Sep 2024 19:20:54 +0800 Subject: [PATCH 19/29] fix typos --- meshtastic/mesh.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index e593dcb..0d40601 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -636,8 +636,8 @@ 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 - M5STACK_CORES3=81; + /* Seeed XIAO S3 DK*/ + SEEED_XIAO_S3=81; /* * ------------------------------------------------------------------------------------------------------------------------------------------ * 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 dfccd4fba420d4a5963a5ddd9fc56e4a64935ae0 Mon Sep 17 00:00:00 2001 From: Mark Trevor Birss Date: Wed, 25 Sep 2024 09:05:02 +0200 Subject: [PATCH 20/29] Update mesh.proto --- meshtastic/mesh.proto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 0d40601..10b00f9 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -638,6 +638,12 @@ enum HardwareModel { /* Seeed XIAO S3 DK*/ SEEED_XIAO_S3=81; + + /* + * Nordic nRF52840+Semtech SX1262 LoRa BLE Combo Module. nRF52840+SX1262 MS24SF1 + */ + MS24SF1=82; + /* * ------------------------------------------------------------------------------------------------------------------------------------------ * 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 f6c9aeb4f1761c4e7f9d47830f0369c8dc25dc6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Sat, 28 Sep 2024 13:29:52 +0200 Subject: [PATCH 21/29] Add TLora-C6 --- meshtastic/mesh.proto | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 10b00f9..6b9be53 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -627,22 +627,27 @@ 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; + M5STACK_COREBASIC = 77; + M5STACK_CORE2 = 78; /* Pico2 with Waveshare Hat, same as Pico */ - RPI_PICO2=79; + RPI_PICO2 = 79; /* 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; + M5STACK_CORES3 = 80; /* Seeed XIAO S3 DK*/ - SEEED_XIAO_S3=81; + SEEED_XIAO_S3 = 81; /* * Nordic nRF52840+Semtech SX1262 LoRa BLE Combo Module. nRF52840+SX1262 MS24SF1 */ - MS24SF1=82; + MS24SF1 = 82; + + /* + * Lilygo TLora-C6 with the new ESP32-C6 MCU + */ + TLORA_C6 = 83; /* * ------------------------------------------------------------------------------------------------------------------------------------------ From 61d7ca65652dfe832ead74719700d3d33d6bae7c Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Mon, 30 Sep 2024 17:16:49 -0500 Subject: [PATCH 22/29] Update description --- meshtastic/atak.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/atak.proto b/meshtastic/atak.proto index 2fbc2e5..5dc08c9 100644 --- a/meshtastic/atak.proto +++ b/meshtastic/atak.proto @@ -43,7 +43,7 @@ message TAKPacket { /* * Generic CoT detail XML - * May be compressed / truncated by the sender + * May be compressed / truncated by the sender (EUD) */ bytes detail = 7; } From 94ef58cbf276d85f099ba13105ad918168e9dc8f Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 2 Oct 2024 06:03:55 -0500 Subject: [PATCH 23/29] Add health telemetry --- meshtastic/module_config.proto | 12 ++++++++++++ meshtastic/telemetry.options | 3 +++ meshtastic/telemetry.proto | 30 ++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 504826e..5f5bc1e 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -579,6 +579,18 @@ message ModuleConfig { * air quality metrics to the mesh */ bool power_screen_enabled = 10; + + /* + * Preferences for the (Health) Telemetry Module + * Enable/Disable the telemetry measurement module measurement collection + */ + bool health_measurement_enabled = 3; + + /* + * Interval in seconds of how often we should try to send our + * health metrics to the mesh + */ + uint32 health_update_interval = 2; } /* diff --git a/meshtastic/telemetry.options b/meshtastic/telemetry.options index 073412a..79b1f12 100644 --- a/meshtastic/telemetry.options +++ b/meshtastic/telemetry.options @@ -6,3 +6,6 @@ *LocalStats.num_online_nodes int_size:16 *LocalStats.num_total_nodes int_size:16 + +*HealthMetrics.heart_bpm int_size:8 +*HealthMetrics.spO2 int_size:8 diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index d4e80a8..799708e 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -273,6 +273,26 @@ message LocalStats { uint32 num_total_nodes = 8; } +/* + * Health telemetry metrics + */ + message HealthMetrics { + /* + * Heart rate (beats per minute) + */ + optional uint32 heart_bpm = 1; + + /* + * SpO2 (blood oxygen saturation) level + */ + optional uint32 spO2 = 2; + + /* + * Body temperature in degrees Celsius + */ + optional float temperature = 3; +} + /* * Types of Measurements the telemetry module is equipped to handle */ @@ -307,6 +327,11 @@ message Telemetry { * Local device mesh statistics */ LocalStats local_stats = 6; + + /* + * Health telemetry metrics + */ + HealthMetrics health_metrics = 7; } } @@ -463,6 +488,11 @@ enum TelemetrySensorType { * Custom I2C sensor implementation based on https://github.com/meshtastic/i2c-sensor */ CUSTOM_SENSOR = 29; + + /* + * MAX30102 Pulse Oximeter and Heart-Rate Sensor + */ + MAX30102 = 30; } /* From c0708735f5e7c9ad6e13c89cf5b9c25d5ce6b6eb Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Wed, 2 Oct 2024 06:05:43 -0500 Subject: [PATCH 24/29] Tag numbers --- meshtastic/module_config.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 5f5bc1e..ed22661 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -584,13 +584,13 @@ message ModuleConfig { * Preferences for the (Health) Telemetry Module * Enable/Disable the telemetry measurement module measurement collection */ - bool health_measurement_enabled = 3; + bool health_measurement_enabled = 11; /* * Interval in seconds of how often we should try to send our * health metrics to the mesh */ - uint32 health_update_interval = 2; + uint32 health_update_interval = 12; } /* From b52e08eb97f0dfe4540a7b3716b535606c74d6fd Mon Sep 17 00:00:00 2001 From: GUVWAF Date: Wed, 2 Oct 2024 20:29:12 +0200 Subject: [PATCH 25/29] Add duplicate received, relayed and canceled relayed packets to LocalStats --- meshtastic/telemetry.proto | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 799708e..c4d7ea5 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -253,7 +253,7 @@ message LocalStats { uint32 num_packets_tx = 4; /* - * Number of packets received good + * Number of packets received (both good and bad) */ uint32 num_packets_rx = 5; @@ -271,6 +271,23 @@ message LocalStats { * Number of nodes total */ uint32 num_total_nodes = 8; + + /* + * Number of received packets that were duplicates (due to multiple nodes relaying). + * If this number is high, there are nodes in the mesh relaying packets when it's unnecessary, for example due to the ROUTER/REPEATER role. + */ + uint32 num_rx_dupe = 9; + + /* + * Number of packets we transmitted that were a relay for others (not originating from ourselves). + */ + uint32 num_tx_relay = 10; + + /* + * Number of times we canceled a packet to be relayed, because someone else did it before us. + * 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; } /* From 08876d1c25e86f219f9dfdf41c5bed650fa47e35 Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Thu, 3 Oct 2024 16:25:33 +0800 Subject: [PATCH 26/29] Add MLX90614 non-contact IR temperature sensor. Mentioned in https://github.com/meshtastic/firmware/issues/4738 as being most appropriate for sensing animal temperature. Also, according to https://www.sparkfun.com/products/retired/14569, a replacement for the apparently retired MLX90632 --- meshtastic/telemetry.proto | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index c4d7ea5..94aaf39 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -510,6 +510,13 @@ enum TelemetrySensorType { * MAX30102 Pulse Oximeter and Heart-Rate Sensor */ MAX30102 = 30; + + /* + * MLX90614 non-contact IR temperature sensor. + */ + MLX90614 = 31; + + /* } /* From dd8619f7865a7117039e3eab86b3c635b768950a Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Thu, 3 Oct 2024 19:41:34 +0800 Subject: [PATCH 27/29] Typo fix --- meshtastic/telemetry.proto | 2 -- 1 file changed, 2 deletions(-) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 94aaf39..c3b896b 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -515,8 +515,6 @@ enum TelemetrySensorType { * MLX90614 non-contact IR temperature sensor. */ MLX90614 = 31; - - /* } /* From d983fef9e47106f6c2e55b6fcae219d99eb5ac60 Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Sat, 5 Oct 2024 13:45:41 +0800 Subject: [PATCH 28/29] Add RegionCodes for Philippines Required by https://github.com/meshtastic/firmware/pull/4951 --- meshtastic/config.proto | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/meshtastic/config.proto b/meshtastic/config.proto index 0ad0b26..54f1be7 100644 --- a/meshtastic/config.proto +++ b/meshtastic/config.proto @@ -802,6 +802,21 @@ message Config { * Singapore 923mhz */ SG_923 = 18; + + /* + * Philippines 433mhz + */ + PH_433 = 19; + + /* + * Philippines 868mhz + */ + PH_868 = 20; + + /* + * Philippines 915mhz + */ + PH_915 = 21; } /* From 29b19dfd79eb914f05321e2964337babeffb2e4d Mon Sep 17 00:00:00 2001 From: Tom Fifield Date: Sun, 6 Oct 2024 19:49:17 +0800 Subject: [PATCH 29/29] Add health_screen_enabled and fix comments health_screen_enabled will be used for turning on/off the screen for health telemetry. Also fixed some commands on other existing variables that were incorrect. --- meshtastic/module_config.proto | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index ed22661..933d142 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -563,20 +563,18 @@ message ModuleConfig { uint32 air_quality_interval = 7; /* - * Interval in seconds of how often we should try to send our - * air quality metrics to the mesh + * Enable/disable Power metrics */ bool power_measurement_enabled = 8; /* * Interval in seconds of how often we should try to send our - * air quality metrics to the mesh + * power metrics to the mesh */ uint32 power_update_interval = 9; /* - * Interval in seconds of how often we should try to send our - * air quality metrics to the mesh + * Enable/Disable the power measurement module on-device display */ bool power_screen_enabled = 10; @@ -591,6 +589,11 @@ message ModuleConfig { * health metrics to the mesh */ uint32 health_update_interval = 12; + + /* + * Enable/Disable the health telemetry module on-device display + */ + bool health_screen_enabled = 13; } /*