# hardware setup for V2450, based around FMUv3 but no IO MCU and # custom config options for ArduCopter # start with fmuv3 base port include ../fmuv3/hwdef.dat # remove some unnecessary features inherited from fmuv3 undef UART8 undef UART8_TX undef UART8_RX undef USART3 undef USART3_TX undef USART3_RX undef CAN1 undef CAN1_RX undef CAN1_TX undef CAN2 undef CAN2_RX undef CAN2_TX undef IOMCU_UART undef AP_FEATURE_SBUS_OUT undef HAL_OS_FATFS_IO undef AP_FEATURE_RTSCTS undef HAL_WITH_RAMTRON undef IOMCU_UART undef SDIO # short board name override (13 chars) to match original max length; can't change because name is used for transmitter bind CRC define CHIBIOS_SHORT_BOARD_NAME "skyviper-v245" SERIAL_ORDER OTG1 USART2 EMPTY UART4 # enable AP_Radio support define HAL_RCINPUT_WITH_AP_RADIO 1 define AP_RADIO_BACKEND_DEFAULT_ENABLED 0 define AP_RADIO_CC2500_ENABLED 1 define AP_RADIO_CYRF6936_ENABLED 1 define HAL_GPIO_RADIO_RESET 1 // PB0 GPIO from FMU3 # setup for radio IRQ on PD15 undef PD15 PD15 MPU_DRDY INPUT GPIO(100) define HAL_GPIO_RADIO_IRQ 100 # setup defines for ArduCopter config define TOY_MODE_ENABLED ENABLED define ARMING_DELAY_SEC 0 define LAND_START_ALT 700 define LAND_DETECTOR_ACCEL_MAX 2.0f # support cypress and cc2500 radios SPIDEV cypress SPI2 DEVID11 FRAM_CS MODE0 2*MHZ 2*MHZ SPIDEV cc2500 SPI2 DEVID12 FRAM_CS MODE0 4*MHZ 4*MHZ SPIDEV pixartflow SPI4 DEVID13 MPU_EXT_CS MODE3 2*MHZ 2*MHZ # SPI2 for the cypress needs exclusive access or we will end up with # lost packets DMA_PRIORITY SPI2_* SPI* ADC* DMA_NOSHARE SPI2_* undef PA1 PA1 UART4_RX UART4 NODMA # use flash storage STORAGE_FLASH_PAGE 22 # the web UI uses an abin file for firmware uploads env BUILD_ABIN True # Disable un-needed hardware drivers define AP_AIRSPEED_ENABLED 0 define AP_BEACON_ENABLED 0 define AP_OPTICALFLOW_ENABLED 0 define AP_FRSKY_TELEM_ENABLED 0 define AP_BEACON_ENABLED 0 define HAL_ADSB_SAGETECH_ENABLED 0 define HAL_ADSB_UAVIONIX_MAVLINK_ENABLED 0 define AP_AIS_ENABLED 0 define AP_BATTERY_BACKEND_DEFAULT_ENABLED 0 define AP_BATTERY_ANALOG_ENABLED 1 define HAL_CRSF_TELEM_ENABLED 0 define HAL_EFI_ENABLED 0 define HAL_EXTERNAL_AHRS_ENABLED 0 define HAL_GENERATOR_ENABLED 0 define HAL_HOTT_TELEM_ENABLED 0 define HAL_MOUNT_ENABLED 0 define HAL_MSP_SENSORS_ENABLED 0 define HAL_NMEA_OUTPUT_ENABLED 0 define HAL_PARACHUTE_ENABLED 0 define HAL_PICCOLO_CAN_ENABLE 0 define HAL_RUNCAM_ENABLED 0 define AP_SMARTAUDIO_ENABLED 0 define HAL_SPEKTRUM_TELEM_ENABLED 0 define HAL_SPRAYER_ENABLED 0 define HAL_WITH_ESC_TELEM 0 define AP_LANDINGGEAR_ENABLED 0 define MODE_TURTLE_ENABLED 0 define AP_ICENGINE_ENABLED 0 define HAL_DISPLAY_ENABLED 0 # serially-attached actuators aren't relevant on SkyViper: define AP_FETTEC_ONEWIRE_ENABLED 0 define AP_ROBOTISSERVO_ENABLED 0 define AP_VOLZ_ENABLED 0 define HAL_SUPPORT_RCOUT_SERIAL 0 define HAL_TORQEEDO_ENABLED 0 # the SkyViper only has a single Baro: define AP_BARO_BACKEND_DEFAULT_ENABLED 0 define AP_BARO_ICM20789_ENABLED 1 # SkyViper has only one physical GPS but can also take from mavlink: define AP_GPS_BACKEND_DEFAULT_ENABLED 0 define AP_GPS_UBLOX_ENABLED 1 define AP_GPS_MAV_ENABLED 1 define GPS_MOVING_BASELINE 0 define GPS_MAX_RECEIVERS 1 # removes blended support # enable only the QUAD frame define AP_MOTORS_FRAME_DEFAULT_ENABLED 0 define AP_MOTORS_FRAME_QUAD_ENABLED 1 # SkyViper isn't going to sprout new compasses: define COMPASS_MAX_SENSORS 1 define AP_COMPASS_BACKEND_DEFAULT_ENABLED 0 define AP_COMPASS_BMM150_ENABLED 1 # avoid trying to detect BMM150 backends; the one compass is #specifed as part of PCNC1: define AP_COMPASS_BMM150_DETECT_BACKENDS_ENABLED 0 define BARO_MAX_INSTANCES 1 define INS_MAX_INSTANCES 1 # SkyViper doesn't have any rangefinder, but might get mavlink? define AP_RANGEFINDER_BACKEND_DEFAULT_ENABLED 0 define AP_RANGEFINDER_MAVLINK_ENABLED 1 # SkyViper doesn't have RPM sensors: define AP_RPM_ENABLED 0 # SkyViper doesn't have a gripper: define AP_GRIPPER_ENABLED 0 # SkyViper doesn't have serially-connected LEDs: define AP_SERIALLED_ENABLED 0 # SkyViper has a very limited set of blinkenlights define AP_NOTIFY_NCP5623_ENABLED 0 define AP_NOTIFY_PCA9685_ENABLED 0 define AP_NOTIFY_TOSHIBALED_ENABLED 0 undef AP_NOTIFY_OREOLED_ENABLED define AP_NOTIFY_OREOLED_ENABLED 0 define HAL_MAVLINK_INTERVALS_FROM_FILES_ENABLED 0 define AP_INERTIALSENSOR_BATCHSAMPLER_ENABLED 0 # SkyViper really doesn't need advanced failsafe features: define AP_ADVANCEDFAILSAFE_ENABLED 0 // EKF3 features: define EK3_FEATURE_EXTERNAL_NAV 0 define EK3_FEATURE_BODY_ODOM 0 // video on SkyViper is via the Sonix define AP_VIDEOTX_ENABLED 0 // good luck fitting a winch onto SkyViper: define AP_WINCH_ENABLED 0 define AP_CAMERA_BACKEND_DEFAULT_ENABLED 0 define AP_CAMERA_MAVLINK_ENABLED 1 # SkyViper uses AP_Radio, which does its own RC protocol decoding: define AP_RCPROTOCOL_ENABLED 0 // few prelcnad backends are applicable define AC_PRECLAND_BACKEND_DEFAULT_ENABLED 0 define AC_PRECLAND_COMPANION_ENABLED 1 // no proximity sensors are applicable: define AP_PROXIMITY_BACKEND_DEFAULT_ENABLED 0 define AP_PROXIMITY_MAV_ENABLED 1 # can't fit visual odometry cameras on! define AP_VISUALODOM_BACKEND_DEFAULT_ENABLED 0 define AP_VISUALODOM_MAV_ENABLED 1 // no OSD on SkyViper define OSD_ENABLED 0 define OSD_PARAM_ENABLED 0 // no MSP: define HAL_WITH_MSP_DISPLAYPORT 0 define HAL_MSP_ENABLED 0 // no UCP ADSB sensors: define HAL_ADSB_UCP_ENABLED 0 // no auxiliary temperature sensors: define AP_TEMPERATURE_SENSOR_ENABLED 0 // no LTM telemetry define AP_LTM_TELEM_ENABLED 0 // no buttons on SkyViper: define HAL_BUTTON_ENABLED 0 // disable scripting on SkyViper (should we enable this?) define AP_SCRIPTING_ENABLED 0 // SkyViper does not have a second battery.... define AP_BATT_MONITOR_MAX_INSTANCES 1 define AP_MAVLINK_BATTERY2_ENABLED 0 # SkyViper doesn't use the Plane landing library: define HAL_LANDING_DEEPSTALL_ENABLED 0 # bootloader embedding / bootloader flashing not available define AP_BOOTLOADER_FLASHING_ENABLED 0 AUTOBUILD_TARGETS Copter