diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index 2b33855b9..489f9a3be 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -644,9 +644,9 @@ enum MixSources { MIXSRC_MOUSE2, LUA_EXPORT("jsy", "Joystick Y") #endif -#if defined(GYRO) - MIXSRC_GYRO1, LUA_EXPORT("gyrx", "Gyro X") - MIXSRC_GYRO2, LUA_EXPORT("gyry", "Gyro Y") +#if defined(IMU) + MIXSRC_TILT_X, LUA_EXPORT("tiltx", "Tilt X") + MIXSRC_TILT_Y, LUA_EXPORT("tilty", "Tilt Y") #endif MIXSRC_MAX, LUA_EXPORT("max", "MAX") diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index a6da4777a..c90cf723a 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -136,10 +136,10 @@ static inline void check_struct() CHKSIZE(ModelData, 6605); #elif defined(PCBHORUS) #if defined(PCBX10) - CHKSIZE(RadioData, 921); + CHKSIZE(RadioData, 923); CHKSIZE(ModelData, 11025); #else - CHKSIZE(RadioData, 903); + CHKSIZE(RadioData, 905); CHKSIZE(ModelData, 11023); #endif #elif defined(PCBNV14) diff --git a/radio/src/datastructs_private.h b/radio/src/datastructs_private.h index 0fa9d41ee..22a2a09fd 100644 --- a/radio/src/datastructs_private.h +++ b/radio/src/datastructs_private.h @@ -765,14 +765,6 @@ PACK(struct TrainerData { #define SPLASH_MODE int8_t splashMode:3 #endif -#if defined(PCBXLITES) - #define GYRO_FIELDS \ - int8_t gyroMax; \ - int8_t gyroOffset; -#else - #define GYRO_FIELDS -#endif - #if defined(COLORLCD) #define EXTRA_GENERAL_FIELDS \ CUST_ARRAY(sticksConfig, struct_sticksConfig, stick_name_valid); \ @@ -905,8 +897,6 @@ PACK(struct RadioData { char ownerRegistrationID[PXX2_LEN_REGISTRATION_ID]; - GYRO_FIELDS - NOBACKUP(int8_t uartSampleMode:2); // See UartSampleModes #if defined(STICK_DEAD_ZONE) NOBACKUP(uint8_t stickDeadZone:3); @@ -914,6 +904,11 @@ PACK(struct RadioData { #else NOBACKUP(uint8_t spare2:6 SKIP); #endif + +#if defined(IMU) + NOBACKUP(int8_t imuMax); + NOBACKUP(int8_t imuOffset); +#endif }); #undef SWITCHES_WARNING_DATA diff --git a/radio/src/gui/128x64/radio_diaganas.cpp b/radio/src/gui/128x64/radio_diaganas.cpp index 004e6d33b..9f8510b94 100644 --- a/radio/src/gui/128x64/radio_diaganas.cpp +++ b/radio/src/gui/128x64/radio_diaganas.cpp @@ -128,9 +128,9 @@ void menuRadioDiagAnalogs(event_t event) entryCount++; } -#if defined(GYRO) +#if defined(IMU) y += FH; - lcdDrawTextAlignedLeft(y, STR_GYRO); + lcdDrawTextAlignedLeft(y, STR_IMU); y += FH; uint8_t x = INDENT_WIDTH; lcdDrawText(x, y, "X:"); diff --git a/radio/src/gui/128x64/radio_setup.cpp b/radio/src/gui/128x64/radio_setup.cpp index b142143ba..61c63adf1 100644 --- a/radio/src/gui/128x64/radio_setup.cpp +++ b/radio/src/gui/128x64/radio_setup.cpp @@ -69,9 +69,9 @@ enum { CASE_HAPTIC(ITEM_RADIO_SETUP_HAPTIC_MODE) CASE_HAPTIC(ITEM_RADIO_SETUP_HAPTIC_LENGTH) CASE_HAPTIC(ITEM_RADIO_SETUP_HAPTIC_STRENGTH) - CASE_GYRO(ITEM_RADIO_SETUP_GYRO_LABEL) - CASE_GYRO(ITEM_RADIO_SETUP_GYRO_MAX) - CASE_GYRO(ITEM_RADIO_SETUP_GYRO_OFFSET) + CASE_IMU(ITEM_RADIO_SETUP_IMU_LABEL) + CASE_IMU(ITEM_RADIO_SETUP_IMU_MAX) + CASE_IMU(ITEM_RADIO_SETUP_IMU_OFFSET) ITEM_RADIO_SETUP_CONTRAST, ITEM_RADIO_SETUP_ALARMS_LABEL, ITEM_RADIO_SETUP_BATTERY_WARNING, @@ -152,9 +152,9 @@ void menuRadioSetup(event_t event) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0) - CASE_GYRO(LABEL(GYRO)) - CASE_GYRO(0) - CASE_GYRO(0) + CASE_IMU(LABEL(IMU)) + CASE_IMU(0) + CASE_IMU(0) 0, LABEL(ALARMS), 0, CASE_CAPACITY(0) 0, 0, 0, 0, /* ITEM_RADIO_SETUP_INACTIVITY_ALARM ITEM_RADIO_SETUP_MEMORY_WARNING ITEM_RADIO_SETUP_ALARM_WARNING ITEM_RADIO_SETUP_RSSI_POWEROFF_ALARM */ CASE_BACKLIGHT(LABEL(BACKLIGHT)) @@ -387,29 +387,29 @@ void menuRadioSetup(event_t event) break; #endif -#if defined(GYRO) - case ITEM_RADIO_SETUP_GYRO_LABEL: - lcdDrawTextAlignedLeft(y, STR_GYRO_LABEL); +#if defined(IMU) + case ITEM_RADIO_SETUP_IMU_LABEL: + lcdDrawTextAlignedLeft(y, STR_IMU_LABEL); break; - case ITEM_RADIO_SETUP_GYRO_MAX: - lcdDrawText(INDENT_WIDTH, y, STR_GYRO_MAX); - lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, GYRO_MAX_DEFAULT + g_eeGeneral.gyroMax, attr|LEFT); + case ITEM_RADIO_SETUP_IMU_MAX: + lcdDrawText(INDENT_WIDTH, y, STR_IMU_MAX); + lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, IMU_MAX_DEFAULT + g_eeGeneral.imuMax, attr|LEFT); lcdDrawChar(lcdLastRightPos, y, '@', attr); if (attr) { - CHECK_INCDEC_GENVAR(event, g_eeGeneral.gyroMax, GYRO_MAX_DEFAULT - GYRO_MAX_RANGE, GYRO_MAX_DEFAULT + GYRO_MAX_RANGE); + CHECK_INCDEC_GENVAR(event, g_eeGeneral.imuMax, IMU_MAX_DEFAULT - IMU_MAX_RANGE, IMU_MAX_DEFAULT + IMU_MAX_RANGE); lcdDrawText(LCD_W-4*FW, y, "("); lcdDrawNumber(lcdLastRightPos, y, max(abs(gyro.outputs[0]), abs(gyro.outputs[1])) * 180 / 1024); lcdDrawText(lcdLastRightPos, y, ")"); } break; - case ITEM_RADIO_SETUP_GYRO_OFFSET: - lcdDrawText(INDENT_WIDTH, y, STR_GYRO_OFFSET); - lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.gyroOffset, attr|LEFT); + case ITEM_RADIO_SETUP_IMU_OFFSET: + lcdDrawText(INDENT_WIDTH, y, STR_IMU_OFFSET); + lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.imuOffset, attr|LEFT); lcdDrawChar(lcdLastRightPos, y, '@', attr); if (attr) { - CHECK_INCDEC_GENVAR(event, g_eeGeneral.gyroOffset, GYRO_OFFSET_MIN, GYRO_OFFSET_MAX); + CHECK_INCDEC_GENVAR(event, g_eeGeneral.imuOffset, IMU_OFFSET_MIN, IMU_OFFSET_MAX); lcdDrawText(LCD_W-4*FW, y, "("); lcdDrawNumber(lcdLastRightPos, y, gyro.outputs[0] * 180 / 1024); lcdDrawText(lcdLastRightPos, y, ")"); diff --git a/radio/src/gui/colorlcd/radio_diaganas.cpp b/radio/src/gui/colorlcd/radio_diaganas.cpp index bc386037f..a88572a7e 100644 --- a/radio/src/gui/colorlcd/radio_diaganas.cpp +++ b/radio/src/gui/colorlcd/radio_diaganas.cpp @@ -24,9 +24,9 @@ #include "libopenui.h" #include "../../hal/adc_driver.h" -#if defined(IMU_LSM6DS33) -#include "imu_lsm6ds33.h" -#endif +// #if defined(IMU_LSM6DS33) +// #include "imu_lsm6ds33.h" +// #endif #if defined(RADIO_FAMILY_T16) || defined(PCBNV14) #include "../../targets/horus/flyskyHallStick_driver.h" @@ -114,19 +114,19 @@ class AnaCalibratedViewWindow: public Window { } } -#if !defined(SIMU) && defined(IMU_LSM6DS33) - coord_t yimu = MENU_CONTENT_TOP + 3 * FH; - coord_t ximu = MENUS_MARGIN_LEFT; - char imudata[80]; - sprintf(imudata, "IMU temp.: %.2f deg.C, Gyro XYZ [rad/s]: %.2f, %.2f, %.2f", - IMUoutput.fTemperatureDegC, - IMUoutput.fGyroXradps, IMUoutput.fGyroYradps, IMUoutput.fGyroZradps); - dc->drawText(ximu, yimu, imudata); - yimu = MENU_CONTENT_TOP + 4 * FH; - sprintf(imudata, "Linear acceleration XYZ [m/s^2]: %.2f %.2f %.2f", - IMUoutput.fAccX, IMUoutput.fAccY, IMUoutput.fAccZ); - dc->drawText(ximu, yimu, imudata); -#endif +// #if !defined(SIMU) && defined(IMU_LSM6DS33) +// coord_t yimu = MENU_CONTENT_TOP + 3 * FH; +// coord_t ximu = MENUS_MARGIN_LEFT; +// char imudata[80]; +// sprintf(imudata, "IMU temp.: %.2f deg.C, Gyro XYZ [rad/s]: %.2f, %.2f, %.2f", +// IMUoutput.fTemperatureDegC, +// IMUoutput.fGyroXradps, IMUoutput.fGyroYradps, IMUoutput.fGyroZradps); +// dc->drawText(ximu, yimu, imudata); +// yimu = MENU_CONTENT_TOP + 4 * FH; +// sprintf(imudata, "Linear acceleration XYZ [m/s^2]: %.2f %.2f %.2f", +// IMUoutput.fAccX, IMUoutput.fAccY, IMUoutput.fAccZ); +// dc->drawText(ximu, yimu, imudata); +// #endif #if defined(HARDWARE_TOUCH) TouchState rawTouchState = getInternalTouchState(); diff --git a/radio/src/gyro.cpp b/radio/src/gyro.cpp index 0b20cec6f..f5aaf3757 100644 --- a/radio/src/gyro.cpp +++ b/radio/src/gyro.cpp @@ -27,20 +27,20 @@ Gyro gyro; -int GyroBuffer::read(int32_t values[GYRO_VALUES_COUNT]) +int GyroBuffer::read(int32_t values[IMU_VALUES_COUNT]) { - index = (index + 1) & (GYRO_SAMPLES_COUNT - 1); + index = (index + 1) & (IMU_SAMPLES_COUNT - 1); - for (uint8_t i = 0; i < GYRO_VALUES_COUNT; i++) { + for (uint8_t i = 0; i < IMU_VALUES_COUNT; i++) { sums[i] -= samples[index].values[i]; } if (gyroRead(samples[index].raw) < 0) return -1; - for (uint8_t i = 0; i < GYRO_VALUES_COUNT; i++) { + for (uint8_t i = 0; i < IMU_VALUES_COUNT; i++) { sums[i] += samples[index].values[i]; - values[i] = sums[i] >> GYRO_SAMPLES_EXPONENT; + values[i] = sums[i] >> IMU_SAMPLES_EXPONENT; } return 0; @@ -61,7 +61,7 @@ void Gyro::wakeup() gyroWakeupTime = now + 1; /* 10ms default */ - int32_t values[GYRO_VALUES_COUNT]; + int32_t values[IMU_VALUES_COUNT]; if (gyroBuffer.read(values) < 0) ++errors; @@ -75,3 +75,18 @@ void Gyro::wakeup() // TRACE("%d %d", values[0], values[1]); } + +int16_t Gyro::scaledX() +{ + return limit(-RESX, + (int)(outputs[0] - g_eeGeneral.imuOffset * RESX / 180) * + (180 / (IMU_MAX_DEFAULT + g_eeGeneral.imuMax)), + RESX); +} + +int16_t Gyro::scaledY() +{ + return limit(-RESX, + outputs[1] * (180 / (IMU_MAX_DEFAULT + g_eeGeneral.imuMax)), + RESX); +} diff --git a/radio/src/gyro.h b/radio/src/gyro.h index 82fbe23e8..3b52711dc 100644 --- a/radio/src/gyro.h +++ b/radio/src/gyro.h @@ -22,42 +22,50 @@ #include #include "myeeprom.h" -#define GYRO_SAMPLES_EXPONENT 3 -#define GYRO_SAMPLES_COUNT (2 ^ GYRO_SAMPLES_EXPONENT) +#define IMU_VALUES_COUNT 6 +#define IMU_BUFFER_LENGTH (IMU_VALUES_COUNT * sizeof(int16_t)) -class GyroBuffer { - protected: - union { - int16_t values[GYRO_VALUES_COUNT]; - uint8_t raw[GYRO_BUFFER_LENGTH]; - } samples[GYRO_SAMPLES_COUNT]; +#define IMU_MAX_DEFAULT 30 +#define IMU_MAX_RANGE 60 +#define IMU_OFFSET_MIN -30 +#define IMU_OFFSET_MAX 10 - int32_t sums[GYRO_VALUES_COUNT]; +#define IMU_SAMPLES_EXPONENT 3 +#define IMU_SAMPLES_COUNT (2 ^ IMU_SAMPLES_EXPONENT) - uint8_t index; +class GyroBuffer +{ + protected: + union { + int16_t values[IMU_VALUES_COUNT]; + uint8_t raw[IMU_BUFFER_LENGTH]; + } samples[IMU_SAMPLES_COUNT]; - public: - int read(int32_t values[GYRO_VALUES_COUNT]); + int32_t sums[IMU_VALUES_COUNT]; + + uint8_t index; + + public: + int read(int32_t values[IMU_VALUES_COUNT]); }; -class Gyro { - protected: - GyroBuffer gyroBuffer; - uint8_t errors = 0; +class Gyro +{ + protected: + GyroBuffer gyroBuffer; + uint8_t errors = 0; - public: - int16_t outputs[2]; - void wakeup(); + public: + int16_t outputs[2]; - int16_t scaledX() - { - return limit(-RESX, (int)(outputs[0] - g_eeGeneral.gyroOffset * RESX/180) * (180 / (GYRO_MAX_DEFAULT + g_eeGeneral.gyroMax)), RESX); - } + void wakeup(); - int16_t scaledY() - { - return limit(-RESX, outputs[1] * (180 / (GYRO_MAX_DEFAULT + g_eeGeneral.gyroMax)), RESX); - } + int16_t scaledX(); + int16_t scaledY(); }; extern Gyro gyro; + +// Gyro driver +int gyroInit(); +int gyroRead(uint8_t buffer[IMU_BUFFER_LENGTH]); diff --git a/radio/src/lua/CMakeLists.txt b/radio/src/lua/CMakeLists.txt index 685778108..3a33faf3b 100644 --- a/radio/src/lua/CMakeLists.txt +++ b/radio/src/lua/CMakeLists.txt @@ -22,7 +22,7 @@ if(PYTHONINTERP_FOUND) add_lua_export_target(x7 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_X7) add_lua_export_target(x7access ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7ACCESS -DPCBX7 -DRADIO_X7ACCESS) add_lua_export_target(xlite ${LUA_INCLUDES} -DPCBTARANIS -DPCBXLITE) - add_lua_export_target(xlites ${LUA_INCLUDES} -DPCBTARANIS -DPCBXLITES -DPCBXLITE -DGYRO) + add_lua_export_target(xlites ${LUA_INCLUDES} -DPCBTARANIS -DPCBXLITES -DPCBXLITE -DIMU) add_lua_export_target(x9d ${LUA_INCLUDES} -DPCBTARANIS -DPCBX9D -DPCBX9) add_lua_export_target(x9d+2019 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX9D -DPCBX9 -DRADIO_X9DP2019) add_lua_export_target(x9e ${LUA_INCLUDES} -DPCBTARANIS -DPCBX9E -DPCBX9) diff --git a/radio/src/mixer.cpp b/radio/src/mixer.cpp index b5ec0af6c..074d7f88e 100644 --- a/radio/src/mixer.cpp +++ b/radio/src/mixer.cpp @@ -321,11 +321,11 @@ getvalue_t getValue(mixsrc_t i) return calibratedAnalogs[i - MIXSRC_Rud]; } -#if defined(GYRO) - else if (i == MIXSRC_GYRO1) { +#if defined(IMU) + else if (i == MIXSRC_TILT_X) { return gyro.scaledX(); } - else if (i == MIXSRC_GYRO2) { + else if (i == MIXSRC_TILT_Y) { return gyro.scaledY(); } #endif diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index d1f258c5d..6616ef082 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -536,9 +536,9 @@ bool inputsMoved() sum += anaIn(i) >> INAC_STICKS_SHIFT; for (uint8_t i=0; i> INAC_SWITCHES_SHIFT; -#if defined(GYRO) +#if defined(IMU) for (uint8_t i=0; i<2; i++) - sum += getValue(MIXSRC_GYRO1+i) >> INAC_STICKS_SHIFT; + sum += getValue(MIXSRC_TILT_X+i) >> INAC_STICKS_SHIFT; #endif if (abs((int8_t)(sum-inactivity.sum)) > 1) { diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 4a1aeabab..84bb2c9cf 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -54,10 +54,10 @@ #define CASE_VARIO(x) #endif -#if defined(GYRO) -#define CASE_GYRO(x) x, +#if defined(IMU) +#define CASE_IMU(x) x, #else -#define CASE_GYRO(x) +#define CASE_IMU(x) #endif #if defined(BACKLIGHT_GPIO) @@ -1167,7 +1167,7 @@ enum JackMode { }; #endif -#if defined(GYRO) +#if defined(IMU) #include "gyro.h" #endif diff --git a/radio/src/storage/conversions/yaml/dataconstants_220.h b/radio/src/storage/conversions/yaml/dataconstants_220.h index a520dd2d2..b776a73ae 100644 --- a/radio/src/storage/conversions/yaml/dataconstants_220.h +++ b/radio/src/storage/conversions/yaml/dataconstants_220.h @@ -746,7 +746,7 @@ enum MixSources { MIXSRC_MOUSE2, LUA_EXPORT("jsy", "Joystick Y") #endif -#if defined(GYRO) +#if defined(IMU) MIXSRC_GYRO1, LUA_EXPORT("gyrx", "Gyro X") MIXSRC_GYRO2, LUA_EXPORT("gyry", "Gyro Y") #endif diff --git a/radio/src/storage/yaml/yaml_datastructs_x10.cpp b/radio/src/storage/yaml/yaml_datastructs_x10.cpp index 471464ad5..6a246c030 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x10.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x10.cpp @@ -127,6 +127,8 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_RS, "RS" }, { MIXSRC_MOUSE1, "MOUSE1" }, { MIXSRC_MOUSE2, "MOUSE2" }, + { MIXSRC_TILT_X, "TILT_X" }, + { MIXSRC_TILT_Y, "TILT_Y" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_CYC1, "CYC1" }, { MIXSRC_CYC2, "CYC2" }, @@ -460,6 +462,8 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), YAML_PADDING( 6 ), + YAML_SIGNED( "imuMax", 8 ), + YAML_SIGNED( "imuOffset", 8 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp index aa4343d9a..22ee67bf1 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp @@ -125,6 +125,8 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_RS, "RS" }, { MIXSRC_MOUSE1, "MOUSE1" }, { MIXSRC_MOUSE2, "MOUSE2" }, + { MIXSRC_TILT_X, "TILT_X" }, + { MIXSRC_TILT_Y, "TILT_Y" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_CYC1, "CYC1" }, { MIXSRC_CYC2, "CYC2" }, @@ -458,6 +460,8 @@ static const struct YamlNode struct_RadioData[] = { YAML_STRING("ownerRegistrationID", 8), YAML_SIGNED( "uartSampleMode", 2 ), YAML_PADDING( 6 ), + YAML_SIGNED( "imuMax", 8 ), + YAML_SIGNED( "imuOffset", 8 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp index aa8466ef7..856a541f4 100644 --- a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp @@ -108,8 +108,8 @@ const struct YamlIdStr enum_MixSources[] = { { MIXSRC_Ail, "Ail" }, { MIXSRC_POT1, "POT1" }, { MIXSRC_POT2, "POT2" }, - { MIXSRC_GYRO1, "GYRO1" }, - { MIXSRC_GYRO2, "GYRO2" }, + { MIXSRC_TILT_X, "TILT_X" }, + { MIXSRC_TILT_Y, "TILT_Y" }, { MIXSRC_MAX, "MAX" }, { MIXSRC_CYC1, "CYC1" }, { MIXSRC_CYC2, "CYC2" }, @@ -400,10 +400,10 @@ static const struct YamlNode struct_RadioData[] = { YAML_PADDING( 8 ), YAML_STRING("bluetoothName", 10), YAML_STRING("ownerRegistrationID", 8), - YAML_SIGNED( "gyroMax", 8 ), - YAML_SIGNED( "gyroOffset", 8 ), YAML_SIGNED( "uartSampleMode", 2 ), YAML_PADDING( 6 ), + YAML_SIGNED( "imuMax", 8 ), + YAML_SIGNED( "imuOffset", 8 ), YAML_END }; static const struct YamlNode struct_unsigned_8[] = { diff --git a/radio/src/targets/common/arm/stm32/CMakeLists.txt b/radio/src/targets/common/arm/stm32/CMakeLists.txt index 26344ec91..e5ca4ea45 100644 --- a/radio/src/targets/common/arm/stm32/CMakeLists.txt +++ b/radio/src/targets/common/arm/stm32/CMakeLists.txt @@ -26,8 +26,7 @@ set(STM32USB_SRC STM32_USB_Device_Library/Core/src/usbd_req.c ) -set(FIRMWARE_TARGET_SRC - ${FIRMWARE_TARGET_SRC} +set(FIRMWARE_TARGET_SRC ${FIRMWARE_TARGET_SRC} ../common/arm/stm32/rtc_driver.cpp ../common/arm/stm32/delays_driver.cpp ../common/arm/stm32/usb_bsp.c @@ -41,6 +40,14 @@ set(FIRMWARE_TARGET_SRC ../common/arm/stm32/stm32_i2c_driver.cpp ) +if(IMU) + add_definitions(-DIMU) + set(FIRMWARE_SRC ${FIRMWARE_SRC} + targets/common/arm/stm32/lsm6ds_driver.cpp + ) + set(SRC ${SRC} gyro.cpp) +endif() + if(AUX_SERIAL OR AUX2_SERIAL) set(FIRMWARE_TARGET_SRC ${FIRMWARE_TARGET_SRC} ../common/arm/stm32/aux_serial_driver.cpp @@ -54,20 +61,17 @@ if(AUX_SERIAL OR AUX2_SERIAL) endif() if(DEBUG OR CLI OR USB_SERIAL) - set(STM32USB_SRC - ${STM32USB_SRC} + set(STM32USB_SRC ${STM32USB_SRC} STM32_USB_Device_Library/Class/cdc/src/usbd_cdc_core.c ) - set(FIRMWARE_TARGET_SRC - ${FIRMWARE_TARGET_SRC} + set(FIRMWARE_TARGET_SRC ${FIRMWARE_TARGET_SRC} ../common/arm/stm32/usbd_cdc.cpp ) add_definitions(-DUSB_SERIAL) message("-- Adding support for USB serial") endif() -set(STM32USB_SRC - ${STM32USB_SRC} +set(STM32USB_SRC ${STM32USB_SRC} STM32_USB_Device_Library/Class/msc/src/usbd_msc_data.c STM32_USB_Device_Library/Class/msc/src/usbd_msc_scsi.c STM32_USB_Device_Library/Class/msc/src/usbd_msc_bot.c @@ -75,37 +79,18 @@ set(STM32USB_SRC ) if(GVARS) - set(GUI_SRC - ${GUI_SRC} - ${GVAR_SCREEN} - ) + set(GUI_SRC ${GUI_SRC} ${GVAR_SCREEN}) endif() -set(FIRMWARE_SRC - ${FIRMWARE_SRC} - syscalls.c - ) +set(FIRMWARE_SRC ${FIRMWARE_SRC} syscalls.c) foreach(FILE ${STM32LIB_SRC}) - set(FIRMWARE_SRC - ${FIRMWARE_SRC} - ${STM32LIB_DIR}/${FILE} - ) + set(FIRMWARE_SRC ${FIRMWARE_SRC} ${STM32LIB_DIR}/${FILE}) endforeach() foreach(FILE ${STM32USB_SRC}) - set(FIRMWARE_SRC - ${FIRMWARE_SRC} - ${STM32USB_DIR}/${FILE} - ) + set(FIRMWARE_SRC ${FIRMWARE_SRC} ${STM32USB_DIR}/${FILE}) endforeach() -set(TARGET_SRC - ${TARGET_SRC} - ../common/arm/stm32/cpu_id.cpp - ) - -set(SRC - ${SRC} - io/bootloader_flash.cpp - ) +set(TARGET_SRC ${TARGET_SRC} ../common/arm/stm32/cpu_id.cpp) +set(SRC ${SRC} io/bootloader_flash.cpp) diff --git a/radio/src/targets/common/arm/stm32/lsm6ds_driver.cpp b/radio/src/targets/common/arm/stm32/lsm6ds_driver.cpp index aefdf5419..61f876d4e 100644 --- a/radio/src/targets/common/arm/stm32/lsm6ds_driver.cpp +++ b/radio/src/targets/common/arm/stm32/lsm6ds_driver.cpp @@ -19,8 +19,12 @@ * GNU General Public License for more details. */ -#include "opentx.h" +#include "stm32_i2c_driver.h" +#include "delays_driver.h" +#include "hal.h" +#include "gyro.h" +#include /* COMMON VALUES FOR ACCEL-GYRO SENSORS */ #define LSM6DS_WHO_AM_I 0x0f @@ -126,6 +130,10 @@ #define LSM6DS_GYRO_FS_500_GAIN 17500 #define LSM6DS_GYRO_FS_1000_GAIN 35000 #define LSM6DS_GYRO_FS_2000_GAIN 70000 + +#define LSM6DS_STATUS_REG_ADDR 0x1E +#define LSM6DS_OUT_TEMP_L_ADDR 0x20 +#define LSM6DS_OUT_TEMP_H_ADDR 0x21 #define LSM6DS_GYRO_OUT_X_L_ADDR 0x22 #define LSM6DS_GYRO_OUT_Y_L_ADDR 0x24 #define LSM6DS_GYRO_OUT_Z_L_ADDR 0x26 @@ -179,7 +187,6 @@ #define LSM6DS_RESET_ADDR 0x12 #define LSM6DS_RESET_MASK 0x01 -#define LSM6DS_ADDRESS 0xD6 #define LSM6DSLTR_ID 0x6A #define LSM6DS33TR_ID 0x69 @@ -192,170 +199,70 @@ static const char configure[][2] = { {LSM6DS_INT2_CTRL_ADDR, 0x3}, }; -static void i2c2Init() +#define I2C_TIMEOUT_MAX 10000 +#define I2C_LSM6DS_MAX_WRITE 32 + +static int I2C_LSM6DS_WriteRegister(uint8_t reg, uint8_t* data, uint8_t len) { - I2C_DeInit(I2C_B2); + uint8_t buffer[I2C_LSM6DS_MAX_WRITE]; - I2C_InitTypeDef I2C_InitStructure; - I2C_InitStructure.I2C_ClockSpeed = I2C_B2_SPEED; - I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2; - I2C_InitStructure.I2C_OwnAddress1 = 0x00; - I2C_InitStructure.I2C_Mode = I2C_Mode_I2C; - I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; - I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; - I2C_Init(I2C_B2, &I2C_InitStructure); - I2C_Cmd(I2C_B2, ENABLE); + if (len >= I2C_LSM6DS_MAX_WRITE - 1) return -1; - GPIO_PinAFConfig(I2C_B2_SCL_GPIO, I2C_B2_SCL_GPIO_PinSource, I2C_B2_GPIO_AF); - GPIO_PinAFConfig(I2C_B2_SDA_GPIO, I2C_B2_SDA_GPIO_PinSource, I2C_B2_GPIO_AF); - - GPIO_InitTypeDef GPIO_InitStructure; - GPIO_InitStructure.GPIO_Pin = I2C_B2_SCL_GPIO_PIN; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; - GPIO_Init(I2C_B2_SCL_GPIO, &GPIO_InitStructure); - - GPIO_InitStructure.GPIO_Pin = I2C_B2_SDA_GPIO_PIN; - GPIO_Init(I2C_B2_SDA_GPIO, &GPIO_InitStructure); + buffer[0] = reg; + memcpy(buffer + 1, data, len); + + return stm32_i2c_master_tx(IMU_I2C_BUS, IMU_I2C_ADDRESS, buffer, len + 1, 100); } -#define I2C_TIMEOUT_MAX 10000 -bool I2C2_WaitEvent(uint32_t event) +static int I2C_LSM6DS_WriteRegister(uint8_t reg, uint8_t value) { - uint32_t timeout = I2C_TIMEOUT_MAX; - while (!I2C_CheckEvent(I2C_B2, event)) { - if ((timeout--) == 0) return false; - } - return true; + return I2C_LSM6DS_WriteRegister(reg, &value, 1); } -bool I2C2_WaitEventCleared(uint32_t event) +static int I2C_LSM6DS_ReadRegister(uint8_t reg, uint8_t* data, uint8_t len) { - uint32_t timeout = I2C_TIMEOUT_MAX; - while (I2C_CheckEvent(I2C_B2, event)) { - if ((timeout--) == 0) { - TRACE("I2C Timeout!"); - return false; - } - } - return true; + if (stm32_i2c_master_tx(IMU_I2C_BUS, IMU_I2C_ADDRESS, ®, 1, 10) < 0) + return -1; + + uint8_t value = 0; + if (stm32_i2c_master_rx(IMU_I2C_BUS, IMU_I2C_ADDRESS, data, len, 100) < 0) + return -1; + + return value; } -int setGyroRegister(uint8_t address, uint8_t value) +static int I2C_LSM6DS_ReadRegister(uint8_t reg) { - if (!I2C2_WaitEventCleared(I2C_FLAG_BUSY)) + uint8_t value = 0; + if (I2C_LSM6DS_ReadRegister(reg, &value, 1) < 0) return -1; - I2C_GenerateSTART(I2C_B2, ENABLE); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_MODE_SELECT)) - return -1; - - I2C_Send7bitAddress(I2C_B2, LSM6DS_ADDRESS, I2C_Direction_Transmitter); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) - return -1; - - I2C_SendData(I2C_B2, address); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTING)) - return -1; - - I2C_SendData(I2C_B2, value); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED)) - return -1; - - I2C_GenerateSTOP(I2C_B2, ENABLE); - - return 0; -} - -int readGyroRegister(uint8_t address) -{ - if (!I2C2_WaitEventCleared(I2C_FLAG_BUSY)) - return -1; - - I2C_GenerateSTART(I2C_B2, ENABLE); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_MODE_SELECT)) - return -1; - - I2C_Send7bitAddress(I2C_B2, LSM6DS_ADDRESS, I2C_Direction_Transmitter); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) - return -1; - - I2C_SendData(I2C_B2, address); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED)) - return -1; - - I2C_GenerateSTART(I2C_B2, ENABLE); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_MODE_SELECT)) - return -1; - - I2C_Send7bitAddress(I2C_B2, LSM6DS_ADDRESS, I2C_Direction_Receiver); - - I2C_AcknowledgeConfig(I2C_B2, DISABLE); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_BYTE_RECEIVED)) - return -1; - - uint8_t value = I2C_ReceiveData(I2C_B2); - - I2C_GenerateSTOP(I2C_B2, ENABLE); - return value; } int gyroInit() { - i2c2Init(); - - uint8_t id = readGyroRegister(LSM6DS_WHO_AM_I); - if (id != LSM6DSLTR_ID && id != LSM6DS33TR_ID) { // LSM6DS33TR works with LSM6DSLTR code for our use + if (stm32_i2c_init(IMU_I2C_BUS, IMU_I2C_CLK_RATE) < 0) return -1; - } - setGyroRegister(0x12, 0x05); + // LSM6DS33TR works with LSM6DSLTR code for our use + uint8_t id = I2C_LSM6DS_ReadRegister(LSM6DS_WHO_AM_I); + if (id != LSM6DSLTR_ID && id != LSM6DS33TR_ID) + return -1; + + I2C_LSM6DS_WriteRegister(0x12, 0x05); delay_ms(1); - setGyroRegister(0x12, 0x04); + I2C_LSM6DS_WriteRegister(0x12, 0x04); delay_ms(1); for (uint8_t i = 0; i < DIM(configure); i++) { - setGyroRegister(configure[i][0], configure[i][1]); + I2C_LSM6DS_WriteRegister(configure[i][0], configure[i][1]); } return 0; } -int gyroRead(uint8_t buffer[GYRO_BUFFER_LENGTH]) +int gyroRead(uint8_t buffer[IMU_BUFFER_LENGTH]) { - if (!I2C2_WaitEventCleared(I2C_FLAG_BUSY)) - return -1; - - I2C_GenerateSTART(I2C_B2, ENABLE); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_MODE_SELECT)) - return -1; - - I2C_Send7bitAddress(I2C_B2, LSM6DS_ADDRESS, I2C_Direction_Transmitter); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) - return -1; - - I2C_SendData(I2C_B2, LSM6DS_GYRO_OUT_X_L_ADDR); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED)) - return -1; - - I2C_GenerateSTART(I2C_B2, ENABLE); - if (!I2C2_WaitEvent(I2C_EVENT_MASTER_MODE_SELECT)) - return -1; - - I2C_Send7bitAddress(I2C_B2, LSM6DS_ADDRESS, I2C_Direction_Receiver); - - I2C_AcknowledgeConfig(I2C_B2, ENABLE); - for (uint8_t i=0; i 8192 && magn < 32768) { + + if (az < 0) az = -az; + + float rollAcc = atan2f((float)ay,(float)az) * 57.3 /* 180/PI */; + float pitchAcc = atan2f((float)ax,(float)az) * 57.3 /* 180/PI */; + + roll = roll * ALPHA + rollAcc * (1.0-ALPHA); + pitch = pitch * ALPHA + pitchAcc * (1.0-ALPHA); + } +} diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index db7576fef..2dad9fe67 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -387,7 +387,7 @@ elseif(PCB STREQUAL XLITES) set(STATUS_LEDS YES) set(PXX2 ON) set(BLUETOOTH YES) - set(GYRO YES) + set(IMU YES) add_definitions(-DMANUFACTURER_FRSKY) endif() @@ -395,18 +395,6 @@ if(NOT PCB STREQUAL PCBXLITE) add_definitions(-DHARDWARE_TRAINER_JACK) endif() -if(GYRO) - add_definitions(-DGYRO) - set(FIRMWARE_SRC - ${FIRMWARE_SRC} - targets/common/arm/stm32/lsm6ds_driver.cpp - ) - set(SRC - ${SRC} - gyro.cpp - ) -endif() - if(INTERNAL_MODULE_SERIAL) if("${PCBREV}" STREQUAL 2019 OR "${PCBREV}" STREQUAL ACCESS) diff --git a/radio/src/targets/taranis/board.cpp b/radio/src/targets/taranis/board.cpp index 8159c9b0b..0b1395f84 100644 --- a/radio/src/targets/taranis/board.cpp +++ b/radio/src/targets/taranis/board.cpp @@ -115,7 +115,6 @@ void boardInit() TRAINER_RCC_AHB1Periph | TRAINER_MODULE_RCC_AHB1Periph | BT_RCC_AHB1Periph | - I2C_B2_RCC_AHB1Periph | USB_CHARGER_RCC_AHB1Periph, ENABLE); @@ -134,8 +133,7 @@ void boardInit() INTMODULE_RCC_APB1Periph | TRAINER_MODULE_RCC_APB1Periph | MIXER_SCHEDULER_TIMER_RCC_APB1Periph | - BT_RCC_APB1Periph | - I2C_B2_RCC_APB1Periph, + BT_RCC_APB1Periph, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG | @@ -281,10 +279,6 @@ void boardInit() initHeadphoneTrainerSwitch(); -#if defined(GYRO) - gyroInit(); -#endif - #if defined(RTCLOCK) && !defined(COPROCESSOR) rtcInit(); // RTC must be initialized before rambackupRestore() is called #endif diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index 0964c81dc..3a4128eb1 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -973,16 +973,6 @@ extern Fifo telemetryFifo; #define INTMODULE_FIFO_SIZE 128 -// Gyro driver -#define GYRO_VALUES_COUNT 6 -#define GYRO_BUFFER_LENGTH (GYRO_VALUES_COUNT * sizeof(int16_t)) -int gyroInit(); -int gyroRead(uint8_t buffer[GYRO_BUFFER_LENGTH]); -#define GYRO_MAX_DEFAULT 30 -#define GYRO_MAX_RANGE 60 -#define GYRO_OFFSET_MIN -30 -#define GYRO_OFFSET_MAX 10 - #if defined (RADIO_TX12) #define BATTERY_DIVIDER 22830 #elif defined (RADIO_T8) diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 354ef96d0..5691a8058 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -2154,8 +2154,6 @@ // Second I2C Bus: IMU #if defined(PCBXLITES) - #define I2C_B2_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC) - #define I2C_B2_RCC_APB1Periph RCC_APB1Periph_I2C3 #define I2C_B2 I2C3 #define I2C_B2_SCL_GPIO GPIOA #define I2C_B2_SCL_GPIO_PIN LL_GPIO_PIN_8 // PA.08 @@ -2163,9 +2161,10 @@ #define I2C_B2_SDA_GPIO_PIN LL_GPIO_PIN_9 // PC.09 #define I2C_B2_GPIO_AF LL_GPIO_AF_4 #define I2C_B2_SPEED 400000 -#else - #define I2C_B2_RCC_AHB1Periph 0 - #define I2C_B2_RCC_APB1Periph 0 + + #define IMU_I2C_BUS I2C_Bus_2 + #define IMU_I2C_ADDRESS 0x6B + #define IMU_I2C_CLK_RATE I2C_B2_SPEED #endif // SD - SPI2 diff --git a/radio/src/tasks.cpp b/radio/src/tasks.cpp index a7c74a8dd..4e0134fb6 100644 --- a/radio/src/tasks.cpp +++ b/radio/src/tasks.cpp @@ -93,7 +93,7 @@ void execMixerFrequentActions() processSbusInput(); #endif -#if defined(GYRO) +#if defined(IMU) gyro.wakeup(); #endif @@ -197,6 +197,10 @@ TASK_FUNCTION(menusTask) #if defined(HARDWARE_TOUCH) && !defined(PCBFLYSKY) && !defined(SIMU) touchPanelInit(); #endif + +#if defined(IMU) + gyroInit(); +#endif opentxInit(); diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index ff406244a..0a4fd9376 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -388,7 +388,7 @@ const char STR_UPDATE_RX_OPTIONS[] = TR_UPDATE_RX_OPTIONS; const char STR_UPDATE_TX_OPTIONS[] = TR_UPDATE_TX_OPTIONS; const char STR_MENU_MODULES_RX_VERSION[] = TR_MENU_MODULES_RX_VERSION; const char STR_MENU_FIRM_OPTIONS[] = TR_MENU_FIRM_OPTIONS; -const char STR_GYRO[] = TR_GYRO; +const char STR_IMU[] = TR_IMU; const char STR_STICKS_POTS_SLIDERS[] = TR_STICKS_POTS_SLIDERS; const char STR_PWM_STICKS_POTS_SLIDERS[] = TR_PWM_STICKS_POTS_SLIDERS; const char STR_RF_PROTOCOL[] = TR_RF_PROTOCOL; @@ -826,9 +826,9 @@ const char STR_BEEP_PITCH[] = TR_BEEP_PITCH; #if defined(HAPTIC) const char STR_HAPTIC_LABEL[] = TR_HAPTIC_LABEL; const char STR_STRENGTH[] = TR_STRENGTH; -const char STR_GYRO_LABEL[] = TR_GYRO_LABEL; -const char STR_GYRO_OFFSET[] = TR_GYRO_OFFSET; -const char STR_GYRO_MAX[] = TR_GYRO_MAX; +const char STR_IMU_LABEL[] = TR_IMU_LABEL; +const char STR_IMU_OFFSET[] = TR_IMU_OFFSET; +const char STR_IMU_MAX[] = TR_IMU_MAX; #endif #if defined(PWM_BACKLIGHT) || defined(COLORLCD) diff --git a/radio/src/translations.h b/radio/src/translations.h index cfb982689..93d6a2f6a 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -300,9 +300,9 @@ extern const char STR_BEEP_LENGTH[]; extern const char STR_BEEP_PITCH[]; extern const char STR_HAPTIC_LABEL[]; extern const char STR_STRENGTH[]; -extern const char STR_GYRO_LABEL[]; -extern const char STR_GYRO_OFFSET[]; -extern const char STR_GYRO_MAX[]; +extern const char STR_IMU_LABEL[]; +extern const char STR_IMU_OFFSET[]; +extern const char STR_IMU_MAX[]; extern const char STR_CONTRAST[]; extern const char STR_ALARMS_LABEL[]; extern const char STR_BATTERY_RANGE[]; @@ -580,7 +580,7 @@ extern const char STR_UPDATE_RX_OPTIONS[]; extern const char STR_UPDATE_TX_OPTIONS[]; extern const char STR_MENU_MODULES_RX_VERSION[]; extern const char STR_MENU_FIRM_OPTIONS[]; -extern const char STR_GYRO[]; +extern const char STR_IMU[]; extern const char STR_STICKS_POTS_SLIDERS[]; extern const char STR_PWM_STICKS_POTS_SLIDERS[]; extern const char STR_RF_PROTOCOL[]; diff --git a/radio/src/translations/cn.h b/radio/src/translations/cn.h index ebc5d06b4..bfa52ca9b 100644 --- a/radio/src/translations/cn.h +++ b/radio/src/translations/cn.h @@ -196,10 +196,10 @@ #define TR_ON_ONE_SWITCHES "ON","One" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY", +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -225,7 +225,6 @@ #define TR_VFORMULAS "加","平均值","最小值","最大值","乘","总计值","单节电池","消耗量","距离" #define TR_VPREC "0.--","0.0-","0.00" #define TR_VCELLINDEX "最低值","1","2","3","4","5","6","最高值","差值" -#define TR_GYROS "GyrX","GyrY" #define TR_TEXT_SIZE "标准","小","较小","中等","双倍" #define TR_SUBTRIMMODES STR_CHAR_DELTA "(中点)", "=(整体)" @@ -335,9 +334,9 @@ #define TR_BEEP_PITCH "提示音音调" #define TR_HAPTIC_LABEL "振动" #define TR_STRENGTH "强度" -#define TR_GYRO_LABEL "陀螺仪" -#define TR_GYRO_OFFSET "补偿" -#define TR_GYRO_MAX "最大值" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "补偿" +#define TR_IMU_MAX "最大值" #define TR_CONTRAST "对比度" #define TR_ALARMS_LABEL "警告" #define TR_BATTERY_RANGE TR("Batt. range", "电压测量范围") @@ -575,7 +574,7 @@ #define TR_MODULES_RX_VERSION "模块/接收机版本" #define TR_MENU_MODULES_RX_VERSION "模块/接收机版本" #define TR_MENU_FIRM_OPTIONS "固件选项" -#define TR_GYRO "陀螺仪" +#define TR_IMU "陀螺仪" #define TR_STICKS_POTS_SLIDERS "摇杆/旋钮/滑块" #define TR_PWM_STICKS_POTS_SLIDERS "PWM 摇杆/旋钮/滑块" #define TR_RF_PROTOCOL "射频协议" diff --git a/radio/src/translations/cz.h b/radio/src/translations/cz.h index dc3ea81eb..711fe9012 100644 --- a/radio/src/translations/cz.h +++ b/radio/src/translations/cz.h @@ -235,10 +235,10 @@ #define TR_ON_ONE_SWITCHES "ZAP","One" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY" +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -264,7 +264,6 @@ #define TR_VFORMULAS "Součet","Průměr","Min","Max","Násobení","Totalize","Článek","Spotřeba","Vzdálenost" #define TR_VPREC "X","X.X","X.XX" #define TR_VCELLINDEX "Nízký","1","2","3","4","5","6","Nejvíce","Delta" -#define TR_GYROS "GyrX","GyrY" #define TR_SUBTRIMMODES STR_CHAR_DELTA"(center only)","= (symetrical)" // ZERO TERMINATED STRINGS @@ -395,9 +394,9 @@ #define TR_BEEP_PITCH "Tón" #define TR_HAPTIC_LABEL "Vibrace" #define TR_STRENGTH "Síla" -#define TR_GYRO_LABEL "Gyro" -#define TR_GYRO_OFFSET "Offset" -#define TR_GYRO_MAX "Max" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "Offset" +#define TR_IMU_MAX "Max" #define TR_CONTRAST "Kontrast LCD" #define TR_ALARMS_LABEL "Alarmy" #define TR_BATTERY_RANGE TR("Ukazatel bat.", "Ukazatel baterie") @@ -640,7 +639,7 @@ #define TR_MODULES_RX_VERSION "Verze modulu a RX" #define TR_MENU_MODULES_RX_VERSION "VERZE MODULU A RX" #define TR_MENU_FIRM_OPTIONS "FIRMWARE OPTIONS" -#define TR_GYRO "Gyro" +#define TR_IMU "IMU" #define TR_STICKS_POTS_SLIDERS "páky/pot./slidery" #define TR_PWM_STICKS_POTS_SLIDERS "PWM páky/pot./slidery" #define TR_RF_PROTOCOL "RF Protokol" diff --git a/radio/src/translations/de.h b/radio/src/translations/de.h index 0ac49fc71..96c867a76 100644 --- a/radio/src/translations/de.h +++ b/radio/src/translations/de.h @@ -220,10 +220,10 @@ #define TR_ON_ONE_SWITCHES "ON","One" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY" +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -249,7 +249,6 @@ #define TR_VFORMULAS "Addieren","Mittelwert","Min","Max","Multiplizier","Gesamt","Zelle","Verbrauch","Distanz" #define TR_VPREC "0.--","0.0","0.00" #define TR_VCELLINDEX "Niedrigst","1. Zelle","2. Zelle","3. Zelle","4. Zelle","5. Zelle","6. Zelle","Höchster","Differenz" -#define TR_GYROS "GyrX","GyrY" #define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double" #define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)" @@ -381,9 +380,9 @@ #define TR_BEEP_PITCH "Beep-Freq +/-" #define TR_HAPTIC_LABEL "Haptik" #define TR_STRENGTH "Stärke" -#define TR_GYRO_LABEL "Gyro" -#define TR_GYRO_OFFSET "Offset" -#define TR_GYRO_MAX "Max" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "Offset" +#define TR_IMU_MAX "Max" #define TR_CONTRAST "LCD-Kontrast" #define TR_ALARMS_LABEL "Alarme" #define TR_BATTERY_RANGE TR("Akku Bereich", "Akku Spannungsbereich") // Symbol Akku Ladezustand @@ -622,7 +621,7 @@ #define TR_MODULES_RX_VERSION "Module / RX version" #define TR_MENU_MODULES_RX_VERSION "MODULE / RX VERSION" #define TR_MENU_FIRM_OPTIONS "FIRMWARE OPTIONEN" -#define TR_GYRO "Gyro" +#define TR_IMU "IMU" #define TR_STICKS_POTS_SLIDERS "Sticks/Pots/Sliders" #define TR_PWM_STICKS_POTS_SLIDERS "PWM Sticks/Pots/Sliders" #define TR_RF_PROTOCOL "RF Protocol" diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index a2ee68413..4966862e4 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -218,10 +218,10 @@ #define TR_ON_ONE_SWITCHES "ON","One" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY", +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -247,7 +247,6 @@ #define TR_VFORMULAS "Add","Average","Min","Max","Multiply","Totalize","Cell","Consumpt","Distance" #define TR_VPREC "0.--","0.0 ","0.00" #define TR_VCELLINDEX "Lowest","1","2","3","4","5","6","Highest","Delta" -#define TR_GYROS "GyrX","GyrY" #define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double" #define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symmetrical)" @@ -377,9 +376,9 @@ #define TR_BEEP_PITCH "Beep pitch" #define TR_HAPTIC_LABEL "Haptic" #define TR_STRENGTH "Strength" -#define TR_GYRO_LABEL "Gyro" -#define TR_GYRO_OFFSET "Offset" -#define TR_GYRO_MAX "Max" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "Offset" +#define TR_IMU_MAX "Max" #define TR_CONTRAST "Contrast" #define TR_ALARMS_LABEL "Alarms" #define TR_BATTERY_RANGE TR("Batt. range", "Battery meter range") @@ -624,7 +623,7 @@ #define TR_MODULES_RX_VERSION "Modules / RX version" #define TR_MENU_MODULES_RX_VERSION "MODULES / RX VERSION" #define TR_MENU_FIRM_OPTIONS "FIRMWARE OPTIONS" -#define TR_GYRO "Gyro" +#define TR_IMU "IMU" #define TR_STICKS_POTS_SLIDERS "Sticks/Pots/Sliders" #define TR_PWM_STICKS_POTS_SLIDERS "PWM Sticks/Pots/Sliders" #define TR_RF_PROTOCOL "RF Protocol" diff --git a/radio/src/translations/es.h b/radio/src/translations/es.h index 86ece725f..e4868299b 100644 --- a/radio/src/translations/es.h +++ b/radio/src/translations/es.h @@ -217,10 +217,10 @@ #define TR_ON_ONE_SWITCHES "ON","One" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY", +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -246,7 +246,6 @@ #define TR_VFORMULAS "Suma","Media","Min","Máx","Multipl.","Total","Cell","Consumo","Distancia" #define TR_VPREC "0.--","0.0 ","0.00" #define TR_VCELLINDEX "Menor","1","2","3","4","5","6","Mayor","Delta" -#define TR_GYROS "GyrX","GyrY" #define TR_TEXT_SIZE "Normal","Muy pequeño","Pequeño","Medio","Doble" #define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symetrical)" @@ -377,10 +376,10 @@ #define TR_BEEP_LENGTH "Duración Beep" #define TR_BEEP_PITCH "Tono" #define TR_HAPTIC_LABEL "Haptic" -#define TR_STRENGTH "Intensidad" -#define TR_GYRO_LABEL "Gyro" -#define TR_GYRO_OFFSET "Offset" -#define TR_GYRO_MAX "Máx" +#define TR_STRENGTH "Intensidad" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "Offset" +#define TR_IMU_MAX "Máx" #define TR_CONTRAST "Contraste" #define TR_ALARMS_LABEL "Alarmas" #define TR_BATTERY_RANGE TR("Rango batería", "Rango medidor batería") @@ -624,7 +623,7 @@ #define TR_MODULES_RX_VERSION "Módulos / versión RX" #define TR_MENU_MODULES_RX_VERSION "MÓDULOS / VERSIÓN RX" #define TR_MENU_FIRM_OPTIONS "OPCIONES FIRMWARE" -#define TR_GYRO "Gyro" +#define TR_IMU "IMU" #define TR_STICKS_POTS_SLIDERS "Sticks/Pots/Sliders" #define TR_PWM_STICKS_POTS_SLIDERS "PWM Sticks/Pots/Sliders" #define TR_RF_PROTOCOL "Protocolo RF" diff --git a/radio/src/translations/fi.h b/radio/src/translations/fi.h index 28b31e87b..99b563d6c 100644 --- a/radio/src/translations/fi.h +++ b/radio/src/translations/fi.h @@ -234,10 +234,10 @@ #define TR_ROTENC_SWITCHES #define TR_ON_ONE_SWITCHES "ON","One" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY" +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -263,7 +263,6 @@ #define TR_VFORMULAS "Add","Average","Min","Max","Multiply","Totalize","Cell","Kulutus","Etäisyys" #define TR_VPREC "0.--","0.0","0.00" #define TR_VCELLINDEX "Alin","1","2","3","4","5","6","Korkein","Ero" -#define TR_GYROS "GyrX","GyrY" #define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)" // ZERO TERMINATED STRINGS @@ -391,9 +390,9 @@ #define TR_BEEP_PITCH "Pitch" #define TR_HAPTIC_LABEL "Haptic" #define TR_STRENGTH "Strength" -#define TR_GYRO_LABEL "Gyro" -#define TR_GYRO_OFFSET "Offset" -#define TR_GYRO_MAX "Max" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "Offset" +#define TR_IMU_MAX "Max" #define TR_CONTRAST "Contrast" #define TR_ALARMS_LABEL "Alarms" #define TR_BATTERY_RANGE TR("Battery range","Battery meter range") @@ -636,7 +635,7 @@ #define TR_MODULES_RX_VERSION "Modules / RX version" #define TR_MENU_MODULES_RX_VERSION "MODULES / RX VERSION" #define TR_MENU_FIRM_OPTIONS "FIRMWARE OPTIONS" -#define TR_GYRO "Gyro" +#define TR_IMU "IMU" #define TR_STICKS_POTS_SLIDERS "Sticks/Pots/Sliders" #define TR_PWM_STICKS_POTS_SLIDERS "PWM Sticks/Pots/Sliders" #define TR_RF_PROTOCOL "RF Protocol" diff --git a/radio/src/translations/fr.h b/radio/src/translations/fr.h index 2f5290d1d..3f8e859b1 100644 --- a/radio/src/translations/fr.h +++ b/radio/src/translations/fr.h @@ -238,10 +238,10 @@ #define TR_ON_ONE_SWITCHES "ON","Un" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY", +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -267,7 +267,6 @@ #define TR_VFORMULAS "Addition","Moyenne","Min","Max","Multipl.","Totalise","Elément","Consomm.","Distance" #define TR_VPREC "0.--","0.0","0.00" #define TR_VCELLINDEX "Mini.","1","2","3","4","5","6","Maxi.","Diff." -#define TR_GYROS "GyrX","GyrY" #define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symetrical)" // ZERO TERMINATED STRINGS @@ -398,9 +397,9 @@ #define TR_BEEP_PITCH "Tonalité" #define TR_HAPTIC_LABEL "Vibreur" #define TR_STRENGTH "Force" -#define TR_GYRO_LABEL "Gyro" -#define TR_GYRO_OFFSET "Décalage" -#define TR_GYRO_MAX "Max" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "Décalage" +#define TR_IMU_MAX "Max" #define TR_CONTRAST "Contraste" #define TR_ALARMS_LABEL "Alarmes" #define TR_BATTERY_RANGE "Plage batterie" @@ -643,7 +642,7 @@ #define TR_MODULES_RX_VERSION "Versions modules / RX" #define TR_MENU_MODULES_RX_VERSION "VERSIONS MODULES / RX " #define TR_MENU_FIRM_OPTIONS "OPTIONS FIRMWARE" -#define TR_GYRO "Gyro" +#define TR_IMU "IMU" #define TR_STICKS_POTS_SLIDERS "Manches/Pots/leviers" #define TR_PWM_STICKS_POTS_SLIDERS "Manches PWM/Pots/leviers" #define TR_RF_PROTOCOL "Protocole RF" diff --git a/radio/src/translations/it.h b/radio/src/translations/it.h index 9deeae29f..4612ec579 100644 --- a/radio/src/translations/it.h +++ b/radio/src/translations/it.h @@ -222,10 +222,10 @@ #define TR_ON_ONE_SWITCHES "ON","One" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY", +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -251,7 +251,6 @@ #define TR_VFORMULAS "Somma","Media","Min","Max","Moltipl","Totalizza","Cella","Consumo","Distanza" #define TR_VPREC "0.--","0.0 ","0.00" #define TR_VCELLINDEX "Minore","1","2","3","4","5","6","Maggiore","Delta" -#define TR_GYROS "GyrX","GyrY" #define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double" #define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)" @@ -375,17 +374,17 @@ #define TR_BAR "Barra" #define TR_ALARM TR( "Allar.", "Allarme") #define TR_USRDATA "Dati" -#define TR_BLADES "Pale" +#define TR_BLADES "Pale" #define TR_SCREEN "Schermo\001" #define TR_SOUND_LABEL "Suono" -#define TR_LENGTH "Durata" +#define TR_LENGTH "Durata" #define TR_BEEP_LENGTH "Lung. Beep" -#define TR_BEEP_PITCH "Tono" +#define TR_BEEP_PITCH "Tono" #define TR_HAPTIC_LABEL "Vibrazione" -#define TR_STRENGTH "Forza" -#define TR_GYRO_LABEL "Gyro" -#define TR_GYRO_OFFSET "Offset" -#define TR_GYRO_MAX "Max" +#define TR_STRENGTH "Forza" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "Offset" +#define TR_IMU_MAX "Max" #define TR_CONTRAST "Contrasto" #define TR_ALARMS_LABEL "Allarmi" #define TR_BATTERY_RANGE TR("Int. Batt.", "Intervallo batteria") @@ -624,7 +623,7 @@ #define TR_MODULES_RX_VERSION "Versioni Moduli / RX" #define TR_MENU_MODULES_RX_VERSION "VERSIONI MODULI / RX" #define TR_MENU_FIRM_OPTIONS "OPZIONI FIRMWARE" -#define TR_GYRO "Gyro" +#define TR_IMU "IMU" #define TR_STICKS_POTS_SLIDERS "Interruttori/Pots/Sliders" #define TR_PWM_STICKS_POTS_SLIDERS "PWM Interruttori/Pots/Sliders" #define TR_RF_PROTOCOL "Protocollo RF" diff --git a/radio/src/translations/nl.h b/radio/src/translations/nl.h index 8c6d51a1a..a851bbaee 100644 --- a/radio/src/translations/nl.h +++ b/radio/src/translations/nl.h @@ -221,10 +221,10 @@ #define TR_ON_ONE_SWITCHES "ON","One" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY", +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -382,9 +382,9 @@ #define TR_BEEP_PITCH "Piep-Freq. +/-" #define TR_HAPTIC_LABEL "Haptic" #define TR_STRENGTH "Sterkte" -#define TR_GYRO_LABEL "Gyro" -#define TR_GYRO_OFFSET "Offset" -#define TR_GYRO_MAX "Max" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "Offset" +#define TR_IMU_MAX "Max" #define TR_CONTRAST "LCD-Kontrast" #define TR_ALARMS_LABEL "Alarm" #define TR_BATTERY_RANGE TR("Accu Bereik", "Accu Spngs-Bereik") // Symbol Akku Ladezustand @@ -629,7 +629,7 @@ #define TR_MODULES_RX_VERSION "Modules / RX version" #define TR_MENU_MODULES_RX_VERSION "MODULES / RX VERSION" #define TR_MENU_FIRM_OPTIONS "FIRMWARE OPTIONS" -#define TR_GYRO "Gyro" +#define TR_IMU "IMU" #define TR_STICKS_POTS_SLIDERS "Sticks/Pots/Sliders" #define TR_PWM_STICKS_POTS_SLIDERS "PWM Sticks/Pots/Sliders" #define TR_RF_PROTOCOL "RF Protocol" diff --git a/radio/src/translations/pl.h b/radio/src/translations/pl.h index 64862ebcf..03a72cb52 100644 --- a/radio/src/translations/pl.h +++ b/radio/src/translations/pl.h @@ -217,10 +217,10 @@ #define TR_ON_ONE_SWITCHES "ON","One" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY", +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -246,7 +246,6 @@ #define TR_VFORMULAS "Dodaj","Średnie","Min","Max","Mnóż","Zliczani","Komórka","Zużycie","Zasięg" #define TR_VPREC "0.--","0.0 ","0.00" #define TR_VCELLINDEX "Niskie","1","2","3","4","5","6","Wysokie","Delta" -#define TR_GYROS "GyrX","GyrY" #define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double" #define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)","= (symetrical)" @@ -375,12 +374,12 @@ #define TR_SOUND_LABEL "Dźwięk" #define TR_LENGTH "Długość" #define TR_BEEP_LENGTH "Dług. Beepa" -#define TR_BEEP_PITCH "Dźwięk" +#define TR_BEEP_PITCH "Dźwięk" #define TR_HAPTIC_LABEL "Wibracja" -#define TR_STRENGTH "Siła" -#define TR_GYRO_LABEL "Gyro" -#define TR_GYRO_OFFSET "Offset" -#define TR_GYRO_MAX "Max" +#define TR_STRENGTH "Siła" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "Offset" +#define TR_IMU_MAX "Max" #define TR_CONTRAST "Kontrast" #define TR_ALARMS_LABEL "Alarmy" #define TR_BATTERY_RANGE TR("PokażPasBat.", "Pokaż pasek bateri") @@ -620,7 +619,7 @@ #define TR_MODULES_RX_VERSION "Modules / RX version" #define TR_MENU_MODULES_RX_VERSION "MODULES / RX VERSION" #define TR_MENU_FIRM_OPTIONS "FIRMWARE OPTIONS" -#define TR_GYRO "Gyro" +#define TR_IMU "IMU" #define TR_STICKS_POTS_SLIDERS "Sticks/Pots/Sliders" #define TR_PWM_STICKS_POTS_SLIDERS "PWM Sticks/Pots/Sliders" #define TR_RF_PROTOCOL "RF Protocol" diff --git a/radio/src/translations/pt.h b/radio/src/translations/pt.h index d3de990d2..bfde8381d 100644 --- a/radio/src/translations/pt.h +++ b/radio/src/translations/pt.h @@ -214,10 +214,10 @@ #define TR_ON_ONE_SWITCHES "ON","One" -#if defined(GYRO) - #define TR_GYR_VSRCRAW ,"GyrX","GyrY" +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -243,7 +243,6 @@ #define TR_VFORMULAS "Add","Average","Min","Max","Multiply","Totalize","Cell","Consumpt","Distance" #define TR_VPREC "0.--","0.0 ","0.00" #define TR_VCELLINDEX "Lowest","1","2","3","4","5","6","Highest","Delta" -#define TR_GYROS "GyrX","GyrY" #define TR_TEXT_SIZE "Standard","Tiny","Small","Mid","Double" #define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)","= (symetrical)" @@ -376,12 +375,12 @@ #define TR_SOUND_LABEL "Som" #define TR_LENGTH "Comprimento" #define TR_BEEP_LENGTH "Beep Length" -#define TR_BEEP_PITCH "Pitch" +#define TR_BEEP_PITCH "Pitch" #define TR_HAPTIC_LABEL "Vibrar" -#define TR_STRENGTH "Forca" -#define TR_GYRO_LABEL "Gyro" -#define TR_GYRO_OFFSET "Offset" -#define TR_GYRO_MAX "Max" +#define TR_STRENGTH "Forca" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "Offset" +#define TR_IMU_MAX "Max" #define TR_CONTRAST "Contraste" #define TR_ALARMS_LABEL "Alarmes" #define TR_BATTERY_RANGE "Battery Range" @@ -625,7 +624,7 @@ #define TR_MODULES_RX_VERSION "Modules / RX version" #define TR_MENU_MODULES_RX_VERSION "MODULES / RX VERSION" #define TR_MENU_FIRM_OPTIONS "FIRMWARE OPTIONS" -#define TR_GYRO "Gyro" +#define TR_IMU "IMU" #define TR_STICKS_POTS_SLIDERS "Sticks/Pots/Sliders" #define TR_PWM_STICKS_POTS_SLIDERS "PWM Sticks/Pots/Sliders" #define TR_RF_PROTOCOL "RF Protocol" diff --git a/radio/src/translations/se.h b/radio/src/translations/se.h index d33b35e9f..a609e5e9a 100644 --- a/radio/src/translations/se.h +++ b/radio/src/translations/se.h @@ -243,10 +243,10 @@ #define TR_ON_ONE_SWITCHES "PÅ","Ett" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY" +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) diff --git a/radio/src/translations/tw.h b/radio/src/translations/tw.h index 07b7a05d9..601929380 100644 --- a/radio/src/translations/tw.h +++ b/radio/src/translations/tw.h @@ -196,10 +196,10 @@ #define TR_ON_ONE_SWITCHES "ON","One" -#if defined(GYRO) - #define TR_GYR_VSRCRAW "GyrX","GyrY", +#if defined(IMU) + #define TR_IMU_VSRCRAW "TltX","TltY", #else - #define TR_GYR_VSRCRAW + #define TR_IMU_VSRCRAW #endif #if defined(HELI) @@ -225,7 +225,6 @@ #define TR_VFORMULAS "加","平均值","最小值","最大值","乘","總計值","單節電池","消耗量","距離" #define TR_VPREC "0.--","0.0-","0.00" #define TR_VCELLINDEX "最低值","1","2","3","4","5","6","最高值","差值" -#define TR_GYROS "GyrX","GyrY" #define TR_TEXT_SIZE "標準","小","較小","中等","雙倍" #define TR_SUBTRIMMODES STR_CHAR_DELTA "(中点)","=(整體)" @@ -335,9 +334,9 @@ #define TR_BEEP_PITCH "提示音音調" #define TR_HAPTIC_LABEL "振動" #define TR_STRENGTH "強度" -#define TR_GYRO_LABEL "陀螺儀" -#define TR_GYRO_OFFSET "補償" -#define TR_GYRO_MAX "最大值" +#define TR_IMU_LABEL "IMU" +#define TR_IMU_OFFSET "補償" +#define TR_IMU_MAX "最大值" #define TR_CONTRAST "對比度" #define TR_ALARMS_LABEL "警告" #define TR_BATTERY_RANGE TR("Batt. range", "電壓測量範圍") @@ -575,7 +574,7 @@ #define TR_MODULES_RX_VERSION "模塊/接收機版本" #define TR_MENU_MODULES_RX_VERSION "模塊/接收機版本" #define TR_MENU_FIRM_OPTIONS "韌體選項" -#define TR_GYRO "陀螺儀" +#define TR_IMU "陀螺儀" #define TR_STICKS_POTS_SLIDERS "搖桿/旋鈕/滑塊" #define TR_PWM_STICKS_POTS_SLIDERS "PWM 搖桿/旋鈕/滑塊" #define TR_RF_PROTOCOL "射頻協議" diff --git a/radio/src/translations/untranslated.h b/radio/src/translations/untranslated.h index f257cfb70..bd12bcdea 100644 --- a/radio/src/translations/untranslated.h +++ b/radio/src/translations/untranslated.h @@ -106,7 +106,7 @@ #define TR_VKEYS "Menu","Exit","Down","Up","Right","Left" #endif -#define TR_VSRCRAW "---", TR_STICKS_VSRCRAW, TR_POTS_VSRCRAW, TR_GYR_VSRCRAW "MAX", TR_CYC_VSRCRAW, TR_TRIMS_VSRCRAW, TR_SW_VSRCRAW, TR_EXTRA_VSRCRAW +#define TR_VSRCRAW "---", TR_STICKS_VSRCRAW, TR_POTS_VSRCRAW, TR_IMU_VSRCRAW "MAX", TR_CYC_VSRCRAW, TR_TRIMS_VSRCRAW, TR_SW_VSRCRAW, TR_EXTRA_VSRCRAW #define TR_CRSF_BAUDRATE "115k","400k","921k","1.87M","3.75M","5.25M"