#define GROUND_AVG (1 << GROUND_AVG_SHIFT)
/* Pressure change (in Pa) to detect boost */
-#define BOOST_DETECT 48 /* 4m at sea level, 4.8m at 2000m */
+#define BOOST_DETECT 120 /* 10m at sea level, 12m at 2000m */
+
+/* Wait after power on before doing anything to give the user time to assemble the rocket */
+#define BOOST_DELAY AO_SEC_TO_TICKS(30)
/* Pressure change (in Pa) to detect landing */
#define LAND_DETECT 12 /* 1m at sea level, 1.2m at 2000m */
ao_log_micro_dump();
#endif
+ ao_delay(BOOST_DELAY);
/* Wait for motion, averaging values to get ground pressure */
time = ao_time();
ao_pa_get();
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;
- if (pa_diff < 0)
- pa_diff = -pa_diff;
/* Check for a significant pressure change */
if (pa_diff > (BOOST_DETECT << FILTER_SHIFT))
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