betaflight / betaflight

Open Source Flight Controller Firmware
GNU General Public License v3.0
8.53k stars 3.01k forks source link

3.1.7 - SPRacing F3mini Dshot not working on channel 4 #3646

Closed RunningPenguin closed 7 years ago

RunningPenguin commented 7 years ago

Hello,

I build a new quad with the SPracing F3mini board and Kiss 24A ESCs. I updated the ESCs to FW 1.0.2 through FTDI cable. Then I updated the FW of the ESCs with serial passthrough - works perfect for me when the fastmode is deactivated. Thanks for these very cool feature!

After that I enabled Dshot for testing purposes and motor 4 was not spinning and the LED didn´t light up. I swapped the wires from ESC4 and ESC2 and the failure then appeared on the other motor/ESC. I swapped the wires with the ESC1 and ESC3 and the failure remains everytime on channel 4 of the FC. So all ESCs and motors are working on channels 1-3 and no motor/ESC is working on channel 4 in DShot mode.

In oneshot42 and oneshot125 mode all 4 ESC and motors are working so I´m thinking that the failure is in the mapping of the DShot signals to the actual pins.

I hope these bug isn´t duplicate and you could fix it fast with my description.

Thanks

jflyper commented 7 years ago

@RunningPenguin @hydra As of 3.1.7, motor 4 (PWM4) of SPRACINGF3MINI is not capable of being used as Dshot output.

There may be an alternative pin you can use. Can you paste output lines from CLI command "resource list"?

RunningPenguin commented 7 years ago

Ah thanks, didn't know that. Now it makes sense that the motor4 output didn't work with version 3.1.0 and 3.2.0 also.

Output of "resource" there were no command with "list"

resource

resource BEEPER 1 C15 resource MOTOR 1 A06 resource MOTOR 2 A07 resource MOTOR 3 B08 resource MOTOR 4 B09 resource MOTOR 5 A02 resource MOTOR 6 A03 resource MOTOR 7 A00 resource MOTOR 8 A01 resource PPM 1 B04 resource LED_STRIP 1 A08 resource SERIAL_TX 1 A09 resource SERIAL_TX 2 A14 resource SERIAL_TX 3 B10 resource SERIAL_TX 11 A01 resource SERIAL_RX 1 A10 resource SERIAL_RX 2 A15 resource SERIAL_RX 3 B11 resource SERIAL_RX 11 A00

jflyper commented 7 years ago

Hmm... 3.1.7 should accept "resource list". Can you try again?

RunningPenguin commented 7 years ago

Hi yeah my fault.

resource list

IO A00: FREE A01: FREE A02: FREE A03: FREE A04: ADC_BATT A05: FREE A06: MOTOR 1 A07: MOTOR 2 A08: FREE A09: FREE A10: SERIAL_RX 1 A11: FREE A12: FREE A13: FREE A14: FREE A15: FREE B00: RX_BIND B01: SYSTEM B02: FREE B03: LED 1 B04: FREE B05: USB_DETECT B06: I2C_SCL 1 B07: I2C_SDA 1 B08: MOTOR 3 B09: MOTOR 4 B10: FREE B11: FREE B12: SDCARD_CS B13: SPI_SCK 2 B14: SPI_MISO 2 B15: SPI_MOSI 2 C13: MPU_EXTI C14: SDCARD_DETECT C15: BEEPER F00: FREE F01: FREE F04: FREE

DMA: DMA1 Channel 1: FREE DMA1 Channel 2: FREE DMA1 Channel 3: FREE DMA1 Channel 4: FREE DMA1 Channel 5: SDCARD DMA1 Channel 6: FREE DMA1 Channel 7: FREE DMA2 Channel 1: ADC DMA2 Channel 2: FREE DMA2 Channel 3: FREE DMA2 Channel 4: FREE DMA2 Channel 5: FREE

jflyper commented 7 years ago

Ah, I wanted dshot enabled, but this serves the purpose.

Okay, try this

(1) Rewire your motor 4 to PWM8.

(2) Use following commands to remap motor 4 to PWM8

resource motor 8 none
resource motor 4 a1
save
RunningPenguin commented 7 years ago

Thank you so much. It did the trick. For others you have to use the port declared with "7" on the top side of the PCB this is PWM8 like marked on the bottom side of the PCB. With the above commands and Port7 DShot is working on SPracing F3mini and 4 motors.

hydra commented 7 years ago

could you provide a config dump so that others reading this can see what you did?

RunningPenguin commented 7 years ago

I ignored one warning that A01 is already used by Serial_TX 11.

I've done the following:

it gave me a message that A01 is already used by "SERIAL_TX 11" ignored that and worked with DShot150, DShot300, DShot600.

Here is the dump.

dump

Betaflight / SPRACINGF3MINI 3.1.7 Apr 3 2017 / 22:28:52 (e1c4b5c)

name - resource BEEPER 1 C15 resource MOTOR 1 A06 resource MOTOR 2 A07 resource MOTOR 3 B08 resource MOTOR 4 A01 resource MOTOR 5 A02 resource MOTOR 6 A03 resource MOTOR 7 A00 resource MOTOR 8 NONE resource MOTOR 9 NONE resource MOTOR 10 NONE resource MOTOR 11 NONE resource MOTOR 12 NONE 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 B04 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 A01 resource SERIAL_TX 12 NONE 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 A00 resource SERIAL_RX 12 NONE mixer QUADX

mmix reset

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

feature -RX_PPM feature -VBAT feature -INFLIGHT_ACC_CAL feature -RX_SERIAL feature -MOTOR_STOP feature -SERVO_TILT feature -SOFTSERIAL feature -GPS feature -FAILSAFE feature -SONAR feature -TELEMETRY feature -CURRENT_METER feature -3D feature -RX_PARALLEL_PWM feature -RX_MSP feature -RSSI_ADC feature -LED_STRIP feature -DISPLAY feature -OSD feature -BLACKBOX feature -CHANNEL_FORWARDING feature -TRANSPONDER feature -AIRMODE feature -SDCARD feature -VTX feature -RX_SPI feature -SOFTSPI feature -ESC_SENSOR feature -FEATURE_ANTI_GRAVITY feature RX_PPM feature VBAT feature FAILSAFE feature BLACKBOX feature SDCARD 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 map AETR1234 serial 20 1 115200 57600 0 115200 serial 0 0 115200 57600 0 115200 serial 1 0 115200 57600 0 115200 serial 2 0 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 900 900 aux 1 0 0 900 900 aux 2 0 0 900 900 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 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 task_statistics = ON set mid_rc = 1500 set min_check = 1100 set max_check = 1900 set rssi_channel = 0 set rssi_scale = 30 set rc_interp = AUTO set rc_interp_ch = RP set rc_interp_int = 19 set rssi_invert = OFF set input_filtering_mode = OFF set fpv_mix_degrees = 0 set max_aux_channels = 14 set debug_mode = NONE set min_throttle = 1070 set max_throttle = 2000 set min_command = 1000 set digital_idle_percent = 4.500 set 3d_deadband_low = 1406 set 3d_deadband_high = 1514 set 3d_neutral = 1460 set 3d_deadband_throttle = 50 set use_unsynced_pwm = OFF set motor_pwm_protocol = DSHOT600 set motor_pwm_rate = 480 set disarm_kill_switch = ON set gyro_cal_on_first_arm = OFF set auto_disarm_delay = 5 set small_angle = 25 set fixedwing_althold_dir = 1 set reboot_character = 82 set serial_update_rate_hz = 100 set gps_provider = NMEA set gps_sbas_mode = AUTO set gps_auto_config = ON set gps_auto_baud = OFF set gps_wp_radius = 200 set nav_controls_heading = ON set nav_speed_min = 100 set nav_speed_max = 300 set nav_slew_rate = 30 set beeper_inversion = ON set beeper_od = OFF set serialrx_provider = SPEK1024 set sbus_inversion = ON set spektrum_sat_bind = 0 set spektrum_sat_bind_autorst = 1 set tlm_switch = OFF set tlm_inversion = ON set sport_halfduplex = ON set frsky_default_lat = 0.000 set frsky_default_long = 0.000 set frsky_gps_format = 0 set frsky_unit = IMPERIAL set frsky_vfas_precision = 0 set frsky_vfas_cell_voltage = OFF set hott_alarm_int = 5 set pid_in_tlm = OFF set bat_capacity = 0 set vbat_scale = 110 set vbat_max_cell_voltage = 43 set vbat_min_cell_voltage = 33 set vbat_warning_cell_voltage = 35 set vbat_hysteresis = 1 set ibat_scale = 400 set ibat_offset = 0 set mwii_ibat_output = OFF set current_meter_type = ADC set battery_meter_type = ADC set bat_detect_thresh = 55 set use_vbat_alerts = ON set use_cbat_alerts = OFF set cbat_alert_percent = 10 set align_gyro = DEFAULT set align_acc = DEFAULT set align_mag = DEFAULT set align_board_roll = 0 set align_board_pitch = 0 set align_board_yaw = 0 set gyro_lpf = OFF set gyro_sync_denom = 2 set gyro_use_32khz = OFF set gyro_lowpass_type = PT1 set gyro_lowpass = 90 set gyro_notch1_hz = 400 set gyro_notch1_cut = 300 set gyro_notch2_hz = 200 set gyro_notch2_cut = 100 set moron_threshold = 48 set imu_dcm_kp = 2500 set imu_dcm_ki = 0 set alt_hold_deadband = 40 set alt_hold_fast_change = ON set deadband = 0 set yaw_deadband = 0 set thr_corr_value = 0 set thr_corr_angle = 800 set yaw_control_direction = 1 set yaw_motor_direction = 1 set servo_center_pulse = 1500 set tri_unarmed_servo = ON set servo_lowpass_hz = 400 set servo_lowpass = OFF set servo_pwm_rate = 50 set gimbal_mode = NORMAL set channel_forwarding_start = 4 set airmode_start_throttle = 1350 set failsafe_delay = 10 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 rx_min_usec = 885 set rx_max_usec = 2115 set acc_hardware = AUTO set acc_lpf_hz = 10 set accxy_deadband = 40 set accz_deadband = 40 set acc_unarmedcal = ON set acc_trim_pitch = 0 set acc_trim_roll = 0 set baro_tab_size = 21 set baro_noise_lpf = 0.600 set baro_cf_vel = 0.985 set baro_cf_alt = 0.965 set baro_hardware = NONE set mag_hardware = NONE set mag_declination = 0 set pid_process_denom = 2 set blackbox_rate_num = 1 set blackbox_rate_denom = 1 set blackbox_device = SDCARD set blackbox_on_motor_test = OFF set magzero_x = 0 set magzero_y = 0 set magzero_z = 0 set ledstrip_visual_beeper = OFF set sdcard_dma = ON set displayport_msp_col_adjust = 0 set displayport_msp_row_adjust = 0 profile 0

set gps_pos_p = 15 set gps_pos_i = 0 set gps_pos_d = 0 set gps_posr_p = 34 set gps_posr_i = 14 set gps_posr_d = 53 set gps_nav_p = 25 set gps_nav_i = 33 set gps_nav_d = 83 set pidsum_limit = 0.500 set pidsum_limit_yaw = 0.500 set d_lowpass_type = BIQUAD set d_lowpass = 100 set d_notch_hz = 260 set d_notch_cut = 160 set vbat_pid_gain = OFF set pid_at_min_throttle = ON set anti_gravity_thresh = 350 set anti_gravity_gain = 3.000 set setpoint_relax_ratio = 100 set d_setpoint_weight = 60 set yaw_accel_limit = 10.000 set accel_limit = 0.000 set iterm_windup = 50 set yaw_lowpass = 0 set p_pitch = 58 set i_pitch = 50 set d_pitch = 35 set p_roll = 44 set i_roll = 40 set d_roll = 30 set p_yaw = 70 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 = 100 set p_vel = 55 set i_vel = 55 set d_vel = 75 set level_sensitivity = 55 set level_limit = 55 rateprofile 0 rateprofile 0

set rc_rate = 100 set rc_rate_yaw = 100 set rc_expo = 0 set rc_yaw_expo = 0 set thr_mid = 50 set thr_expo = 0 set roll_srate = 70 set pitch_srate = 70 set yaw_srate = 70 set tpa_rate = 10 set tpa_breakpoint = 1650

jflyper commented 7 years ago

@RunningPenguin

Thank you so much. It did the trick. Good to hear that. Happy props now :)

@hydra Timer assignments may need some review for SPRF3MINI. There are too many DMA collisions.

    DEF_TIM(TIM16, CH1, PA6,  TIM_USE_MOTOR, 1),  // PWM1 - PA6 // D(1,3)
    DEF_TIM(TIM17, CH1, PA7,  TIM_USE_MOTOR, 1),  // PWM2 - PA7 // D(1,1)
    DEF_TIM(TIM4,  CH3, PB8,  TIM_USE_MOTOR, 1),  // PWM3 - PB8 // D(1,5)
    DEF_TIM(TIM4,  CH4, PB9,  TIM_USE_MOTOR, 1),  // PWM4 - PB9 // ------
    DEF_TIM(TIM15, CH1, PA2,  TIM_USE_MOTOR, 1),  // PWM5 - PA2 // D(1,5)
    DEF_TIM(TIM15, CH2, PA3,  TIM_USE_MOTOR, 1),  // PWM6 - PA3 // ------
    DEF_TIM(TIM2,  CH1, PA0,  TIM_USE_MOTOR, 1),  // PWM7 - PA0 // D(1,5)
    DEF_TIM(TIM2,  CH2, PA1,  TIM_USE_MOTOR, 1),  // PWM8 - PA1 // D(1,7)

Lucky PWM8 had a valid channel ...

dd-rx commented 7 years ago

same goes for SPf3 evo (the one with SD-slot), no dshot on motor4

jflyper commented 7 years ago

@libwtf Connect your motor 4 to motor 5 output (PWM5) and issue the following command.

resource motor 4 a6
save
agropom commented 7 years ago

Dear all, on my SPF3 Evo I installed last BF3.2.1. I'm using RS30A lite blheli_s with oneshot125 all 4 motor spin correctly, if use dshot300 only motor 1,2,3 will spin. I read that is necessary remap motor 4 on another "pin" but I'm having some issue I receive this message:

A06 already assigned to SERIAL RX11

Can someone help me to remap the 4th motor?

resource list

IO A00: MOTOR 1 A01: MOTOR 2 A02: MOTOR 3 A03: MOTOR 4 A04: ADC_BATT A05: FREE A06: FREE A07: FREE A08: TRANSPONDER A09: SERIAL_TX 1 A10: FREE A11: FREE A12: FREE A13: FREE A14: FREE A15: SERIAL_RX 2 B00: FREE B01: FREE B02: ADC_RSSI B03: SPI_SCK 1 B04: SPI_MISO 1 B05: SPI_MOSI 1 B06: I2C_SCL 1 B07: I2C_SDA 1 B08: LED 1 B09: MPU_CS B10: SERIAL_TX 3 B11: FREE B12: SDCARD_CS B13: SPI_SCK 2 B14: SPI_MISO 2 B15: SPI_MOSI 2 C13: MPU_EXTI C14: SDCARD_DETECT C15: BEEPER F00: FREE F01: FREE F04: FREE

DMA: DMA1 Channel 1: MOTOR 3 DMA1 Channel 2: TRANSPONDER DMA1 Channel 3: FREE DMA1 Channel 4: FREE DMA1 Channel 5: MOTOR 1 DMA1 Channel 6: FREE DMA1 Channel 7: MOTOR 2 DMA2 Channel 1: ADC DMA2 Channel 2: FREE DMA2 Channel 3: FREE DMA2 Channel 4: FREE DMA2 Channel 5: FREE

jflyper commented 7 years ago

Read this thread. If you still have a issue, please redirect it to other places on the net.