Month of Robots

Enter Your Project for a chance to win robot prizes for your robot builds and a $200 shopping cart!  The Birthday Special: Robot Prizes for Robot Projects!

Back to The Project14 homepage

Project14 Home
Monthly Themes
Monthly Theme Poll

 

I have been part of RC hobby for many years, flying RC planes to start with, and now mostly flying racing FPV (first person view) quadcopter. So, when I saw the "Month of Robots" theme, and looked at my parts bin, I found an old broken quadcopter, with one of the ESCs (electronic speed controllers) fried, a burnt out flight controller and a broken frame, which meant I had to design a 3D printed frame. For this build I am using the STM32F303 based flight Controller, also called the Emax F3 Femto in RC lingo.

 

Here are the steps to follow to complete the build

 

3D print the Frame:

For the frame I used Autodesk Fusion 360  to design it. The frame design is inspired by all the Alien frames out there. The old frame was a true X, which means after mounting the flight controller on this frame I have put a new PID(proportional integral derivative) tune on the quadcopter, which you can find in the dump file and the screen shots below.

For 3D printing, I used eSUN PLA + 1.75 mm filament. A suggestion here is to use atleast 60% infill with a hexagonal infill pattern to give the frame required strength to withstand crashes..

For the top, there are two versions , one for line of sight flight and the other one to install an FPV camera (first person view)

Solder the ESCs to the Motors

For the motors, I am using 1104 5250kv Brushless Motor, and 6A BLHeli 2S Plug-In ESCs, these do not come soldered to each other as you see in the picture below, you will have to solder the motor wires to one end of the ESC and the other end to connect to the flight controller. Don’t worry about the motor direction for now , as we can change the motor direction in a software called BLHeli – Configurator , more details below

 

Flashing the Flight Controller using Betaflight

Before you start with soldering the ESC to the flight controller it is a good idea to check if you have Betaflight/Cleanflight  is flashed on your board, the  STM32F303 based flight Controller comes with an old version of Cleanflight, which means we need to flash a newer version of Betaflight, in my case I am using 3.3.2, the HEX file is attached below. So once you install Betaflight using the Chrome app extension, you can go to the Firmware flasher section , solder/short the boot pads on the flight controller which put the board in DFU mode and hit the Flash firmware button as you see in the screenshot below.

What is Betaflight? - Betaflight - Configurator  is a crossplatform configuration tool for Betaflight flight control system which allows you to configure your aircraft via a GUI. For more info check out - https://github.com/betaflight/betaflight-configurator

 

Once you have successfully flashed the board, reconnect the board and you should see quadcopter move, as you move your board, as you see in the picture below.

Here are the features and specs of the STM32F303 based flight Controller

  • STM32F303 CPU
  • MPU9250 accelerometer/gyro/compass (connected via SPI)
  • 2-6S LiPo battery
  • Integrated 5V/3A BEC
  • Dedicated Sbus and serial RX with 5v ,Spektrum 1024/2048, SBUS, XBUS, SumD and SumH RX with built-in inverter
  • 6Supports direct connection of 3.3v Spektrum Satellite receivers
  • Telemetry support (frsky telemetry, smartport, and HoTT telemetry)
  • Dedicated PPM receiver input
  • Buzzer support
  • Dedicated output for programmable LEDs - great for orientation, racing and night flying. (Currently mutually exclusive with the Transponder)
  • BLHeli Passthrough ready(connect BLheli suite)
  • 2.0 mm pin headers
  • 80A Current tolerance (PDB)
  • Integrated Battery monitoring
  • Use all the features all the time; e.g. Connect your USB + SmartPort + SBus + LED Strip + Battery Monitoring + 4 motors - all at the same time!
  • 20x20mm board
  • Weight 2.2 grams
  • UART3 (RX3)-Use for Spektrum Satellite RX, Spektrum 1024/2048, SBUS, XBUS, SumD and SumH RX, etc.
  • UART2/PPM - Serial RX or PPM RX + Telemetry
  • Use RX2 as PPM receiver. Use TX2 as telemetry output when using PPM.
  • Info from - https://emax-usa.com/emx-fc-1710-f3-femto-flight-controller.html

 

Connecting the  ESCs to the Flight controller

Solder ESC to the flight controller, and before you solder make a note of +ve and –ve on the board, a good idea if you don’t see the marking on the board is to do a continuity test using the battery pads to figure out which pads on the board are +ve and –ve.

Also solder a an XT30 male connector to the power pad, note depending on where you buy the flight controller it should come with a red JST RCY male connector, but I would not use it because after some use of connector, you can plug the battery in the opposite direction unknowingly and short your flight controller, I did this a couple of times and have now moved all my RC things to the XT30 connectors..

 

Here it the pin out diagram for the connections

Image from the Flight Controller Manual- Emax F3 femto based on STM32F303

 

 

Solder a RC receiver

In my case for radio control I am using FrSky, which mean I had to use a FrSky XM SBUS micro receiver, thi is an ultra-light receiver with 16 channels, and as the controller I am using a Taranis qx7, the yellow wire going to the FC here is the SBUS wire, here are some features of the receiver

  • Number of Channels: Up to 16CH from SBUS(CH1~CH15 for PWM, CH16 RSSI for FC
  • Operating Voltage Range:3.5~10V
  • Operating Current:20mA@5V
  • Operating Range:>600m

Once done bind the receiver to the transmitter aka the radio, all radio’s has different steps to bind and setup receiver. For Frsky you have a bind option in the transmitter menu, as you see in the picture below..

Check the Motor direction

Using Betaflight go to the motor pad and turn up each motor to check if the directions of rotation.

 

If the direction of the motors is wrong you will have to either de-solder  two motor wires and swap them to change the direction, of if your soldering iron is already switched off, download and install BLHeli – Configurator which is another chrome app, that reads the setup of your ESC’s and then reverse the direction if required, as you see in the screenshot below.

What is BLHeli – Configurator , chrome cross-platform configuration tool for BLHeli-based electronic speed controllers, for more info check out - https://github.com/blheli-configurator/blheli-configurator

 

Adding the Top plate

Now using M3 Nylon hardware pack screw the top plate to the base as you see in the picture below, also tape the ESCs to the arms and also add zip ties to secure the receiver antenna.

Also another suggestion is to hot glue parts that you think can vibrate and fall off , like screws/standoffs after your first few flights.. Also to secure the lipo battery to the bottom use double sided velcro and a rubber band..

 

 

Setting up switches

Now setup the switches which correspond to your radio in Betaflight to Arm the quadcopter , and to fly the quadcopter in various modes like self-stabilization, Acro. In my case, I have AUX1 which corresponds to the left most switch on the radio - Taranis qx7 setup to Arm the quadcopter and AUX2 for stabilization and Air mode. You can also setup a beeper with the quadcopter to warn you when the battery is running low and act lost model finder alarm in case the quadcopter gets stuck in tall grass.

 

PID tuning

Here is my PID tune from Betaflight, and this is a complex topic to explain, which could be a future blog. And also added a dump from the Betaflight CLI. Note, PIDs vary from person to person, I have set these up for a beginner for this frame design.

Here is the dump file, using the Betaflight CLI.

  CLI    # dump
# Betaflight / SPRACINGF3EVO (SPEV) 3.2.2 Nov 11 2017 / 00:44:21 (77782e602) MSP API: 1.36
name Project14Quad
resource BEEPER 1 C15
resource MOTOR 1 A00
resource MOTOR 2 A01
resource MOTOR 3 A02
resource MOTOR 4 A03
resource MOTOR 5 A06
resource MOTOR 6 A07
resource MOTOR 7 B00
resource MOTOR 8 B01
resource SERVO 1 NONE
resource SERVO 2 NONE
resource SERVO 3 NONE
resource SERVO 4 NONE
resource SERVO 5 NONE
resource SERVO 6 NONE
resource SERVO 7 NONE
resource SERVO 8 NONE
resource PPM 1 A15
resource PWM 1 NONE
resource PWM 2 NONE
resource PWM 3 NONE
resource PWM 4 NONE
resource PWM 5 NONE
resource PWM 6 NONE
resource PWM 7 NONE
resource PWM 8 NONE
resource LED_STRIP 1 A08
resource SERIAL_TX 1 A09
resource SERIAL_TX 2 A14
resource SERIAL_TX 3 B10
resource SERIAL_TX 4 NONE
resource SERIAL_TX 5 NONE
resource SERIAL_TX 6 NONE
resource SERIAL_TX 7 NONE
resource SERIAL_TX 8 NONE
resource SERIAL_TX 9 NONE
resource SERIAL_TX 10 NONE
resource SERIAL_TX 11 A07
resource SERIAL_TX 12 B01
resource SERIAL_RX 1 A10
resource SERIAL_RX 2 A15
resource SERIAL_RX 3 B11
resource SERIAL_RX 4 NONE
resource SERIAL_RX 5 NONE
resource SERIAL_RX 6 NONE
resource SERIAL_RX 7 NONE
resource SERIAL_RX 8 NONE
resource SERIAL_RX 9 NONE
resource SERIAL_RX 10 NONE
resource SERIAL_RX 11 A06
resource SERIAL_RX 12 B00
resource I2C_SCL 1 B06
resource I2C_SCL 2 NONE
resource I2C_SDA 1 B07
resource I2C_SDA 2 NONE
resource LED 1 B08
resource LED 2 NONE
resource LED 3 NONE
resource RX_BIND 1 NONE
resource RX_BIND_PLUG 1 NONE
resource TRANSPONDER 1 A08
resource SPI_SCK 1 B03
resource SPI_SCK 2 B13
resource SPI_SCK 3 NONE
resource SPI_MISO 1 B04
resource SPI_MISO 2 B14
resource SPI_MISO 3 NONE
resource SPI_MOSI 1 B05
resource SPI_MOSI 2 B15
resource SPI_MOSI 3 NONE
resource ESCSERIAL 1 A15
resource CAMERA_CONTROL 1 NONE
resource ADC_BATT 1 A04
resource ADC_RSSI 1 B02
resource ADC_CURR 1 A05
resource ADC_EXT 1 NONE
resource BARO_CS 1 NONE
mixer QUADX

mmix reset

servo 0 1000 2000 1500 100 -1
servo 1 1000 2000 1500 100 -1
servo 2 1000 2000 1500 100 -1
servo 3 1000 2000 1500 100 -1
servo 4 1000 2000 1500 100 -1
servo 5 1000 2000 1500 100 -1
servo 6 1000 2000 1500 100 -1
servo 7 1000 2000 1500 100 -1
smix reset


feature -RX_PPM
feature -INFLIGHT_ACC_CAL
feature -RX_SERIAL
feature -MOTOR_STOP
feature -SERVO_TILT
feature -SOFTSERIAL
feature -GPS
feature -SONAR
feature -TELEMETRY
feature -3D
feature -RX_PARALLEL_PWM
feature -RX_MSP
feature -RSSI_ADC
feature -LED_STRIP
feature -DISPLAY
feature -OSD
feature -CHANNEL_FORWARDING
feature -TRANSPONDER
feature -AIRMODE
feature -RX_SPI
feature -SOFTSPI
feature -ESC_SENSOR
feature -ANTI_GRAVITY
feature -DYNAMIC_FILTER
feature RX_SERIAL
feature TELEMETRY
feature RSSI_ADC
feature TRANSPONDER
beeper GYRO_CALIBRATED
beeper RX_LOST
beeper RX_LOST_LANDING
beeper DISARMING
beeper ARMING
beeper ARMING_GPS_FIX
beeper BAT_CRIT_LOW
beeper BAT_LOW
beeper GPS_STATUS
beeper RX_SET
beeper ACC_CALIBRATION
beeper ACC_CALIBRATION_FAIL
beeper READY_BEEP
beeper MULTI_BEEPS
beeper DISARM_REPEAT
beeper ARMED
beeper SYSTEM_INIT
beeper ON_USB
beeper BLACKBOX_ERASE
map TAER1234
serial 20 1 115200 57600 0 115200
serial 0 0 115200 57600 0 115200
serial 1 0 115200 57600 0 115200
serial 2 64 115200 57600 0 115200
led 0 0,0::C:0
led 1 0,0::C:0
led 2 0,0::C:0
led 3 0,0::C:0
led 4 0,0::C:0
led 5 0,0::C:0
led 6 0,0::C:0
led 7 0,0::C:0
led 8 0,0::C:0
led 9 0,0::C:0
led 10 0,0::C:0
led 11 0,0::C:0
led 12 0,0::C:0
led 13 0,0::C:0
led 14 0,0::C:0
led 15 0,0::C:0
led 16 0,0::C:0
led 17 0,0::C:0
led 18 0,0::C:0
led 19 0,0::C:0
led 20 0,0::C:0
led 21 0,0::C:0
led 22 0,0::C:0
led 23 0,0::C:0
led 24 0,0::C:0
led 25 0,0::C:0
led 26 0,0::C:0
led 27 0,0::C:0
led 28 0,0::C:0
led 29 0,0::C:0
led 30 0,0::C:0
led 31 0,0::C:0
color 0 0,0,0
color 1 0,255,255
color 2 0,0,255
color 3 30,0,255
color 4 60,0,255
color 5 90,0,255
color 6 120,0,255
color 7 150,0,255
color 8 180,0,255
color 9 210,0,255
color 10 240,0,255
color 11 270,0,255
color 12 300,0,255
color 13 330,0,255
color 14 0,0,0
color 15 0,0,0
mode_color 0 0 1
mode_color 0 1 11
mode_color 0 2 2
mode_color 0 3 13
mode_color 0 4 10
mode_color 0 5 3
mode_color 1 0 5
mode_color 1 1 11
mode_color 1 2 3
mode_color 1 3 13
mode_color 1 4 10
mode_color 1 5 3
mode_color 2 0 10
mode_color 2 1 11
mode_color 2 2 4
mode_color 2 3 13
mode_color 2 4 10
mode_color 2 5 3
mode_color 3 0 8
mode_color 3 1 11
mode_color 3 2 4
mode_color 3 3 13
mode_color 3 4 10
mode_color 3 5 3
mode_color 4 0 7
mode_color 4 1 11
mode_color 4 2 3
mode_color 4 3 13
mode_color 4 4 10
mode_color 4 5 3
mode_color 5 0 9
mode_color 5 1 11
mode_color 5 2 2
mode_color 5 3 13
mode_color 5 4 10
mode_color 5 5 3
mode_color 6 0 6
mode_color 6 1 10
mode_color 6 2 1
mode_color 6 3 0
mode_color 6 4 0
mode_color 6 5 2
mode_color 6 6 3
mode_color 6 7 6
mode_color 6 8 0
mode_color 6 9 0
mode_color 6 10 0
mode_color 7 0 3
aux 0 0 0 1450 2100
aux 1 1 1 900 1250
aux 2 28 1 1300 2100
aux 3 0 0 900 900
aux 4 0 0 900 900
aux 5 0 0 900 900
aux 6 0 0 900 900
aux 7 0 0 900 900
aux 8 0 0 900 900
aux 9 0 0 900 900
aux 10 0 0 900 900
aux 11 0 0 900 900
aux 12 0 0 900 900
aux 13 0 0 900 900
aux 14 0 0 900 900
aux 15 0 0 900 900
aux 16 0 0 900 900
aux 17 0 0 900 900
aux 18 0 0 900 900
aux 19 0 0 900 900
adjrange 0 0 0 900 900 0 0
adjrange 1 0 0 900 900 0 0
adjrange 2 0 0 900 900 0 0
adjrange 3 0 0 900 900 0 0
adjrange 4 0 0 900 900 0 0
adjrange 5 0 0 900 900 0 0
adjrange 6 0 0 900 900 0 0
adjrange 7 0 0 900 900 0 0
adjrange 8 0 0 900 900 0 0
adjrange 9 0 0 900 900 0 0
adjrange 10 0 0 900 900 0 0
adjrange 11 0 0 900 900 0 0
adjrange 12 0 0 900 900 0 0
adjrange 13 0 0 900 900 0 0
adjrange 14 0 0 900 900 0 0
rxrange 0 1000 2000
rxrange 1 1000 2000
rxrange 2 1000 2000
rxrange 3 1000 2000
vtx 0 0 0 0 900 900
vtx 1 0 0 0 900 900
vtx 2 0 0 0 900 900
vtx 3 0 0 0 900 900
vtx 4 0 0 0 900 900
vtx 5 0 0 0 900 900
vtx 6 0 0 0 900 900
vtx 7 0 0 0 900 900
vtx 8 0 0 0 900 900
vtx 9 0 0 0 900 900
rxfail 0 a
rxfail 1 a
rxfail 2 a
rxfail 3 a
rxfail 4 h
rxfail 5 h
rxfail 6 h
rxfail 7 h
rxfail 8 h
rxfail 9 h
rxfail 10 h
rxfail 11 h
rxfail 12 h
rxfail 13 h
rxfail 14 h
rxfail 15 h
rxfail 16 h
rxfail 17 h
set align_gyro = DEFAULT
set gyro_lpf = OFF
set gyro_sync_denom = 1
set gyro_lowpass_type = PT1
set gyro_lowpass_hz = 90
set gyro_notch1_hz = 400
set gyro_notch1_cutoff = 300
set gyro_notch2_hz = 200
set gyro_notch2_cutoff = 100
set moron_threshold = 48
set gyro_use_32khz = OFF
set align_acc = DEFAULT
set acc_hardware = AUTO
set acc_lpf_hz = 10
set acc_trim_pitch = 0
set acc_trim_roll = 0
set align_mag = DEFAULT
set mag_hardware = NONE
set mag_declination = 0
set magzero_x = 0
set magzero_y = 0
set magzero_z = 0
set baro_bustype = I2C
set baro_spi_device = 0
set baro_i2c_device = 1
set baro_i2c_address = 0
set baro_hardware = AUTO
set baro_tab_size = 21
set baro_noise_lpf = 600
set baro_cf_vel = 985
set baro_cf_alt = 965
set mid_rc = 1500
set min_check = 1050
set max_check = 1900
set rssi_channel = 0
set rssi_scale = 41
set rssi_invert = OFF
set rc_interp = AUTO
set rc_interp_ch = RP
set rc_interp_int = 19
set fpv_mix_degrees = 0
set max_aux_channels = 14
set serialrx_provider = SBUS
set sbus_inversion = ON
set spektrum_sat_bind = 0
set spektrum_sat_bind_autoreset = ON
set airmode_start_throttle = 1350
set rx_min_usec = 885
set rx_max_usec = 2115
set input_filtering_mode = OFF
set blackbox_p_ratio = 32
set blackbox_device = SDCARD
set blackbox_on_motor_test = OFF
set blackbox_record_acc = ON
set min_throttle = 1070
set max_throttle = 2000
set min_command = 1000
set dshot_idle_value = 450
set use_unsynced_pwm = OFF
set motor_pwm_protocol = ONESHOT125
set motor_pwm_rate = 480
set motor_pwm_inversion = OFF
set thr_corr_value = 0
set thr_corr_angle = 800
set failsafe_delay = 4
set failsafe_off_delay = 10
set failsafe_throttle = 1000
set failsafe_kill_switch = OFF
set failsafe_throttle_low_delay = 100
set failsafe_procedure = DROP
set align_board_roll = 0
set align_board_pitch = 0
set align_board_yaw = 0
set gimbal_mode = NORMAL
set bat_capacity = 0
set vbat_max_cell_voltage = 43
set vbat_full_cell_voltage = 41
set vbat_min_cell_voltage = 33
set vbat_warning_cell_voltage = 35
set vbat_hysteresis = 1
set current_meter = VIRTUAL
set battery_meter = ADC
set vbat_detect_cell_voltage = 30
set use_vbat_alerts = ON
set use_cbat_alerts = OFF
set cbat_alert_percent = 10
set vbat_cutoff_percent = 100
set vbat_scale = 110
set ibata_scale = 400
set ibata_offset = 0
set ibatv_scale = 0
set ibatv_offset = 0
set beeper_inversion = ON
set beeper_od = OFF
set beeper_frequency = 0
set beeper_dshot_beacon_tone = 0
set yaw_motors_reversed = OFF
set 3d_deadband_low = 1406
set 3d_deadband_high = 1514
set 3d_neutral = 1460
set 3d_deadband_throttle = 50
set servo_center_pulse = 1500
set servo_pwm_rate = 50
set servo_lowpass_hz = 0
set tri_unarmed_servo = ON
set channel_forwarding_start = 4
set reboot_character = 82
set serial_update_rate_hz = 100
set accxy_deadband = 40
set accz_deadband = 40
set acc_unarmedcal = ON
set imu_dcm_kp = 2500
set imu_dcm_ki = 0
set small_angle = 25
set auto_disarm_delay = 5
set disarm_kill_switch = ON
set gyro_cal_on_first_arm = OFF
set fixedwing_althold_reversed = OFF
set alt_hold_deadband = 40
set alt_hold_fast_change = ON
set deadband = 0
set yaw_deadband = 0
set yaw_control_reversed = OFF
set pid_process_denom = 4
set tlm_switch = OFF
set tlm_inverted = OFF
set tlm_halfduplex = ON
set frsky_default_lat = 0
set frsky_default_long = 0
set frsky_gps_format = 0
set frsky_unit = IMPERIAL
set frsky_vfas_precision = 0
set hott_alarm_int = 5
set pid_in_tlm = OFF
set report_cell_voltage = OFF
set ledstrip_visual_beeper = OFF
set sdcard_dma = OFF
set osd_units = METRIC
set osd_rssi_alarm = 20
set osd_cap_alarm = 2200
set osd_alt_alarm = 100
set osd_ah_max_pit = 20
set osd_ah_max_rol = 40
set osd_tim1 = 2560
set osd_tim2 = 2561
set osd_vbat_pos = 2092
set osd_rssi_pos = 2088
set osd_tim_1_pos = 2102
set osd_tim_2_pos = 2081
set osd_flymode_pos = 2381
set osd_throttle_pos = 2273
set osd_vtx_channel_pos = 2425
set osd_crosshairs = 2248
set osd_ah_sbar = 2248
set osd_ah_pos = 2248
set osd_current_pos = 2433
set osd_mah_drawn_pos = 2401
set osd_craft_name_pos = 2410
set osd_gps_speed_pos = 2266
set osd_gps_lon_pos = 2130
set osd_gps_lat_pos = 2113
set osd_gps_sats_pos = 2099
set osd_home_dir_pos = 2350
set osd_home_dist_pos = 2351
set osd_compass_bar_pos = 2314
set osd_altitude_pos = 2295
set osd_pid_roll_pos = 2471
set osd_pid_pitch_pos = 2503
set osd_pid_yaw_pos = 2535
set osd_debug_pos = 2049
set osd_power_pos = 2369
set osd_pidrate_profile_pos = 2393
set osd_warnings_pos = 2377
set osd_avg_cell_voltage_pos = 2124
set osd_pit_ang_pos = 2305
set osd_rol_ang_pos = 2337
set osd_battery_usage_pos = 2440
set osd_disarmed_pos = 2186
set osd_nheading_pos = 2359
set osd_nvario_pos = 2327
set osd_esc_tmp_pos = 2130
set osd_esc_rpm_pos = 2131
set osd_stat_max_spd = ON
set osd_stat_max_dist = OFF
set osd_stat_min_batt = ON
set osd_stat_min_rssi = ON
set osd_stat_max_curr = ON
set osd_stat_used_mah = ON
set osd_stat_max_alt = OFF
set osd_stat_bbox = ON
set osd_stat_endbatt = OFF
set osd_stat_bb_no = ON
set osd_stat_tim_1 = OFF
set osd_stat_tim_2 = ON
set task_statistics = ON
set debug_mode = NONE
set pwr_on_arm_grace = 0
set vtx_halfduplex = ON
set displayport_msp_col_adjust = 0
set displayport_msp_row_adjust = 0
set esc_sensor_halfduplex = OFF
set led_inversion = 0
set camera_control_mode = HARDWARE_PWM
set camera_control_ref_voltage = 330
set camera_control_key_delay = 180
set camera_control_internal_resistance = 470
profile 0

set dterm_lowpass_type = BIQUAD
set dterm_lowpass = 100
set dterm_notch_hz = 260
set dterm_notch_cutoff = 160
set vbat_pid_gain = OFF
set pid_at_min_throttle = ON
set anti_gravity_threshold = 350
set anti_gravity_gain = 1000
set setpoint_relax_ratio = 100
set dterm_setpoint_weight = 0
set acc_limit_yaw = 100
set acc_limit = 0
set crash_dthreshold = 50
set crash_gthreshold = 400
set crash_setpoint_threshold = 350
set crash_time = 500
set crash_delay = 0
set crash_recovery_angle = 10
set crash_recovery_rate = 100
set crash_limit_yaw = 200
set crash_recovery = OFF
set iterm_windup = 50
set iterm_limit = 150
set pidsum_limit = 500
set pidsum_limit_yaw = 400
set yaw_lowpass = 0
set p_pitch = 59
set i_pitch = 52
set d_pitch = 31
set p_roll = 42
set i_roll = 41
set d_roll = 28
set p_yaw = 72
set i_yaw = 45
set d_yaw = 20
set p_alt = 50
set i_alt = 0
set d_alt = 0
set p_level = 50
set i_level = 50
set d_level = 75
set p_vel = 55
set i_vel = 55
set d_vel = 75
set level_limit = 55
set horizon_tilt_effect = 75
set horizon_tilt_expert_mode = OFF
rateprofile 0

set rc_rate = 100
set rc_rate_yaw = 100
set rc_expo = 0
set rc_expo_yaw = 0
set thr_mid = 50
set thr_expo = 0
set roll_srate = 72
set pitch_srate = 73
set yaw_srate = 72
set tpa_rate = 10
set tpa_breakpoint = 1650

 

Video demo of the Line of sight flight

 

Adding an FPV camera

Now if you have observed, there is a spot in the front of the quad for a micro FPV camera system, in my case I am Caddx Beetle micro AIO FPV camera, since this is an AIO(all in one) the setup comes with the VTX attached to the camera, and we just need to provide the camera voltage.  Here are the spec of the camera I am using –

 

Here is a picture, of the video feed from the FPV camera, on a small FPV screen.

Here is a video of the FPV flight, after putting a new PID tune on the quadcopter