From 119dd56512404e0c39dd5001ba4da9373515c02c Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 11:25:05 -0800 Subject: altosui: Add docs to Mac OS X dmg distribution Signed-off-by: Keith Packard --- altosui/Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/altosui/Makefile.am b/altosui/Makefile.am index 0b75a2b1..824ec9e1 100644 --- a/altosui/Makefile.am +++ b/altosui/Makefile.am @@ -178,7 +178,7 @@ LINUX_FILES=$(FAT_FILES) libaltos.so $(FIRMWARE) $(DOC) LINUX_EXTRA=altosui-fat MACOSX_INFO_PLIST=Info.plist -MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) ReadMe-Mac.rtf +MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(DOC) ReadMe-Mac.rtf MACOSX_EXTRA=$(FIRMWARE) WINDOWS_FILES=$(FAT_FILES) altos.dll altos64.dll $(top_srcdir)/telemetrum.inf $(WINDOWS_ICON) @@ -329,6 +329,8 @@ $(MACOSX_DIST): $(MACOSX_FILES) $(MACOSX_EXTRA) Makefile mkdir macosx cp -a AltosUI.app macosx/ cp -a ReadMe-Mac.rtf macosx/ReadMe.rtf + mkdir -p macosx/Doc + cp -a $(DOC) macosx/Doc cp -p Info.plist macosx/AltosUI.app/Contents mkdir -p macosx/AltOS-$(VERSION) macosx/AltosUI.app/Contents/Resources/Java cp -p $(FATJAR) macosx/AltosUI.app/Contents/Resources/Java/altosui.jar -- cgit v1.2.3 From 36197a388a9ba1d1ee4acd96ac0079ad3af9d3d0 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 12:15:22 -0800 Subject: libaltos: fix test harness main type Signed-off-by: Keith Packard --- libaltos/cjnitest.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libaltos/cjnitest.c b/libaltos/cjnitest.c index f0fe78f7..3a65c3d6 100644 --- a/libaltos/cjnitest.c +++ b/libaltos/cjnitest.c @@ -10,7 +10,8 @@ altos_puts(struct altos_file *file, char *string) altos_putchar(file, c); } -main () +int +main (int argc, char **argv) { struct altos_device device; struct altos_list *list; -- cgit v1.2.3 From 0484ca97828da0d56be7bf395fa4a4b09c591e02 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 12:15:54 -0800 Subject: libaltos: remove usb id filtering from darwin code Signed-off-by: Keith Packard --- libaltos/libaltos.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/libaltos/libaltos.c b/libaltos/libaltos.c index 4a6363ed..a623d5ae 100644 --- a/libaltos/libaltos.c +++ b/libaltos/libaltos.c @@ -53,6 +53,8 @@ altos_get_last_error(struct altos_error *error) #ifdef DARWIN +#include + #undef USE_POLL /* Mac OS X don't have strndup even if _GNU_SOURCE is defined */ @@ -887,15 +889,6 @@ altos_list_next(struct altos_list *list, struct altos_device *device) if (!get_number (object, CFSTR(kUSBVendorID), &device->vendor) || !get_number (object, CFSTR(kUSBProductID), &device->product)) continue; - if (list->ftdi) { - if (device->vendor != 0x0403) - continue; - } else { - if (device->vendor != 0xfffe) - continue; - if (device->product < 0x000a || 0x0013 < device->product) - continue; - } if (get_string (object, CFSTR("IOCalloutDevice"), device->path, sizeof (device->path)) && get_string (object, CFSTR("USB Product Name"), device->name, sizeof (device->name)) && get_string (object, CFSTR("USB Serial Number"), serial_string, sizeof (serial_string))) { -- cgit v1.2.3 From f2e589c59ed0a4c586c5accca8772df15010c46a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 12:16:55 -0800 Subject: libaltos: Import newly build libaltos.dylib --- libaltos/libaltos.dylib | Bin 41596 -> 41596 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/libaltos/libaltos.dylib b/libaltos/libaltos.dylib index cfbd3f54..8b491c58 100755 Binary files a/libaltos/libaltos.dylib and b/libaltos/libaltos.dylib differ -- cgit v1.2.3 From 216405bc49ef2fc0e9941989f054e41f2fef9cfe Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 12:40:22 -0800 Subject: altoslib: Don't close telemetry reader at startup unless something fails Was always closing the file, which led to very little telemetry being received. Signed-off-by: Keith Packard --- altoslib/AltosTelemetryReader.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/altoslib/AltosTelemetryReader.java b/altoslib/AltosTelemetryReader.java index 405c555b..eeb35cb5 100644 --- a/altoslib/AltosTelemetryReader.java +++ b/altoslib/AltosTelemetryReader.java @@ -124,6 +124,7 @@ public class AltosTelemetryReader extends AltosFlightReader { public AltosTelemetryReader (AltosLink in_link) throws IOException, InterruptedException, TimeoutException { link = in_link; + boolean success = false; try { log = new AltosLog(link); name = link.name; @@ -133,8 +134,10 @@ public class AltosTelemetryReader extends AltosFlightReader { telemetry = AltosPreferences.telemetry(link.serial); set_telemetry(telemetry); link.add_monitor(telem); + success = true; } finally { - close(true); + if (!success) + close(true); } } } -- cgit v1.2.3 From b19a648b667c298d2d9d5ed4ee9db661be058d1a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 13:09:48 -0800 Subject: altoslib: create eeprom download thread before telling monitor about it Telling the monitor too early resulted in passing a null thread handle, which meant that 'cancel' wouldn't ever work. Signed-off-by: Keith Packard --- altoslib/AltosEepromDownload.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/altoslib/AltosEepromDownload.java b/altoslib/AltosEepromDownload.java index 542defee..1b043167 100644 --- a/altoslib/AltosEepromDownload.java +++ b/altoslib/AltosEepromDownload.java @@ -239,6 +239,7 @@ public class AltosEepromDownload implements Runnable { public void start() { eeprom_thread = new Thread(this); + monitor.set_thread(eeprom_thread); eeprom_thread.start(); } @@ -255,7 +256,6 @@ public class AltosEepromDownload implements Runnable { monitor.set_states(AltosLib.ao_flight_boost, AltosLib.ao_flight_landed); - monitor.set_thread(eeprom_thread); monitor.start(); } } -- cgit v1.2.3 From dbcf3264f950c4e1d450828c9f161b4c418bee97 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 13:22:45 -0800 Subject: altoslib: Define 3.8 as a good battery and 3.5 as a good igniter Use defined values everywhere instead of copying. Adjust battery up to 3.8 to ensure there's enough voltage to not trip the comparators Signed-off-by: Keith Packard --- altoslib/AltosLib.java | 5 +++++ altosui/AltosAscent.java | 4 ++-- altosui/AltosDescent.java | 4 ++-- altosui/AltosPad.java | 8 ++++---- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java index 36a2ab32..efbc3ddb 100644 --- a/altoslib/AltosLib.java +++ b/altoslib/AltosLib.java @@ -143,6 +143,11 @@ public class AltosLib { /* Bluetooth "identifier" (bluetooth sucks) */ public final static String bt_product_telebt = "TeleBT"; + /* "good" voltages */ + + public final static double ao_battery_good = 3.8; + public final static double ao_igniter_good = 3.5; + /* Telemetry modes */ public static final int ao_telemetry_off = 0; public static final int ao_telemetry_min = 1; diff --git a/altosui/AltosAscent.java b/altosui/AltosAscent.java index 1d9af546..ba4fc614 100644 --- a/altosui/AltosAscent.java +++ b/altosui/AltosAscent.java @@ -285,7 +285,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { class Apogee extends AscentStatus { void show (AltosState state, AltosListenerState listener_state) { show("%4.2f V", state.apogee_voltage); - lights.set(state.apogee_voltage > 3.7); + lights.set(state.apogee_voltage >= AltosLib.ao_igniter_good); } public Apogee (GridBagLayout layout, int y) { super(layout, y, "Apogee Igniter Voltage"); @@ -297,7 +297,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { class Main extends AscentStatus { void show (AltosState state, AltosListenerState listener_state) { show("%4.2f V", state.main_voltage); - lights.set(state.main_voltage > 3.7); + lights.set(state.main_voltage >= AltosLib.ao_igniter_good); } public Main (GridBagLayout layout, int y) { super(layout, y, "Main Igniter Voltage"); diff --git a/altosui/AltosDescent.java b/altosui/AltosDescent.java index 77776ff2..e73d990c 100644 --- a/altosui/AltosDescent.java +++ b/altosui/AltosDescent.java @@ -323,7 +323,7 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay { class Apogee extends DescentStatus { void show (AltosState state, AltosListenerState listener_state) { show("%4.2f V", state.apogee_voltage); - lights.set(state.apogee_voltage > 3.7); + lights.set(state.apogee_voltage >= AltosLib.ao_igniter_good); } public Apogee (GridBagLayout layout, int y) { super(layout, y, "Apogee Igniter Voltage"); @@ -335,7 +335,7 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay { class Main extends DescentStatus { void show (AltosState state, AltosListenerState listener_state) { show("%4.2f V", state.main_voltage); - lights.set(state.main_voltage > 3.7); + lights.set(state.main_voltage >= AltosLib.ao_igniter_good); } public Main (GridBagLayout layout, int y) { super(layout, y, "Main Igniter Voltage"); diff --git a/altosui/AltosPad.java b/altosui/AltosPad.java index b35bd23a..06a0f1ef 100644 --- a/altosui/AltosPad.java +++ b/altosui/AltosPad.java @@ -180,7 +180,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { hide(); else { show("%4.2f V", state.battery_voltage); - lights.set(state.battery_voltage > 3.7); + lights.set(state.battery_voltage >= AltosLib.ao_battery_good); } } public Battery (GridBagLayout layout, int y) { @@ -196,7 +196,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { hide(); else { show("%4.2f V", state.apogee_voltage); - lights.set(state.apogee_voltage > 3.7); + lights.set(state.apogee_voltage >= AltosLib.ao_igniter_good); } } public Apogee (GridBagLayout layout, int y) { @@ -212,7 +212,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { hide(); else { show("%4.2f V", state.main_voltage); - lights.set(state.main_voltage > 3.7); + lights.set(state.main_voltage >= AltosLib.ao_igniter_good); } } public Main (GridBagLayout layout, int y) { @@ -287,7 +287,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay { hide(); else { show("%4.2f V", listener_state.battery); - lights.set(listener_state.battery > 3.7); + lights.set(listener_state.battery > AltosLib.ao_battery_good); } } public ReceiverBattery (GridBagLayout layout, int y) { -- cgit v1.2.3 From 58ceb9c845d51547244538fe6beec27e9a232af8 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 13:25:31 -0800 Subject: altosdroid: Use altoslib standard voltages to control lights Signed-off-by: Keith Packard --- altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java index 2c6732e5..b9e878f1 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java @@ -104,13 +104,13 @@ public class TabPad extends Fragment implements AltosDroidTab { public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) { if (state != null) { mBatteryVoltageView.setText(AltosDroid.number("%4.2f V", state.battery_voltage)); - mBatteryLights.set(state.battery_voltage > 3.7, state.battery_voltage == AltosLib.MISSING); + mBatteryLights.set(state.battery_voltage >= AltosLib.ao_battery_good, state.battery_voltage == AltosLib.MISSING); mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.apogee_voltage)); - mApogeeLights.set(state.apogee_voltage > 3.2, state.apogee_voltage == AltosLib.MISSING); + mApogeeLights.set(state.apogee_voltage >= AltosLib.ao_igniter_good, state.apogee_voltage == AltosLib.MISSING); mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_voltage)); - mMainLights.set(state.main_voltage > 3.2, state.main_voltage == AltosLib.MISSING); + mMainLights.set(state.main_voltage >= AltosLib.ao_igniter_good, state.main_voltage == AltosLib.MISSING); if (state.flight != 0) { if (state.state <= AltosLib.ao_flight_pad) -- cgit v1.2.3 From c1bfe09b6d3eb28d0c7cfe07a248843cf81bcd25 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 13:36:04 -0800 Subject: altosui: Remove some debug printfs Signed-off-by: Keith Packard --- altoslib/AltosIdleMonitor.java | 3 --- altoslib/AltosMs5607.java | 8 -------- altosui/AltosIdleMonitorUI.java | 2 -- 3 files changed, 13 deletions(-) diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java index c816c202..d9d71143 100644 --- a/altoslib/AltosIdleMonitor.java +++ b/altoslib/AltosIdleMonitor.java @@ -91,14 +91,11 @@ public class AltosIdleMonitor extends Thread { } public void abort() throws InterruptedException { - System.out.printf("Attempting to abort monitor thread\n"); while (isAlive()) { - System.out.printf("Interrupting\n"); interrupt(); link.abort_reply(); Thread.sleep(100); } - System.out.printf("Appears to be dead now\n"); join(); } diff --git a/altoslib/AltosMs5607.java b/altoslib/AltosMs5607.java index 23d65ea9..2319d5b8 100644 --- a/altoslib/AltosMs5607.java +++ b/altoslib/AltosMs5607.java @@ -85,12 +85,10 @@ public class AltosMs5607 { } public boolean parse_line(String line) { - System.out.printf ("parse %s\n", line); String[] items = line.split("\\s+"); if (line.startsWith("Pressure:")) { if (items.length >= 2) { raw_pres = Integer.parseInt(items[1]); - System.out.printf ("raw_pres %d\n", raw_pres); } } else if (line.startsWith("Temperature:")) { if (items.length >= 2) @@ -99,10 +97,8 @@ public class AltosMs5607 { if (items.length >= 3) reserved = Integer.parseInt(items[2]); } else if (line.startsWith("ms5607 sens:")) { - System.out.printf ("found sens length %d\n", items.length); if (items.length >= 3) { sens = Integer.parseInt(items[2]); - System.out.printf ("sens %d\n", sens); } } else if (line.startsWith("ms5607 off:")) { if (items.length >= 3) @@ -156,13 +152,9 @@ public class AltosMs5607 { throw new TimeoutException(); } if (!parse_line(line)) { - System.out.printf ("stop parsing at %s\n", line); break; } } - System.out.printf ("sens %d off %d tcs %d tco %d tref %d tempsens %d crc %d pres %d temp %d\n", - sens, off, tcs, tco, tref, tempsens, crc, raw_pres, raw_temp); convert(); - System.out.printf ("pa %d cc %d\n", pa, cc); } } diff --git a/altosui/AltosIdleMonitorUI.java b/altosui/AltosIdleMonitorUI.java index 6da920e2..6a79604e 100644 --- a/altosui/AltosIdleMonitorUI.java +++ b/altosui/AltosIdleMonitorUI.java @@ -195,13 +195,11 @@ public class AltosIdleMonitorUI extends AltosUIFrame implements AltosFlightDispl addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { - System.out.printf("Closing idle monitor window\n"); try { disconnect(); } catch (Exception ex) { System.out.println(Arrays.toString(ex.getStackTrace())); } - System.out.printf("hiding\n"); setVisible(false); dispose(); AltosUIPreferences.unregister_font_listener(AltosIdleMonitorUI.this); -- cgit v1.2.3 From eea036650e62bc0f8652155974b512686754fd13 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 14:08:41 -0800 Subject: Move pdclib build results to pdclib-root This makes pdclib easier to manage as a submodule Signed-off-by: Keith Packard --- .gitignore | 1 + configure.ac | 8 +++++--- pdclib | 2 +- src/Makedefs.in | 1 + src/Makefile | 7 +++++-- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 54834f66..61f48048 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,4 @@ doc/telemetrum.fo doc/telemetrum.html doc/telemetrum.pdf altosui/altos-windows.log +pdclib-root diff --git a/configure.ac b/configure.ac index b6e17355..b92e06a9 100644 --- a/configure.ac +++ b/configure.ac @@ -239,9 +239,10 @@ AC_SUBST(HAVE_ARM_CC) AC_SUBST(ARM_CC) if test -d pdclib -a x"$HAVE_ARM_CC" = xyes; then - PDCLIB_INCLUDES='-I$(TOPDIR)/../pdclib/opt/include' - PDCLIB_LIBS_M0='-L$(TOPDIR)/../pdclib/opt/lib -lpdclib-cortex-m0' - PDCLIB_LIBS_M3='-L$(TOPDIR)/../pdclib/opt/lib -lpdclib-cortex-m3' + PDCLIB_ROOT='$(TOPDIR)/../pdclib-root' + PDCLIB_INCLUDES='-I$(TOPDIR)/../pdclib-root/include' + PDCLIB_LIBS_M0='-L$(TOPDIR)/../pdclib-root/lib -lpdclib-cortex-m0' + PDCLIB_LIBS_M3='-L$(TOPDIR)/../pdclib-root/lib -lpdclib-cortex-m3' HAVE_PDCLIB=yes else PDCLIB_INCLUDES='' @@ -255,6 +256,7 @@ AM_CONDITIONAL(PDCLIB, [test x$HAVE_PDCLIB = xyes]) AC_SUBST(PDCLIB_INCLUDES) AC_SUBST(PDCLIB_LIBS_M0) AC_SUBST(PDCLIB_LIBS_M3) +AC_SUBST(PDCLIB_ROOT) AC_SUBST(HAVE_PDCLIB) if test "x$HAVE_ARM_CC" = "xyes"; then diff --git a/pdclib b/pdclib index f3165dbd..8b1c9061 160000 --- a/pdclib +++ b/pdclib @@ -1 +1 @@ -Subproject commit f3165dbd639299d08033ed5eef62a21b69540a8d +Subproject commit 8b1c9061fa3a8f1b30ee13b373afe5cc1ad9d382 diff --git a/src/Makedefs.in b/src/Makedefs.in index d4ef28be..a52f96fa 100644 --- a/src/Makedefs.in +++ b/src/Makedefs.in @@ -4,6 +4,7 @@ HAVE_ARM_M0_CC=@HAVE_ARM_M0_CC@ PDCLIB_INCLUDES=@PDCLIB_INCLUDES@ PDCLIB_LIBS_M0=@PDCLIB_LIBS_M0@ PDCLIB_LIBS_M3=@PDCLIB_LIBS_M3@ +PDCLIB_ROOT=@PDCLIB_ROOT@ HAVE_PDCLIB=@HAVE_PDCLIB@ SDCC=@SDCC@ diff --git a/src/Makefile b/src/Makefile index 0ca101c0..392262d4 100644 --- a/src/Makefile +++ b/src/Makefile @@ -13,6 +13,7 @@ vpath load_csv.5c kalman vpath matrix.5c kalman include Version +TOPDIR=. include Makedefs SDCCDIRS=\ @@ -114,7 +115,9 @@ clean-local: $(CLEAN_PDCLIB) rm -f altitude.h ao_kalman.h pdclib: - cd ../pdclib && mkdir -p opt/include opt/lib && make && make prefix=`pwd`/opt install + mkdir -p $(PDCLIB_ROOT)/include $(PDCLIB_ROOT)/lib + cd ../pdclib && make && make prefix=`pwd`/../pdclib-root install clean-pdclib: - cd ../pdclib && make clean && rm -rf opt \ No newline at end of file + rm -rf $(PDCLIB_ROOT) + cd ../pdclib && make clean -- cgit v1.2.3 From c0966cd40f05f3a65b0c977b4b92586a58192f4b Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 14:22:51 -0800 Subject: micropeak: Compile for java 6 Don't a require later version as not all target OSes support it Signed-off-by: Keith Packard --- micropeak/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/micropeak/Makefile.am b/micropeak/Makefile.am index 098a00fb..af46abc0 100644 --- a/micropeak/Makefile.am +++ b/micropeak/Makefile.am @@ -1,5 +1,5 @@ JAVAROOT=classes -AM_JAVACFLAGS=-encoding UTF-8 -Xlint:deprecation +AM_JAVACFLAGS=-target 1.6 -encoding UTF-8 -Xlint:deprecation -source 6 altoslibdir=$(libdir)/altos -- cgit v1.2.3 From 6827961c002757f8e74de44f6eb9c9029d099ebc Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 14:25:41 -0800 Subject: doc: Update micropeak quick start guide to note new boost detect Now waits for one minute and 30m of altitude change to avoid false detections. Signed-off-by: Keith Packard --- doc/micropeak.xsl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/micropeak.xsl b/doc/micropeak.xsl index afa6fd15..cd9452c8 100644 --- a/doc/micropeak.xsl +++ b/doc/micropeak.xsl @@ -115,20 +115,20 @@ NAR #88757, TRA #12200 Finish preparing the rocket for flight. After the previous flight data have been reported, MicroPeak waits for - 30 seconds before starting to check for launch. This gives + one minute before starting to check for launch. This gives you time to finish assembling the rocket. As those activities might cause pressure changes inside the airframe, MicroPeak might accidentally detect boost. If you need to do - anything to the airframe after the 30 second window passes, + anything to the airframe after the one minute window passes, make sure to be careful not to disturb the altimeter. The - LED will remain dark during the 30 second delay, but after + LED will remain dark during the one minute delay, but after that, it will start blinking once every 3 seconds. - Fly the rocket. Once the rocket passes about 10m in height - (32 feet), the micro-controller will record the ground + Fly the rocket. Once the rocket passes about 30m in height + (100 feet), the micro-controller will record the ground pressure and track the pressure seen during the flight. In this mode, the LED flickers rapidly. When the rocket lands, and the pressure stabilizes, the micro-controller will record -- cgit v1.2.3 From b63fc05481bf6d57e6385704ce53c1c19afa9c2e Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 18 Dec 2013 14:34:31 -0800 Subject: doc: typo in micropeak doc hole->hold --- doc/micropeak.xsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/micropeak.xsl b/doc/micropeak.xsl index cd9452c8..8c487e5d 100644 --- a/doc/micropeak.xsl +++ b/doc/micropeak.xsl @@ -401,7 +401,7 @@ NAR #88757, TRA #12200
Lithium Battery - The CR1025 battery used by MicroPeak holes 30mAh of power, + The CR1025 battery used by MicroPeak holds 30mAh of power, 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. -- cgit v1.2.3