From c972943f1033283d312e82c0f974932d88e15352 Mon Sep 17 00:00:00 2001 From: Maxim Buzdalov Date: Sat, 6 Apr 2024 23:38:38 +0100 Subject: [PATCH] AP_ESC_Telem: add support for Extended DShot Telemetry v2 --- .../IO_Firmware/iofirmware_dshot_highpolh.bin | Bin 47260 -> 47452 bytes .../IO_Firmware/iofirmware_dshot_lowpolh.bin | Bin 47260 -> 47452 bytes .../iofirmware_f103_8MHz_highpolh.bin | Bin 40600 -> 40576 bytes .../iofirmware_f103_8MHz_lowpolh.bin | Bin 40600 -> 40576 bytes .../iofirmware_f103_dshot_highpolh.bin | Bin 52756 -> 53244 bytes .../iofirmware_f103_dshot_lowpolh.bin | Bin 52756 -> 53244 bytes .../IO_Firmware/iofirmware_f103_highpolh.bin | Bin 40592 -> 40568 bytes Tools/IO_Firmware/iofirmware_f103_lowpolh.bin | Bin 40592 -> 40568 bytes Tools/IO_Firmware/iofirmware_highpolh.bin | Bin 40600 -> 40576 bytes Tools/IO_Firmware/iofirmware_lowpolh.bin | Bin 40600 -> 40576 bytes libraries/AP_ESC_Telem/AP_ESC_Telem.cpp | 112 +++++++++++++++++- libraries/AP_ESC_Telem/AP_ESC_Telem.h | 6 + libraries/AP_ESC_Telem/AP_ESC_Telem_Backend.h | 8 ++ libraries/AP_ESC_Telem/LogStructure.h | 42 ++++++- libraries/AP_HAL/AP_HAL_Boards.h | 8 ++ libraries/AP_HAL_ChibiOS/RCOutput_bdshot.cpp | 22 +++- libraries/AP_IOMCU/AP_IOMCU.cpp | 6 +- libraries/AP_IOMCU/iofirmware/iofirmware.cpp | 25 ++-- libraries/AP_IOMCU/iofirmware/ioprotocol.h | 4 + 19 files changed, 217 insertions(+), 16 deletions(-) diff --git a/Tools/IO_Firmware/iofirmware_dshot_highpolh.bin b/Tools/IO_Firmware/iofirmware_dshot_highpolh.bin index 5934290788ad07b8b5c953e7b309c95443a8c4ef..35f5b48a331534d9dc3a09a737b8df2bf668cb1c 100755 GIT binary patch delta 15240 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 delta 15185 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 delta 15183 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 DRUN_u diff --git a/Tools/IO_Firmware/iofirmware_f103_8MHz_highpolh.bin b/Tools/IO_Firmware/iofirmware_f103_8MHz_highpolh.bin index adbf98f090cde56c90c61ec90d7e209182f8ae6a..4fba6fb5caf090f7899604412e54e74d5e3f4f1f 100755 GIT binary patch delta 10805 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 Xhmn58R_$oQPY&rjoA9PW-?9E*xO~ai diff --git a/Tools/IO_Firmware/iofirmware_f103_8MHz_lowpolh.bin b/Tools/IO_Firmware/iofirmware_f103_8MHz_lowpolh.bin index fce01bb26c29e6cf4388b436311c9614d946eadc..ecde928ab19bb210ee30b466686b0de16d111e7d 100755 GIT binary patch delta 10803 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
  • GDRzrNqxcTB*yv*VSeJ7jU(!%RU+-`D<6tPf~uT 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 Ve#KVpXu?kp={uY7rb6Gb{$Ki0$rJzp diff --git a/Tools/IO_Firmware/iofirmware_f103_dshot_highpolh.bin b/Tools/IO_Firmware/iofirmware_f103_dshot_highpolh.bin index 2ba418de0788feba4179ae4860e390cdc9f52d89..05e21ef5419bdf1e0bfea7323eb13ba71ebe30e0 100755 GIT binary patch delta 19184 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 delta 18755 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 diff --git a/Tools/IO_Firmware/iofirmware_f103_highpolh.bin b/Tools/IO_Firmware/iofirmware_f103_highpolh.bin index af9d068cd5ea5783a1c53df815f555281ed96437..5d80f192f9737cea2cdc6ff54251f6fa50044b0c 100755 GIT binary patch delta 10846 zcmbVyd0bRS)^^qHg+>7zabXd?O^a+28{AMdHVs~u7LlllYXTysK~&T+(ZmcWnqV{& zv~+?Y8jZV&35#STkpZJ7uURJG@B3E&KHWj)zmZztLuoWIdwR?O7rSKPlM5Q;sYT7B}u{|Dv zMLs)?8MlWd|J`8|huOD1@Nj59!*2u&FP!l}ev>_vm7=&xXU$_SmpE>HT)jhv*Il zO}|Zy!Bs?m*?7KN92K!M76_5 zEH`Po2ZQd#aTm)`>(|Af770P}NJNZ#G{*gCB(kbfiE)qSE*^&J--`W(gF(jIKE}P) zGwr-rh}}!vYE&d<-1bWy0lw1FDS0~liP}y(!t7oT#v~52mvoKr5^fVggT^aOoSokF zuv1%~mc0R*cK5_$acgmE+Gz|F4?4N;lrsOP)9e$ z6khyr>hcyYZfKJ6w#K;6!EHKx$47nG^r^64n0x8TCKA28>2G&@xFvTy)t?*Hb}#3& z+Z^`~+0-M5F4gK~=bWFk^F(JSU9yd+ox6ugFKYL2`2ITFPDFq7c-sR-_q< z8Uv@_rU`M@2q9chTMLDsZtfL2ZzfMYeDTyB&L?)UJgafLg}1Gr3T;+iD6=LA|FAX* zYpsiuxH!QoSCW$yZPf@$RB`hrXRP%KvEWFH(*+jgtoObWC}&X5^jbcnh{j!km0)v86tFG?88LNeJEB zbyCVQw0d}4A^L+-wZUyW(sfX(B-(nn?I^fv;MyZTRYL* zDBaRkSd@aF$ScaEbJ~FBM(O7m5|Q!1y;{?d(Q!O+rzGlVEGPEkHi5fjREShDPcbre zV+VP{bUSf%-)wC?8#9=vKe5?^b@U>8esBnQB-@08w;5t}zjl`$u!9fp(APX0|3kFv8edP=lvS`l5~iP&#%0D@l+iQt=QfSF%1x%x1FkA8 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 z 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 diff --git a/Tools/IO_Firmware/iofirmware_f103_lowpolh.bin b/Tools/IO_Firmware/iofirmware_f103_lowpolh.bin index 8db3cfaad172de3f9f2d3aab4316d639fd0c58b0..161d8c4663ada1aedf87083e986edb84008cc75b 100755 GIT binary patch delta 10844 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 diff --git a/Tools/IO_Firmware/iofirmware_highpolh.bin b/Tools/IO_Firmware/iofirmware_highpolh.bin index 988375fa5d73c229007b8dd296e60dd4b102e95a..56552029c53d56f73b37dbb29cf25d8f6e96babf 100755 GIT binary patch delta 10911 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 delta 10905 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 diff --git a/Tools/IO_Firmware/iofirmware_lowpolh.bin b/Tools/IO_Firmware/iofirmware_lowpolh.bin index 059048670ef3f500e6a0dbbb88b998b9bc9df041..407b8d56fe13a0f41598e2a2ed1d566075316706 100755 GIT binary patch delta 10909 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 diff --git a/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp b/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp index a82a014dedd64..0a1928d3e9d5a 100644 --- a/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp +++ b/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp @@ -465,6 +465,15 @@ void AP_ESC_Telem::update_telem_data(const uint8_t esc_index, const AP_ESC_Telem telemdata.usage_s = new_data.usage_s; } +#if HAL_WANTS_EDTV2 + if (data_mask & AP_ESC_Telem_Backend::TelemetryType::EDT2_STATUS) { + telemdata.edt2_status = merge_edt2_status(telemdata.edt2_status, new_data.edt2_status); + } + if (data_mask & AP_ESC_Telem_Backend::TelemetryType::EDT2_STRESS) { + telemdata.edt2_stress = merge_edt2_stress(telemdata.edt2_stress, new_data.edt2_stress); + } +#endif + telemdata.count++; telemdata.types |= data_mask; telemdata.last_update_ms = AP_HAL::millis(); @@ -496,6 +505,59 @@ void AP_ESC_Telem::update_rpm(const uint8_t esc_index, const float new_rpm, cons #endif } +#if HAL_WANTS_EDTV2 + +// The following is based on https://github.com/bird-sanctuary/extended-dshot-telemetry. +// For the following part we explain the bits of Extended DShot Telemetry v2 status telemetry: +// - bits 0-3: the "stress level" +// - bit 5: the "error" bit (e.g. the demag event in Bluejay) +// - bit 6: the "warning" bit (e.g. the desync event in Bluejay) +// - bit 7: the "alert" bit (e.g. the stall event in Bluejay) + +// Since logger can read out telemetry values less frequently than they are updated, +// it makes sense to aggregate these status bits, and to collect the maximum observed stress level. +// To reduce the logging rate of the EDT2 messages, we will log them only once something has changed. +// To track this, we are going to (ab)use bit 15 of the field: 1 means there is something to write. + +// EDTv2 also features separate "stress" messages. +// These come more frequently, and are scaled differently (the allowed range is from 0 to 255), +// so we have to log them separately. + +constexpr uint16_t EDT2_TELEM_UPDATED = 0x8000U; +constexpr uint16_t EDT2_STRESS_0F_MASK = 0xfU; +constexpr uint16_t EDT2_STRESS_FF_MASK = 0xffU; +constexpr uint16_t EDT2_ERROR_MASK = 0x20U; +constexpr uint16_t EDT2_WARNING_MASK = 0x40U; +constexpr uint16_t EDT2_ALERT_MASK = 0x80U; +constexpr uint16_t EDT2_ALL_BITS = EDT2_ERROR_MASK | EDT2_WARNING_MASK | EDT2_ALERT_MASK; + +uint16_t AP_ESC_Telem::merge_edt2_status(uint16_t old_status, uint16_t new_status) +{ + return uint16_t( + EDT2_TELEM_UPDATED | // the highest bit "telemetry is updated" is always set + (old_status & ~EDT2_STRESS_0F_MASK) | // old status except for the stress is preserved + (new_status & EDT2_ALL_BITS) | // all new status bits are included + std::max(old_status & EDT2_STRESS_0F_MASK, new_status & EDT2_STRESS_0F_MASK) // the stress is maxed out + ); +} + +uint16_t AP_ESC_Telem::merge_edt2_stress(uint16_t old_stress, uint16_t new_stress) +{ + return uint16_t( + EDT2_TELEM_UPDATED | // the highest bit "telemetry is updated" is always set + std::max(old_stress & EDT2_STRESS_FF_MASK, new_stress & EDT2_STRESS_FF_MASK) // the stress is maxed out + ); +} + +#define EDT2_HAS_NEW_DATA(status) bool(status & EDT2_TELEM_UPDATED) +#define EDT2_STRESS_FROM_STATUS(status) uint8_t(status & EDT2_STRESS_0F_MASK) +#define EDT2_ERROR_BIT_FROM_STATUS(status) bool(edt2_status & EDT2_ERROR_MASK) +#define EDT2_WARNING_BIT_FROM_STATUS(status) bool(edt2_status & EDT2_WARNING_MASK) +#define EDT2_ALERT_BIT_FROM_STATUS(status) bool(edt2_status & EDT2_ALERT_MASK) +#define EDT2_STRESS_FROM_STRESS(stress) uint8_t(stress & EDT2_STRESS_FF_MASK) + +#endif //HAL_WANTS_EDTV2 + void AP_ESC_Telem::update() { #if HAL_LOGGING_ENABLED @@ -504,7 +566,7 @@ void AP_ESC_Telem::update() for (uint8_t i = 0; i < ESC_TELEM_MAX_ESCS; i++) { const volatile AP_ESC_Telem_Backend::RpmData &rpmdata = _rpm_data[i]; - const volatile AP_ESC_Telem_Backend::TelemetryData &telemdata = _telem_data[i]; + volatile AP_ESC_Telem_Backend::TelemetryData &telemdata = _telem_data[i]; // Push received telemetry data into the logging system if (logger && logger->logging_enabled()) { if (telemdata.last_update_ms != _last_telem_log_ms[i] @@ -541,6 +603,52 @@ void AP_ESC_Telem::update() _last_telem_log_ms[i] = telemdata.last_update_ms; _last_rpm_log_us[i] = rpmdata.last_update_us; } + +#if HAL_WANTS_EDTV2 + // Write an EDTv2 status message, if there is any update + uint16_t edt2_status = telemdata.edt2_status; + if (EDT2_HAS_NEW_DATA(edt2_status)) { + // An EDT2 status message is: + // id starts from 0 + // alert, warning, error are flags (so 0 or 1) + // stress is in [0; 15] + const struct log_Edt2 pkt_edt2{ + LOG_PACKET_HEADER_INIT(uint8_t(LOG_EDT2_MSG)), + time_us : now_us64, + instance : i, + alert : EDT2_ALERT_BIT_FROM_STATUS(edt2_status), + warning : EDT2_WARNING_BIT_FROM_STATUS(edt2_status), + error : EDT2_ERROR_BIT_FROM_STATUS(edt2_status), + max_stress : EDT2_STRESS_FROM_STATUS(edt2_status) + }; + if (AP::logger().WriteBlock_first_succeed(&pkt_edt2, sizeof(pkt_edt2))) { + // Only clean the status if the write succeeded. + // This is important because, if rate limiting is enabled, + // the log-on-change behavior may lose a lot of entries + telemdata.edt2_status = 0; + } + } + + // Write an EDTv2 stress value, if there is any update + uint16_t edt2_stress = telemdata.edt2_stress; + if (EDT2_HAS_NEW_DATA(edt2_stress)) { + // An EDTS stress message is: + // id starts from 0 + // stress is in [0; 255] + const struct log_Edts pkt_edts{ + LOG_PACKET_HEADER_INIT(uint8_t(LOG_EDTS_MSG)), + time_us : now_us64, + instance : i, + stress : EDT2_STRESS_FROM_STRESS(edt2_stress) + }; + if (AP::logger().WriteBlock_first_succeed(&pkt_edts, sizeof(pkt_edts))) { + // Only clean the stress if the write succeeded. + // This is important because, if rate limiting is enabled, + // the log-on-change behavior may lose a lot of entries + telemdata.edt2_stress = 0; + } + } +#endif // HAL_WANTS_EDTV2 } } #endif // HAL_LOGGING_ENABLED @@ -605,4 +713,4 @@ AP_ESC_Telem &esc_telem() }; -#endif +#endif // HAL_WITH_ESC_TELEM diff --git a/libraries/AP_ESC_Telem/AP_ESC_Telem.h b/libraries/AP_ESC_Telem/AP_ESC_Telem.h index ae40ede597079..b50f056d3e5be 100644 --- a/libraries/AP_ESC_Telem/AP_ESC_Telem.h +++ b/libraries/AP_ESC_Telem/AP_ESC_Telem.h @@ -118,6 +118,12 @@ class AP_ESC_Telem { static bool rpm_data_within_timeout (const volatile AP_ESC_Telem_Backend::RpmData &instance, const uint32_t now_us, const uint32_t timeout_us); static bool was_rpm_data_ever_reported (const volatile AP_ESC_Telem_Backend::RpmData &instance); +#if HAL_WANTS_EDTV2 + // helpers that aggregate data in EDTv2 messages + static uint16_t merge_edt2_status(uint16_t old_status, uint16_t new_status); + static uint16_t merge_edt2_stress(uint16_t old_stress, uint16_t new_stress); +#endif + // rpm data volatile AP_ESC_Telem_Backend::RpmData _rpm_data[ESC_TELEM_MAX_ESCS]; // telemetry data diff --git a/libraries/AP_ESC_Telem/AP_ESC_Telem_Backend.h b/libraries/AP_ESC_Telem/AP_ESC_Telem_Backend.h index b6d6725a55fa1..be189446a3260 100644 --- a/libraries/AP_ESC_Telem/AP_ESC_Telem_Backend.h +++ b/libraries/AP_ESC_Telem/AP_ESC_Telem_Backend.h @@ -19,6 +19,10 @@ class AP_ESC_Telem_Backend { uint32_t last_update_ms; // last update time in milliseconds, determines whether active uint16_t types; // telemetry types present uint16_t count; // number of times updated +#if HAL_WANTS_EDTV2 + uint16_t edt2_status; // status reported by Extended DShot Telemetry v2 + uint16_t edt2_stress; // stress reported in dedicated messages by Extended DShot Telemetry v2 +#endif // return true if the data is stale bool stale(uint32_t now_ms=0) const volatile; @@ -42,6 +46,10 @@ class AP_ESC_Telem_Backend { USAGE = 1 << 5, TEMPERATURE_EXTERNAL = 1 << 6, MOTOR_TEMPERATURE_EXTERNAL = 1 << 7, +#if HAL_WANTS_EDTV2 + EDT2_STATUS = 1 << 8, + EDT2_STRESS = 1 << 9, +#endif }; diff --git a/libraries/AP_ESC_Telem/LogStructure.h b/libraries/AP_ESC_Telem/LogStructure.h index a3c0dc791cd3d..5ecc690e60707 100644 --- a/libraries/AP_ESC_Telem/LogStructure.h +++ b/libraries/AP_ESC_Telem/LogStructure.h @@ -3,7 +3,9 @@ #include #define LOG_IDS_FROM_ESC_TELEM \ - LOG_ESC_MSG + LOG_ESC_MSG, \ + LOG_EDT2_MSG, \ + LOG_EDTS_MSG // @LoggerMessage: ESC // @Description: Feedback received from ESCs @@ -31,6 +33,40 @@ struct PACKED log_Esc { float error_rate; }; -#define LOG_STRUCTURE_FROM_ESC_TELEM \ +// @LoggerMessage: EDT2 +// @Description: Status received from ESCs via Extended DShot telemetry v2 +// @Field: TimeUS: microseconds since system startup +// @Field: Instance: ESC instance number +// @Field: Alert: the "alert" status bit +// @Field: Warning: the "warning" status bit +// @Field: Error: the "error" status bit +// @Field: MaxStress: the maximum stress level observed for this ESC, scaled to [0..15] +struct PACKED log_Edt2 { + LOG_PACKET_HEADER; + uint64_t time_us; + uint8_t instance; + uint8_t alert; + uint8_t warning; + uint8_t error; + uint8_t max_stress; +}; + +// @LoggerMessage: EDTS +// @Description: Stress values received from ESCs via Extended DShot telemetry v2 +// @Field: TimeUS: microseconds since system startup +// @Field: Instance: ESC instance number +// @Field: Stress: the stress value observed for this ESC, scaled to [0..255] +struct PACKED log_Edts { + LOG_PACKET_HEADER; + uint64_t time_us; + uint8_t instance; + uint8_t stress; +}; + +#define LOG_STRUCTURE_FROM_ESC_TELEM \ { LOG_ESC_MSG, sizeof(log_Esc), \ - "ESC", "QBffffcfcf", "TimeUS,Instance,RPM,RawRPM,Volt,Curr,Temp,CTot,MotTemp,Err", "s#qqvAOaO%", "F-00--BCB-" , true }, + "ESC", "QBffffcfcf", "TimeUS,Instance,RPM,RawRPM,Volt,Curr,Temp,CTot,MotTemp,Err", "s#qqvAOaO%", "F-00--BCB-" , true }, \ + { LOG_EDT2_MSG, sizeof(log_Edt2), \ + "EDT2", "QBBBBB", "TimeUS,Instance,Alert,Warning,Error,MaxStress", "s#----", "F-----" , true }, \ + { LOG_EDTS_MSG, sizeof(log_Edts), \ + "EDTS", "QBB", "TimeUS,Instance,Stress", "s#-", "F--", true }, diff --git a/libraries/AP_HAL/AP_HAL_Boards.h b/libraries/AP_HAL/AP_HAL_Boards.h index 5ba862d7ef177..3823b2f1fa665 100644 --- a/libraries/AP_HAL/AP_HAL_Boards.h +++ b/libraries/AP_HAL/AP_HAL_Boards.h @@ -179,6 +179,14 @@ #define HAL_WITH_IO_MCU_DSHOT HAL_WITH_IO_MCU_BIDIR_DSHOT #endif +#ifndef HAL_REQUIRES_BDSHOT_SUPPORT +#define HAL_REQUIRES_BDSHOT_SUPPORT (defined(HAL_WITH_BIDIR_DSHOT) || HAL_WITH_IO_MCU_BIDIR_DSHOT) +#endif + +#ifndef HAL_WANTS_EDTV2 +#define HAL_WANTS_EDTV2 HAL_REQUIRES_BDSHOT_SUPPORT +#endif + // this is used as a general mechanism to make a 'small' build by // dropping little used features. We use this to allow us to keep // FMUv2 going for as long as possible diff --git a/libraries/AP_HAL_ChibiOS/RCOutput_bdshot.cpp b/libraries/AP_HAL_ChibiOS/RCOutput_bdshot.cpp index cb1c04e29d574..b21d910c66454 100644 --- a/libraries/AP_HAL_ChibiOS/RCOutput_bdshot.cpp +++ b/libraries/AP_HAL_ChibiOS/RCOutput_bdshot.cpp @@ -796,10 +796,28 @@ bool RCOutput::bdshot_decode_telemetry_from_erpm(uint16_t encodederpm, uint8_t c break; case 0b100: // Debug 1 case 0b101: // Debug 2 - case 0b110: // Stress level - case 0b111: // Status return false; break; + case 0b110: { // Stress level + #if HAL_WITH_ESC_TELEM && HAL_WANTS_EDTV2 + TelemetryData t { + .edt2_stress = value + }; + update_telem_data(normalized_chan, t, AP_ESC_Telem_Backend::TelemetryType::EDT2_STRESS); + #endif + return false; + } + break; + case 0b111: { // Status + #if HAL_WITH_ESC_TELEM && HAL_WANTS_EDTV2 + TelemetryData t { + .edt2_status = value + }; + update_telem_data(normalized_chan, t, AP_ESC_Telem_Backend::TelemetryType::EDT2_STATUS); + #endif + return false; + } + break; default: // eRPM break; } diff --git a/libraries/AP_IOMCU/AP_IOMCU.cpp b/libraries/AP_IOMCU/AP_IOMCU.cpp index fefa91ebf0377..6d8ed8d95f3bd 100644 --- a/libraries/AP_IOMCU/AP_IOMCU.cpp +++ b/libraries/AP_IOMCU/AP_IOMCU.cpp @@ -453,7 +453,11 @@ void AP_IOMCU::read_telem() TelemetryData t { .temperature_cdeg = int16_t(telem->temperature_cdeg[i]), .voltage = float(telem->voltage_cvolts[i]) * 0.01, - .current = float(telem->current_camps[i]) * 0.01 + .current = float(telem->current_camps[i]) * 0.01, +#if HAL_WANTS_EDTV2 + .edt2_status = telem->edt2_status[i], + .edt2_stress = telem->edt2_stress[i], +#endif }; update_telem_data(esc_group * 4 + i, t, telem->types[i]); } diff --git a/libraries/AP_IOMCU/iofirmware/iofirmware.cpp b/libraries/AP_IOMCU/iofirmware/iofirmware.cpp index 6e97fa4cf2714..172038059131b 100644 --- a/libraries/AP_IOMCU/iofirmware/iofirmware.cpp +++ b/libraries/AP_IOMCU/iofirmware/iofirmware.cpp @@ -635,25 +635,34 @@ void AP_IOMCU_FW::telem_update() uint32_t now_ms = AP_HAL::millis(); for (uint8_t i = 0; i < IOMCU_MAX_TELEM_CHANNELS/4; i++) { + struct page_dshot_telem &dshot_i = dshot_telem[i]; for (uint8_t j = 0; j < 4; j++) { const uint8_t esc_id = (i * 4 + j); if (esc_id >= IOMCU_MAX_TELEM_CHANNELS) { continue; } - dshot_telem[i].error_rate[j] = uint16_t(roundf(hal.rcout->get_erpm_error_rate(esc_id) * 100.0)); + dshot_i.error_rate[j] = uint16_t(roundf(hal.rcout->get_erpm_error_rate(esc_id) * 100.0)); #if HAL_WITH_ESC_TELEM const volatile AP_ESC_Telem_Backend::TelemetryData& telem = esc_telem.get_telem_data(esc_id); // if data is stale then set to zero to avoid phantom data appearing in mavlink if (now_ms - telem.last_update_ms > ESC_TELEM_DATA_TIMEOUT_MS) { - dshot_telem[i].voltage_cvolts[j] = 0; - dshot_telem[i].current_camps[j] = 0; - dshot_telem[i].temperature_cdeg[j] = 0; + dshot_i.voltage_cvolts[j] = 0; + dshot_i.current_camps[j] = 0; + dshot_i.temperature_cdeg[j] = 0; +#if HAL_WANTS_EDTV2 + dshot_i.edt2_status[j] = 0; + dshot_i.edt2_stress[j] = 0; +#endif continue; } - dshot_telem[i].voltage_cvolts[j] = uint16_t(roundf(telem.voltage * 100)); - dshot_telem[i].current_camps[j] = uint16_t(roundf(telem.current * 100)); - dshot_telem[i].temperature_cdeg[j] = telem.temperature_cdeg; - dshot_telem[i].types[j] = telem.types; + dshot_i.voltage_cvolts[j] = uint16_t(roundf(telem.voltage * 100)); + dshot_i.current_camps[j] = uint16_t(roundf(telem.current * 100)); + dshot_i.temperature_cdeg[j] = telem.temperature_cdeg; +#if HAL_WANTS_EDTV2 + dshot_i.edt2_status[j] = uint8_t(telem.edt2_status); + dshot_i.edt2_stress[j] = uint8_t(telem.edt2_stress); +#endif + dshot_i.types[j] = telem.types; #endif } } diff --git a/libraries/AP_IOMCU/iofirmware/ioprotocol.h b/libraries/AP_IOMCU/iofirmware/ioprotocol.h index 9e13fafc48478..db700f22cc244 100644 --- a/libraries/AP_IOMCU/iofirmware/ioprotocol.h +++ b/libraries/AP_IOMCU/iofirmware/ioprotocol.h @@ -221,4 +221,8 @@ struct page_dshot_telem { uint16_t current_camps[4]; uint16_t temperature_cdeg[4]; uint16_t types[4]; +#if HAL_WANTS_EDTV2 + uint8_t edt2_status[4]; + uint8_t edt2_stress[4]; +#endif };