diff options
author | Bdale Garbee <bdale@gag.com> | 2012-11-20 12:37:38 -0700 |
---|---|---|
committer | Bdale Garbee <bdale@gag.com> | 2012-11-20 12:37:38 -0700 |
commit | ceea0e75ac42acac4a20bf88f34bb93fd2768f4c (patch) | |
tree | 16fa8a0f92e10e349be175b86db6b37cb1d508d9 | |
parent | 7738ddc5dcf4a9609ae2b066a783e3c9fa03d3be (diff) | |
parent | 285fccfa82d89b0decc3b44f413eef9d0c8f1e63 (diff) |
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
-rw-r--r-- | altoslib/AltosLog.java | 2 | ||||
-rw-r--r-- | altoslib/AltosTelemetryRecordMegaData.java | 2 | ||||
-rw-r--r-- | altoslib/AltosTelemetryRecordRaw.java | 3 | ||||
-rw-r--r-- | doc/micropeak.xsl | 30 | ||||
-rw-r--r-- | src/Makefile | 29 | ||||
-rw-r--r-- | src/core/ao_config.c | 6 | ||||
-rw-r--r-- | src/micropeak/ao_micropeak.c | 8 | ||||
-rw-r--r-- | src/micropeak/ao_pins.h | 7 | ||||
-rw-r--r-- | src/micropeak/ao_report_tiny.c | 10 |
9 files changed, 64 insertions, 33 deletions
diff --git a/altoslib/AltosLog.java b/altoslib/AltosLog.java index 1c7069ce..aa30190c 100644 --- a/altoslib/AltosLog.java +++ b/altoslib/AltosLog.java @@ -85,7 +85,7 @@ public class AltosLog implements Runnable { continue; try { AltosRecord telem = AltosTelemetry.parse(line.line, previous); - if (telem.serial != 0 && telem.flight != 0 && + if ((telem.seen & AltosRecord.seen_flight) != 0 && (telem.serial != serial || telem.flight != flight || log_file == null)) { close_log_file(); diff --git a/altoslib/AltosTelemetryRecordMegaData.java b/altoslib/AltosTelemetryRecordMegaData.java index 16a7b80c..98b9f4c5 100644 --- a/altoslib/AltosTelemetryRecordMegaData.java +++ b/altoslib/AltosTelemetryRecordMegaData.java @@ -87,7 +87,7 @@ public class AltosTelemetryRecordMegaData extends AltosTelemetryRecordRaw { next.kalman_speed = speed / 16.0; next.kalman_height = height; - next.seen |= AltosRecord.seen_flight | AltosRecord.seen_temp_volt; + next.seen |= AltosRecord.seen_sensor | AltosRecord.seen_temp_volt; return next; } diff --git a/altoslib/AltosTelemetryRecordRaw.java b/altoslib/AltosTelemetryRecordRaw.java index c21da6fc..51dd704d 100644 --- a/altoslib/AltosTelemetryRecordRaw.java +++ b/altoslib/AltosTelemetryRecordRaw.java @@ -62,7 +62,8 @@ public class AltosTelemetryRecordRaw extends AltosTelemetryRecord { public AltosRecord update_state(AltosRecord previous) { AltosRecord next; - if (previous != null) + + if (previous != null && previous.serial == serial) next = previous.clone(); else next = new AltosRecordNone(); diff --git a/doc/micropeak.xsl b/doc/micropeak.xsl index 556700c0..284d0fb0 100644 --- a/doc/micropeak.xsl +++ b/doc/micropeak.xsl @@ -30,6 +30,13 @@ Initial release with preliminary hardware. </revremark> </revision> + <revision> + <revnumber>1.0</revnumber> + <date>18 November 2012</date> + <revremark> + Updates for version 1.0 release. + </revremark> + </revision> </revhistory> </bookinfo> <acknowledgements> @@ -70,7 +77,8 @@ NAR #88757, TRA #12200 preparing a soft cushion of wadding inside a vented model payload bay. Wherever you mount it, make sure you protect the barometric sensor from corrosive ejection gasses as those - will damage the sensor. + will damage the sensor, and shield it from light as that can + cause incorrect sensor readings. </para> </listitem> <listitem> @@ -115,8 +123,7 @@ NAR #88757, TRA #12200 </listitem> <listitem> <para> - Recover the data. Turn MicroPeak off for a couple of seconds - (to discharge the capacitors) and then back on. MicroPeak + Recover the data. Turn MicroPeak off and then back on. MicroPeak will blink out the maximum height for the last flight. Turn MicroPeak back off to conserve battery power. </para> @@ -141,14 +148,13 @@ NAR #88757, TRA #12200 to keep conductive material from coming in contact with the exposed metal elements. </para> <para> - The barometric sensors used in MicroPeak is - sensitive to sunlight. Please consider this when - designing an installation, for example, in an air-frame with a - see-through plastic payload bay. Many model rockets with payload bays - use clear plastic for the payload bay. Replacing these with an opaque - cardboard tube, painting them, or wrapping them with a layer of masking - tape are all reasonable approaches to keep the sensor out of direct - sunlight. + The barometric sensor used in MicroPeak is sensitive to + sunlight. Please consider this when designing an + installation. Many model rockets with payload bays use clear + plastic for the payload bay. Replacing these with an opaque + cardboard tube, painting them, or wrapping them with a layer of + masking tape are all reasonable approaches to keep the sensor + out of direct sunlight. </para> <para> The barometric sensor sampling ports must be able to "breathe", @@ -204,7 +210,7 @@ NAR #88757, TRA #12200 <title>Lithium Battery</title> <para> The CR1025 battery used by MicroPeak holes 30mAh of power, - which is sufficient to run for over 15 hours. Because + which is sufficient to run for over 40 hours. Because MicroPeak powers down on landing, run time includes only time sitting on the launch pad or during flight. </para> diff --git a/src/Makefile b/src/Makefile index 05075ae1..473cc60a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -13,8 +13,7 @@ vpath matrix.5c kalman include Version -ifneq ($(shell which sdcc),) - SUBDIRS+=\ +SDCCDIRS=\ telemetrum-v1.2 telemetrum-v1.1 telemetrum-v1.0 \ teledongle-v0.2 teledongle-v0.1 \ telemini-v1.0 telenano-v0.1 \ @@ -24,19 +23,30 @@ ifneq ($(shell which sdcc),) teleterra-v0.2 teleshield-v0.1 \ telefire-v0.1 \ spiradio-v0.1 + +AVRDIRS=\ + telescience-v0.1 telescience-pwm telepyro-v0.1 micropeak + +ARMDIRS=\ + megametrum-v0.1 megadongle-v0.1 stm-bringup stm-demo telelco-v0.1 + +ifneq ($(shell which sdcc),) + SUBDIRS += $(SDCCDIRS) endif ifneq ($(shell which avr-gcc),) - SUBDIRS += telescience-v0.1 telescience-pwm telepyro-v0.1 micropeak + SUBDIRS += $(AVRDIRS) endif ifneq ($(shell which arm-none-eabi-gcc),) - SUBDIRS += megametrum-v0.1 megadongle-v0.1 stm-bringup stm-demo telelco-v0.1 + SUBDIRS += $(ARMDIRS) endif +ALLDIRS=$(SDCCDIRS) $(AVRDIRS) $(ARMDIRS) + all: all-local all-recursive -RECURSIVE_TARGETS = all-recursive clean-recursive install-recursive +RECURSIVE_TARGETS = all-recursive install-recursive $(RECURSIVE_TARGETS): @target=`echo $@ | sed 's/-recursive//'`; \ @@ -45,6 +55,15 @@ $(RECURSIVE_TARGETS): (cd $$subdir && $(MAKE) $$target) || exit 1; \ done +ALL_RECURSIVE_TARGETS = clean-recursive + +$(ALL_RECURSIVE_TARGETS): + @target=`echo $@ | sed 's/-recursive//'`; \ + for subdir in $(ALLDIRS); do \ + echo "Making $$target in $$subdir"; \ + (cd $$subdir && $(MAKE) $$target) || exit 1; \ + done + distclean: clean clean: clean-local clean-recursive diff --git a/src/core/ao_config.c b/src/core/ao_config.c index e8ff95b7..e85ddcb4 100644 --- a/src/core/ao_config.c +++ b/src/core/ao_config.c @@ -144,8 +144,12 @@ _ao_config_get(void) } #if HAS_RADIO #if HAS_FORCE_FREQ - if (ao_force_freq) + if (ao_force_freq) { ao_config.frequency = 434550; + ao_config.radio_cal = ao_radio_cal; + ao_xmemcpy(&ao_config.callsign, CODE_TO_XDATA(AO_CONFIG_DEFAULT_CALLSIGN), + sizeof(AO_CONFIG_DEFAULT_CALLSIGN) - 1); + } #endif ao_config_set_radio(); #endif diff --git a/src/micropeak/ao_micropeak.c b/src/micropeak/ao_micropeak.c index bf656979..10e1d0f9 100644 --- a/src/micropeak/ao_micropeak.c +++ b/src/micropeak/ao_micropeak.c @@ -133,11 +133,11 @@ main(void) for (;;) { time += SAMPLE_SLEEP; if (sample_count == 0) - ao_led_on(AO_LED_BLUE); + ao_led_on(AO_LED_REPORT); ao_delay_until(time); ao_pa_get(); if (sample_count == 0) - ao_led_off(AO_LED_BLUE); + ao_led_off(AO_LED_REPORT); pa_avg = pa_avg - (pa_avg >> FILTER_SHIFT) + pa; pa_diff = pa_ground - pa_avg; @@ -172,10 +172,10 @@ main(void) time += SAMPLE_SLEEP; ao_delay_until(time); if ((sample_count & 3) == 0) - ao_led_on(AO_LED_BLUE); + ao_led_on(AO_LED_REPORT); ao_pa_get(); if ((sample_count & 3) == 0) - ao_led_off(AO_LED_BLUE); + ao_led_off(AO_LED_REPORT); #if HAS_EEPROM ao_log_micro_data(AO_LOG_MICRO_DATA | pa); #endif diff --git a/src/micropeak/ao_pins.h b/src/micropeak/ao_pins.h index 64f4444f..257b8694 100644 --- a/src/micropeak/ao_pins.h +++ b/src/micropeak/ao_pins.h @@ -19,10 +19,11 @@ #define _AO_PINS_H_ #include <avr/pgmspace.h> -#define AO_LED_BLUE (1<<4) +#define AO_LED_ORANGE (1<<4) #define AO_LED_SERIAL 4 -#define AO_LED_PANIC AO_LED_BLUE -#define LEDS_AVAILABLE (AO_LED_BLUE) +#define AO_LED_PANIC AO_LED_ORANGE +#define AO_LED_REPORT AO_LED_ORANGE +#define LEDS_AVAILABLE (AO_LED_ORANGE) #define USE_SERIAL_1_STDIN 0 #define HAS_USB 0 #define PACKET_HAS_SLAVE 0 diff --git a/src/micropeak/ao_report_tiny.c b/src/micropeak/ao_report_tiny.c index 5937508b..109af1ed 100644 --- a/src/micropeak/ao_report_tiny.c +++ b/src/micropeak/ao_report_tiny.c @@ -17,7 +17,7 @@ #include <ao.h> -#define mid(time) ao_led_for(AO_LED_BLUE, time) +#define mid(time) ao_led_for(AO_LED_REPORT, time) #define pause(time) ao_delay(time) static void @@ -25,14 +25,14 @@ ao_report_digit(uint8_t digit) __reentrant { if (!digit) { mid(AO_MS_TO_TICKS(600)); - pause(AO_MS_TO_TICKS(200)); + pause(AO_MS_TO_TICKS(300)); } else { while (digit--) { - mid(AO_MS_TO_TICKS(200)); - pause(AO_MS_TO_TICKS(200)); + mid(AO_MS_TO_TICKS(300)); + pause(AO_MS_TO_TICKS(300)); } } - pause(AO_MS_TO_TICKS(300)); + pause(AO_MS_TO_TICKS(600)); } void |