#define HAS_EEPROM 1
#define USE_INTERNAL_FLASH 0
-#define USE_EEPROM_CONFIG 1
-#define USE_STORAGE_CONFIG 0
+#define USE_EEPROM_CONFIG 0
+#define USE_STORAGE_CONFIG 1
#define HAS_USB 1
#define USE_USB_STDIO 1
-#define HAS_BEEP 1
#define HAS_BATTERY_REPORT 1
#define BEEPER_CHANNEL 4
#define BEEPER_TIMER 3
#define BEEPER_PORT (&samd21_port_a)
#define BEEPER_PIN 16
#define HAS_RADIO 1
+#define HAS_RADIO_10MW 1
#define HAS_TELEMETRY 1
#define HAS_APRS 1
#define HAS_COMPANION 1
-#define HAS_SPI_1 1
-#define SPI_1_PA5_PA6_PA7 1 /* Barometer */
-#define SPI_1_PB3_PB4_PB5 1 /* Accelerometer */
-#define SPI_1_PE13_PE14_PE15 0
-#define SPI_1_OSPEEDR STM_OSPEEDR_10MHz
-
-#define HAS_SPI_2 1
-#define SPI_2_PB13_PB14_PB15 1 /* Flash, Companion, Radio */
-#define SPI_2_PD1_PD3_PD4 0
-#define SPI_2_OSPEEDR STM_OSPEEDR_10MHz
+#define HAS_SPI_0 1
+#define HAS_SPI_3 1
+#define HAS_SPI_5 1
#define PACKET_HAS_SLAVE 1
#define PACKET_HAS_MASTER 0
#define LOW_LEVEL_DEBUG 0
-#define LED_PORT (&samd21_port_b)
-#define LED_PIN_RED 10
-#define LED_PIN_GREEN 11
-#define AO_LED_RED (1 << LED_PIN_RED)
-#define AO_LED_GREEN (1 << LED_PIN_GREEN)
-
-#define LEDS_AVAILABLE (AO_LED_RED | AO_LED_GREEN)
+#define HAS_LED 1
+#define LED_0_PORT (&samd21_port_b)
+#define LED_0_PIN 10
+#define LED_1_PORT (&samd21_port_b)
+#define LED_1_PIN 11
+#define AO_LED_RED (1 << 0)
+#define AO_LED_GREEN (1 << 1)
#define HAS_GPS 1
#define HAS_FLIGHT 1
#define HAS_ADC_TEMP 1
#define HAS_LOG 1
+/*
+ * Beeper
+ */
+
+#define HAS_BEEP 1
+/* Beep on PA16 function E TCC2.0 */
+
+#define AO_BEEP_TCC (&samd21_tcc2)
+#define AO_BEEP_TCC_APBC_MASK SAMD21_PM_APBCMASK_TCC2
+#define AO_BEEP_PORT (&samd21_port_a)
+#define AO_BEEP_PIN (16)
+#define AO_BEEP_FUNC SAMD21_PORT_PMUX_FUNC_E
+
/*
* Igniter
*/
(p)->adc.sense_a, (p)->adc.sense_m, \
(p)->adc.v_batt);
-#define AO_ADC_SENSE_DROGUE 1
+#define AO_ADC_SENSE_DROGUE 18
#define AO_ADC_SENSE_DROGUE_PORT (&samd21_port_a)
-#define AO_ADC_SENSE_DROGUE_PIN 10
+#define AO_ADC_SENSE_DROGUE_PIN 10
-#define AO_ADC_SENSE_MAIN 1
-#define AO_ADC_SENSE_MAIN_PORT (&samd21_port_a)
-#define AO_ADC_SENSE_MAIN_PIN 11
+#define AO_ADC_SENSE_MAIN 19
+#define AO_ADC_SENSE_MAIN_PORT (&samd21_port_a)
+#define AO_ADC_SENSE_MAIN_PIN 11
-#define AO_ADC_V_BATT 8
-#define AO_ADC_V_BATT_PORT (&samd21_port_a)
-#define AO_ADC_V_BATT_PIN 9
+#define AO_ADC_V_BATT 17
+#define AO_ADC_V_BATT_PORT (&samd21_port_a)
+#define AO_ADC_V_BATT_PIN 9
-#define AO_ADC_TEMP 16
+#define AO_ADC_TEMP SAMD21_ADC_INPUTCTRL_MUXPOS_TEMP
-#define AO_NUM_ADC_PIN 3
+#define AO_NUM_ADC_PIN 3
#define AO_ADC_PIN0_PORT AO_ADC_SENSE_DROGUE_PORT
#define AO_ADC_PIN0_PIN AO_ADC_SENSE_DROGUE_PIN
#define AO_NUM_ADC (AO_NUM_ADC_PIN + 1)
-#define AO_ADC_SQ1 AO_ADC_SENSE_DROGUE
-#define AO_ADC_SQ2 AO_ADC_SENSE_MAIN
-#define AO_ADC_SQ3 AO_ADC_V_BATT
-#define AO_ADC_SQ4 AO_ADC_TEMP
+#define AO_ADC_SQ0 AO_ADC_SENSE_DROGUE
+#define AO_ADC_SQ1 AO_ADC_SENSE_MAIN
+#define AO_ADC_SQ2 AO_ADC_V_BATT
+#define AO_ADC_SQ3 AO_ADC_TEMP
/*
* Voltage divider on ADC battery sampler
*/
#define AO_SERIAL_SPEED_UBLOX AO_SERIAL_SPEED_9600
+#define AO_UBLOX_VERSION 10
+
+#define HAS_SERIAL_1 1
+#define USE_SERIAL_1_STDIN 0
+#define SERIAL_1_PA00_PA01 1
-#define ao_gps_getchar ao_serial3_getchar
-#define ao_gps_putchar ao_serial3_putchar
-#define ao_gps_set_speed ao_serial3_set_speed
-#define ao_gps_fifo (ao_stm_usart3.rx_fifo)
+#define ao_gps_getchar ao_serial1_getchar
+#define ao_gps_putchar ao_serial1_putchar
+#define ao_gps_set_speed ao_serial1_set_speed
+#define ao_gps_fifo (ao_samd21_usart1.rx_fifo)
/*
* Pressure sensor settings
*/
#define HAS_MS5607 1
#define HAS_MS5611 0
-#define AO_MS5607_PRIVATE_PINS 1
+#define AO_MS5607_PRIVATE_PINS 0
#define AO_MS5607_CS_PORT (&samd21_port_a)
#define AO_MS5607_CS_PIN 21
-#define AO_MS5607_CS_MASK (1 << AO_MS5607_CS)
#define AO_MS5607_MISO_PORT (&samd21_port_a)
#define AO_MS5607_MISO_PIN 20
+#define AO_MS5607_SPI_INDEX AO_SPI_3_PA22_PA23_PA20
/*
* SPI Flash memory
#define M25_MAX_CHIPS 1
#define AO_M25_SPI_CS_PORT (&samd21_port_a)
-#define AO_M25_SPI_CS_MASK (1 << 8)
+#define AO_M25_SPI_CS_MASK (1 << 27)
+#define AO_M25_SPI_BUS AO_SPI_5_PB22_PB23_PB03
+
/*
* Radio (cc1200)
#define AO_CC1200_SPI_CS_PORT (&samd21_port_a)
#define AO_CC1200_SPI_CS_PIN 7
+#define AO_CC1200_SPI_BUS AO_SPI_5_PB22_PB23_PB03
#define AO_CC1200_INT_PORT (&samd21_port_b)
#define AO_CC1200_INT_PIN (8)
#define HAS_ADXL375 1
#define AO_ADXL375_CS_PORT (&samd21_port_a)
#define AO_ADXL375_CS_PIN 8
+#define AO_ADXL375_SPI_INDEX (AO_SPI_0_PA04_PA05_PA06 | AO_SPI_MODE_3)
#define AO_ADXL375_AXIS x
#define AO_ADXL375_INVERT 1
#define AO_COMPANION_CS_PORT (&samd21_port_a)
#define AO_COMPANION_CS_PIN (13)
+#define AO_COMPANION_SPI_BUS AO_SPI_5_PB22_PB23_PB03
/*
* Monitor