From: Bdale Garbee Date: Wed, 30 Aug 2023 16:46:42 +0000 (-0600) Subject: Merge branch 'master' into branch-1.9 X-Git-Tag: 1.9.17~1 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=63a8707ee4120148f6ec5cb073b349beefe377fa;hp=b071450f0cf70c2d10d78cc5ca48be1ec7b05c4d;p=fw%2Faltos Merge branch 'master' into branch-1.9 --- diff --git a/Releasing b/Releasing index 4c989616..042f2d68 100644 --- a/Releasing +++ b/Releasing @@ -72,8 +72,8 @@ These are Bdale's notes on how to do a release. like debian are already pulled git log > ChangeLog - git commit -a - git tag -a # full x.y.z version + git commit -a -m'update ChangeLog for release' + git tag -a -m'Releasing ' # full x.y.z version - make sure .git/gbp.conf set to use branch- as upstream diff --git a/altoslib/AltosConvert.java b/altoslib/AltosConvert.java index 88ee1ad1..ded4b365 100644 --- a/altoslib/AltosConvert.java +++ b/altoslib/AltosConvert.java @@ -317,6 +317,10 @@ public class AltosConvert { return easy_mini_2_adc(sensor) * supply * 127/27; } + static double easy_mini_3_voltage(int sensor) { + return easy_mini_1_voltage(sensor, 10000); + } + static double motor_pressure(double voltage) { double base = 0.5; double max = 4.5; diff --git a/altoslib/AltosIdleFetch.java b/altoslib/AltosIdleFetch.java index 7ab8395a..90f4f53e 100644 --- a/altoslib/AltosIdleFetch.java +++ b/altoslib/AltosIdleFetch.java @@ -53,6 +53,7 @@ class AltosIdler { static final int idle_sensor_tmini3 = 109; static final int idle_sensor_easytimer1 = 110; static final int idle_sensor_easymotor2 = 111; + static final int idle_sensor_emini3 = 112; public void provide_data(AltosDataListener listener, AltosLink link) throws InterruptedException, TimeoutException, AltosUnknownProduct { for (int idler : idlers) { @@ -111,6 +112,9 @@ class AltosIdler { case idle_sensor_emini2: AltosSensorEMini.provide_data(listener, link, 2); break; + case idle_sensor_emini3: + AltosSensorEMini.provide_data(listener, link, 3); + break; case idle_sensor_tmini2: AltosSensorTMini2.provide_data(listener, link); break; @@ -159,6 +163,10 @@ public class AltosIdleFetch implements AltosDataProvider { AltosIdler.idle_ms5607, AltosIdler.idle_sensor_emini2), + new AltosIdler("EasyMini-v3", + AltosIdler.idle_ms5607, + AltosIdler.idle_sensor_emini3), + new AltosIdler("TeleMini-v1", AltosIdler.idle_sensor_tm), diff --git a/altoslib/AltosSensorEMini.java b/altoslib/AltosSensorEMini.java index 67f3c8e6..33026c07 100644 --- a/altoslib/AltosSensorEMini.java +++ b/altoslib/AltosSensorEMini.java @@ -44,6 +44,11 @@ public class AltosSensorEMini { listener.set_apogee_voltage(AltosConvert.easy_mini_2_voltage(sensor_emini.apogee)); listener.set_main_voltage(AltosConvert.easy_mini_2_voltage(sensor_emini.main)); break; + case 3: + listener.set_battery_voltage(AltosConvert.easy_mini_3_voltage(sensor_emini.batt)); + listener.set_apogee_voltage(AltosConvert.easy_mini_3_voltage(sensor_emini.apogee)); + listener.set_main_voltage(AltosConvert.easy_mini_3_voltage(sensor_emini.main)); + break; } } catch (TimeoutException te) { diff --git a/altoslib/NewProduct b/altoslib/NewProduct index e502fdff..deb9fc3d 100644 --- a/altoslib/NewProduct +++ b/altoslib/NewProduct @@ -47,6 +47,10 @@ altoslib/ Adjust existing telemetry decoders for new sensors + 9. AltosConvert.java + + Add conversion functions for ADC values + altosuilib/ 1. AltosUSBDevice.java diff --git a/ao-bringup/test-telegps-v3 b/ao-bringup/test-telegps-v3 index 491e7e4f..03543838 100755 --- a/ao-bringup/test-telegps-v3 +++ b/ao-bringup/test-telegps-v3 @@ -42,7 +42,8 @@ ao-list | while read product serial dev; do exit 1 esac - echo "$PRODUCT-v$VERSION" serial "$serial" passed functional tests + echo "$PRODUCT-v$VERSION" serial "$serial" is ready to ship + echo "\007" ret=0 ;; *) diff --git a/ao-bringup/turnon_telegps b/ao-bringup/turnon_telegps index 7c16d361..45f8fcf5 100755 --- a/ao-bringup/turnon_telegps +++ b/ao-bringup/turnon_telegps @@ -74,7 +74,10 @@ case "$dev" in ;; esac -SERIAL=$SERIAL ./cal-freq $dev +CALFILE=cal-$SERIAL.txt +../ao-tools/ao-cal-freq/ao-cal-freq --output=$CALFILE --tty=$dev +CAL_VALUE=`cat $CALFILE` +echo $SERIAL","$CAL_VALUE >> cal_values ./test-telegps-v3 diff --git a/ao-tools/ao-test-igniter/ao-test-igniter.c b/ao-tools/ao-test-igniter/ao-test-igniter.c index 180defdb..16ff27f4 100644 --- a/ao-tools/ao-test-igniter/ao-test-igniter.c +++ b/ao-tools/ao-test-igniter/ao-test-igniter.c @@ -195,7 +195,7 @@ do_igniter(struct cc_usb *usb, char *name, double rplus, double rminus, int adc_ return 0; } } - if (strcmp(this->status, "ready") != 0) { + if (strcmp(this->status, "open") == 0) { printf("igniter %s status is %s\n", this->name, this->status); free_igniters(all); return 0; diff --git a/configure.ac b/configure.ac index c6f4376e..3cfbc64d 100644 --- a/configure.ac +++ b/configure.ac @@ -18,13 +18,13 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.57) -AC_INIT([altos], 1.9.16) +AC_INIT([altos], 1.9.17) ANDROID_VERSION=37 AC_CONFIG_SRCDIR([src/kernel/ao.h]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE -RELEASE_DATE=2023-04-27 +RELEASE_DATE=2023-08-30 AC_SUBST(RELEASE_DATE) DOC_DATE=`LC_ALL=C date -d $RELEASE_DATE +'%d %b %Y'` diff --git a/doc/Makefile.am b/doc/Makefile.am index 15465dc5..9a8a5f60 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -17,6 +17,7 @@ FAKETIME=TZ=UTC faketime -f '$(RELEASE_DATE) 00:00:00 i0' endif RELNOTES_INC=\ + release-notes-1.9.17.inc \ release-notes-1.9.16.inc \ release-notes-1.9.15.inc \ release-notes-1.9.14.inc \ diff --git a/doc/release-notes-1.9.17.inc b/doc/release-notes-1.9.17.inc new file mode 100644 index 00000000..3c315dbb --- /dev/null +++ b/doc/release-notes-1.9.17.inc @@ -0,0 +1,18 @@ += Release Notes for Version 1.9.17 +include::release-head.adoc[] +:doctype: article + + Version 1.9.17 + + == AltOS + + * Fix TeleMini v3 Monitor Idle support + + * Support TeleMetrum v4.0 with uBlox-10 GPS module + + * Improve igniter reporting via the beeper. + + == AltosUI & TeleGPS application + + * Add support for EasyMini v3 Monitor Idle + \ No newline at end of file diff --git a/doc/release-notes.inc b/doc/release-notes.inc index 15620000..786f29e3 100644 --- a/doc/release-notes.inc +++ b/doc/release-notes.inc @@ -1,5 +1,9 @@ [appendix] == Release Notes + :leveloffset: 2 + include::release-notes-1.9.17.adoc[] + + <<<< :leveloffset: 2 include::release-notes-1.9.16.adoc[] diff --git a/doc/specs.inc b/doc/specs.inc index fd641458..c00e1b3a 100644 --- a/doc/specs.inc +++ b/doc/specs.inc @@ -58,7 +58,7 @@ |TeleMetrum v4.0 |MS5607 30km (100k') |ADXL375 200g - |uBlox Max-8C + |uBlox Max-8C/10S |- |8MB |40mW diff --git a/map-server/altos-mapd/Makefile.am b/map-server/altos-mapd/Makefile.am index f92c3e5a..29ee65e8 100644 --- a/map-server/altos-mapd/Makefile.am +++ b/map-server/altos-mapd/Makefile.am @@ -26,7 +26,7 @@ defaultsdir=$(sysconfdir)/default defaults_DATA=altos-mapd-default -systemddir=$(libdir)/systemd/system +systemddir=$(bindir)/../lib/systemd/system systemd_DATA=altos-mapd.service diff --git a/src/easymega-v1.0/ao_pins.h b/src/easymega-v1.0/ao_pins.h index 7ebf5fd2..da010207 100644 --- a/src/easymega-v1.0/ao_pins.h +++ b/src/easymega-v1.0/ao_pins.h @@ -263,6 +263,12 @@ struct ao_adc { #define AO_BATTERY_DIV_PLUS 56 /* 5.6k */ #define AO_BATTERY_DIV_MINUS 100 /* 10k */ +/* + * Voltage divider on ADC pyro battery sampler + */ +#define AO_PYRO_BATTERY_DIV_PLUS 100 /* 100k */ +#define AO_PYRO_BATTERY_DIV_MINUS 27 /* 27k */ + /* * Voltage divider on ADC igniter samplers */ diff --git a/src/easymega-v2.0/ao_pins.h b/src/easymega-v2.0/ao_pins.h index a304d034..685b7126 100644 --- a/src/easymega-v2.0/ao_pins.h +++ b/src/easymega-v2.0/ao_pins.h @@ -258,6 +258,12 @@ struct ao_adc { #define AO_BATTERY_DIV_PLUS 56 /* 5.6k */ #define AO_BATTERY_DIV_MINUS 100 /* 10k */ +/* + * Voltage divider on ADC pyro battery sampler + */ +#define AO_PYRO_BATTERY_DIV_PLUS 100 /* 100k */ +#define AO_PYRO_BATTERY_DIV_MINUS 27 /* 27k */ + /* * Voltage divider on ADC igniter samplers */ diff --git a/src/easymega-v3.0/ao_pins.h b/src/easymega-v3.0/ao_pins.h index 2fa4fd01..79a2a59a 100644 --- a/src/easymega-v3.0/ao_pins.h +++ b/src/easymega-v3.0/ao_pins.h @@ -258,6 +258,12 @@ struct ao_adc { #define AO_BATTERY_DIV_PLUS 56 /* 5.6k */ #define AO_BATTERY_DIV_MINUS 100 /* 10k */ +/* + * Voltage divider on ADC pyro battery sampler + */ +#define AO_PYRO_BATTERY_DIV_PLUS 100 /* 100k */ +#define AO_PYRO_BATTERY_DIV_MINUS 27 /* 27k */ + /* * Voltage divider on ADC igniter samplers */ diff --git a/src/easymini-v2.0/ao_pins.h b/src/easymini-v2.0/ao_pins.h index da52c5fd..e6479e10 100644 --- a/src/easymini-v2.0/ao_pins.h +++ b/src/easymini-v2.0/ao_pins.h @@ -19,7 +19,7 @@ #define HAS_BEEP 1 #define HAS_BATTERY_REPORT 1 -#define AO_STACK_SIZE 448 +#define AO_STACK_SIZE 432 #define IS_FLASH_LOADER 0 diff --git a/src/kernel/ao_config.h b/src/kernel/ao_config.h index bf57d954..a8541775 100644 --- a/src/kernel/ao_config.h +++ b/src/kernel/ao_config.h @@ -19,7 +19,11 @@ #ifndef _AO_CONFIG_H_ #define _AO_CONFIG_H_ +#include + +#if AO_PYRO_NUM #include +#endif #ifndef USE_STORAGE_CONFIG #define USE_STORAGE_CONFIG 1 diff --git a/src/kernel/ao_convert_volt.c b/src/kernel/ao_convert_volt.c index c5dfd22d..1f04df64 100644 --- a/src/kernel/ao_convert_volt.c +++ b/src/kernel/ao_convert_volt.c @@ -19,8 +19,8 @@ #include "ao.h" #define MUL(p,m) ((int32_t) AO_ADC_REFERENCE_DV * ((p) + (m))) -#define ADD(p,m) (MUL(p,m)/2) #define DIV(p,m) ((int32_t) AO_ADC_MAX * (m)) +#define ADD(p,m) (DIV(p,m) / 2) #define scale(v,p,m) (((int32_t) (v) * MUL(p,m) + ADD(p,m)) / DIV(p,m)) #if HAS_APRS || HAS_BATTERY_REPORT diff --git a/src/kernel/ao_ignite.c b/src/kernel/ao_ignite.c index 86a116d1..9e6df199 100644 --- a/src/kernel/ao_ignite.c +++ b/src/kernel/ao_ignite.c @@ -18,9 +18,7 @@ #include "ao.h" #include -#if AO_PYRO_NUM #include -#endif #if HAS_IGNITE struct ao_ignition ao_ignition[2]; @@ -55,12 +53,7 @@ ao_igniter_status(enum ao_igniter igniter) value = AO_SENSE_MAIN(&packet); break; } - if (value < AO_IGNITER_OPEN) - return ao_igniter_open; - else if (value > AO_IGNITER_CLOSED) - return ao_igniter_ready; - else - return ao_igniter_unknown; + return ao_igniter_check(value, AO_SENSE_PBATT(&packet)); } #define AO_IGNITER_SET_DROGUE(v) ao_gpio_set(AO_IGNITER_DROGUE_PORT, AO_IGNITER_DROGUE_PIN, v) diff --git a/src/kernel/ao_pyro.c b/src/kernel/ao_pyro.c index d4091205..c40c50df 100644 --- a/src/kernel/ao_pyro.c +++ b/src/kernel/ao_pyro.c @@ -45,14 +45,8 @@ ao_pyro_status(uint8_t p) ao_data_get(&packet); ); - value = (AO_IGNITER_CLOSED>>1); value = AO_SENSE_PYRO(&packet, p); - if (value < AO_IGNITER_OPEN) - return ao_igniter_open; - else if (value > AO_IGNITER_CLOSED) - return ao_igniter_ready; - else - return ao_igniter_unknown; + return ao_igniter_check(value, AO_SENSE_PBATT(&packet)); } void diff --git a/src/kernel/ao_pyro.h b/src/kernel/ao_pyro.h index f17abed3..82576767 100644 --- a/src/kernel/ao_pyro.h +++ b/src/kernel/ao_pyro.h @@ -108,4 +108,84 @@ ao_pyro_status(uint8_t p); void ao_pyro_print_status(void); +#ifndef AO_PYRO_BATTERY_DIV_PLUS +#define AO_PYRO_BATTERY_DIV_PLUS AO_BATTERY_DIV_PLUS +#define AO_PYRO_BATTERY_DIV_MINUS AO_BATTERY_DIV_MINUS +#ifndef AO_SENSE_PBATT +#define AO_SENSE_PBATT(p) ((p)->adc.v_batt) +#endif +#else +#ifndef AO_SENSE_PBATT +#define AO_SENSE_PBATT(p) ((p)->adc.v_pbatt) +#endif +#endif + +/* + * dv = (sensor * (p+m) * ref_dv)/ (max * m) + * value * (max * m) = (sensor * (p+m) * ref) + * value * (max * m) / ((p+m) * ref) = sensor + */ + +#define AO_DV_MUL(p,m) ((int32_t) AO_ADC_MAX * (m)) +#define AO_DV_DIV(p,m) ((int32_t) AO_ADC_REFERENCE_DV * ((p) + (m))) +#define AO_DV_ADD(p,m) (AO_DV_DIV(p,m) / 2) + +#define ao_decivolt_to_adc(dv, p, m) \ + ((int16_t) (((int32_t) (dv) * AO_DV_MUL(p,m) + AO_DV_ADD(p,m)) / AO_DV_DIV(p,m))) + +#define AO_IGNITER_CLOSED_DV 35 +#define AO_IGNITER_OPEN_DV 10 + +#define AO_PYRO_BATTERY_GOOD_DV 38 + +#undef AO_IGNITER_OPEN +#undef AO_IGNITER_CLOSED + +#define AO_IGNITER_OPEN ao_decivolt_to_adc(AO_IGNITER_OPEN_DV, AO_IGNITE_DIV_PLUS, AO_IGNITE_DIV_MINUS) +#define AO_IGNITER_CLOSED ao_decivolt_to_adc(AO_IGNITER_CLOSED_DV, AO_IGNITE_DIV_PLUS, AO_IGNITE_DIV_MINUS) + +#define AO_PYRO_BATTERY_GOOD ao_decivolt_to_adc(AO_PYRO_BATTERY_GOOD_DV, AO_PYRO_BATTERY_DIV_PLUS, AO_PYRO_BATTERY_DIV_MINUS) + +/* For devices measuring the pyro battery voltage, we want to use a + * fraction of that. We'll use 15/16 of the battery voltage as a limit + * For devices not measuring the pyro battery voltage, we'll use 3.5V + * instead (this is just TeleMetrum, which permits external pyro + * batteries but has not provision to measure the voltage) + */ + +static inline int16_t +ao_igniter_closed_value(int16_t battery) +{ +#if AO_PYRO_BATTERY_DIV_PLUS != AO_IGNITE_DIV_PLUS || AO_PYRO_BATTERY_DIV_MINUS != AO_IGNITE_DIV_MINUS + (void) battery; + return AO_IGNITER_CLOSED; +#else + return (int16_t) (((int32_t) battery * 15) / 16); +#endif +} + +static inline int16_t +ao_igniter_open_value(int16_t battery) +{ +#if AO_PYRO_BATTERY_DIV_PLUS != AO_IGNITE_DIV_PLUS || AO_PYRO_BATTERY_DIV_MINUS != AO_IGNITE_DIV_MINUS + (void) battery; + return AO_IGNITER_OPEN; +#else + return (int16_t) (((int32_t) battery * 1) / 8); +#endif +} + +static inline enum ao_igniter_status +ao_igniter_check(int16_t value, int16_t battery) +{ + if (battery < AO_PYRO_BATTERY_GOOD) + return ao_igniter_open; + if (value < ao_igniter_open_value(battery)) + return ao_igniter_open; + else if (value > ao_igniter_closed_value(battery)) + return ao_igniter_ready; + else + return ao_igniter_unknown; +} + #endif diff --git a/src/kernel/ao_task.c b/src/kernel/ao_task.c index b5045416..048f5e67 100644 --- a/src/kernel/ao_task.c +++ b/src/kernel/ao_task.c @@ -307,6 +307,8 @@ ao_stack_top(struct ao_task *task) #endif } +#define AO_STACK_CANARY_VALUE 0xbaadf00dU + void ao_add_task(struct ao_task * task, void (*task_func)(void), const char *name) { @@ -324,6 +326,10 @@ ao_add_task(struct ao_task * task, void (*task_func)(void), const char *name) task->task_id = task_id; task->name = name; task->wchan = NULL; +#ifdef AO_STACK_CANARY + task->bottom_canary = AO_STACK_CANARY_VALUE; + task->top_canary = AO_STACK_CANARY_VALUE; +#endif /* * Construct a stack frame so that it will 'return' * to the start of the task @@ -341,6 +347,19 @@ ao_add_task(struct ao_task * task, void (*task_func)(void), const char *name) ); } +#ifdef AO_STACK_CANARY +static void +ao_check_stack_canary(void) +{ + if (ao_cur_task->bottom_canary != AO_STACK_CANARY_VALUE) + ao_panic(AO_PANIC_STACK); + if (ao_cur_task->top_canary != AO_STACK_CANARY_VALUE) + ao_panic(AO_PANIC_STACK); +} +#else +#define ao_check_stack_canary() +#endif + uint8_t ao_task_minimize_latency; /* Task switching function. */ @@ -356,6 +375,7 @@ ao_yield(void) ao_cur_task->max_run = run; ++ao_cur_task->yields; #endif + ao_check_stack_canary(); ao_arch_save_regs(); ao_arch_save_stack(); } @@ -398,6 +418,7 @@ ao_yield(void) #if USE_TLS _set_tls(ao_stack_top(ao_cur_task)); #endif + ao_check_stack_canary(); ao_arch_restore_stack(); } diff --git a/src/kernel/ao_task.h b/src/kernel/ao_task.h index 9197e25c..27f47a56 100644 --- a/src/kernel/ao_task.h +++ b/src/kernel/ao_task.h @@ -48,10 +48,16 @@ struct ao_task { struct ao_list queue; struct ao_list alarm_queue; /* Provide both 32-bit and 8-bit stacks */ +#ifdef AO_STACK_CANARY + uint32_t bottom_canary; +#endif union { uint32_t stack32[AO_STACK_SIZE>>2]; uint8_t stack8[AO_STACK_SIZE]; } AO_STACK_ALIGNMENT; +#ifdef AO_STACK_CANARY + uint32_t top_canary; +#endif #if HAS_SAMPLE_PROFILE uint32_t ticks; uint32_t yields; diff --git a/src/stmf0/altos.ld b/src/stmf0/altos.ld index 019565cf..80857a50 100644 --- a/src/stmf0/altos.ld +++ b/src/stmf0/altos.ld @@ -20,7 +20,7 @@ __flash = 0x08001000; __flash_size = 28K; __ram = 0x20000000; __ram_size = 6k; -__stack_size = 128; +__stack_size = 256; INCLUDE registers.ld INCLUDE picolibc.ld diff --git a/src/stmf0/ao_boot_pin.c b/src/stmf0/ao_boot_pin.c index b289b804..43212dfd 100644 --- a/src/stmf0/ao_boot_pin.c +++ b/src/stmf0/ao_boot_pin.c @@ -20,6 +20,7 @@ #include #include +#if AO_BOOT_PIN int ao_boot_check_pin(void) { @@ -44,3 +45,4 @@ ao_boot_check_pin(void) stm_rcc.apb1enr &= ~(1UL << STM_RCC_APB1ENR_PWREN); return v == AO_BOOT_APPLICATION_VALUE; } +#endif diff --git a/src/telebt-v4.0/ao_pins.h b/src/telebt-v4.0/ao_pins.h index 6efa407d..ca2c8e57 100644 --- a/src/telebt-v4.0/ao_pins.h +++ b/src/telebt-v4.0/ao_pins.h @@ -19,7 +19,7 @@ #ifndef _AO_PINS_H_ #define _AO_PINS_H_ -#define AO_STACK_SIZE 512 +#define AO_STACK_SIZE 504 #define AO_HSE 32000000 #define AO_RCC_CFGR_PLLMUL STM_RCC_CFGR_PLLMUL_3 diff --git a/src/telelco-v0.2-cc1200/ao_telelco.c b/src/telelco-v0.2-cc1200/ao_telelco.c index 26f49d59..35f341c1 100644 --- a/src/telelco-v0.2-cc1200/ao_telelco.c +++ b/src/telelco-v0.2-cc1200/ao_telelco.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/src/telelco-v0.2/ao_telelco.c b/src/telelco-v0.2/ao_telelco.c index 4eba3597..661174a0 100644 --- a/src/telelco-v0.2/ao_telelco.c +++ b/src/telelco-v0.2/ao_telelco.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/src/telelco-v0.3/ao_telelco.c b/src/telelco-v0.3/ao_telelco.c index c2ca68aa..b9bc18b7 100644 --- a/src/telelco-v0.3/ao_telelco.c +++ b/src/telelco-v0.3/ao_telelco.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/src/telelco-v2.0/ao_telelco.c b/src/telelco-v2.0/ao_telelco.c index 59582569..84843e6f 100644 --- a/src/telelco-v2.0/ao_telelco.c +++ b/src/telelco-v2.0/ao_telelco.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/src/telelcotwo-v0.1/ao_telelcotwo.c b/src/telelcotwo-v0.1/ao_telelcotwo.c index 6ced1912..c8f30b89 100644 --- a/src/telelcotwo-v0.1/ao_telelcotwo.c +++ b/src/telelcotwo-v0.1/ao_telelcotwo.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/src/telemega-v0.1/ao_pins.h b/src/telemega-v0.1/ao_pins.h index 2a2f9e61..c16b33a0 100644 --- a/src/telemega-v0.1/ao_pins.h +++ b/src/telemega-v0.1/ao_pins.h @@ -263,6 +263,12 @@ struct ao_adc { #define AO_BATTERY_DIV_PLUS 56 /* 5.6k */ #define AO_BATTERY_DIV_MINUS 100 /* 10k */ +/* + * Voltage divider on ADC pyro battery sampler + */ +#define AO_PYRO_BATTERY_DIV_PLUS 100 /* 100k */ +#define AO_PYRO_BATTERY_DIV_MINUS 27 /* 27k */ + /* * Voltage divider on ADC igniter samplers */ diff --git a/src/telemega-v1.0/ao_pins.h b/src/telemega-v1.0/ao_pins.h index 9cccdb96..ce258471 100644 --- a/src/telemega-v1.0/ao_pins.h +++ b/src/telemega-v1.0/ao_pins.h @@ -263,6 +263,12 @@ struct ao_adc { #define AO_BATTERY_DIV_PLUS 56 /* 5.6k */ #define AO_BATTERY_DIV_MINUS 100 /* 10k */ +/* + * Voltage divider on ADC pyro battery sampler + */ +#define AO_PYRO_BATTERY_DIV_PLUS 100 /* 100k */ +#define AO_PYRO_BATTERY_DIV_MINUS 27 /* 27k */ + /* * Voltage divider on ADC igniter samplers */ diff --git a/src/telemega-v2.0/ao_pins.h b/src/telemega-v2.0/ao_pins.h index db0d5d8c..c8d365c6 100644 --- a/src/telemega-v2.0/ao_pins.h +++ b/src/telemega-v2.0/ao_pins.h @@ -263,6 +263,12 @@ struct ao_adc { #define AO_BATTERY_DIV_PLUS 56 /* 5.6k */ #define AO_BATTERY_DIV_MINUS 100 /* 10k */ +/* + * Voltage divider on ADC pyro battery sampler + */ +#define AO_PYRO_BATTERY_DIV_PLUS 100 /* 100k */ +#define AO_PYRO_BATTERY_DIV_MINUS 27 /* 27k */ + /* * Voltage divider on ADC igniter samplers */ diff --git a/src/telemega-v3.0/ao_pins.h b/src/telemega-v3.0/ao_pins.h index e3e70afa..c68699e0 100644 --- a/src/telemega-v3.0/ao_pins.h +++ b/src/telemega-v3.0/ao_pins.h @@ -263,6 +263,12 @@ struct ao_adc { #define AO_BATTERY_DIV_PLUS 56 /* 5.6k */ #define AO_BATTERY_DIV_MINUS 100 /* 10k */ +/* + * Voltage divider on ADC pyro battery sampler + */ +#define AO_PYRO_BATTERY_DIV_PLUS 100 /* 100k */ +#define AO_PYRO_BATTERY_DIV_MINUS 27 /* 27k */ + /* * Voltage divider on ADC igniter samplers */ diff --git a/src/telemega-v4.0/ao_pins.h b/src/telemega-v4.0/ao_pins.h index 8839dfe2..7fa6d835 100644 --- a/src/telemega-v4.0/ao_pins.h +++ b/src/telemega-v4.0/ao_pins.h @@ -258,6 +258,12 @@ struct ao_adc { #define AO_BATTERY_DIV_PLUS 56 /* 5.6k */ #define AO_BATTERY_DIV_MINUS 100 /* 10k */ +/* + * Voltage divider on ADC pyro battery sampler + */ +#define AO_PYRO_BATTERY_DIV_PLUS 100 /* 100k */ +#define AO_PYRO_BATTERY_DIV_MINUS 27 /* 27k */ + /* * Voltage divider on ADC igniter samplers */ diff --git a/src/telemega-v5.0/ao_pins.h b/src/telemega-v5.0/ao_pins.h index 01774519..5901eeae 100644 --- a/src/telemega-v5.0/ao_pins.h +++ b/src/telemega-v5.0/ao_pins.h @@ -268,6 +268,12 @@ struct ao_adc { #define AO_BATTERY_DIV_PLUS 56 /* 5.6k */ #define AO_BATTERY_DIV_MINUS 100 /* 10k */ +/* + * Voltage divider on ADC pyro battery sampler + */ +#define AO_PYRO_BATTERY_DIV_PLUS 100 /* 100k */ +#define AO_PYRO_BATTERY_DIV_MINUS 27 /* 27k */ + /* * Voltage divider on ADC igniter samplers */ diff --git a/src/telemega-v6.0/ao_pins.h b/src/telemega-v6.0/ao_pins.h index 2518e6ba..8e9be45d 100644 --- a/src/telemega-v6.0/ao_pins.h +++ b/src/telemega-v6.0/ao_pins.h @@ -265,6 +265,12 @@ struct ao_adc { #define AO_BATTERY_DIV_PLUS 56 /* 5.6k */ #define AO_BATTERY_DIV_MINUS 100 /* 10k */ +/* + * Voltage divider on ADC pyro battery sampler + */ +#define AO_PYRO_BATTERY_DIV_PLUS 100 /* 100k */ +#define AO_PYRO_BATTERY_DIV_MINUS 27 /* 27k */ + /* * Voltage divider on ADC igniter samplers */ diff --git a/src/telemetrum-v4.0/ao_pins.h b/src/telemetrum-v4.0/ao_pins.h index bc057611..66b3e955 100644 --- a/src/telemetrum-v4.0/ao_pins.h +++ b/src/telemetrum-v4.0/ao_pins.h @@ -180,6 +180,7 @@ struct ao_adc { */ #define AO_SERIAL_SPEED_UBLOX AO_SERIAL_SPEED_9600 +#define AO_UBLOX_VERSION 10 #define HAS_SERIAL_1 1 #define USE_SERIAL_1_STDIN 0 diff --git a/src/telemini-v3.0/ao_pins.h b/src/telemini-v3.0/ao_pins.h index 28b3540b..242e30d7 100644 --- a/src/telemini-v3.0/ao_pins.h +++ b/src/telemini-v3.0/ao_pins.h @@ -20,7 +20,7 @@ #define HAS_SERIAL_1 0 #define HAS_BATTERY_REPORT 1 -#define AO_STACK_SIZE 448 +#define AO_STACK_SIZE 428 #define IS_FLASH_LOADER 0