From d0901bda0c29849fe3fd8f1c1cd4f5521a6b41d3 Mon Sep 17 00:00:00 2001 From: Bjoern Hempel Date: Tue, 6 Jan 2026 18:02:06 +0100 Subject: [PATCH 1/5] Hobbywing V5 ESC - BEC voltage should be adjustable up to 12V --- src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua b/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua index bb29ccbe..fad744ec 100644 --- a/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua +++ b/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua @@ -67,7 +67,7 @@ local function getDefaults() lipo_cell_count = { min = 0, max = #lipoCellCount, table = lipoCellCount }, cutoff_type = { min = 0, max = #cutoffType, table = cutoffType }, cutoff_voltage = { min = 0, max = #cutoffVoltage, table = cutoffVoltage }, - bec_voltage = { min = 54, max = 84, scale = 10, unit = rf2.units.volt }, + bec_voltage = { min = 54, max = 120, scale = 10, unit = rf2.units.volt }, startup_time = { min = 4, max = 25, unit = rf2.units.seconds }, gov_p_gain = { min = 0, max = 9 }, gov_i_gain = { min = 0, max = 9 }, From 2f515dab7097bf5cc307f8a05aa32c8f5e86ef7a Mon Sep 17 00:00:00 2001 From: Bjoern Hempel Date: Wed, 7 Jan 2026 19:23:21 +0100 Subject: [PATCH 2/5] feat: add voltage lookup table for BEC settings based on hardware version --- src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua b/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua index fad744ec..b09d8f11 100644 --- a/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua +++ b/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua @@ -55,6 +55,21 @@ local startupPower = { "Level 7", } +-- Voltage lookup table based on hardware version +-- Each hardware version maps to a list of possible BEC voltage settings +-- The values are representing voltage in volts * 10 +-- Values are min, max, scale +-- Example: 8.4V == 84, scale factor is 10 == 0.1V steps +local voltage_lookup = { + ["HW1104_V100456NB"] = {50, 120, 10}, + ["HW1106_V100456NB"] = {54, 84, 10}, + ["HW1106_V200456NB"] = {50, 120, 10}, + ["HW1106_V300456NB"] = {50, 120, 10}, + ["HW1121_V100456NB"] = {50, 120, 10}, + ["HW198_V1.00456NB"] = {50, 120, 10}, + ["default"] = {50, 84, 10}, +} + local function getDefaults() return { esc_signature = {}, @@ -67,7 +82,7 @@ local function getDefaults() lipo_cell_count = { min = 0, max = #lipoCellCount, table = lipoCellCount }, cutoff_type = { min = 0, max = #cutoffType, table = cutoffType }, cutoff_voltage = { min = 0, max = #cutoffVoltage, table = cutoffVoltage }, - bec_voltage = { min = 54, max = 120, scale = 10, unit = rf2.units.volt }, + bec_voltage = { min = 50, max = 84, scale = 10, unit = rf2.units.volt }, startup_time = { min = 4, max = 25, unit = rf2.units.seconds }, gov_p_gain = { min = 0, max = 9 }, gov_i_gain = { min = 0, max = 9 }, @@ -102,6 +117,11 @@ local function getEscParameters(callback, callbackParam, data) data.cutoff_type.value = rf2.mspHelper.readU8(buf) data.cutoff_voltage.value = rf2.mspHelper.readU8(buf) data.bec_voltage.value = rf2.mspHelper.readU8(buf) + 54 + -- get voltage range based on hardware version + voltages = voltage_lookup[data.hardware_version.value] or voltage_lookup["default"] + data.bec_voltage.min = voltages[1] + data.bec_voltage.max = voltages[2] + data.bec_voltage.scale = voltages[3] data.startup_time.value = rf2.mspHelper.readU8(buf) + 4 data.gov_p_gain.value = rf2.mspHelper.readU8(buf) data.gov_i_gain.value = rf2.mspHelper.readU8(buf) From 7d3c22597a33af1d33818cef4fef74f41c46fe11 Mon Sep 17 00:00:00 2001 From: Bjoern Hempel Date: Wed, 7 Jan 2026 19:25:38 +0100 Subject: [PATCH 3/5] fix: update voltage lookup table for BEC settings based on hardware version --- src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua b/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua index b09d8f11..338decfc 100644 --- a/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua +++ b/src/SCRIPTS/RF2/MSP/mspEscHwPl5.lua @@ -82,7 +82,7 @@ local function getDefaults() lipo_cell_count = { min = 0, max = #lipoCellCount, table = lipoCellCount }, cutoff_type = { min = 0, max = #cutoffType, table = cutoffType }, cutoff_voltage = { min = 0, max = #cutoffVoltage, table = cutoffVoltage }, - bec_voltage = { min = 50, max = 84, scale = 10, unit = rf2.units.volt }, + bec_voltage = { min = 54, max = 84, scale = 10, unit = rf2.units.volt }, startup_time = { min = 4, max = 25, unit = rf2.units.seconds }, gov_p_gain = { min = 0, max = 9 }, gov_i_gain = { min = 0, max = 9 }, From 8039870f38502c5bf5e6f3525f69ac5bb00c0258 Mon Sep 17 00:00:00 2001 From: Bjoern Hempel Date: Sat, 10 Jan 2026 17:35:20 +0100 Subject: [PATCH 4/5] #359 Add custom telemetry sensors for total flights, total time, and total distance --- src/SCRIPTS/RF2/rf2tlm_sensors.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/SCRIPTS/RF2/rf2tlm_sensors.lua b/src/SCRIPTS/RF2/rf2tlm_sensors.lua index 6bd166ea..27628e9c 100644 --- a/src/SCRIPTS/RF2/rf2tlm_sensors.lua +++ b/src/SCRIPTS/RF2/rf2tlm_sensors.lua @@ -312,6 +312,13 @@ local sensorsById = { [105] = {sid = 0xDB05, name = "DBG5", unit = UNIT_RAW, prec = 0, dec = decS32 }, [106] = {sid = 0xDB06, name = "DBG6", unit = UNIT_RAW, prec = 0, dec = decS32 }, [107] = {sid = 0xDB07, name = "DBG7", unit = UNIT_RAW, prec = 0, dec = decS32 }, + + -- Statistics total flights + [108] = {sid = 0x1230, name = "STFl", unit = UNIT_RAW, prec = 0, dec = decS32 }, + -- Statistics total filgts seconds + [109] = {sid = 0x1231, name = "STTs", unit = UNIT_RAW, prec = 0, dec = decS32 }, + -- Statistics total flight distance meters + [110] = {sid = 0x1232, name = "STDm", unit = UNIT_RAW, prec = 0, dec = decS32 }, } local function initializeSensors(ids) From 0a578bbd69ad96c34a35c1109227d178b9538e7b Mon Sep 17 00:00:00 2001 From: Bjoern Hempel Date: Tue, 13 Jan 2026 19:17:38 +0100 Subject: [PATCH 5/5] feat: update telemetry sensor names for total flights, total time, and total distance --- src/SCRIPTS/RF2/rf2tlm_sensors.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SCRIPTS/RF2/rf2tlm_sensors.lua b/src/SCRIPTS/RF2/rf2tlm_sensors.lua index 27628e9c..0f2e6583 100644 --- a/src/SCRIPTS/RF2/rf2tlm_sensors.lua +++ b/src/SCRIPTS/RF2/rf2tlm_sensors.lua @@ -314,11 +314,11 @@ local sensorsById = { [107] = {sid = 0xDB07, name = "DBG7", unit = UNIT_RAW, prec = 0, dec = decS32 }, -- Statistics total flights - [108] = {sid = 0x1230, name = "STFl", unit = UNIT_RAW, prec = 0, dec = decS32 }, + [108] = {sid = 0x1230, name = "FlyC", unit = UNIT_RAW, prec = 0, dec = decS32 }, -- Statistics total filgts seconds - [109] = {sid = 0x1231, name = "STTs", unit = UNIT_RAW, prec = 0, dec = decS32 }, + [109] = {sid = 0x1231, name = "FlyT", unit = UNIT_RAW, prec = 0, dec = decS32 }, -- Statistics total flight distance meters - [110] = {sid = 0x1232, name = "STDm", unit = UNIT_RAW, prec = 0, dec = decS32 }, + [110] = {sid = 0x1232, name = "FlyD", unit = UNIT_RAW, prec = 0, dec = decS32 }, } local function initializeSensors(ids)