Merge pull request #8803 from azolyoung/add-speedybee-f7-target

add speedybee f7
This commit is contained in:
Michael Keller 2019-09-06 01:41:08 +12:00 committed by GitHub
commit ac5cf5a417
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 468 additions and 0 deletions

View File

@ -0,0 +1,25 @@
# Board - Speedy Bee F7 AIO
## Description
The Speedy Bee F7 AIO is an AIO flight controller that integrates PDB, Bluetooth chip, Barometer, 32MB OnBoard Flash (Used for BlackBox),
and users can adjust the parameters of the flight controller using the Speedy Bee App with an integrated Bluetooth chip.
### Hardware Features
* MCU: STM32F722
* IMU: ICM20689
* OSD: BetaFlight OSD w/ AT7456E chip
* BLE Module: inner connect to UART3 for remote setting with SpeedyBee App or other similar apps
* BlackBox: 32MB onboard dataflash
* Current Sensor: 200A(Scale 102)
* BetaFlight Camera Control Pad: Yes
* Power input: 3s - 6s Lipo
* Power output: 5V *5(Including BZ+), the maximum load current is 2.5A. 9V * 1, the maximum load current is 2.5A.
* ESC power output: 4 * VCC output
* UART: UART Pads * 4(UART1, UART2, UART4, UART5)
* RSSI input: RSSI input solder pad
* SmartPort: Use Softserial1 to support SmartPort
* I2C: Used for external Magnetometer, Sonar, etc.
* Buzzer: BZ+ and BZ- pad used for 5V Buzzer
* ESC signal: S1 - S5
* LED pin: Used for WS2812 LED
* Boot button: Used to easy enter DFU mode
* BetaFlight Target: SPEEDYBEEF7

View File

@ -0,0 +1,64 @@
/*
* This file is part of Cleanflight and Betaflight.
*
* Cleanflight and Betaflight are free software. You can redistribute
* this software and/or modify this software under the terms of the
* GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version.
*
* Cleanflight and Betaflight are distributed in the hope that they
* will be useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software.
*
* If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include "platform.h"
#ifdef USE_TARGET_CONFIG
#include "flight/mixer.h"
#include "osd/osd.h"
#include "io/serial.h"
#include "pg/pinio.h"
#include "pg/piniobox.h"
#include "pg/motor.h"
#include "target.h"
#include "config_helper.h"
#define BLUETOOTH_MSP_UART SERIAL_PORT_USART3
#define BLUETOOTH_MSP_BAUDRATE BAUD_19200
#define TELEMETRY_UART SERIAL_PORT_SOFTSERIAL1
static targetSerialPortFunction_t targetSerialPortFunction[] = {
{ TELEMETRY_UART, FUNCTION_TELEMETRY_SMARTPORT },
};
void targetConfiguration(void)
{
pinioConfigMutable()->config[0] = PINIO_CONFIG_OUT_INVERTED | PINIO_CONFIG_MODE_OUT_PP;
pinioBoxConfigMutable()->permanentId[0] = BOXARM;
serialPortConfig_t *bluetoothMspUART = serialFindPortConfiguration(BLUETOOTH_MSP_UART);
if (bluetoothMspUART) {
bluetoothMspUART->functionMask = FUNCTION_MSP;
bluetoothMspUART->msp_baudrateIndex = BLUETOOTH_MSP_BAUDRATE;
}
targetSerialPortFunctionConfig(targetSerialPortFunction, ARRAYLEN(targetSerialPortFunction));
osdConfigMutable()->item_pos[OSD_MAIN_BATT_VOLTAGE] = OSD_POS(1, 12) | OSD_PROFILE_1_FLAG;
osdConfigMutable()->item_pos[OSD_ALTITUDE] = OSD_POS(1, 11) | OSD_PROFILE_1_FLAG;
motorConfigMutable()->dev.motorPwmProtocol = PWM_TYPE_DSHOT1200;
}
#endif

View File

@ -0,0 +1,45 @@
/*
* This file is part of Cleanflight and Betaflight.
*
* Cleanflight and Betaflight are free software. You can redistribute
* this software and/or modify this software under the terms of the
* GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version.
*
* Cleanflight and Betaflight are distributed in the hope that they
* will be useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software.
*
* If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include "platform.h"
#include "drivers/io.h"
#include "drivers/dma.h"
#include "drivers/timer.h"
#include "drivers/timer_def.h"
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM5, CH4, PA3, TIM_USE_PPM, 0, 0), // PPM
DEF_TIM(TIM8, CH1, PC6, TIM_USE_MOTOR, 0, 0), // S1
DEF_TIM(TIM8, CH2, PC7, TIM_USE_MOTOR, 0, 1), // S2
DEF_TIM(TIM8, CH3, PC8, TIM_USE_MOTOR, 0, 1), // S3
DEF_TIM(TIM8, CH4, PC9, TIM_USE_MOTOR, 0, 0), // S4
DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0, 0), // S5
DEF_TIM(TIM3, CH4, PB1, TIM_USE_MOTOR, 0, 0), // S6
DEF_TIM(TIM4, CH2, PB7, TIM_USE_LED, 0, 0), // LED
DEF_TIM(TIM4, CH1, PB6, TIM_USE_CAMERA_CONTROL, 0, 0), // BF Camera Control
DEF_TIM(TIM3, CH3, PB0, TIM_USE_PWM, 0, 0) // Soft serial1 TX
};

View File

@ -0,0 +1,165 @@
/*
* This file is part of Cleanflight and Betaflight.
*
* Cleanflight and Betaflight are free software. You can redistribute
* this software and/or modify this software under the terms of the
* GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version.
*
* Cleanflight and Betaflight are distributed in the hope that they
* will be useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software.
*
* If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define TARGET_BOARD_IDENTIFIER "SBF7"
#define USBD_PRODUCT_STRING "SpeedyBeeF7"
#define USE_TARGET_CONFIG
#define LED0_PIN PC14
#define USE_BEEPER
#define BEEPER_PIN PC13
#define BEEPER_INVERTED
#define ENABLE_DSHOT_DMAR true
// *************** Gyro & ACC **********************
#define USE_SPI
#define USE_SPI_DEVICE_1
#define SPI1_SCK_PIN PA5
#define SPI1_MISO_PIN PA6
#define SPI1_MOSI_PIN PA7
#define GYRO_1_CS_PIN PA4
#define GYRO_1_SPI_INSTANCE SPI1
#define USE_EXTI
#define USE_GYRO_EXTI
#define GYRO_1_EXTI_PIN PC4
#define USE_MPU_DATA_READY_SIGNAL
#define USE_GYRO
#define USE_GYRO_SPI_ICM20689
#define USE_GYRO_SPI_MPU6000
#define USE_ACC
#define USE_ACC_SPI_ICM20689
#define USE_ACC_SPI_MPU6000
#define USE_MAG
#define USE_MAG_HMC5883
#define USE_MAG_QMC5883
#define USE_MAG_LIS3MDL
// *************** Baro **************************
#define USE_I2C
#define USE_I2C_DEVICE_1
#define I2C1_SCL PB8
#define I2C1_SDA PB9
#define BARO_I2C_INSTANCE (I2CDEV_1)
#define USE_I2C_DEVICE_2
#define I2C_DEVICE (I2CDEV_2)
#define I2C2_SCL PB10
#define I2C2_SDA PB11
#define USE_BARO
#define USE_BARO_BMP280
#define DEFAULT_BARO_BMP280
// *************** Flash **************************
#define USE_SPI_DEVICE_3
#define SPI3_SCK_PIN PB3
#define SPI3_MISO_PIN PB4
#define SPI3_MOSI_PIN PB5
#define USE_FLASHFS
#define USE_FLASH_M25P16
#define FLASH_CS_PIN PC0
#define FLASH_SPI_INSTANCE SPI3
#define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT
// *************** OSD *****************************
#define USE_SPI_DEVICE_2
#define SPI2_SCK_PIN PB13
#define SPI2_MISO_PIN PB14
#define SPI2_MOSI_PIN PB15
#define USE_MAX7456
#define MAX7456_SPI_INSTANCE SPI2
#define MAX7456_SPI_CS_PIN PB12
// *************** UART *****************************
#define USE_VCP
#define USB_DETECT_PIN PC15
#define USE_USB_DETECT
#define USE_UART1
#define UART1_RX_PIN PA10
#define UART1_TX_PIN PA9
#define USE_UART2
#define UART2_RX_PIN PA3
#define UART2_TX_PIN PA2
#define USE_UART3
#define UART3_RX_PIN PC11
#define UART3_TX_PIN PC10
#define USE_UART4
#define UART4_RX_PIN PA1
#define UART4_TX_PIN PA0
#define USE_UART5
#define UART5_RX_PIN PD2
#define UART5_TX_PIN PC12
#define USE_SOFTSERIAL1
#define USE_SOFTSERIAL2
#define SOFTSERIAL1_TX_PIN PB0
#define SERIAL_PORT_COUNT 8
#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
#define SERIALRX_PROVIDER SERIALRX_SBUS
#define SERIALRX_UART SERIAL_PORT_USART2
// *************** ADC *****************************
#define USE_ADC
#define ADC_INSTANCE ADC1
#define ADC1_DMA_OPT 0
#define CURRENT_METER_ADC_PIN PC1
#define VBAT_ADC_PIN PC2
#define RSSI_ADC_PIN PC3
#define DEFAULT_FEATURES (FEATURE_OSD | FEATURE_TELEMETRY | FEATURE_SOFTSERIAL)
#define DEFAULT_VOLTAGE_METER_SOURCE VOLTAGE_METER_ADC
#define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC
#define CURRENT_METER_SCALE_DEFAULT 102
#define USE_ESCSERIAL
#define ESCSERIAL_TIMER_TX_PIN PA3
#define TARGET_IO_PORTA 0xffff
#define TARGET_IO_PORTB 0xffff
#define TARGET_IO_PORTC 0xffff
#define TARGET_IO_PORTD (BIT(2))
// *************** activate/deactivate Bluetooth When disarmed/armed using PINIO_BOX *****************************
#define PINIO1_PIN PA15
#define USABLE_TIMER_CHANNEL_COUNT 10
#define USED_TIMERS (TIM_N(1)|TIM_N(3)|TIM_N(4)|TIM_N(5)|TIM_N(8))

View File

@ -0,0 +1,13 @@
F7X2RE_TARGETS += $(TARGET)
FEATURES += VCP ONBOARDFLASH
TARGET_SRC = \
drivers/accgyro/accgyro_spi_mpu6000.c \
drivers/accgyro/accgyro_spi_icm20689.c \
drivers/barometer/barometer_bmp085.c \
drivers/barometer/barometer_bmp280.c \
drivers/barometer/barometer_ms5611.c \
drivers/compass/compass_hmc5883l.c \
drivers/compass/compass_qmc5883l.c \
drivers/compass/compass_lis3mdl.c \
drivers/max7456.c

View File

@ -0,0 +1,156 @@
# Betaflight / STM32F7X2 (S7X2) 4.1.0 Aug 19 2019 / 20:36:39 (c961c6c55) MSP API: 1.42
board_name SPEEDYBEEF7
manufacturer_id SPBE
# resources
resource BEEPER 1 C13
resource MOTOR 1 C06
resource MOTOR 2 C07
resource MOTOR 3 C08
resource MOTOR 4 C09
resource MOTOR 5 A08
resource MOTOR 6 B01
resource PPM 1 A03
resource PWM 1 B00
resource LED_STRIP 1 B07
resource SERIAL_TX 1 A09
resource SERIAL_TX 2 A02
resource SERIAL_TX 3 C10
resource SERIAL_TX 4 A00
resource SERIAL_TX 5 C12
resource SERIAL_TX 11 B00
resource SERIAL_RX 1 A10
resource SERIAL_RX 2 A03
resource SERIAL_RX 3 C11
resource SERIAL_RX 4 A01
resource SERIAL_RX 5 D02
resource I2C_SCL 1 B08
resource I2C_SCL 2 B10
resource I2C_SDA 1 B09
resource I2C_SDA 2 B11
resource LED 1 C14
resource SPI_SCK 1 A05
resource SPI_SCK 2 B13
resource SPI_SCK 3 B03
resource SPI_MISO 1 A06
resource SPI_MISO 2 B14
resource SPI_MISO 3 B04
resource SPI_MOSI 1 A07
resource SPI_MOSI 2 B15
resource SPI_MOSI 3 B05
resource CAMERA_CONTROL 1 B06
resource ADC_BATT 1 C02
resource ADC_RSSI 1 C03
resource ADC_CURR 1 C01
resource PINIO 1 A15
resource FLASH_CS 1 C00
resource OSD_CS 1 B12
resource GYRO_EXTI 1 C04
resource GYRO_CS 1 A04
resource USB_DETECT 1 C15
# timer
timer A03 AF2
# pin A03: TIM5 CH4 (AF2)
timer C06 AF3
# pin C06: TIM8 CH1 (AF3)
timer C07 AF3
# pin C07: TIM8 CH2 (AF3)
timer C08 AF3
# pin C08: TIM8 CH3 (AF3)
timer C09 AF3
# pin C09: TIM8 CH4 (AF3)
timer A08 AF1
# pin A08: TIM1 CH1 (AF1)
timer B01 AF2
# pin B01: TIM3 CH4 (AF2)
timer B07 AF2
# pin B07: TIM4 CH2 (AF2)
timer B06 AF2
# pin B06: TIM4 CH1 (AF2)
timer B00 AF2
# pin B00: TIM3 CH3 (AF2)
# dma
dma ADC 1 0
# ADC 1: DMA2 Stream 0 Channel 0
dma pin A03 0
# pin A03: DMA1 Stream 1 Channel 6
dma pin C06 0
# pin C06: DMA2 Stream 2 Channel 0
dma pin C07 1
# pin C07: DMA2 Stream 3 Channel 7
dma pin C08 1
# pin C08: DMA2 Stream 4 Channel 7
dma pin C09 0
# pin C09: DMA2 Stream 7 Channel 7
dma pin A08 0
# pin A08: DMA2 Stream 6 Channel 0
dma pin B01 0
# pin B01: DMA1 Stream 2 Channel 5
dma pin B07 0
# pin B07: DMA1 Stream 3 Channel 2
dma pin B06 0
# pin B06: DMA1 Stream 0 Channel 2
dma pin B00 0
# pin B00: DMA1 Stream 7 Channel 5
# feature
feature -RX_PARALLEL_PWM
feature RX_SERIAL
feature SOFTSERIAL
feature OSD
# beacon
beacon RX_LOST
beacon RX_SET
# serial
serial 0 64 115200 57600 0 115200
serial 2 1 19200 57600 0 115200
serial 30 32 115200 57600 0 115200
# master
set mag_bustype = I2C
set mag_i2c_device = 2
set baro_bustype = I2C
set baro_i2c_device = 1
set serialrx_provider = SBUS
set blackbox_device = SPIFLASH
set dshot_burst = ON
set motor_pwm_protocol = DSHOT1200
set current_meter = ADC
set battery_meter = ADC
set ibata_scale = 102
set beeper_inversion = ON
set beeper_od = OFF
set beeper_dshot_beacon_tone = 5
set pid_process_denom = 1
set osd_vbat_pos = 2337
set osd_altitude_pos = 2305
set max7456_spi_bus = 2
set dashboard_i2c_bus = 2
set flash_spi_bus = 3
set gyro_1_bustype = SPI
set gyro_1_spibus = 1
profile 0
profile 1
profile 2
rateprofile 0
rateprofile 1
rateprofile 2
rateprofile 3
rateprofile 4
rateprofile 5
#