From ed40181472f8dffec4b4b8b3ec866f70e2811a9b Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 22 Mar 2025 14:47:09 -0700 Subject: [PATCH] altos: Add 30V pyro log/telem options for telemega v7.0 We switched the pyro voltage dividers so that the max range increased from 15V to 30V. This means new log and telem formats. Signed-off-by: Keith Packard --- src/kernel/ao_log.h | 3 ++- src/kernel/ao_telemetry.c | 2 +- src/kernel/ao_telemetry.h | 3 ++- src/telemega-v0.1/ao_pins.h | 1 + src/telemega-v1.0/ao_pins.h | 1 + src/telemega-v2.0/ao_pins.h | 1 + src/telemega-v3.0/ao_pins.h | 1 + src/telemega-v4.0/ao_pins.h | 1 + src/telemega-v5.0/ao_pins.h | 1 + src/telemega-v6.0/ao_pins.h | 1 + src/telemega-v7.0-seeed/ao_pins.h | 3 ++- src/telemega-v7.0/ao_pins.h | 3 ++- 12 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/kernel/ao_log.h b/src/kernel/ao_log.h index b8aa6a8c..f905f62a 100644 --- a/src/kernel/ao_log.h +++ b/src/kernel/ao_log.h @@ -64,6 +64,7 @@ extern enum ao_flight_state ao_log_state; #define AO_LOG_FORMAT_TELEMEGA_6 22 /* 32 byte typed telemega records with 32 bit gyro cal, bmi088 and mmc5983 */ #define AO_LOG_FORMAT_EASYTIMER_2 23 /* 32 byte typed easytimer records with 32 bit gyro cal, bmi088 and mmc5983 */ #define AO_LOG_FORMAT_EASYMEGA_3 24 /* 32 byte typed telemega records with 32 bit gyro cal, bmi088 and mmc5983 */ +#define AO_LOG_FORMAT_TELEMEGA_7 25 /* 32 byte typed telemega records with 32 bit gyro cal, bmi088 and mmc5983, 30V max pyro */ #define AO_LOG_FORMAT_NONE 127 /* No log at all */ /* Return the flight number from the given log slot, 0 if none, -slot on failure */ @@ -593,7 +594,7 @@ struct ao_log_timer { } u; }; -#if AO_LOG_FORMAT == AO_LOG_FOMAT_TELEMEGA_OLD || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_3 || AO_LOG_FORMAT == AO_LOG_FORMAT_EASYMEGA_2 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_4 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_5 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_6 || AO_LOG_FORMAT == AO_LOG_FORMAT_EASYMEGA_3 +#if AO_LOG_FORMAT == AO_LOG_FOMAT_TELEMEGA_OLD || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_3 || AO_LOG_FORMAT == AO_LOG_FORMAT_EASYMEGA_2 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_4 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_5 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_6 || AO_LOG_FORMAT == AO_LOG_FORMAT_EASYMEGA_3 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_7 typedef struct ao_log_mega ao_log_type; #endif diff --git a/src/kernel/ao_telemetry.c b/src/kernel/ao_telemetry.c index 8586efd5..1e082833 100644 --- a/src/kernel/ao_telemetry.c +++ b/src/kernel/ao_telemetry.c @@ -142,7 +142,7 @@ ao_send_mega_sensor(void) #if AO_LOG_NORMALIZED #if AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_5 telemetry.generic.type = AO_TELEMETRY_MEGA_NORM_MPU6000_MMC5983; -#elif AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_6 +#elif AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_6 || AO_LOG_FORMAT == AO_LOG_FORMAT_TELEMEGA_7 telemetry.generic.type = AO_TELEMETRY_MEGA_NORM_BMI088_MMC5983; #else #error unknown normalized log type diff --git a/src/kernel/ao_telemetry.h b/src/kernel/ao_telemetry.h index 983a99b8..3f5f270b 100644 --- a/src/kernel/ao_telemetry.h +++ b/src/kernel/ao_telemetry.h @@ -204,7 +204,8 @@ struct ao_telemetry_mega_sensor { /* 32 */ }; -#define AO_TELEMETRY_MEGA_DATA 0x09 +#define AO_TELEMETRY_MEGA_DATA_15V 0x09 /* 100k / 27k */ +#define AO_TELEMETRY_MEGA_DATA_30V 0x15 /* 100k / 12k */ struct ao_telemetry_mega_data { uint16_t serial; /* 0 */ diff --git a/src/telemega-v0.1/ao_pins.h b/src/telemega-v0.1/ao_pins.h index c16b33a0..f702ca18 100644 --- a/src/telemega-v0.1/ao_pins.h +++ b/src/telemega-v0.1/ao_pins.h @@ -69,6 +69,7 @@ #define LOG_ERASE_MARK 0x55 #define LOG_MAX_ERASE 128 #define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMEGA +#define AO_TELEMETRY_MEGA_DATA AO_TELEMETRY_MEGA_DATA_15V #define HAS_EEPROM 1 #define USE_INTERNAL_FLASH 0 diff --git a/src/telemega-v1.0/ao_pins.h b/src/telemega-v1.0/ao_pins.h index ce258471..833fd90e 100644 --- a/src/telemega-v1.0/ao_pins.h +++ b/src/telemega-v1.0/ao_pins.h @@ -69,6 +69,7 @@ #define LOG_ERASE_MARK 0x55 #define LOG_MAX_ERASE 128 #define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMEGA +#define AO_TELEMETRY_MEGA_DATA AO_TELEMETRY_MEGA_DATA_15V #define HAS_EEPROM 1 #define USE_INTERNAL_FLASH 0 diff --git a/src/telemega-v2.0/ao_pins.h b/src/telemega-v2.0/ao_pins.h index c8d365c6..6e0d1c80 100644 --- a/src/telemega-v2.0/ao_pins.h +++ b/src/telemega-v2.0/ao_pins.h @@ -69,6 +69,7 @@ #define LOG_ERASE_MARK 0x55 #define LOG_MAX_ERASE 128 #define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMEGA +#define AO_TELEMETRY_MEGA_DATA AO_TELEMETRY_MEGA_DATA_15V #define HAS_EEPROM 1 #define USE_INTERNAL_FLASH 0 diff --git a/src/telemega-v3.0/ao_pins.h b/src/telemega-v3.0/ao_pins.h index c68699e0..6d599112 100644 --- a/src/telemega-v3.0/ao_pins.h +++ b/src/telemega-v3.0/ao_pins.h @@ -69,6 +69,7 @@ #define LOG_ERASE_MARK 0x55 #define LOG_MAX_ERASE 128 #define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMEGA_3 +#define AO_TELEMETRY_MEGA_DATA AO_TELEMETRY_MEGA_DATA_15V #define HAS_EEPROM 1 #define USE_INTERNAL_FLASH 0 diff --git a/src/telemega-v4.0/ao_pins.h b/src/telemega-v4.0/ao_pins.h index 7fa6d835..47d53f28 100644 --- a/src/telemega-v4.0/ao_pins.h +++ b/src/telemega-v4.0/ao_pins.h @@ -69,6 +69,7 @@ #define LOG_ERASE_MARK 0x55 #define LOG_MAX_ERASE 128 #define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMEGA_4 +#define AO_TELEMETRY_MEGA_DATA AO_TELEMETRY_MEGA_DATA_15V #define HAS_EEPROM 1 #define USE_INTERNAL_FLASH 0 diff --git a/src/telemega-v5.0/ao_pins.h b/src/telemega-v5.0/ao_pins.h index 5901eeae..a38b8b1e 100644 --- a/src/telemega-v5.0/ao_pins.h +++ b/src/telemega-v5.0/ao_pins.h @@ -71,6 +71,7 @@ #define LOG_ERASE_MARK 0x55 #define LOG_MAX_ERASE 128 #define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMEGA_5 +#define AO_TELEMETRY_MEGA_DATA AO_TELEMETRY_MEGA_DATA_15V #define AO_LOG_NORMALIZED 1 #define HAS_EEPROM 1 diff --git a/src/telemega-v6.0/ao_pins.h b/src/telemega-v6.0/ao_pins.h index 8e9be45d..3a95be08 100644 --- a/src/telemega-v6.0/ao_pins.h +++ b/src/telemega-v6.0/ao_pins.h @@ -71,6 +71,7 @@ #define LOG_ERASE_MARK 0x55 #define LOG_MAX_ERASE 128 #define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMEGA_6 +#define AO_TELEMETRY_MEGA_DATA AO_TELEMETRY_MEGA_DATA_15V #define AO_LOG_NORMALIZED 1 #define HAS_EEPROM 1 diff --git a/src/telemega-v7.0-seeed/ao_pins.h b/src/telemega-v7.0-seeed/ao_pins.h index 3617c626..06fa08da 100644 --- a/src/telemega-v7.0-seeed/ao_pins.h +++ b/src/telemega-v7.0-seeed/ao_pins.h @@ -74,7 +74,8 @@ #define AO_CONFIG_MAX_SIZE 1024 #define LOG_ERASE_MARK 0x55 #define LOG_MAX_ERASE 128 -#define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMEGA_6 +#define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMEGA_7 +#define AO_TELEMETRY_MEGA_DATA AO_TELEMETRY_MEGA_DATA_30V #define AO_LOG_NORMALIZED 1 #define HAS_EEPROM 1 diff --git a/src/telemega-v7.0/ao_pins.h b/src/telemega-v7.0/ao_pins.h index 5a61c361..98442619 100644 --- a/src/telemega-v7.0/ao_pins.h +++ b/src/telemega-v7.0/ao_pins.h @@ -72,7 +72,8 @@ #define AO_CONFIG_MAX_SIZE 1024 #define LOG_ERASE_MARK 0x55 #define LOG_MAX_ERASE 128 -#define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMEGA_6 +#define AO_LOG_FORMAT AO_LOG_FORMAT_TELEMEGA_7 +#define AO_TELEMETRY_MEGA_DATA AO_TELEMETRY_MEGA_DATA_30V #define AO_LOG_NORMALIZED 1 #define HAS_EEPROM 1 -- 2.47.2