From 7b7e55726fc3253324f0b99388cc3b27d3ab350e Mon Sep 17 00:00:00 2001 From: Maxim Buzdalov Date: Sat, 4 May 2024 20:31:01 +0100 Subject: [PATCH] AP_ESC_Telem, AP_IOMCU: add support for Extended DShot Telemetry v2 --- .../IO_Firmware/iofirmware_dshot_highpolh.bin | Bin 47564 -> 47484 bytes .../IO_Firmware/iofirmware_dshot_lowpolh.bin | Bin 47564 -> 47484 bytes .../iofirmware_f103_8MHz_highpolh.bin | Bin 40704 -> 40608 bytes .../iofirmware_f103_8MHz_lowpolh.bin | Bin 40704 -> 40608 bytes .../iofirmware_f103_dshot_highpolh.bin | Bin 53100 -> 53284 bytes .../iofirmware_f103_dshot_lowpolh.bin | Bin 53100 -> 53284 bytes .../IO_Firmware/iofirmware_f103_highpolh.bin | Bin 40696 -> 40608 bytes Tools/IO_Firmware/iofirmware_f103_lowpolh.bin | Bin 40696 -> 40608 bytes Tools/IO_Firmware/iofirmware_highpolh.bin | Bin 40704 -> 40608 bytes Tools/IO_Firmware/iofirmware_lowpolh.bin | Bin 40704 -> 40608 bytes libraries/AP_ESC_Telem/AP_ESC_Telem.cpp | 115 +++++++++++++++++- 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 | 36 +++++- libraries/AP_HAL/AP_HAL_Boards.h | 13 ++ libraries/AP_HAL_ChibiOS/RCOutput_bdshot.cpp | 24 +++- libraries/AP_IOMCU/AP_IOMCU.cpp | 6 +- libraries/AP_IOMCU/iofirmware/iofirmware.cpp | 25 ++-- libraries/AP_IOMCU/iofirmware/ioprotocol.h | 5 + 19 files changed, 221 insertions(+), 17 deletions(-) diff --git a/Tools/IO_Firmware/iofirmware_dshot_highpolh.bin b/Tools/IO_Firmware/iofirmware_dshot_highpolh.bin index a986d7dfa7480982c4f33b48d717f484f1832f26..210d3d86e1094a8574a74224bbc384318a851b5a 100755 GIT binary patch delta 9806 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 diff --git a/Tools/IO_Firmware/iofirmware_dshot_lowpolh.bin b/Tools/IO_Firmware/iofirmware_dshot_lowpolh.bin index 01e10a37e4e820c163bbeaf365a4db7994d89182..62a6c45273c2ca66eefb4b21e704f4faa627b710 100755 GIT binary patch delta 9804 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 delta 9968 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 delta 7879 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 fMQvU$rC#rYYJ=GJw-ePl_-J$Duh}k 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 Aw*UYD diff --git a/Tools/IO_Firmware/iofirmware_f103_dshot_highpolh.bin b/Tools/IO_Firmware/iofirmware_f103_dshot_highpolh.bin index e27740255e5a37cd5a453726e0582141cccacfc1..1b5104df03ad98617d773709a64967d5eac12948 100755 GIT binary patch delta 15571 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 delta 15561 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 delta 15557 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 delta 7827 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 diff --git a/Tools/IO_Firmware/iofirmware_f103_lowpolh.bin b/Tools/IO_Firmware/iofirmware_f103_lowpolh.bin index 3a43e19918a219d64dff8674e5010632e219eb7b..d3f696f4793a10ff1b1aa09bdd36e8f1a53324af 100755 GIT binary patch delta 7783 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 delta 7825 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 diff --git a/Tools/IO_Firmware/iofirmware_lowpolh.bin b/Tools/IO_Firmware/iofirmware_lowpolh.bin index 648e4f962403cffc86777f9c8edfd62ebd68efb6..d32dcb23a596e5d0bbd8f58a221f83bcb5abca29 100755 GIT binary patch delta 7774 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 B23Y_A delta 7960 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%0DEdkHDRcc?hK4-pnJI(tUhi~x zx#DY6McoTnKPD<|yp(T&tt&xvIs%-W^r^?`h;&hGzf_v#R(!H-gm2Qrh@LJ^de@UD zy*$O~$n0`Dc=ly}xaL=vIO!mB<re4gS(msXR2ko?1Ak*yIp)yvoM_Si`mhoDV%VI{pZqG74iJC zsZ)eA$^ui3_c*@rD39VE$K)o%Pqxo{ZJAA`pKOxP30_MxsC3!2Cf*V35?u~uTUdbP?Abb$^&{bD=0lqPgpf;N>yG{Ud2bbSFNwC zTg;7^=Q>`LlzF`1xFuek8-6@rZuD&n5r?60pK-ktK1RH4F=SF{g6kX0*vt-Fh?odZ z1`A#P6dlUa*GCQ%TxRi>#U4sgVBc6WGTUuRM6h-3`s*AX<#IOMq(`j@uY9GZUd(%Q z8okQ0HjkixU@vV>r)OB>=7tgZE|24LxALk&r1LILuP>>%7g*_y^?W0U2;X9+%C^SW zuYOmZyMGChv`)PJvNKzD(Uz%9N$6Y!g~+3Lzr)9g&YA*fpPWsYF8q zAEU#Yk`6kF|FJnlj6p3CDbKAEe?X0=qMfDIdw8tmt>I%5M5SF{ms$*|RdzNajdd%# z+M~Gq+Q&UR@oE!N`>3bHLGE~jXhfH7e1^wyv564A*5jCSu_W8Op2W~Zb@OrmF zzZqGvU=j`3q=~Lvjx(rn^e$`K7DuNz}_mVVjH(-VX1t&eJA}pduK;5Tef2Wz4cJr5AAbk zN%Z`~V+qG^G4Iz4=~A}*^|fV&_lcUCY66JhrQ_>)vBz=T?WOY;dK|xjUOUPWk$8n~|2REd@_27ETJ&rfsJ&qgTT2GI|fbkyedGuQA ze<2mKBGTXslojk88nEqoirILg^?b_UZ=S^dspN|>Yy~@j z^0`;}y_km2zd-W~!WTg{fOP0HAm@QX@BmbUqLqt_Rxe*yu)6S3+b92zn((b$d_WnhQH-t z6<7;i1dkgBXZ%ASorlqb86d3}Bjn@QInWEiJP-#GKr(pjKMK7X>;U^f184+gj{{n9 zki4GoUqQBkE8r?<0gqz}$D=+#S~fZZTR|fz0yDr>5DdTO8C)u~Q?TO_bpr~Y2KWF! z5D0>^as5M~RDnnk2NFOsFoF?aGd-d8({bV>|kxb9$VH0S2xhiL|5SFy2^qt2h337{*P0(!rula%_jT?@N@kg zhVSTXD~5bjS)op?5-dfojB^1NEQ*+<~ns0_(C72Oofs!4=TB1c7iCqOlL82C@~h z6(_g~|KWwGHb@Fv3uG&(jzH!izXG?xcVIW-?m%_|OkY^JSXfiEyl}NpvU=sh!qU>h z(mn*+A7AE#LfivfXb4^t-c=oeXv)T}~E(ZLmP70?pcAiF^Y^ho&Q zKr4IsR%0-*Wr3^E3&05Io$%Q~F!a_{DCh?`=mMcIR3RuC z(g--JdOSALx(2zx0Iz^f@YqoZeF}U!$Re;0`c_Ck#RlS_CxAQ9AN&&S0R`t^O9sYL z4j(7}#3DIDSO-fh_^*?MFF#HAEnq9y3HE_Q;3)VlcpF%It z33&kWC`f~Tm|Z>in@JD0BUd1D2XY630R^3~wSffa3k`(aI`faIUclpw@>qj23d%o) uQnYAUAz|kZEe-9z)KjKdl%K~#smJq3_hHFzCV8px`Dx8@>+^4#x&HxCSS_Of diff --git a/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp b/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp index e6f3bd523c392..e4daed9a097df 100644 --- a/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp +++ b/libraries/AP_ESC_Telem/AP_ESC_Telem.cpp @@ -468,6 +468,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 EDTV2_SUPPORT + 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(); @@ -499,6 +508,63 @@ void AP_ESC_Telem::update_rpm(const uint8_t esc_index, const float new_rpm, cons #endif } +#if EDTV2_SUPPORT + +// 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 stall event in Bluejay) +// - bit 6: the "warning" bit (e.g. the desync event in Bluejay) +// - bit 7: the "alert" bit (e.g. the demag 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 try to log them only once a new frame comes. +// 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; + +#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((status) & EDT2_ERROR_MASK) +#define EDT2_WARNING_BIT_FROM_STATUS(status) bool((status) & EDT2_WARNING_MASK) +#define EDT2_ALERT_BIT_FROM_STATUS(status) bool((status) & EDT2_ALERT_MASK) +#define EDT2_STRESS_FROM_STRESS(stress) uint8_t((stress) & EDT2_STRESS_FF_MASK) + +uint16_t AP_ESC_Telem::merge_edt2_status(uint16_t old_status, uint16_t new_status) +{ + if (EDT2_HAS_NEW_DATA(old_status)) { + new_status = uint16_t( + (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 + MAX(old_status & EDT2_STRESS_0F_MASK, new_status & EDT2_STRESS_0F_MASK) // the stress is maxed out + ); + } + return EDT2_TELEM_UPDATED | new_status; +} + +uint16_t AP_ESC_Telem::merge_edt2_stress(uint16_t old_stress, uint16_t new_stress) +{ + if (EDT2_HAS_NEW_DATA(old_stress)) { + new_stress = uint16_t( + MAX(old_stress & EDT2_STRESS_FF_MASK, new_stress & EDT2_STRESS_FF_MASK) // the stress is maxed out + ); + } + return EDT2_TELEM_UPDATED | new_stress; +} + +#endif // EDTV2_SUPPORT + void AP_ESC_Telem::update() { #if HAL_LOGGING_ENABLED @@ -507,7 +573,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] @@ -544,6 +610,51 @@ void AP_ESC_Telem::update() _last_telem_log_ms[i] = telemdata.last_update_ms; _last_rpm_log_us[i] = rpmdata.last_update_us; } + +#if EDTV2_SUPPORT + // Write an EDTv2 message, if there is any update + uint16_t edt2_status = telemdata.edt2_status; + uint16_t edt2_stress = telemdata.edt2_stress; + if (EDT2_HAS_NEW_DATA(edt2_status | edt2_stress)) { + // Could probably be faster/smaller with bitmasking, but not sure + uint8_t status = 0; + if (EDT2_HAS_NEW_DATA(edt2_stress)) { + status |= uint8_t(log_Edt2_Status::HAS_STRESS_DATA); + } + if (EDT2_HAS_NEW_DATA(edt2_status)) { + status |= uint8_t(log_Edt2_Status::HAS_STATUS_DATA); + } + if (EDT2_ALERT_BIT_FROM_STATUS(edt2_status)) { + status |= uint8_t(log_Edt2_Status::ALERT_BIT); + } + if (EDT2_WARNING_BIT_FROM_STATUS(edt2_status)) { + status |= uint8_t(log_Edt2_Status::WARNING_BIT); + } + if (EDT2_ERROR_BIT_FROM_STATUS(edt2_status)) { + status |= uint8_t(log_Edt2_Status::ERROR_BIT); + } + // An EDT2 status message is: + // id: starts from 0 + // stress: the current stress which comes from edt2_stress + // max_stress: the maximum stress which comes from edt2_status + // status: the status bits which come from both + const struct log_Edt2 pkt_edt2{ + LOG_PACKET_HEADER_INIT(uint8_t(LOG_EDT2_MSG)), + time_us : now_us64, + instance : i, + stress : EDT2_STRESS_FROM_STRESS(edt2_stress), + max_stress : EDT2_STRESS_FROM_STATUS(edt2_status), + status : status, + }; + if (AP::logger().WriteBlock_first_succeed(&pkt_edt2, sizeof(pkt_edt2))) { + // Only clean the telem_updated bits 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 &= ~EDT2_TELEM_UPDATED; + telemdata.edt2_stress &= ~EDT2_TELEM_UPDATED; + } + } +#endif // EDTV2_SUPPORT } } #endif // HAL_LOGGING_ENABLED @@ -608,4 +719,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..792e5beff1b42 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 EDTV2_SUPPORT + // 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..62163fab8f46f 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 EDTV2_SUPPORT + 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 EDTV2_SUPPORT + 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..c50ac47b95e97 100644 --- a/libraries/AP_ESC_Telem/LogStructure.h +++ b/libraries/AP_ESC_Telem/LogStructure.h @@ -3,7 +3,8 @@ #include #define LOG_IDS_FROM_ESC_TELEM \ - LOG_ESC_MSG + LOG_ESC_MSG, \ + LOG_EDT2_MSG // @LoggerMessage: ESC // @Description: Feedback received from ESCs @@ -31,6 +32,35 @@ struct PACKED log_Esc { float error_rate; }; -#define LOG_STRUCTURE_FROM_ESC_TELEM \ +enum class log_Edt2_Status : uint8_t { + HAS_STRESS_DATA = 1U<<0, // true if the message contains up-to-date stress data + HAS_STATUS_DATA = 1U<<1, // true if the message contains up-to-date status data + ALERT_BIT = 1U<<2, // true if the last status had the "alert" bit (e.g. demag) + WARNING_BIT = 1U<<3, // true if the last status had the "warning" bit (e.g. desync) + ERROR_BIT = 1U<<4, // true if the last status had the "error" bit (e.g. stall) +}; + + +// @LoggerMessage: EDT2 +// @Description: Status received from ESCs via Extended DShot telemetry v2 +// @Field: TimeUS: microseconds since system startup +// @Field: Instance: ESC instance number +// @Field: Stress: current stress level (commutation effort), scaled to [0..255] +// @Field: MaxStress: maximum stress level (commutation effort) since arming, scaled to [0..15] +// @Field: Status: status bits +// @FieldBitmaskEnum: Status: log_Edt2_Status +struct PACKED log_Edt2 { + LOG_PACKET_HEADER; + uint64_t time_us; + uint8_t instance; + uint8_t stress; + uint8_t max_stress; + uint8_t status; +}; + +#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", "QBBBB", "TimeUS,Instance,Stress,MaxStress,Status", "s#---", "F----" , true }, + diff --git a/libraries/AP_HAL/AP_HAL_Boards.h b/libraries/AP_HAL/AP_HAL_Boards.h index b2f38945cc68e..69340d20602ef 100644 --- a/libraries/AP_HAL/AP_HAL_Boards.h +++ b/libraries/AP_HAL/AP_HAL_Boards.h @@ -175,6 +175,19 @@ #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 + +// support for Extended DShot Telemetry v2 is enabled only if any kind of such telemetry +// can in principle arrive, either from servo outputs or from IOMCU + +// if not desired, set to 0 - and if IOMCU has bidirectional DShot enabled, recompile it too, +// otherwise the communication to IOMCU breaks! +#ifndef EDTV2_SUPPORT +#define EDTV2_SUPPORT 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..f16ed24221ead 100644 --- a/libraries/AP_HAL_ChibiOS/RCOutput_bdshot.cpp +++ b/libraries/AP_HAL_ChibiOS/RCOutput_bdshot.cpp @@ -755,12 +755,12 @@ bool RCOutput::bdshot_decode_telemetry_from_erpm(uint16_t encodederpm, uint8_t c uint16_t value = (encodederpm & 0x000001ffU); // 9bits #if HAL_WITH_ESC_TELEM uint8_t normalized_chan = chan; -#endif #if HAL_WITH_IO_MCU if (iomcu_enabled) { normalized_chan = chan + chan_offset; } #endif +#endif // HAL_WITH_ESC_TELEM: one can possibly imagine a FC with IOMCU but with ESC_TELEM compiled out... if (!(value & 0x100U) && (_dshot_esc_type == DSHOT_ESC_BLHELI_EDT || _dshot_esc_type == DSHOT_ESC_BLHELI_EDT_S)) { switch (expo) { @@ -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 && EDTV2_SUPPORT + 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 && EDTV2_SUPPORT + 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 83ebd6e01a748..53bc42ace1f4f 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 EDTV2_SUPPORT + .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 bb24b0dcad4c0..fb8885ce72a13 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 EDTV2_SUPPORT + 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 EDTV2_SUPPORT + 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 be00d927593f7..44f4eca67efa8 100644 --- a/libraries/AP_IOMCU/iofirmware/ioprotocol.h +++ b/libraries/AP_IOMCU/iofirmware/ioprotocol.h @@ -223,4 +223,9 @@ struct page_dshot_telem { uint16_t current_camps[4]; uint16_t temperature_cdeg[4]; uint16_t types[4]; +// if EDTv2 needs to be disabled, IOMCU firmware should be recompiled too, this is the reason +#if EDTV2_SUPPORT + uint8_t edt2_status[4]; + uint8_t edt2_stress[4]; +#endif };