From 411bc910e202cb29ee0252d22f2825d01b62fb07 Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Wed, 18 Mar 2026 17:11:08 +0100 Subject: [PATCH 1/6] Move ADC values to environment telemetry --- meshtastic/telemetry.proto | 60 +++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index bd27a7b..966e232 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -153,6 +153,46 @@ message EnvironmentMetrics { * Soil temperature measured (*C) */ optional float soil_temperature = 22; + + /* + * ADC Voltage (Ch1) + */ + optional float ch1_voltage = 23; + + /* + * ADC Voltage (Ch2) + */ + optional float ch2_voltage = 24; + + /* + * ADC Voltage (Ch3) + */ + optional float ch3_voltage = 25; + + /* + * ADC Voltage (Ch4) + */ + optional float ch4_voltage = 26; + + /* + * ADC Voltage (Ch5) + */ + optional float ch5_voltage = 27; + + /* + * ADC Voltage (Ch6) + */ + optional float ch6_voltage = 28; + + /* + * ADC Voltage (Ch7) + */ + optional float ch7_voltage = 29; + + /* + * ADC Voltage (Ch8) + */ + optional float ch8_voltage = 30; } /* @@ -190,52 +230,52 @@ message PowerMetrics { optional float ch3_current = 6; /* - * Voltage (Ch4) + * Voltage (Ch4) - TODO Remove */ optional float ch4_voltage = 7; /* - * Current (Ch4) + * Current (Ch4) - TODO Remove */ optional float ch4_current = 8; /* - * Voltage (Ch5) + * Voltage (Ch5) - TODO Remove */ optional float ch5_voltage = 9; /* - * Current (Ch5) + * Current (Ch5) - TODO Remove */ optional float ch5_current = 10; /* - * Voltage (Ch6) + * Voltage (Ch6) - TODO Remove */ optional float ch6_voltage = 11; /* - * Current (Ch6) + * Current (Ch6) - TODO Remove */ optional float ch6_current = 12; /* - * Voltage (Ch7) + * Voltage (Ch7) - TODO Remove */ optional float ch7_voltage = 13; /* - * Current (Ch7) + * Current (Ch7) - TODO Remove */ optional float ch7_current = 14; /* - * Voltage (Ch8) + * Voltage (Ch8) - TODO Remove */ optional float ch8_voltage = 15; /* - * Current (Ch8) + * Current (Ch8) - TODO Remove */ optional float ch8_current = 16; } From 6104c0109e418b3ecb7c4f7775f2e9aad45f4add Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Wed, 18 Mar 2026 17:48:40 +0100 Subject: [PATCH 2/6] Rename to adc_voltage to avoid confusion --- meshtastic/telemetry.proto | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 966e232..dd0b4d6 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -157,42 +157,42 @@ message EnvironmentMetrics { /* * ADC Voltage (Ch1) */ - optional float ch1_voltage = 23; + optional float adc_voltage_ch1 = 23; /* * ADC Voltage (Ch2) */ - optional float ch2_voltage = 24; + optional float adc_voltage_ch2 = 24; /* * ADC Voltage (Ch3) */ - optional float ch3_voltage = 25; + optional float adc_voltage_ch3 = 25; /* * ADC Voltage (Ch4) */ - optional float ch4_voltage = 26; + optional float adc_voltage_ch4 = 26; /* * ADC Voltage (Ch5) */ - optional float ch5_voltage = 27; + optional float adc_voltage_ch5 = 27; /* * ADC Voltage (Ch6) */ - optional float ch6_voltage = 28; + optional float adc_voltage_ch6 = 28; /* * ADC Voltage (Ch7) */ - optional float ch7_voltage = 29; + optional float adc_voltage_ch7 = 29; /* * ADC Voltage (Ch8) */ - optional float ch8_voltage = 30; + optional float adc_voltage_ch8 = 30; } /* From 93c0103e6f89abb5cfe96a51fdebb917916fbd08 Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Fri, 3 Apr 2026 17:51:21 +0200 Subject: [PATCH 3/6] Mark some ADS fields and SHTs as deprecated --- meshtastic/telemetry.proto | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index dd0b4d6..09c1e75 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -232,52 +232,52 @@ message PowerMetrics { /* * Voltage (Ch4) - TODO Remove */ - optional float ch4_voltage = 7; + optional float ch4_voltage = 7 [deprecated = true]; /* * Current (Ch4) - TODO Remove */ - optional float ch4_current = 8; + optional float ch4_current = 8 [deprecated = true]; /* * Voltage (Ch5) - TODO Remove */ - optional float ch5_voltage = 9; + optional float ch5_voltage = 9 [deprecated = true]; /* * Current (Ch5) - TODO Remove */ - optional float ch5_current = 10; + optional float ch5_current = 10 [deprecated = true]; /* * Voltage (Ch6) - TODO Remove */ - optional float ch6_voltage = 11; + optional float ch6_voltage = 11 [deprecated = true]; /* * Current (Ch6) - TODO Remove */ - optional float ch6_current = 12; + optional float ch6_current = 12 [deprecated = true]; /* * Voltage (Ch7) - TODO Remove */ - optional float ch7_voltage = 13; + optional float ch7_voltage = 13 [deprecated = true]; /* * Current (Ch7) - TODO Remove */ - optional float ch7_current = 14; + optional float ch7_current = 14 [deprecated = true]; /* * Voltage (Ch8) - TODO Remove */ - optional float ch8_voltage = 15; + optional float ch8_voltage = 15 [deprecated = true]; /* * Current (Ch8) - TODO Remove */ - optional float ch8_current = 16; + optional float ch8_current = 16 [deprecated = true]; } /* @@ -695,7 +695,7 @@ enum TelemetrySensorType { /* * TODO - REMOVE High accuracy temperature and humidity */ - SHTC3 = 7; + SHTC3 = 7 [deprecated = true]; /* * High accuracy pressure @@ -720,7 +720,7 @@ enum TelemetrySensorType { /* * TODO - REMOVE High accuracy temperature and humidity */ - SHT31 = 12; + SHT31 = 12 [deprecated = true]; /* * PM2.5 air quality sensor @@ -745,7 +745,7 @@ enum TelemetrySensorType { /* * TODO - REMOVE Sensirion High accuracy temperature and humidity */ - SHT4X = 17; + SHT4X = 17 [deprecated = true]; /* * VEML7700 high accuracy ambient light(Lux) digital 16-bit resolution sensor. @@ -895,7 +895,7 @@ enum TelemetrySensorType { /* * TODO - REMOVE STH21 Temperature and R. Humidity sensor */ - SHT21 = 47; + SHT21 = 47 [deprecated = true]; /* * Sensirion STC31 CO2 sensor From 230d343a24c5515b29304c4be243bd21707a5ebf Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Fri, 17 Apr 2026 18:29:42 +0200 Subject: [PATCH 4/6] Make a multi-measurement wildcard measurement --- meshtastic/telemetry.options | 2 +- meshtastic/telemetry.proto | 53 ++++++++++-------------------------- 2 files changed, 15 insertions(+), 40 deletions(-) diff --git a/meshtastic/telemetry.options b/meshtastic/telemetry.options index 5db1af5..19098f6 100644 --- a/meshtastic/telemetry.options +++ b/meshtastic/telemetry.options @@ -4,7 +4,7 @@ *EnvironmentMetrics.iaq int_size:16 *EnvironmentMetrics.wind_direction int_size:16 *EnvironmentMetrics.soil_moisture int_size:8 -*EnvironmentMetrics.one_wire_temperature max_count:8 +*WildCardMeasurement.measurement max_count: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 0cd0c6b..4a6bdaf 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -155,49 +155,24 @@ message EnvironmentMetrics { optional float soil_temperature = 22; /* - * ADC Voltage (Ch1) + * Wild-card multi-measurement (up to 8 channels) */ - optional float adc_voltage_ch1 = 23; + optional WildCardMeasurement multi_measurement = 23; +} + +/* + * Wild-card measurement (up to 8 channels) + */ +message WildCardMeasurement { + /* + * 8 Channel multi-measurement + */ + repeated float measurement = 1; /* - * ADC Voltage (Ch2) + * Sensor type */ - optional float adc_voltage_ch2 = 24; - - /* - * ADC Voltage (Ch3) - */ - optional float adc_voltage_ch3 = 25; - - /* - * ADC Voltage (Ch4) - */ - optional float adc_voltage_ch4 = 26; - - /* - * ADC Voltage (Ch5) - */ - optional float adc_voltage_ch5 = 27; - - /* - * ADC Voltage (Ch6) - */ - optional float adc_voltage_ch6 = 28; - - /* - * ADC Voltage (Ch7) - */ - optional float adc_voltage_ch7 = 29; - - /* - * ADC Voltage (Ch8) - */ - optional float adc_voltage_ch8 = 30; - - /* - * One-wire temperature (*C) - */ - repeated float one_wire_temperature = 31; + TelemetrySensorType sensor_type = 2; } /* From ba71b5eb4e9d40de7354459a7bfe97ed2791b310 Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Sun, 19 Apr 2026 16:21:23 +0200 Subject: [PATCH 5/6] Return to unpacked messages, to avoid sending repeated lists with no data --- meshtastic/telemetry.proto | 89 ++++++++++++++++++++++++++++++++------ 1 file changed, 75 insertions(+), 14 deletions(-) diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 4a6bdaf..a03e08b 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -155,24 +155,85 @@ message EnvironmentMetrics { optional float soil_temperature = 22; /* - * Wild-card multi-measurement (up to 8 channels) + * Multi-channel ADC Voltage Channel 0 (V) */ - optional WildCardMeasurement multi_measurement = 23; -} - -/* - * Wild-card measurement (up to 8 channels) - */ -message WildCardMeasurement { - /* - * 8 Channel multi-measurement - */ - repeated float measurement = 1; + optional float adc_voltage_ch0 = 23; /* - * Sensor type + * Multi-channel ADC Voltage Channel 1 (V) */ - TelemetrySensorType sensor_type = 2; + optional float adc_voltage_ch1 = 24; + + /* + * Multi-channel ADC Voltage Channel 2 (V) + */ + optional float adc_voltage_ch2 = 25; + + /* + * Multi-channel ADC Voltage Channel 3 (V) + */ + optional float adc_voltage_ch3 = 26; + + /* + * Multi-channel ADC Voltage Channel 4 (V) + */ + optional float adc_voltage_ch4 = 27; + + /* + * Multi-channel ADC Voltage Channel 5 (V) + */ + optional float adc_voltage_ch5 = 28; + + /* + * Multi-channel ADC Voltage Channel 6 (V) + */ + optional float adc_voltage_ch6 = 29; + + /* + * Multi-channel ADC Voltage Channel 7 (V) + */ + optional float adc_voltage_ch7 = 30; + + /* + * Multi-channel One-Wire Temperature Channel 0 (*C) + */ + optional float one_wire_temperature_ch0 = 31; + + /* + * Multi-channel One-Wire Temperature Channel 1 (*C) + */ + optional float one_wire_temperature_ch1 = 32; + + /* + * Multi-channel One-Wire Temperature Channel 2 (*C) + */ + optional float one_wire_temperature_ch2 = 33; + + /* + * Multi-channel One-Wire Temperature Channel 3 (*C) + */ + optional float one_wire_temperature_ch3 = 34; + + /* + * Multi-channel One-Wire Temperature Channel 4 (*C) + */ + optional float one_wire_temperature_ch4 = 35; + + /* + * Multi-channel One-Wire Temperature Channel 5 (*C) + */ + optional float one_wire_temperature_ch5 = 36; + + /* + * Multi-channel One-Wire Temperature Channel 6 (*C) + */ + optional float one_wire_temperature_ch6 = 37; + + /* + * Multi-channel One-Wire Temperature Channel 7 (*C) + */ + optional float one_wire_temperature_ch7 = 38; + } /* From 8f4105be24758111b9b22b423bf1a0f9370c5597 Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Sun, 19 Apr 2026 16:51:33 +0200 Subject: [PATCH 6/6] Remove unused wildcard options --- meshtastic/telemetry.options | 1 - 1 file changed, 1 deletion(-) diff --git a/meshtastic/telemetry.options b/meshtastic/telemetry.options index 19098f6..81d2aa8 100644 --- a/meshtastic/telemetry.options +++ b/meshtastic/telemetry.options @@ -4,7 +4,6 @@ *EnvironmentMetrics.iaq int_size:16 *EnvironmentMetrics.wind_direction int_size:16 *EnvironmentMetrics.soil_moisture int_size:8 -*WildCardMeasurement.measurement max_count:8 *LocalStats.num_online_nodes int_size:16 *LocalStats.num_total_nodes int_size:16