From 49fd1fe435b116665b41722c7d14878a62bb3311 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Tue, 20 Mar 2018 18:25:43 -0600 Subject: add a paragraph to the intro pointing to the altusmetrum email list --- doc/intro.inc | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'doc') diff --git a/doc/intro.inc b/doc/intro.inc index 6b0cd318..bff009c0 100644 --- a/doc/intro.inc +++ b/doc/intro.inc @@ -7,6 +7,16 @@ we also hope to empower you to take as active a role in our collective future as you wish! + Our goal is to include in this document all of the information required + to successfully configure and use Altus Metrum products. But + documentation is a lot like software in that it can contain "bugs", + and can probably always be improved! If you have questions that + aren't answered in this manual, or just need a little help figuring + things out, we strongly suggest joining the Altus Metrum user email + list, which you can do by visiting + https://lists.gag.com/mailman/listinfo/altusmetrum. There's a lot + of useful information in the mailing list archives! + The first device created for our community was TeleMetrum, a dual deploy altimeter with fully integrated GPS and radio telemetry as standard features, and a “companion interface” that will -- cgit v1.2.3 From 20dc0e6c8e365c1f4188189d506163d589c3bade Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Sun, 22 Apr 2018 19:00:03 -0600 Subject: add a warning about Google limiting per-day access until/unless we pay --- ao-bringup/turnon_telegps | 2 +- doc/load-maps.inc | 6 +++++- pdclib | 2 +- src/stmf0/ao_usb_stm.c | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) (limited to 'doc') diff --git a/ao-bringup/turnon_telegps b/ao-bringup/turnon_telegps index b1da4373..5e4cd616 100755 --- a/ao-bringup/turnon_telegps +++ b/ao-bringup/turnon_telegps @@ -49,7 +49,7 @@ esac FLASH_FILE=$REPO/loaders/telegps-v2.0-altos-flash-*.bin ALTOS_FILE=$REPO/telegps-v2.0-*.elf -$DFU_UTIL -a 0 -s 0x08000000:leave -D $FLASH_FILE +$DFU_UTIL -v -v -R -a 0 -s 0x08000000:leave -D $FLASH_FILE sleep 3 diff --git a/doc/load-maps.inc b/doc/load-maps.inc index e7717d89..ccab4795 100644 --- a/doc/load-maps.inc +++ b/doc/load-maps.inc @@ -5,7 +5,11 @@ Before heading out to a new launch site, you can use this to load satellite images in case you don't have - internet connectivity at the site. + internet connectivity at the site. Try not to wait + until the last minute, though, particularly if you're + heading to a major launch. If too many people are + all trying to download map data at once, Google may + limit access until the next day. There's a drop-down menu of launch sites we know about; if your favorites aren't there, please let us diff --git a/pdclib b/pdclib index 3e68419a..20f71c3a 160000 --- a/pdclib +++ b/pdclib @@ -1 +1 @@ -Subproject commit 3e68419ad3ca3237ca16de4cf2a967f04129fe33 +Subproject commit 20f71c3a97eb4c7ecfa9754a0ca42855db935999 diff --git a/src/stmf0/ao_usb_stm.c b/src/stmf0/ao_usb_stm.c index bf08abc1..483d2419 100644 --- a/src/stmf0/ao_usb_stm.c +++ b/src/stmf0/ao_usb_stm.c @@ -1447,7 +1447,7 @@ ao_usb_enable(void) ao_arch_release_interrupts(); - for (t = 0; t < 1000; t++) + for (t = 0; t < 50000; t++) ao_arch_nop(); /* Enable USB pull-up */ -- cgit v1.2.3 From 1569b23b2f139e3840ec145f4eef45f36fc4939a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 16 Apr 2018 09:46:22 -0700 Subject: doc: add release check for altusmetrum-docinfo.xml copyright Signed-off-by: Keith Packard --- doc/RELNOTES | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/RELNOTES b/doc/RELNOTES index c3980882..748d2b5b 100644 --- a/doc/RELNOTES +++ b/doc/RELNOTES @@ -1,5 +1,9 @@ Creating documentation for a new release of AltOS +* Make sure that doc/altusmetrum-docinfo.xml has the right copyright + year, and add release to the revision history at the front (release + notes will be pulled in by release-notes.inc) + * Write release notes in release-notes-${version}.inc. Add to Makefile -- cgit v1.2.3 From feb881a24250bd7e71ec8ccef0099d4b4a0df519 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 7 May 2018 08:58:21 -0700 Subject: doc: Update pyro channel info to reflect UI changes Use the new naming in the UI. Add lots more comments about how things work. Signed-off-by: Keith Packard --- doc/pyro-channels.inc | 92 +++++++++++++++++++++++++++++---------------------- 1 file changed, 53 insertions(+), 39 deletions(-) (limited to 'doc') diff --git a/doc/pyro-channels.inc b/doc/pyro-channels.inc index 3b918544..7fd06412 100644 --- a/doc/pyro-channels.inc +++ b/doc/pyro-channels.inc @@ -1,33 +1,28 @@ -Acceleration:: Select a value, and then choose -whether acceleration should be above or below -that value. Acceleration is positive upwards, -so accelerating towards the ground would -produce negative numbers. Acceleration during -descent is noisy and inaccurate, so be careful -when using it during these phases of the -flight. - -Vertical speed:: Select a value, and then -choose whether vertical speed should be above -or below that value. Speed is positive -upwards, so moving towards the ground would -produce negative numbers. Speed during descent -is a bit noisy and so be careful when using it +Vertical Acceleration:: Select a value, and then choose whether +acceleration away from the ground should be above or below that +value. Acceleration is positive upwards, so accelerating towards the +ground would produce negative numbers. Acceleration during descent is +noisy and inaccurate, so be careful when using it during these phases +of the flight. + +Ascent rate:: Select a value, and then choose whether ascent rate +should be above or below that value. Ascent rate is positive upwards, +so moving towards the ground would produce negative numbers. Ascent +rate during descent is a bit noisy and so be careful when using it during these phases of the flight. -Height:: Select a value, and then choose -whether the height above the launch pad should -be above or below that value. +Height above pad:: Select a value, and then choose whether the height +above the launch pad should be above or below that value. -Orientation:: TeleMega and EasyMega contain a -3-axis gyroscope and accelerometer which is -used to measure the current angle. Note that -this angle is not the change in angle from the -launch pad, but rather absolute relative to -gravity; the 3-axis accelerometer is used to -compute the angle of the rocket on the launch -pad and initialize the system. +Orientation:: TeleMega and EasyMega contain a 3-axis gyroscope and +accelerometer which is used to compute the orientation of the +rocket. A record of orientations over the last 0.64 seconds is kept +and the largest value within this period is compared with the +specified value. Note that the tilt angle is not the change in angle +from the launch pad, but rather absolute relative to gravity—the +3-axis accelerometer is used to compute the angle of the rocket on the +launch pad and initialize the system. [NOTE] ==== @@ -51,41 +46,60 @@ Flight Time:: Time since boost was detected. Select a value and choose whether to activate the pyro channel before or after that amount of time. -Ascending:: A simple test saying whether the rocket is going up or -not. This is exactly equivalent to testing whether the speed is > 0. +Ascending:: A deprecated configuration value which was the same as +setting Ascent rate > 0. Existing configurations using this will be +cleared and must be reconfigured by the user. -Descending:: A simple test saying whether the rocket is going down or -not. This is exactly equivalent to testing whether the speed is < 0. +Descending:: A deprecated configuration value which was the same as +setting Ascent rate < 0. Existing configurations using this will be +cleared and must be reconfigured by the user. After Motor:: The flight software counts each time the rocket starts accelerating and then decelerating (presumably due to a motor or motors burning). Use this value for multi-staged or multi-airstart launches. -Delay:: This value doesn't perform any checks, instead it inserts a -delay between the time when the other parameters become true and when -the pyro channel is activated. +Delay:: Once the other parameters all become true, a timer is +started for the specified amount of time. While the timer is running, +the other parameters are checked repeatedly and if any of them become +false, then the pyro channel is disabled and will not fire. If the +timer expires and all of the other parameters have remained true for +the entire time, then the pyro channel is fired. Flight State:: The flight software tracks the flight through a sequence of states: * Boost. The motor has lit and the rocket is - accelerating upwards. + accelerating upwards. Ascent rate will be greater than zero. + Vertical acceleration will be greater than zero. * Fast. The motor has burned out and the rocket is decelerating, but it is going - faster than 200m/s. + faster than 200m/s. Ascent rate will be greater than zero. Vertical + acceleration will be less than zero. * Coast. The rocket is still moving upwards - and decelerating, but the speed is less - than 200m/s. + and decelerating, but the Ascent rate is less + than 200m/s. Ascent rate will greater than zero. Vertical + acceleration will be less than zero. * Drogue. The rocket has reached apogee and is heading back down, but is above the - configured Main altitude. + configured Main altitude. Ascent rate will be less than zero during + this state. Vertical acceleration will be negative until the rocket + reaches a terminal descent rate, at which point Vertical + acceleration will be zero. Both Ascent rate and Vertical + acceleration are very noisy in this state, so be careful when + trying to use them to control pyro channels. * Main. The rocket is still descending, and - is below the Main altitude + is below the Main altitude. Ascent rate will be less than zero + during this state. Vertical acceleration may be briefly less than + zero as the rocket slows from drogue descent to main descent, but + it will settle down to a zero value once the rocket has reached the + terminal velocity under the main chute. Ascent rate and Vertical + acceleration should be much less noisy once the main chute has + deployed. * Landed. The rocket is no longer moving. -- cgit v1.2.3 From 327b765962d397efd4c45b6209c9225a4d23ba1d Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 5 Aug 2018 08:44:04 +0800 Subject: altos: Change 'after motor' pyro check to be >= instead of == This makes after motor stay valid even if further motors burn. Signed-off-by: Keith Packard --- doc/pyro-channels.inc | 4 +++- src/kernel/ao_pyro.c | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/pyro-channels.inc b/doc/pyro-channels.inc index 7fd06412..68bbf910 100644 --- a/doc/pyro-channels.inc +++ b/doc/pyro-channels.inc @@ -57,7 +57,9 @@ cleared and must be reconfigured by the user. After Motor:: The flight software counts each time the rocket starts accelerating and then decelerating (presumably due to a motor or motors burning). Use this value for multi-staged or multi-airstart -launches. +launches. As of version 1.8.6 firmware, this checks to make sure at +least this many motors have burned. Before version 1.8.6, this checked +to make sure that exactly this many motors had burned. Delay:: Once the other parameters all become true, a timer is started for the specified amount of time. While the timer is running, diff --git a/src/kernel/ao_pyro.c b/src/kernel/ao_pyro.c index 5a556d59..3c872354 100644 --- a/src/kernel/ao_pyro.c +++ b/src/kernel/ao_pyro.c @@ -182,7 +182,7 @@ ao_pyro_ready(struct ao_pyro *pyro) break; case ao_pyro_after_motor: - if (ao_motor_number == pyro->motor) + if (ao_motor_number >= pyro->motor) continue; DBG("motor %d != %d\n", ao_motor_number, pyro->motor); break; -- cgit v1.2.3 From 0d57c78dde3c6e61576a4769b0e0fae7e88c107d Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 5 Aug 2018 11:09:34 +0800 Subject: altos: Add separate 'ao_launch_tick'. Use in pyro and lockout. Prior to this, there was only ao_boost_tick, which got reset at each motor burn start. That meant there wasn't any way to measure total flight time for pyro channels and 'apogee lockout' was based on time since most recent motor start instead of total flight time. Now pyro channels and apogee lockout both use total flight time, while motor burn length still uses time since most recent motor burn start (as it should). Docs and UI updated to use 'launch' instead of 'boost' to try and make the change clear. Signed-off-by: Keith Packard --- altoslib/AltosPyro.java | 4 ++-- altosui/AltosConfigFCUI.java | 2 +- doc/config-device.inc | 8 +++++++- doc/pyro-channels.inc | 10 +++++++--- src/kernel/ao_flight.c | 7 ++++--- src/kernel/ao_flight.h | 1 + src/kernel/ao_pyro.c | 8 ++++---- 7 files changed, 26 insertions(+), 14 deletions(-) (limited to 'doc') diff --git a/altoslib/AltosPyro.java b/altoslib/AltosPyro.java index 18f0da56..fea4fd59 100644 --- a/altoslib/AltosPyro.java +++ b/altoslib/AltosPyro.java @@ -61,8 +61,8 @@ public class AltosPyro { public static final int pyro_time_greater = 0x00000200; public static final String pyro_time_less_string = "t<"; public static final String pyro_time_greater_string = "t>"; - public static final String pyro_time_less_name = "Time since boost less than (s)"; - public static final String pyro_time_greater_name = "Time since boost greater than (s)"; + public static final String pyro_time_less_name = "Time since launch less than (s)"; + public static final String pyro_time_greater_name = "Time since launch greater than (s)"; public static final double pyro_time_scale = 100.0; public static final int pyro_ascending = 0x00000400; diff --git a/altosui/AltosConfigFCUI.java b/altosui/AltosConfigFCUI.java index 1e875dec..9bd265f0 100644 --- a/altosui/AltosConfigFCUI.java +++ b/altosui/AltosConfigFCUI.java @@ -440,7 +440,7 @@ public class AltosConfigFCUI apogee_lockout_value.setEditable(true); apogee_lockout_value.addItemListener(this); pane.add(apogee_lockout_value, c); - apogee_lockout_value.setToolTipText("Time after boost while apogee detection is locked out"); + apogee_lockout_value.setToolTipText("Time after launch while apogee detection is locked out"); row++; /* Frequency */ diff --git a/doc/config-device.inc b/doc/config-device.inc index 99d5c008..0ca6afff 100644 --- a/doc/config-device.inc +++ b/doc/config-device.inc @@ -23,7 +23,7 @@ ifdef::altusmetrum[] ==== Apogee Lockout - Apogee lockout is the number of seconds after boost + Apogee lockout is the number of seconds after launch where the flight computer will not fire the apogee charge, even if the rocket appears to be at apogee. This is often called 'Mach Delay', as it is @@ -35,6 +35,12 @@ ifdef::altusmetrum[] pressure increase, and so this setting should be left at the default value of zero to disable it. + [WARNING] + Firmware versions older than 1.8.6 have a + bug which resets the time since launch to zero each + time a motor starts burning. Update firmware to get + the correct behavior. + endif::altusmetrum[] ifdef::radio[] diff --git a/doc/pyro-channels.inc b/doc/pyro-channels.inc index 68bbf910..ab5baef0 100644 --- a/doc/pyro-channels.inc +++ b/doc/pyro-channels.inc @@ -42,9 +42,13 @@ launch pad and initialize the system. of less than that value. ==== -Flight Time:: Time since boost was detected. Select a value and choose -whether to activate the pyro channel before or after that amount of -time. +Flight Time:: Time since launch. Select a value and choose whether to +activate the pyro channel before or after that amount of time. + +[WARNING] +Firmware versions older than 1.8.6 have a bug which resets the time +since launch to zero each time a motor starts burning. Update firmware +to get the correct behavior. Ascending:: A deprecated configuration value which was the same as setting Ascent rate > 0. Existing configurations using this will be diff --git a/src/kernel/ao_flight.c b/src/kernel/ao_flight.c index 7b3cb9fa..c2700d20 100644 --- a/src/kernel/ao_flight.c +++ b/src/kernel/ao_flight.c @@ -48,7 +48,8 @@ /* Main flight thread. */ __pdata enum ao_flight_state ao_flight_state; /* current flight state */ -__pdata uint16_t ao_boost_tick; /* time of launch detect */ +__pdata uint16_t ao_boost_tick; /* time of most recent boost detect */ +__pdata uint16_t ao_launch_tick; /* time of first boost detect */ __pdata uint16_t ao_motor_number; /* number of motors burned so far */ #if HAS_SENSOR_ERRORS @@ -199,7 +200,7 @@ ao_flight(void) ) { ao_flight_state = ao_flight_boost; - ao_boost_tick = ao_sample_tick; + ao_launch_tick = ao_boost_tick = ao_sample_tick; /* start logging data */ ao_log_start(); @@ -269,7 +270,7 @@ ao_flight(void) * number of seconds. */ if (ao_config.apogee_lockout) { - if ((int16_t) (ao_sample_tick - ao_boost_tick) < + if ((int16_t) (ao_sample_tick - ao_launch_tick) < AO_SEC_TO_TICKS(ao_config.apogee_lockout)) break; } diff --git a/src/kernel/ao_flight.h b/src/kernel/ao_flight.h index 6894fe59..005c7e84 100644 --- a/src/kernel/ao_flight.h +++ b/src/kernel/ao_flight.h @@ -40,6 +40,7 @@ enum ao_flight_state { extern __pdata enum ao_flight_state ao_flight_state; extern __pdata uint16_t ao_boost_tick; +extern __pdata uint16_t ao_launch_tick; extern __pdata uint16_t ao_motor_number; #if HAS_IMU || HAS_MMA655X diff --git a/src/kernel/ao_pyro.c b/src/kernel/ao_pyro.c index 3c872354..527112ac 100644 --- a/src/kernel/ao_pyro.c +++ b/src/kernel/ao_pyro.c @@ -160,14 +160,14 @@ ao_pyro_ready(struct ao_pyro *pyro) #endif case ao_pyro_time_less: - if ((int16_t) (ao_time() - ao_boost_tick) <= pyro->time_less) + if ((int16_t) (ao_time() - ao_launch_tick) <= pyro->time_less) continue; - DBG("time %d > %d\n", (int16_t)(ao_time() - ao_boost_tick), pyro->time_less); + DBG("time %d > %d\n", (int16_t)(ao_time() - ao_launch_tick), pyro->time_less); break; case ao_pyro_time_greater: - if ((int16_t) (ao_time() - ao_boost_tick) >= pyro->time_greater) + if ((int16_t) (ao_time() - ao_launch_tick) >= pyro->time_greater) continue; - DBG("time %d < %d\n", (int16_t)(ao_time() - ao_boost_tick), pyro->time_greater); + DBG("time %d < %d\n", (int16_t)(ao_time() - ao_launch_tick), pyro->time_greater); break; case ao_pyro_ascending: -- cgit v1.2.3 From 8830fbc99565f753c0ae1f3d9f4b079860c2634a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 5 Aug 2018 11:13:23 +0800 Subject: Update docs for 1.8.6 Signed-off-by: Keith Packard --- doc/Makefile | 1 + doc/altusmetrum-docinfo.xml | 14 ++++++++++++++ doc/easymini-release-notes.inc | 4 ++++ doc/release-notes-1.8.6.inc | 33 +++++++++++++++++++++++++++++++++ doc/release-notes.inc | 4 ++++ doc/telegps-release-notes.inc | 4 ++++ 6 files changed, 60 insertions(+) create mode 100644 doc/release-notes-1.8.6.inc (limited to 'doc') diff --git a/doc/Makefile b/doc/Makefile index efa7f9d3..3661a6d6 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -3,6 +3,7 @@ # RELNOTES_INC=\ + release-notes-1.8.6.inc \ release-notes-1.8.5.inc \ release-notes-1.8.4.inc \ release-notes-1.8.3.inc \ diff --git a/doc/altusmetrum-docinfo.xml b/doc/altusmetrum-docinfo.xml index 3ea79f8b..7b696b97 100644 --- a/doc/altusmetrum-docinfo.xml +++ b/doc/altusmetrum-docinfo.xml @@ -46,6 +46,20 @@ + + 1.8.6 + 6 Aug 2018 + + Various pyro channel configuration updates. + + + + 1.8.5 + 18 Mar 2018 + + Minor ground station software updates. + + 1.8.4 20 Dec 2017 diff --git a/doc/easymini-release-notes.inc b/doc/easymini-release-notes.inc index 2d289b12..425236ef 100644 --- a/doc/easymini-release-notes.inc +++ b/doc/easymini-release-notes.inc @@ -1,5 +1,9 @@ [appendix] == Release Notes + :leveloffset: 2 + include::release-notes-1.8.6.raw[] + + <<<< :leveloffset: 2 include::release-notes-1.8.5.raw[] diff --git a/doc/release-notes-1.8.6.inc b/doc/release-notes-1.8.6.inc new file mode 100644 index 00000000..1467977c --- /dev/null +++ b/doc/release-notes-1.8.6.inc @@ -0,0 +1,33 @@ += Release Notes for Version 1.8.6 +:toc!: +:doctype: article + + Version 1.8.6 + + == AltOS + + * Use maximum of 64 previous tilt values in pyro tilt tests + + * Eliminate 100m height requirement for coast detection + + * Change After Motor pyro check to be >= instead of == + + * Change Time since Boost to be Time since launch. + + == AltosUI, TeleGPS + + * Clarify pyro test phrasing + + * Remove ascending/descending from pyro config UI + + * Fix accel calibration in Antenna Down mode + + * Add mag sensor reporting for TeleMega v3 idle monitoring. + + * Fix radio parameter saving at 2400 bps telmetry rate. + + == MicroPeak + + * Report altimeter-recorded maximum height value + + diff --git a/doc/release-notes.inc b/doc/release-notes.inc index b7c7f5a7..693699df 100644 --- a/doc/release-notes.inc +++ b/doc/release-notes.inc @@ -1,5 +1,9 @@ [appendix] == Release Notes + :leveloffset: 2 + include::release-notes-1.8.6.raw[] + + <<<< :leveloffset: 2 include::release-notes-1.8.5.raw[] diff --git a/doc/telegps-release-notes.inc b/doc/telegps-release-notes.inc index f451c2c8..9c1353f8 100644 --- a/doc/telegps-release-notes.inc +++ b/doc/telegps-release-notes.inc @@ -1,6 +1,10 @@ [appendix] == Release Notes + :leveloffset: 2 + include::release-notes-1.8.6.raw[] + + <<<< :leveloffset: 2 include::release-notes-1.8.5.raw[] -- cgit v1.2.3