*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
#ifndef _AO_PINS_H_
#define _AO_PINS_H_
+#define HAS_RADIO 1
+#define DISABLE_LOG_SPACE 1
+#define AO_VALUE_32 0
+#define HAS_WIDE_GPS 0
+
#if defined(TELEMETRUM_V_1_0)
+ /* Discontinued and was never built with CC1111 chips needing this */
+ #define NEEDS_CC1111_CLOCK_HACK 0
#define HAS_FLIGHT 1
#define HAS_USB 1
#define HAS_BEEP 1
+ #define HAS_BEEP_CONFIG 0
#define HAS_GPS 1
#define HAS_SERIAL_1 1
#define HAS_ADC 1
- #define USE_SERIAL_STDIN 0
#define HAS_EEPROM 1
#define HAS_LOG 1
#define USE_INTERNAL_FLASH 0
#define IGNITE_ON_P0 0
#define PACKET_HAS_MASTER 0
#define PACKET_HAS_SLAVE 1
+ #define NOISY_ACCEL 1
#define HAS_COMPANION 1
#define COMPANION_CS_ON_P1 1
- #define COMPANION_CS_MASK 0x4 /* CS1 is P1_2 */
- #define COMPANION_CS P1_2
+ #define AO_COMPANION_CS_PORT P1
+ #define AO_COMPANION_CS_PIN 2
+ #define AO_COMPANION_CS P1_2
#define AO_LED_RED 1
#define LEDS_AVAILABLE (AO_LED_RED)
#define HAS_ACCEL 1
#define HAS_IGNITE 1
#define HAS_MONITOR 0
+ #define HAS_TELEMETRY 1
+ #define HAS_RADIO_RATE 0 /* not enough space for this */
+ #define HAS_MUTEX_TRY 0
+ #define HAS_TASK_INFO 0 /* not enough space for this either */
#endif
#if defined(TELEMETRUM_V_1_1)
+ /* Discontinued and was never built with CC1111 chips needing this */
+ #define NEEDS_CC1111_CLOCK_HACK 0
#define HAS_FLIGHT 1
#define HAS_USB 1
#define HAS_BEEP 1
+ #define HAS_BEEP_CONFIG 0
+ #define HAS_BATTERY_REPORT 1
#define HAS_GPS 1
#define HAS_SERIAL_1 1
- #define USE_SERIAL_STDIN 0
#define HAS_ADC 1
#define HAS_EEPROM 1
#define HAS_LOG 1
#define PACKET_HAS_SLAVE 1
#define HAS_COMPANION 1
- #define COMPANION_CS_ON_P1 1
- #define COMPANION_CS_MASK 0x4 /* CS1 is P1_2 */
- #define COMPANION_CS P1_2
+ #define AO_COMPANION_CS_PORT P1
+ #define AO_COMPANION_CS_PIN 2
+ #define AO_COMPANION_CS P1_2
#define AO_LED_RED 1
#define LEDS_AVAILABLE (AO_LED_RED)
#define HAS_ACCEL_REF 1
#define SPI_CS_ON_P1 1
#define SPI_CS_ON_P0 0
- #define M25_CS_MASK 0x02 /* CS0 is P1_1 */
+ #define AO_M25_SPI_CS_MASK 0x02 /* CS0 is P1_1 */
#define M25_MAX_CHIPS 1
#define HAS_ACCEL 1
#define HAS_IGNITE 1
#define HAS_MONITOR 0
+ #define HAS_TELEMETRY 1
+ #define HAS_RADIO_RATE 0 /* not enough space for this */
+ #define HAS_MUTEX_TRY 0
+#endif
+
+#if defined(TELEMETRUM_V_1_2)
+ /* Discontinued and was never built with CC1111 chips needing this */
+ #define NEEDS_CC1111_CLOCK_HACK 0
+ #define HAS_FLIGHT 1
+ #define HAS_USB 1
+ #define HAS_BEEP 1
+ #define HAS_BEEP_CONFIG 0
+ #define HAS_BATTERY_REPORT 1
+ #define HAS_GPS 1
+ #define HAS_SERIAL_1 1
+ #define HAS_ADC 1
+ #define HAS_EEPROM 1
+ #define HAS_LOG 1
+ #define USE_INTERNAL_FLASH 0
+ #define HAS_DBG 1
+ #define DBG_ON_P1 1
+ #define DBG_ON_P0 0
+ #define IGNITE_ON_P2 1
+ #define IGNITE_ON_P0 0
+ #define PACKET_HAS_MASTER 0
+ #define PACKET_HAS_SLAVE 1
+
+ #define HAS_COMPANION 1
+ #define AO_COMPANION_CS_PORT P1
+ #define AO_COMPANION_CS_PIN 2
+ #define AO_COMPANION_CS P1_2
+
+ #define AO_LED_RED 1
+ #define LEDS_AVAILABLE (AO_LED_RED)
+ #define HAS_EXTERNAL_TEMP 0
+ #define HAS_ACCEL_REF 1
+ #define SPI_CS_ON_P1 1
+ #define SPI_CS_ON_P0 0
+ #define AO_M25_SPI_CS_MASK 0x02 /* CS0 is P1_1 */
+ #define M25_MAX_CHIPS 1
+ #define HAS_ACCEL 1
+ #define HAS_IGNITE 1
+ #define HAS_MONITOR 0
+ #define HAS_TELEMETRY 1
+ #define HAS_RADIO_RATE 0 /* not enough space for this */
+ #define HAS_MUTEX_TRY 0
#endif
#if defined(TELEDONGLE_V_0_2)
#define HAS_USB 1
#define HAS_BEEP 0
#define HAS_SERIAL_1 0
- #define USE_SERIAL_STDIN 0
#define HAS_ADC 0
#define HAS_DBG 1
#define HAS_EEPROM 0
#define PACKET_HAS_SLAVE 0
#define AO_LED_RED 1
#define AO_LED_GREEN 2
+ #define AO_MONITOR_LED AO_LED_GREEN
#define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
#define SPI_CS_ON_P1 1
#define SPI_CS_ON_P0 0
#define HAS_IGNITE 0
#define HAS_MONITOR 1
+ #define LEGACY_MONITOR 1
#define HAS_RSSI 1
- #define HAS_AES 1
+ #define HAS_AES 0
+ #define HAS_TELEMETRY 0
+ #define AO_RADIO_REG_TEST 1
#endif
#if defined(TELEMINI_V_1_0)
+ /* Discontinued and was never built with CC1111 chips needing this */
+ #define NEEDS_CC1111_CLOCK_HACK 0
#define HAS_FLIGHT 1
#define HAS_USB 0
#define HAS_BEEP 0
#define HAS_GPS 0
#define HAS_SERIAL_1 0
- #define USE_SERIAL_STDIN 0
#define HAS_ADC 1
#define HAS_EEPROM 1
#define HAS_LOG 1
+ #define HAS_FORCE_FREQ 1
#define USE_INTERNAL_FLASH 1
#define HAS_DBG 0
#define IGNITE_ON_P2 0
#define HAS_ACCEL 0
#define HAS_IGNITE 1
#define HAS_MONITOR 0
+ #define HAS_TELEMETRY 1
+ #define HAS_RADIO_RATE 0 /* not enough space for this */
#endif
#if defined(TELENANO_V_0_1)
+ /* Discontinued and was never built with CC1111 chips needing this */
+ #define NEEDS_CC1111_CLOCK_HACK 0
#define HAS_FLIGHT 1
#define HAS_USB 0
#define HAS_BEEP 0
#define HAS_GPS 0
#define HAS_SERIAL_1 0
- #define USE_SERIAL_STDIN 0
#define HAS_ADC 1
#define HAS_EEPROM 1
#define HAS_LOG 1
#define HAS_ACCEL 0
#define HAS_IGNITE 0
#define HAS_MONITOR 0
+ #define HAS_TELEMETRY 1
+ #define HAS_RADIO_RATE 0 /* not enough space for this */
#endif
#if defined(TELEMETRUM_V_0_1)
+ /* Discontinued and was never built with CC1111 chips needing this */
+ #define NEEDS_CC1111_CLOCK_HACK 0
#define HAS_FLIGHT 1
#define HAS_USB 1
#define HAS_BEEP 1
+ #define HAS_BEEP_CONFIG 0
#define HAS_GPS 1
#define HAS_SERIAL_1 1
- #define USE_SERIAL_STDIN 0
#define HAS_ADC 1
#define HAS_DBG 0
#define HAS_EEPROM 1
#define HAS_ACCEL 1
#define HAS_IGNITE 1
#define HAS_MONITOR 0
+ #define HAS_TELEMETRY 1
+ #define HAS_RADIO_RATE 0 /* not enough space for this */
+ #define AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX ((uint32_t) 127 * (uint32_t) 1024)
#endif
#if defined(TELEDONGLE_V_0_1)
+ /* Discontinued and was never built with CC1111 chips needing this */
+ #define NEEDS_CC1111_CLOCK_HACK 0
#define HAS_FLIGHT 0
#define HAS_USB 1
#define HAS_BEEP 0
#define HAS_SERIAL_1 0
- #define USE_SERIAL_STDIN 0
#define HAS_ADC 0
#define HAS_DBG 0
#define HAS_EEPROM 0
#define PACKET_HAS_SLAVE 0
#define AO_LED_RED 2
#define AO_LED_GREEN 1
+ #define AO_MONITOR_LED AO_LED_GREEN
#define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
#define SPI_CS_ON_P1 0
#define SPI_CS_ON_P0 1
#define HAS_IGNITE 0
#define HAS_MONITOR 1
+ #define LEGACY_MONITOR 1
#define HAS_RSSI 1
- #define HAS_AES 1
+ #define HAS_AES 0
+ #define HAS_TELEMETRY 0
#endif
#if defined(TIDONGLE)
+ /* Discontinued and was never built with CC1111 chips needing this */
+ #define NEEDS_CC1111_CLOCK_HACK 0
#define HAS_FLIGHT 0
#define HAS_USB 1
#define HAS_BEEP 0
#define HAS_SERIAL_1 0
- #define USE_SERIAL_STDIN 0
#define HAS_ADC 0
#define HAS_DBG 1
#define HAS_EEPROM 0
#define PACKET_HAS_MASTER 1
#define PACKET_HAS_SLAVE 0
#define AO_LED_RED 2
+ #define AO_MONITOR_LED AO_LED_RED
#define LEDS_AVAILABLE (AO_LED_RED)
#define SPI_CS_ON_P1 0
#define SPI_CS_ON_P0 1
#define HAS_IGNITE 0
#define HAS_MONITOR 1
+ #define LEGACY_MONITOR 1
#define HAS_RSSI 1
- #define HAS_AES 1
+ #define HAS_AES 0
+ #define HAS_TELEMETRY 0
#endif
#if defined(TELEBT_V_0_0)
+ /* Discontinued and was never built with CC1111 chips needing this */
+ #define NEEDS_CC1111_CLOCK_HACK 0
#define HAS_FLIGHT 0
#define HAS_USB 1
#define HAS_BEEP 0
#define HAS_SERIAL_1 1
- #define USE_SERIAL_STDIN 1
+ #define USE_SERIAL_1_STDIN 1
+ #define DELAY_SERIAL_1_STDIN 1
#define HAS_ADC 0
#define HAS_DBG 1
#define HAS_EEPROM 0
#define PACKET_HAS_SLAVE 0
#define AO_LED_RED 2
#define AO_LED_GREEN 1
+ #define AO_MONITOR_LED AO_LED_RED
#define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
#define SPI_CS_ON_P1 1
#define SPI_CS_ON_P0 0
#define BT_LINK_PIN_INDEX 7
#define BT_LINK_PIN P2_1
#define HAS_MONITOR 1
+ #define LEGACY_MONITOR 1
#define HAS_RSSI 0
- #define HAS_AES 1
+ #define HAS_AES 0
+ #define HAS_TELEMETRY 0
+ #define AO_RADIO_REG_TEST 1
#endif
#if defined(TELEBT_V_0_1)
+ /* Discontinued and was never built with CC1111 chips needing this */
+ #define NEEDS_CC1111_CLOCK_HACK 0
#define HAS_FLIGHT 0
#define HAS_USB 1
#define HAS_BEEP 1
+ #define HAS_BEEP_CONFIG 0
#define HAS_SERIAL_1 1
#define HAS_SERIAL_1_ALT_1 1
#define HAS_SERIAL_1_ALT_2 0
#define HAS_SERIAL_1_HW_FLOW 1
- #define USE_SERIAL_STDIN 1
+ #define USE_SERIAL_1_STDIN 1
+ #define DELAY_SERIAL_1_STDIN 1
#define HAS_ADC 0
#define HAS_DBG 1
#define HAS_EEPROM 1
#define PACKET_HAS_SLAVE 0
#define AO_LED_RED 1
#define AO_LED_GREEN 2
+ #define AO_MONITOR_LED AO_LED_RED
#define LEDS_AVAILABLE (AO_LED_RED|AO_LED_GREEN)
#define SPI_CS_ON_P1 1
#define SPI_CS_ON_P0 0
- #define M25_CS_MASK 0x04 /* CS0 is P1_2 */
+ #define AO_M25_SPI_CS_MASK 0x04 /* CS0 is P1_2 */
#define M25_MAX_CHIPS 1
#define HAS_ACCEL 0
#define HAS_IGNITE 0
#define BT_LINK_PIN_INDEX 7
#define BT_LINK_PIN P1_7
#define HAS_MONITOR 1
+ #define LEGACY_MONITOR 1
#define HAS_RSSI 0
- #define HAS_AES 1
+ #define HAS_AES 0
+ #define HAS_TELEMETRY 0
+ #define AO_RADIO_REG_TEST 1
#endif
#if defined(TELELAUNCH_V_0_1)
+ /* Discontinued and was never built with CC1111 chips needing this */
+ #define NEEDS_CC1111_CLOCK_HACK 0
#define HAS_FLIGHT 0
#define HAS_USB 1
#define HAS_BEEP 1
#define HAS_GPS 0
#define HAS_SERIAL_1 1
- #define USE_SERIAL_STDIN 0
#define HAS_ADC 1
#define HAS_DBG 0
#define HAS_EEPROM 1
#define HAS_IGNITE 1
#define HAS_MONITOR 0
#define HAS_AES 1
+ #define HAS_TELEMETRY 0
#endif
#if DBG_ON_P1
#define SPI_CS_DIR P0DIR
#endif
+#define AO_M25_SPI_CS_PORT SPI_CS_PORT
+
#ifndef IGNITE_ON_P2
#error Please define IGNITE_ON_P2
#endif
#error Please define IGNITE_ON_P0
#endif
-#ifndef HAS_SERIAL_1
-#error Please define HAS_SERIAL_1
-#endif
-
-#ifndef USE_SERIAL_STDIN
-#error Please define USE_SERIAL_STDIN
-#endif
-
#ifndef HAS_ADC
#error Please define HAS_ADC
#endif
#endif /* HAS_ADC */
#if IGNITE_ON_P2
+#define AO_IGNITER_PORT P2
+#define AO_IGNITER_DROGUE_PORT AO_IGNITER_PORT
#define AO_IGNITER_DROGUE P2_3
#define AO_IGNITER_MAIN P2_4
#define AO_IGNITER_DIR P2DIR
#define AO_IGNITER_DROGUE_BIT (1 << 3)
#define AO_IGNITER_MAIN_BIT (1 << 4)
+#define AO_IGNITER_DROGUE_PIN 3
+#define AO_IGNITER_MAIN_PIN 4
#endif
#if IGNITE_ON_P0
+#define AO_IGNITER_PORT P0
#define AO_IGNITER_DROGUE P0_5
#define AO_IGNITER_MAIN P0_4
#define AO_IGNITER_DIR P0DIR
#define AO_IGNITER_DROGUE_BIT (1 << 5)
#define AO_IGNITER_MAIN_BIT (1 << 4)
+#define AO_IGNITER_DROGUE_PIN 5
+#define AO_IGNITER_MAIN_PIN 4
#endif
+#define AO_IGNITER_DROGUE_PORT AO_IGNITER_PORT
+#define AO_IGNITER_MAIN_PORT AO_IGNITER_PORT
+
/* test these values with real igniters */
#define AO_IGNITER_OPEN 1000
#define AO_IGNITER_CLOSED 7000
#define AO_IGNITER_FIRE_TIME AO_MS_TO_TICKS(50)
#define AO_IGNITER_CHARGE_TIME AO_MS_TO_TICKS(2000)
+struct ao_adc {
+ int16_t accel; /* accelerometer */
+ int16_t pres; /* pressure sensor */
+ int16_t temp; /* temperature sensor */
+ int16_t v_batt; /* battery voltage */
+ int16_t sense_d; /* drogue continuity sense */
+ int16_t sense_m; /* main continuity sense */
+#if HAS_ACCEL_REF
+ uint16_t accel_ref; /* acceleration reference */
+#endif
+};
+
+/*
+ * Voltage divider on ADC battery sampler
+ */
+#define AO_BATTERY_DIV_PLUS 5 /* 5k */
+#define AO_BATTERY_DIV_MINUS 10 /* 10k */
+
+/*
+ * Voltage divider on ADC igniter samplers
+ */
+#define AO_IGNITE_DIV_PLUS 100 /* 100k */
+#define AO_IGNITE_DIV_MINUS 27 /* 27k */
+
+/*
+ * ADC reference in decivolts
+ */
+#define AO_ADC_REFERENCE_DV 33
+
#endif /* _AO_PINS_H_ */