betaflight / unified-targets

Target configurations for Betaflight Unified Targets
GNU General Public License v3.0
171 stars 265 forks source link

Need help converting a BF3.1.5 compatible target (fw dump) to current version #476

Closed Guili123 closed 3 years ago

Guili123 commented 3 years ago

Currently I try to convert the Uvify Draco-Betaflight 3.1.5 Fork firmware to a normal Betaflight Unified target. I am following the Guide and no big issue so far. But I noticed some differences in other unified targets compared to the dumps I have from 3.1.5. There are no DMA or timer entries, I am wondering if there were differences how this works in Bf3.1.5 and if this becomes an issue with the new unified targets if these entries are missing. Is there any way to export DMA und Timer entries with the Uvify (Betaflight 3.1.5) configurator? Any other way to reverse engineer this?

haslinghuis commented 3 years ago

A diff only shows the differences from a unified target (+config) it's build on. A dump shows all settings.

jflyper commented 3 years ago

You should be able to convert basic timer and DMA assignments from target specific target.c and target.h.

And yes, your new unified target needs these settings, otherwise the target will not be able to use ANY timer nor DMA.

Guili123 commented 3 years ago

I already did a full dump from the Uvify Draco also and the timer+dma information`s are missing in 3.1.5

To clarify this: I have only the dump available. I have no access to the Uvify version from target.c and target.h The source code for the Uvify fork is not available. It is a shame to be stuck on a 3.1.5 fork of betaflight, because the hardware is excellent.

haslinghuis commented 3 years ago

resource show all

Guili123 commented 3 years ago

resource show all Unfortanetly: resource show all Invalid

This is the log output from the configurator: -- You need to upgrade your firmware to the latest version of Betaflight before you can use the Status tab. -- Serial port successfully opened with ID: 9 -- Running - OS: Windows, Chrome: 91.0.4472.124, Configurator: 4.0.3 -- Serial port successfully opened with ID: 7 -- Welcome Draco -- MultiWii API version received - 1.32.0 -- Flight controller info, identifier: BTFL, version: 3.1.5 -- Running firmware released on: Feb 13 2018 09:46:38 -- Board: UVF4, version: 12 -- Unique device ID received - 0x5400313236510a36363331

I can`t access this with the current version of the Betaflight Configurator, because the new version commplains that the MultiWii API need to be upgraded.

Output in cli: ... dump all

version

Betaflight / UVF4_PXBL 3.1.5 Feb 13 2018 / 09:46:38 (7f0a347)

..... resources resource BEEPER 1 A15 resource MOTOR 1 E09 resource MOTOR 2 E14 resource MOTOR 3 E13 resource MOTOR 4 E11 resource MOTOR 5 NONE resource MOTOR 6 NONE resource MOTOR 7 NONE 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 C07 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 SONAR_TRIGGER 1 B13 resource SONAR_ECHO 1 B12 resource LED_STRIP 1 A03 ...

No entries about DMA and Timer.

jflyper commented 3 years ago

To clarify this: I have only the dump available. I have no access to the Uvify version from target.c and target.h The source code for the Uvify fork is not available.

In that case, you have to start with MOTOR and LED_STRIP and guess what target.c looked like for timer and DMA assignments.

Look into appropriate STM32F4 data sheet, mark pins for motors and led_strip. Look at available TIMx_CHy entries that you can assign to those pins.

For example, PE9, PE11, PE13 and PE14 can be assigned to TIM1, CH1 through CH4 respectively. Likewise, PA3 has TIM5_CH4. Then, for DMA, you have to look into corresponding F4 reference manual, DMA request mapping section. If you can find non-overlapping assignments of DMA streams in that table for TIM1_CH1, TIM1_CH2, TIM1_CH3, TIM1_CH4 and TIM5_CH4, then you are done. If not, you have to start over again.

Good luck.

Guili123 commented 3 years ago

Thanks, for the hints. So to summarize, this Uvify configurator version, should be able to list timer and dma.

jflyper commented 3 years ago

So to summarize, this Uvify configurator version, should be able to list timer and dma.

I don't think so. I forgot the exact version, but full timer and dma listing became available much later, probably around 4.0 and later. You can try something like timer show and dma show or just timer and dma to find out on 3.5.x.

mikeller commented 3 years ago

@Guili123: I suspect that you are looking at an uphill battle here - even if you manage to figure out the timers and DMA, 3.1.5 is so old that most pins for other functions like SPI buses, LED, ADC are not configurable, and won't show in a dump (maybe easiest if you provide one here and we can see). So it will require A LOT of guesswork and trial and error to figure out a target for this.

Guili123 commented 3 years ago

@mikeller I really appreciate you response here. At least LED is in the dump... Not sure if the flight controller is a F745 or F765

Here is a dump:

dump

version

Betaflight / UVF4_PXBL 3.1.5 Feb 13 2018 / 09:46:38 (7f0a347)

name

name Draco

resources

resource BEEPER 1 A15 resource MOTOR 1 E09 resource MOTOR 2 E14 resource MOTOR 3 E13 resource MOTOR 4 E11 resource MOTOR 5 NONE resource MOTOR 6 NONE resource MOTOR 7 NONE 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 C07 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 SONAR_TRIGGER 1 B13 resource SONAR_ECHO 1 B12 resource LED_STRIP 1 A03

mixer

mixer QUADX

mmix reset

servo

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

servo mix

smix reset

feature

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 VBAT feature RX_SERIAL feature FAILSAFE feature TELEMETRY feature CURRENT_METER feature LED_STRIP feature BLACKBOX feature AIRMODE feature SDCARD

beeper

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 beeper ALL

map

map AETR1234

serial

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 serial 3 0 115200 57600 0 115200 serial 5 64 115200 57600 0 115200 serial 6 0 115200 57600 0 115200 serial 7 512 115200 57600 0 115200

led

led 0 8,0::CW:10 led 1 8,1::AW: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

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

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 4 mode_color 6 1 12 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

aux 0 0 1 1750 2100 aux 1 1 0 900 1100 aux 2 2 0 1300 1700 aux 3 26 0 1700 2100 aux 4 12 2 1700 2100 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

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

rxrange 0 1000 2000 rxrange 1 1000 2000 rxrange 2 1000 2000 rxrange 3 1000 2000

rxfail

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

master

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_ppm_invert = OFF set input_filtering_mode = OFF set fpv_mix_degrees = 0 set max_aux_channels = 20 set debug_mode = NONE set min_throttle = 1070 set max_throttle = 2000 set min_command = 1000 set digital_idle_percent = 3.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 motor_pwm_inversion = 0 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 = SBUS set sbus_inversion = ON set spektrum_sat_bind = 9 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 ibus_report_cell_voltage = OFF set bat_capacity = 1415 set vbat_scale = 102 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 = 610 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 = OFF set use_cbat_alerts = ON set cbat_alert_percent = 10 set align_gyro = DEFAULT set align_acc = DEFAULT set align_mag = DEFAULT set align_board_roll = 180 set align_board_pitch = 0 set align_board_yaw = 0 set gyro_lpf = OFF set gyro_sync_denom = 1 set gyro_isr_update = OFF set gyro_use_32khz = OFF set gyro_lowpass_type = PT1 set gyro_lowpass = 90 set gyro_notch1_hz = 0 set gyro_notch1_cut = 130 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 = -2 set acc_trim_roll = 2 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 pid_process_denom = 1 set blackbox_rate_num = 1 set blackbox_rate_denom = 8 set blackbox_device = SDCARD set blackbox_on_motor_test = OFF set ledstrip_visual_beeper = OFF set sdcard_dma = ON set displayport_msp_col_adjust = 0 set displayport_msp_row_adjust = 0 set smartbattery = ON

profile

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 yaw_p_limit = 500 set pidsum_limit = 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 = 1.000 set setpoint_relax_ratio = 85 set d_setpoint_weight = 150 set yaw_accel_limit = 10.000 set accel_limit = 0.000 set iterm_windup = 50 set yaw_lowpass = 0 set p_pitch = 60 set i_pitch = 65 set d_pitch = 22 set p_roll = 45 set i_roll = 40 set d_roll = 20 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

rateprofile 0

set rc_rate = 150 set rc_rate_yaw = 150 set rc_expo = 0 set rc_yaw_expo = 0 set thr_mid = 50 set thr_expo = 0 set roll_srate = 60 set pitch_srate = 60 set yaw_srate = 60 set tpa_rate = 10 set tpa_breakpoint = 165

github-actions[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs within a week.

github-actions[bot] commented 3 years ago

Issue closed automatically as inactive.