From 0234126e866159052db90b3630c84aec518489e4 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Mon, 21 Jul 2025 11:59:59 -0500 Subject: [PATCH 1/9] Add event enum to indicate to client if this is event firmware --- meshtastic/mesh.proto | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index d826269..c10935c 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1627,6 +1627,31 @@ enum CriticalErrorCode { FLASH_CORRUPTION_UNRECOVERABLE = 13; } +/* + * Enum to indicate to clients whether this firmware is an event firmware build. + */ +enum EventFirmwareIndicator { + /* + * Vanilla firmware + */ + VANILLA = 0; + + /* + * Open Sauce, the maker conference held yearly in CA + */ + OPEN_SAUCE = 1; + + /* + * DEFCON, the yearly hacker conference + */ + DEFCON = 2; + + /* + * Burning Man, the yearly hippie gathering in the desert + */ + BURNING_MAN = 3; +} + /* * Unique local debugging info for this node * Note: we don't include position or the user info, because that will come in the @@ -1660,6 +1685,11 @@ message MyNodeInfo { * The PlatformIO environment used to build this firmware */ string pio_env = 13; + + /* + * The indicator for whether this device is running event firmware and which + */ + EventFirmwareIndicator event_firmware = 14; } /* From 08fbd7b987158f02b1fa1ff34a092a0a924a7e97 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Mon, 21 Jul 2025 12:06:57 -0500 Subject: [PATCH 2/9] Whitespace fixes --- meshtastic/config.proto | 10 +++++----- meshtastic/mesh.proto | 4 ++-- meshtastic/telemetry.proto | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/meshtastic/config.proto b/meshtastic/config.proto index 631a6fb..1bc9bd0 100644 --- a/meshtastic/config.proto +++ b/meshtastic/config.proto @@ -919,27 +919,27 @@ message Config { * Philippines 915mhz */ PH_915 = 21; - + /* * Australia / New Zealand 433MHz */ ANZ_433 = 22; - + /* * Kazakhstan 433MHz */ KZ_433 = 23; - + /* * Kazakhstan 863MHz */ KZ_863 = 24; - + /* * Nepal 865MHz */ NP_865 = 25; - + /* * Brazil 902MHz */ diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index c10935c..6753d59 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1639,12 +1639,12 @@ enum EventFirmwareIndicator { /* * Open Sauce, the maker conference held yearly in CA */ - OPEN_SAUCE = 1; + OPEN_SAUCE = 1; /* * DEFCON, the yearly hacker conference */ - DEFCON = 2; + DEFCON = 2; /* * Burning Man, the yearly hippie gathering in the desert diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index d65432d..3ec85b4 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -333,7 +333,7 @@ message AirQualityMetrics { * Formaldehyde sensor temperature in degrees Celsius */ optional float form_temperature = 18; - + /* * Concentration Units Standard PM4.0 in ug/m3 */ From b35702d8aefb79c634cb174ac604b500c282bb66 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Mon, 21 Jul 2025 12:27:50 -0500 Subject: [PATCH 3/9] Add Hamvention --- meshtastic/mesh.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 6753d59..b296915 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1650,6 +1650,11 @@ enum EventFirmwareIndicator { * Burning Man, the yearly hippie gathering in the desert */ BURNING_MAN = 3; + + /* + * Hamvention, the Dayton amateur radio convention + */ + HAMVENTION = 4; } /* From 9cc803de0e13397d3be205f88c85a9436fe310a5 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Mon, 21 Jul 2025 12:41:42 -0500 Subject: [PATCH 4/9] Further tuning --- meshtastic/mesh.proto | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index b296915..3e6ac36 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1628,33 +1628,46 @@ enum CriticalErrorCode { } /* - * Enum to indicate to clients whether this firmware is an event firmware build. + * Enum to indicate to clients whether this firmware is a special firmware build, like an event. + * The first 16 values are reserved for non-event special firmwares, like the Smart Citizen use case. */ -enum EventFirmwareIndicator { +enum FirmwareEdition { /* * Vanilla firmware */ VANILLA = 0; + /* + * Firmware for use in the Smart Citizen environmental monitoring network + */ + SMART_CITIZEN = 1; + /* * Open Sauce, the maker conference held yearly in CA */ - OPEN_SAUCE = 1; + OPEN_SAUCE = 16; /* * DEFCON, the yearly hacker conference */ - DEFCON = 2; + DEFCON = 17; /* * Burning Man, the yearly hippie gathering in the desert */ - BURNING_MAN = 3; + BURNING_MAN = 18; /* * Hamvention, the Dayton amateur radio convention */ - HAMVENTION = 4; + HAMVENTION = 19; + + + + /* + * Placeholder for DIY and unofficial events + */ + DIY_EDITION = 127; } /* @@ -1694,7 +1707,7 @@ message MyNodeInfo { /* * The indicator for whether this device is running event firmware and which */ - EventFirmwareIndicator event_firmware = 14; + FirmwareEdition firmware_edition = 14; } /* From 898f06796b1d9af5962508cabbd4984d0ec1bce9 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Mon, 21 Jul 2025 18:36:04 -0500 Subject: [PATCH 5/9] More Whitespace Co-authored-by: Austin --- meshtastic/mesh.proto | 2 -- 1 file changed, 2 deletions(-) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 3e6ac36..19b0b0e 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1662,8 +1662,6 @@ enum FirmwareEdition { */ HAMVENTION = 19; - - /* * Placeholder for DIY and unofficial events */ From d868b86e75ae714a3893d370f9e86899c8332357 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Tue, 22 Jul 2025 09:05:10 -0500 Subject: [PATCH 6/9] Keep edition smol --- meshtastic/mesh.options | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meshtastic/mesh.options b/meshtastic/mesh.options index 49dd597..a6c22da 100644 --- a/meshtastic/mesh.options +++ b/meshtastic/mesh.options @@ -31,6 +31,8 @@ *MyNodeInfo.air_period_tx max_count:8 *MyNodeInfo.air_period_rx max_count:8 +*MyNodeInfo.firmware_edition int_size:8 + # Note: the actual limit (because of header bytes) on the size of encrypted payloads is 251 bytes, but I use 256 # here because we might need to fill with zeros for padding to encryption block size (16 bytes per block) *MeshPacket.encrypted max_size:256 From 1c28229e85fb329c47fc78e0b1f5324ac7000d7d Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Tue, 22 Jul 2025 14:20:05 -0500 Subject: [PATCH 7/9] Mark configs as deprecated that are no longer used. --- meshtastic/config.proto | 2 +- meshtastic/module_config.proto | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/meshtastic/config.proto b/meshtastic/config.proto index 1bc9bd0..321bbb2 100644 --- a/meshtastic/config.proto +++ b/meshtastic/config.proto @@ -698,7 +698,7 @@ message Config { * If this is set, the displayed compass will always point north. if unset, the old behaviour * (top of display is heading direction) is used. */ - bool compass_north_top = 4; + bool compass_north_top = 4 [deprecated = true]; /* * Flip screen vertically, for cases that mount the screen upside down diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 683ce9e..1eb4c14 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -700,13 +700,13 @@ message ModuleConfig { /* * Enable/disable CannedMessageModule. */ - bool enabled = 9; + bool enabled = 9 [deprecated = true]; /* * Input event origin accepted by the canned message module. * Can be e.g. "rotEnc1", "upDownEnc1", "scanAndSelect", "cardkb", "serialkb", or keyword "_any" */ - string allow_input_source = 10; + string allow_input_source = 10 [deprecated = true]; /* * CannedMessageModule also sends a bell character with the messages. From 5ac10c0746fd5f4037c26d6e52ac8206d82b79c0 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Sat, 26 Jul 2025 06:39:04 -0500 Subject: [PATCH 8/9] Add nodedb_count to mynodeinfo --- meshtastic/mesh.options | 1 + meshtastic/mesh.proto | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/meshtastic/mesh.options b/meshtastic/mesh.options index a6c22da..37c9341 100644 --- a/meshtastic/mesh.options +++ b/meshtastic/mesh.options @@ -32,6 +32,7 @@ *MyNodeInfo.air_period_rx max_count:8 *MyNodeInfo.firmware_edition int_size:8 +*MyNodeInfo.nodedb_count int_size:16 # Note: the actual limit (because of header bytes) on the size of encrypted payloads is 251 bytes, but I use 256 # here because we might need to fill with zeros for padding to encryption block size (16 bytes per block) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 19b0b0e..9f96aa5 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -1706,6 +1706,12 @@ message MyNodeInfo { * The indicator for whether this device is running event firmware and which */ FirmwareEdition firmware_edition = 14; + + /* + * The number of nodes in the nodedb. + * This is used by the phone to know how many NodeInfo packets to expect on want_config + */ + uint32 nodedb_count = 15; } /* From d47de28428bd9d7c905532e20ec2b3f7a562ada2 Mon Sep 17 00:00:00 2001 From: Quency-D Date: Mon, 28 Jul 2025 16:53:29 +0800 Subject: [PATCH 9/9] Added HELTEC MeshSolar board. --- meshtastic/mesh.proto | 6 ++++++ meshtastic/module_config.proto | 3 +++ 2 files changed, 9 insertions(+) diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index 9f96aa5..e68c56b 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -774,6 +774,12 @@ enum HardwareModel { */ THINKNODE_M5 = 107; + /* + * MeshSolar is an integrated power management and communication solution designed for outdoor low-power devices. + * https://heltec.org/project/meshsolar/ + */ + HELTEC_MESH_SOLAR = 108; + /* * ------------------------------------------------------------------------------------------------------------------------------------------ * 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. diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 683ce9e..ca2469d 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -337,6 +337,9 @@ message ModuleConfig { // 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; + //Used to configure and view some parameters of MeshSolar. + //https://heltec.org/project/meshsolar/ + MS_CONFIG = 8; } /*