# hw definition file for processing by chibios_pins.py
# hardware repository: https://github.com/ARK-Electronics/ARK_CANNODE

# MCU class and specific type
# note: the device is STM32F412CE, not all F412 pins are available
MCU STM32F4xx STM32F412Rx

# board ID for firmware load
APJ_BOARD_ID 83

env AP_PERIPH 1

# crystal frequency
OSCILLATOR_HZ 8000000

# ChibiOS system timer
STM32_ST_USE_TIMER 5

FLASH_RESERVE_START_KB 0
# two sectors for bootloader, two for storage
FLASH_BOOTLOADER_LOAD_KB 64

# 1Mb flash
FLASH_SIZE_KB 1024

# order of UARTs
SERIAL_ORDER USART1 USART2

# USART1 GPS
PA15 USART1_TX USART1
PB3 USART1_RX USART1

# USART2 in debug connector
PA2 USART2_TX USART2
PA3 USART2_RX USART2

# LEDs
PA8  LED_R1 OUTPUT OPENDRAIN HIGH GPIO(0)
PA9  LED_G1 OUTPUT OPENDRAIN LOW GPIO(1)
PA10 LED_B1 OUTPUT OPENDRAIN LOW GPIO(2)

define HAL_GPIO_A_LED_PIN 0
define HAL_GPIO_B_LED_PIN 1
define HAL_GPIO_C_LED_PIN 2

define HAL_GPIO_LED_ON  0
define HAL_GPIO_LED_OFF 1

# use pixracer style 3-LED indicators
define HAL_HAVE_PIXRACER_LED

# CAN bus
PA11 CAN1_RX CAN1
PA12 CAN1_TX CAN1
PC14 GPIO_CAN1_SILENT OUTPUT PUSHPULL SPEED_LOW LOW
PC15 GPIO_CAN1_TERM OUTPUT PUSHPULL SPEED_LOW LOW

# pins for SWD debugging with a STlink or black-magic probe.
PA13 JTMS-SWDIO SWD
PA14 JTCK-SWCLK SWD

# CS and DRDY
PA4 IMU1_CS CS
PB12 EXT_CS CS
PB2 MPU_DRDY INPUT

# store parameters in pages 2 and 3
STORAGE_FLASH_PAGE 2
define HAL_STORAGE_SIZE 8192

define CAN_APP_NODE_NAME "org.ardupilot.ARK_CANNODE"