Comments (54)
I found out why (old) Litchi is able to set height limit to 6000 m:
it uses DataFlycSetLimits class - thanks to SetLimits command - I believe that AC is not checking the min/max values in flyc_param_infos and allows to set so high number
on the other hand, all versions of DJI GO don't use DataFlycSetLimits class at all, they set height limit through DataFlycSetParams class with SetParamsByHash command
from dji-firmware-tools.
chazz did you lose your drone? lol
from dji-firmware-tools.
Nah not yet. Hadn't had much time to test. Hopefully this weekend I have some decent weather. Ive made some parameter changes I'm anxious to test...How bout you, did you get yours up and running again?
from dji-firmware-tools.
some of the parameters can be revealed using DJI GO and config txt from DAT flight log
for example, changing expo values results in these 3 lines in config txt:
hash write index 325
hash write index 326
hash write index 327
and those numbers, of course, are indexes of parameters in flyc_param_infos
but watch out, DJI GO sometimes sends some params without user's knowledge, for example I've got a lot of 211s (height_limit_enabled_0) in my config txts
from dji-firmware-tools.
I suppose you changed defaultValue only
you need to change minValue too
from dji-firmware-tools.
problem is, that some of the parameters are present in the DJI GO too... it means that it will overwrite those values you did set in defaultValue in firmware
so if you don't intend to edit the apk (and don't want to care about those params within it) I suggest you change minValues the same way you changed defaultValues
from dji-firmware-tools.
@marck1991 thanks so much !!
from dji-firmware-tools.
from dji-firmware-tools.
from dji-firmware-tools.
Maybe try to also include tested values.
from dji-firmware-tools.
These changes MAY have had some effect on the horizontal speed…Hard to tell with a slight wind. I may try increasing index 194 on the Phantom and 190 on the App and taking the rest back to original default values…These setting changes didn’t cause issues while hovering… They need more testing..
Phantom changes
index" : 194 - g_config.control.horiz_vel_gain_0 - defaultValue" : 100 changed to 110
index" : 195 - g_config.control.horiz_vel_damping_gain_0 - defaultValue" : 105 changed to 110
index" : 196 - g_config.control.horiz_atti_damping_gain_0 - defaultValue" : 100 changed to 110
App. changes
index" : 190 - g_config.control.horiz_vel_gain_0 - defaultValue" : 90 changed to 110
index" : 191 - g_config.control.horiz_damping_gain_0 defaultValue" : 70 changed to 110
from dji-firmware-tools.
I tried this and no change from my previous test... The bird peaked at 38mph and back at 33. I think the wind is effecting the results..The max setting for Index 194 and 190 is 500 so either I'm not aggressive enough in my changes or its not doing anything noticeable or at all...Neither change had an effect while hovering
Phantom changes**
index" : 328, - g_config.control.dyn_safe_thrust_0 - defaultValue : 80 changed to 90 Max is 90
index" : 194 - g_config.control.horiz_vel_gain_0 - defaultValue" : 100 changed to 130
App. changes
index : 322, - g_config.control.dyn_safe_thrust_0 - defaultValue : 80 changed to 90 Max is 90
index" : 190 - g_config.control.horiz_vel_gain_0 - defaultValue" : 90 changed to 130
from dji-firmware-tools.
from dji-firmware-tools.
Yeah I first changed the vertical speed for a test...It did changed how it reacted...It would go up at 22mph and taper back to 14mph so i know my changes had an effect but it seemed to have some type of current limiting thing going on but i really didn't care about that yet because i just wanted to see if the changes i made worked...So I started with the settings I stated above...
Can you tell me the exact index #'s you changed that affected the thrust? on both the bird and app...
from dji-firmware-tools.
I think the esc has a rpm limiter. The settings had thrust in the name. My drone is all apart right now so i cant test anything for a few days.but you will know when you find it. It will go from idle to max rpm instantly amd vice versa but it will not be able to hove stable ifcits too high. And its probably not good for the esc to surge the power like that but idk. I set mine lower and it wouldnt come down and i had to csc from 20 ft lol.
from dji-firmware-tools.
I think it was basic_craft_thrust. I had mine going up at 27mph at one point idk if it was luck or somthing i had changed but i couldnt find it again
from dji-firmware-tools.
I was trying to see which of these you changed that caused the erratic behavior. Also maybe knowing what you changed the default value too... I don't really understand what is the difference between these two settings I pasted below. I was thinking maybe one of them (the slower one index 182) was the RTH thrust when the bird isn't receiving a signal from the RC...I noticed the roll, pitch and yaw index's have a very similar pattern (two like indexes for each)...I'm grasping at straws here trying to make sense of things...
"index" : 182,
"typeID" : 5,
"size" : 2,
"attribute" : 11,
"minValue" : 20,
"maxValue" : 500,
"defaultValue" : 80,
"name" : "g_config.control.basic_craft_thrust_0",
"modify" : true
or
index" : 186,
"typeID" : 5,
"size" : 2,
"attribute" : 11,
"minValue" : 20,
"maxValue" : 500,
"defaultValue" : 100,
"name" : "g_config.control.basic_thrust_0",
"modify" : true
from dji-firmware-tools.
"index" : 182,
"typeID" : 5,
"size" : 2,
"attribute" : 11,
"minValue" : 20,
"maxValue" : 500,
"defaultValue" : 80,
"name" : "g_config.control.basic_craft_thrust_0",
"modify" : true
anything above 90 cause erratic flight. i didnt even test it outside leting it hoverfor more than 5 seconds it would almost flip
from dji-firmware-tools.
when it slows down the speed at which it reacts to movements is what make it hover smooth. otherwise it over-corrects and continues until it probably falls. it also had alot to do with the throttle response. it is some sort of sensitivity setting
from dji-firmware-tools.
i think one way to see if 22.4 is its max ascend speed is to pull some weight off of the drone and send it back up. it should go up faster. if not then we know its probably limited in the firmware. id imagine the IMU would have alot to do as far as giving feedback to the esc about how the flight is going. and also im sure the motors have rpm limiters. but until i see max motor speed reached while in flight i want to push it more.
from dji-firmware-tools.
Nope it was going to be today but ups delayed delivery to monday
from dji-firmware-tools.
these settings had no effect on the speed of yaw,roll,pitch
the settings with gain next to them. when i set them higher than 100 i would get mc data error in the app. i seem top only get that when the values in both flyc_params do not match. even though they were not in the apps flyc_param under THAT name it still had an oscillating effect VERY similar to setting the gains too high
"name" : "g_config.pantilt.roll_speed_0",
"name" : "g_config.pantilt.pitch_speed_0",
"name" : "g_config.pantilt.yaw_speed_0",
"name" : "g_config.craft_model.motor_tilt_angle_0",
g_config.control.basic_craft_roll_0" limits, gain?
"g_config.control.basic_craft_pitch_0" limits, gain?
"g_config.control.basic_craft_yaw_0" limits, gain?
"name" : "g_config.craft_model.motor_tilt_angle_0",
from dji-firmware-tools.
PMCAPPFw3.bin: Updating "g_config.output_servo.min_limit[0]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.min_limit[1]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.min_limit[2]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.min_limit[3]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.min_limit[4]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.min_limit[5]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.min_limit[6]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.min_limit[7]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.max_limit[0]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.max_limit[1]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.max_limit[2]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.max_limit[3]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.max_limit[4]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.max_limit[5]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.max_limit[6]_0" limits,
PMCAPPFw3.bin: Updating "g_config.output_servo.max_limit[7]_0" limits,
setting these higher didnt make it fast but it made the throttle response insane
from dji-firmware-tools.
setting them lower made the motors run full speed on startup !
from dji-firmware-tools.
i just found out that you can test the new parameters with the flight simulator
from dji-firmware-tools.
this parameter result in instant takeoff at max speed, ignoring height limits. be very cautious with this parameter
PMCAPPFw3.bin: Updating "g_config.control.horiz_vel_atti_range_0" limits,
from dji-firmware-tools.
i confirmed speed changes with
PMCAPPFw3.bin: Updating "g_config.control.atti_limit_0" limits,
PMCAPPFw3.bin: Updating "g_config.control.atti_range_0" limits,
i think i can get it up to 63 mph
from dji-firmware-tools.
which means its also possible that it could ascend at 60 miles per hour
from dji-firmware-tools.
@mefistotelis how can i compare both flyc_param_infos to each other and see what parameters are in the aircrafts flyc that are not in the apps flyc? thankyou
and do you have any idea what this does
"defaultValue" : 0,
"name" : "g_config.api_entry_cfg.cheat_backdoor_0",
"modify" : true
from dji-firmware-tools.
ive tried
GREP
FGREP
DIFF
VDIFF
COMM
and i still cant get it to work. maybe you could tell me what to do. it would like to what parameters are in the ac flight controller that are not in the apps flyc.thanks again
from dji-firmware-tools.
i also notice after byte-patching with your commands the log shows
[smart_battery]this fireware calc gohme speed:7.800000 - land speed:2.500000
from dji-firmware-tools.
after byte-patching ... gohme speed:7.800000
Well this is strange. The command should have modified that. Are you sure you updated the drone with patched firmware?
compare both flyc_param_infos
I'd use grep -v "\"index\"" to remove indexes, then diff -u0 -w to compare. That will only work if the properties are in the same order, though.
If they're not, the simplest way would be to create Python script which compares entries.
from dji-firmware-tools.
im going to double check the go home speed in the morning. i will re-patch a binary to make sure
from dji-firmware-tools.
one thing i notice is it says "gohme" speed and not gohome speed, is this right?
[smart_battery]this fireware calc gohme speed:7.800000 - land speed:2.500000
i dont know if its just ferraripts log converter but i copied and pasted this from the log
from dji-firmware-tools.
@notsolowki for windows, check this out, http://winmerge.org (for comparing lines between 2 ascii files)
from dji-firmware-tools.
thanks ill try it
from dji-firmware-tools.
here is a list of parameters that are not in the andoird app
"name" : "g_config.knob.control_channel[KNOB_BASIC_YAW]_0",
"name" : "g_config.knob.control_channel[KNOB_BASIC_THRUST]_0",
"name" : "g_config.knob.control_channel[KNOB_ATTI_GAIN]_0",
"name" : "g_config.knob.control_channel[KNOB_GYRO_GAIN]_0",
"name" : "g_config.voltage2.vol_ceof_0",
"name" : "g_config.control.vel_braking_threshold_0",
"name" : "g_config.control.horiz_emergency_brake_tilt_max_0",
"name" : "g_config.control.atti_limit_0",
"name" : "g_config.control.avoid_atti_range_0",
"name" : "g_config.control.rotor_fault_test_type_0",
"name" : "g_config.control.rotor_fault_detection_time_0",
"name" : "g_config.control.rc_yaw_sensitivity_0",
"name" : "g_config.control.rc_throttle_sensitivity_0",
"name" : "g_config.control.torsion_ang_vel_cmd_slope_0",
"name" : "g_config.control.torsion_ang_acc_cmd_slope_0",
"name" : "g_config.control.throttle_output_max_0",
"name" : "g_config.control.yaw_output_max_0",
"name" : "g_config.control.atti_bat_limit_0",
"name" : "g_config.control.torsion_w_rate_bat_limit_0",
"name" : "g_config.control.vert_vel_up_bat_limit_0",
"name" : "g_config.control.vert_vel_down_bat_limit_0",
"name" : "g_config.imu_para_cfg.imu_adv_func.fuse_with_rtk_0",
"name" : "g_config.gps_cfg.super_svn_0",
"name" : "g_config.gps_cfg.fix_svn_0",
"name" : "g_config.gps_cfg.good_svn_0",
"name" : "g_config.gps_cfg.super_hdop_0",
"name" : "g_config.gps_cfg.fix_hdop_0",
"name" : "g_config.gps_cfg.good_hdop_0",
"name" : "g_config.gear_cfg.pack_type_0",
"name" : "g_config.api_entry_cfg.enable_time_stamp_0",
"name" : "g_config.api_entry_cfg.acc_data_type_0",
"name" : "g_config.api_entry_cfg.gyro_data_type_0",
"name" : "g_config.api_entry_cfg.alti_data_type_0",
"name" : "g_config.api_entry_cfg.height_data_type_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[0]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[1]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[2]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[3]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[4]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[5]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[6]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[7]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[8]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[9]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[10]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[11]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[12]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[13]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[14]_0",
"name" : "g_config.api_entry_cfg.std_msg_frq[15]_0",
"name" : "g_config.api_entry_cfg.authority_level_0",
"name" : "g_config.api_entry_cfg.cheat_backdoor_0",
"name" : "g_config.airport_limit_cfg.cfg_search_radius_0",
"name" : "g_config.airport_limit_cfg.cfg_disable_airport_fly_limit_0",
"name" : "g_config.airport_limit_cfg.cfg_debug_airport_enable_0",
"name" : "g_config.airport_limit_cfg.cfg_limit_data_0",
"name" : "g_config.airport_limit_cfg.cfg_sim_disable_limit_0",
"name" : "g_config.airport_limit_cfg.cfg_enable[FLY_LIMIT_TYPE_AIRPORT]_0",
"name" : "g_config.airport_limit_cfg.cfg_enable[FLY_LIMIT_TYPE_SPECIAL]_0",
"name" : "g_config.airport_limit_cfg.cfg_r1[FLY_LIMIT_TYPE_AIRPORT]_0",
"name" : "g_config.airport_limit_cfg.cfg_r1[FLY_LIMIT_TYPE_SPECIAL]_0",
"name" : "g_config.airport_limit_cfg.cfg_h1[FLY_LIMIT_TYPE_AIRPORT]_0",
"name" : "g_config.airport_limit_cfg.cfg_h1[FLY_LIMIT_TYPE_SPECIAL]_0",
"name" : "g_config.airport_limit_cfg.cfg_angle[FLY_LIMIT_TYPE_AIRPORT]_0",
"name" : "g_config.airport_limit_cfg.cfg_angle[FLY_LIMIT_TYPE_SPECIAL]_0",
"name" : "g_config.avoid_obstacle_limit_cfg.a_dec_max_0",
"name" : "g_config.avoid_obstacle_limit_cfg.v_fwd_max_0",
"name" : "g_config.avoid_obstacle_limit_cfg.v_bck_max_0",
"name" : "g_config.avoid_obstacle_limit_cfg.gain_dv2acc_0",
"name" : "g_config.avoid_obstacle_limit_cfg.safe_dis_0",
"name" : "g_config.avoid_obstacle_limit_cfg.damping_dis_0",
"name" : "g_config.misc_cfg.imu_temp_ctrl_slope_0"
"name" : "g_config.misc_cfg.auto_takeoff_height_0",
"name" : "g_config.misc_cfg.auto_landing_vel_L1_0",
"name" : "g_config.misc_cfg.auto_landing_vel_L2_0",
"name" : "g_config.hotpoint_cfg.battery_low_go_home_enable_0",
"name" : "g_config.hotpoint_cfg.enable_mode_0",
"name" : "g_config.hotpoint_cfg.free_yaw_0",
"name" : "g_config.hotpoint_cfg.auto_recover_0",
"name" : "g_config.hotpoint_cfg.limit_height_0",
"name" : "g_config.hotpoint_cfg.yaw_change_range_0",
"name" : "g_config.hotpoint_cfg.max_yaw_rate_0",
"name" : "g_config.hotpoint_cfg.max_angle_rate_0",
"name" : "g_config.hotpoint_cfg.max_tangent_vel_0",
"name" : "g_config.hotpoint_cfg.min_radius_0",
"name" : "g_config.hotpoint_cfg.max_radius_0",
"name" : "g_config.hotpoint_cfg.max_vert_vel_0",
"name" : "g_config.hotpoint_cfg.max_radius_vel_0",
"name" : "g_config.hotpoint_cfg.min_height_0",
"name" : "g_config.hotpoint_cfg.max_acc_0",
"name" : "g_config.hotpoint_cfg.max_distance_0",
"name" : "g_config.hotpoint_cfg.pos_gain_0",
"name" : "g_config.hotpoint_cfg.vel_gain_0",
"name" : "g_config.hotpoint_cfg.centripetal_gain_0",
"name" : "g_config.hotpoint_cfg.cmd_slope_0",
"name" : "g_config.hotpoint_cfg.output_slope_0",
"name" : "g_config.home_lock_cfg.max_horiz_vel_0",
"name" : "g_config.home_lock_cfg.min_fence_0",
"name" : "g_config.home_lock_cfg.max_angle_rate_0",
"name" : "g_config.home_lock_cfg.max_tangent_vel_0",
"name" : "g_config.home_lock_cfg.max_radius_vel_0",
"name" : "g_config.home_lock_cfg.fence_buffer_0",
"name" : "g_config.followme_cfg.enable_mode_0",
"name" : "g_config.followme_cfg.auto_recover_0",
"name" : "g_config.followme_cfg.auto_gimbal_pitch_0",
"name" : "g_config.followme_cfg.enter_gps_level_0",
"name" : "g_config.followme_cfg.horiz_vel_limit_0",
"name" : "g_config.followme_cfg.min_init_height_0",
"name" : "g_config.followme_cfg.min_us_limit_height_0",
"name" : "g_config.followme_cfg.min_press_limit_height_0",
"name" : "g_config.followme_cfg.p_horiz_vel_ctrl_0",
"name" : "g_config.followme_cfg.slop_horiz_vel_0",
"name" : "g_config.followme_cfg.max_drone_to_drone_dist_0",
"name" : "g_config.followme_cfg.max_phone_to_phone_dist_0",
"name" : "g_config.followme_cfg.set_circle_0",
"name" : "g_config.followme_cfg.min_limit_radius_0",
"name" : "g_config.followme_cfg.max_limit_radius_0",
"name" : "g_config.followme_cfg.cmd_yaw_factor_0",
"name" : "g_config.followme_cfg.follow_me_wait_0",
"name" : "g_config.followme_cfg.follow_me_with_rc_cmd_0",
"name" : "g_config.followme_cfg.test_yaw_mode_0",
"name" : "g_config.followme_cfg.estimate_vel_filter_fc_0",
"name" : "g_config.followme_cfg.estimate_pos_filter_fc_0",
"name" : "g_config.followme_cfg.brakes_pos_filter_fc_0",
"name" : "g_config.followme_cfg.vel_front_feed_para_0",
"name" : "g_config.waypoint_cfg.enable_mode_0",
"name" : "g_config.waypoint_cfg.max_vert_vel_0",
"name" : "g_config.waypoint_cfg.max_horiz_vel_0",
"name" : "g_config.waypoint_cfg.max_auto_yaw_rate_0",
"name" : "g_config.waypoint_cfg.max_line_acc_0",
"name" : "g_config.waypoint_cfg.max_curve_acc_0",
"name" : "g_config.fdi.max_ctrl_frequency_power_0"
"name" : "g_config.fdi.min_ctrl_frequency_interesting_0"
"name" : "g_config.fdi.max_ahrs_init_gyro_bias_0"
"name" : "g_config.fdi.max_ahrs_init_acc_bias_0"
"name" : "g_config.fdi.max_ahrs_init_magn_x_noise_0"
"name" : "g_config.fdi.max_ahrs_init_magn_yz_noise_0"
"name" : "g_config.fdi.max_ahrs_init_trans_acc_0"
"name" : "g_config.fdi.max_ahrs_init_wz_integral_0"
"name" : "g_config.fdi.max_ahrs_init_wxy_integral_0"
"name" : "g_config.fdi.max_static_acc_stdvar_0"
"name" : "g_config.fdi.max_static_gyro_stdvar_0"
"name" : "g_config.fdi_open.compass_fdi_open_0",
"name" : "g_config.fdi_open.gps_fdi_open_0",
"name" : "g_config.fdi_open.gyro_fdi_open_0",
"name" : "g_config.fdi_open.acc_fdi_open_0",
"name" : "g_config.fdi_open.baro_fdi_open_0",
"name" : "g_config.fdi_open.motor_fdi_open_0",
"name" : "g_config.fdi_open.motor_kf_fdi_open_0",
"name" : "g_config.fdi_open.motor_rls_fdi_open_0",
"name" : "g_config.fdi_open.motor_esc_fdi_open_0",
"name" : "g_config.fdi_open.motor_ctrl_fdi_open_0",
"name" : "g_config.fdi_open.ahrs_fdi_open_0",
"name" : "g_config.fdi_open.ahrs_bias_fdi_open_0",
"name" : "g_config.fdi_open.ahrs_vel_fdi_open_0",
"name" : "g_config.fdi_open.ahrs_init_fdi_open_0",
"name" : "g_config.fdi_open.ahrs_motor_fdi_open_0",
"name" : "g_config.fdi_open.ctrl_fdi_open_0",
"name" : "g_config.fdi_open.ctrl_impact_fdi_open_0",
"name" : "g_config.fdi_open.ctrl_vibrate_fdi_open_0",
"name" : "g_config.fdi_inject.imu_0"
"name" : "g_config.fdi_inject.compass_0"
"name" : "g_raw.gps_snr.snr[0]_0"
"name" : "g_raw.gps_snr.snr[1]_0"
"name" : "g_raw.gps_snr.snr[2]_0"
"name" : "g_raw.gps_snr.snr[3]_0"
"name" : "g_raw.gps_snr.snr[4]_0"
"name" : "g_raw.gps_snr.snr[5]_0"
"name" : "g_raw.gps_snr.snr[6]_0"
"name" : "g_raw.gps_snr.snr[7]_0"
"name" : "g_raw.gps_snr.snr[8]_0"
"name" : "g_raw.gps_snr.snr[9]_0"
"name" : "g_raw.gps_snr.snr[10]_0"
"name" : "g_raw.gps_snr.snr[11]_0"
"name" : "g_raw.gps_snr.snr[12]_0"
"name" : "g_raw.gps_snr.snr[13]_0"
"name" : "g_raw.gps_snr.snr[14]_0"
"name" : "g_raw.gps_snr.snr[15]_0"
"name" : "g_raw.gps_snr.snr[16]_0"
"name" : "g_raw.gps_snr.snr[17]_0"
"name" : "g_raw.gps_snr.snr[18]_0"
"name" : "g_raw.gps_snr.snr[19]_0"
"name" : "g_raw.gps_snr.snr[20]_0"
"name" : "g_raw.gps_snr.snr[21]_0"
"name" : "g_raw.gps_snr.snr[22]_0"
"name" : "g_raw.gps_snr.snr[23]_0"
"name" : "g_raw.gps_snr.snr[24]_0"
"name" : "g_raw.gps_snr.snr[25]_0"
"name" : "g_raw.gps_snr.snr[26]_0"
"name" : "g_raw.gps_snr.snr[27]_0"
"name" : "g_raw.gps_snr.snr[28]_0"
"name" : "g_raw.gps_snr.snr[29]_0"
"name" : "g_raw.gps_snr.snr[30]_0"
"name" : "g_raw.gps_snr.snr[31]_0"
"name" : "g_raw.gps_snr.snr[32]_0"
"name" : "g_raw.gps_snr.snr[33]_0"
"name" : "g_raw.gps_snr.snr[34]_0"
"name" : "g_raw.gps_snr.snr[35]_0"
"name" : "g_raw.gps_snr.snr[36]_0"
"name" : "g_raw.gps_snr.snr[37]_0"
"name" : "g_raw.gps_snr.snr[38]_0"
"name" : "g_raw.gps_snr.snr[39]_0"
"name" : "g_raw.gps_snr.snr[40]_0"
"name" : "g_raw.gps_snr.snr[41]_0"
"name" : "g_raw.gps_snr.snr[42]_0"
"name" : "g_raw.gps_snr.snr[43]_0"
"name" : "g_raw.gps_snr.snr[44]_0"
"name" : "g_raw.gps_snr.snr[45]_0"
"name" : "g_raw.gps_snr.snr[46]_0"
"name" : "g_raw.gps_snr.snr[47]_0"
"name" : "g_raw.gps_snr.snr[48]_0"
"name" : "g_raw.gps_snr.snr[49]_0"
"name" : "g_raw.gps_snr.snr[50]_0"
"name" : "g_raw.gps_snr.snr[51]_0"
"name" : "g_raw.gps_snr.snr[52]_0"
"name" : "g_raw.gps_snr.snr[53]_0"
"name" : "g_raw.gps_snr.snr[54]_0"
"name" : "g_raw.gps_snr.snr[55]_0"
"name" : "g_raw.gps_snr.snr[56]_0"
"name" : "g_raw.gps_snr.snr[57]_0"
"name" : "g_raw.gps_snr.snr[58]_0"
"name" : "g_raw.gps_snr.snr[59]_0"
"name" : "g_raw.gps_snr.snr[60]_0"
"name" : "g_raw.gps_snr.snr[61]_0"
"name" : "g_raw.gps_snr.snr[62]_0"
"name" : "g_raw.gps_snr.snr[63]_0"
"name" : "g_real.force_on.ignore_compass_error_0"
"name" : "g_navi_data.horiz_vel_sensor_id_0"
"name" : "g_real.knob.scales[KNOB_BASIC_YAW]_0"
"name" : "g_real.knob.scales[KNOB_BASIC_THRUST]_0"
"name" : "g_real.knob.scales[KNOB_ATTI_GAIN]_0"
"name" : "g_real.knob.scales[KNOB_GYRO_GAIN]_0"
"name" : "g_cfg_debug.simulator_initial_lati_0"
"name" : "g_cfg_debug.simulator_initial_longti_0"
"name" : "g_cfg_debug.simulator_mvo_flag_0"
"name" : "g_cfg_debug.simulator_gps_hdop_0"
"name" : "g_cfg_debug.simulator_check_motor_0"
"name" : "wall_dis_front_0"
"name" : "wall_dis_right_0"
"name" : "wall_dis_back_0"
"name" : "wall_dis_left_0"
"name" : "g_cfg_debug.force_flash_led_0"
"name" : "g_debug.sim_flag[0]_0"
"name" : "g_debug.sim_flag[1]_0"
"name" : "g_debug.sim_flag[2]_0"
"name" : "g_debug.sim_flag[3]_0"
"name" : "g_debug.sim_var[0]_0"
"name" : "g_debug.sim_var[1]_0"
"name" : "g_debug.sim_var[2]_0"
"name" : "g_debug.sim_var[3]_0"
"name" : "wp_setting.length_0"
"name" : "wp_setting.vel_cmd_range_0"
"name" : "wp_setting.idle_vel_0"
"name" : "wp_setting.action_on_finish_0"
"name" : "wp_setting.mission_exec_num_0"
"name" : "wp_setting.yaw_mode_0"
"name" : "wp_setting.trace_mode_0"
"name" : "wp_setting.action_on_rc_lost_0"
"name" : "g_config.bat_limit.limit_delt_vol.min_0",
"name" : "g_config.bat_limit.limit_delt_vol.max_0",
"name" : "g_config.bat_limit.limit_delt_vol.weight_0",
"name" : "g_config.bat_limit.limit_vol.min_0",
"name" : "g_config.bat_limit.limit_vol.max_0",
"name" : "g_config.bat_limit.limit_vol.weight_0",
"name" : "g_config.bat_limit.limit_max_power.min_0",
"name" : "g_config.bat_limit.limit_max_power.max_0",
"name" : "g_config.bat_limit.limit_max_power.weight_0",
"name" : "g_config.bat_limit.limit_temp.min_0",
"name" : "g_config.bat_limit.limit_temp.max_0",
"name" : "g_config.bat_limit.limit_temp.weight_0",
"name" : "g_config.bat_limit.limit_scale.min_0",
"name" : "g_config.bat_limit.limit_scale.max_0",
"name" : "g_config.bat_limit.limit_scale.weight_0",
"name" : "g_config.bat_limit.limit_power_rate_capacity.min_0",
"name" : "g_config.bat_limit.limit_power_rate_capacity.max_0",
"name" : "g_config.bat_limit.limit_power_rate_capacity.weight_0",
"name" : "g_config.bat_limit.limit_power_rate_temp.min_0",
"name" : "g_config.bat_limit.limit_power_rate_temp.max_0",
"name" : "g_config.bat_limit.limit_power_rate_temp.weight_0",
"name" : "g_config.bat_limit.limit_bat_current_after_overflow_0",
"name" : "g_config.bat_limit.limit_up_rate_0",
"name" : "g_config.bat_limit.limit_down_rate_0",
from dji-firmware-tools.
Does anyone have any idea what can do the following parameter?
{
"index" : 211,
"typeID" : 0,
"size" : 1,
"attribute" : 11,
"minValue" : 1,
"maxValue" : 2,
"defaultValue" : 1,
"name" : "g_config.advanced_function.height_limit_enabled_0",
"modify" : true
}
Is it possible that is sufficient change defaultValue to "2" to disable the maximum height reachable?
Thanks in advance
from dji-firmware-tools.
Hi @notsolowki ,
I saw in your old FW versions you have touched a lot of parameters.
Can you give us a comment for the purpose of these?
-g_config.voltage2.level1_smart_battert_gohome_0
-g_config.voltage2.level2_smart_battert_land_0
-g_config.control.horiz_emergency_brake_tilt_max_0
-g_config.control.vert_vel_up_bat_limit_0
-g_config.control.vert_vel_down_bat_limit_0
I notice that you made a lot of adjustment of these in your versions, but it's not very clear to me the impact they have on the copter! :(
Thanks in advance!
from dji-firmware-tools.
I extracted mi01 from P3P 1.7 firmware using dji_fwcon.py and then used dji_flyc_param_ed.py to read and write data from and to mi01. Then renamed edited mi01.bin to PMCAPPFw3.bin and put it on SD card. It flashed successfully and got renamed to PMCAPPFw3_updated.bin .
My problem: The up and down speed didn't change! :(
But the flashing progress must be successful, because in GO3 app i can see the new max high applied.
I also could fly 80+ km/h in atti mode, so I think the degree adjustments also have been applied.
Does someone (maybe @notsolowki or @MrBurnsAT ) have an answer, why the ascend and descend speed from my P3P didn't change?
They are still 3m/s down and 5m/s up.
Ich changed this parameters:
g_config.control.vert_up_vel_0 --> 8
g_config.control.vert_down_vel_0 --> 5
g_config.flying_limit.max_height_0 --> 1195
g_config.control.atti_limit_0 --> 45
g_config.control.atti_range_0 --> 45
from dji-firmware-tools.
Yes you are right, thanks so much for your answer!!
Should I set minValue to defaultValue for all of the five parameters I wrote in the last post?
For example I did this before your answer @ferraript :
"index" : 316,
"typeID" : 5,
"size" : 2,
"attribute" : 11,
"minValue" : 10,
"maxValue" : 60,
"defaultValue" : 45,
"name" : "g_config.control.atti_limit_0",
"modify" : true
"index" : 323,
"typeID" : 5,
"size" : 2,
"attribute" : 11,
"minValue" : 1,
"maxValue" : 10,
"defaultValue" : 8,
"name" : "g_config.control.vert_up_vel_0",
"modify" : true
from dji-firmware-tools.
@ferraript testet it with your suggestions and I got the results I expected! Thanks a lot!
from dji-firmware-tools.
glad to help, fly safe ;)
from dji-firmware-tools.
Sorry for not having read everything regarding the topic, but would it theoretically be possible to implement something like mavic's tripod mode for the p3 by changing flight parameters just by the app side, without having to reflash the FC firmware?
I mean when there's enough understanding about the binary protocol DJI GO uses to communicate with the flight controler, if it then would be possible to change something that would result in decreaed speed, but higher level of precision and stability?
from dji-firmware-tools.
Recently someone asked me for this one, so since I investigated this - there's the info:
Parameter:
g_real.status.motor_status_0
Definition:
{ "index" : 733, "typeID" : 0, "size" : 1, "attribute" : 0, "minValue" : 0, "maxValue" : 1, "defaultValue" : 0, "name" : "g_real.status.motor_status_0" }
Function:
The parameter allows ignoring status error of various drone components while starting motors.
Values:
0 - Do not force starting motors when status of any component indicates error. This value makes the drone allow starting motors only if all components are returning "safe to fly" status. This is the default.
1 - Force starting motors when status of any component indicates error. This will cause the motors to start even if the drone is not ready to fly yet, or errors are indicated by components.
from dji-firmware-tools.
I recently renamed the files created to use only the mXXYY naming instead om miNN. The mXXYY convention became kind of a standard way of naming modules in our community.
from dji-firmware-tools.
what @phhh3 is now looking for is P3X_FW_V01.07.0060_m0306.bin :) .
from dji-firmware-tools.
Yes thats the right command. After editing flyc_param_infos use dji_flyc_param_ed.py -vv -u -m P3X_FW_V01.07.0060_m0306.bin to write back.
Next step: Rename " P3X_FW_V01.07.0060_m0306.bin " to " PMCAPPFw3.bin "
After: Put PMCAPPFw3.bin onto the SD card and power on your Phantom 3 Adv or Pro and wait for flash to complete, that takes about 5-10 minutes.
from dji-firmware-tools.
@notsolowki hey man can u send me your flyc_param_infos file? thanks~
from dji-firmware-tools.
@notsolowki hey man can u send me your flyc_param_infos file? thanks~
...me too, please!
from dji-firmware-tools.
@mefistotelis, can you figure out what the cheat_backdoor parameter does.
Hard to tell; the related structure travels as reference to a lot of functions. Not easy to track.
EDIT: well it does something, no idea what.
signed int __fastcall sub_8047D5E(int a1) { int v1; // r4@1 signed int result; // r0@3 unsigned int v3; // r0@10 int *v4; // r6@11 . v1 = a1; if ( !a1 ) return 1; if ( *(_DWORD *)(a1 + 8) != 33819136 ) return 8; if ( g_real__config.api_entry_cfg.cheat_backdoor == 1 && *(_DWORD *)a1 == 10086 ) { if ( *(_DWORD *)(a1 + 4) <= 2u ) { sub_805A964("DJI-DEMO AES256 KEY-lala-haha-MA", *(_DWORD *)a1 - 10086); return 0; } return 7; } v3 = sub_8047D02(*(_DWORD *)a1); if ( v3 < 2 ) { v4 = &dword_2001D904[10 * v3]; printf_send_c0E_sub_806E08A("req %d real %d %d", *(_DWORD *)(v1 + 4), v4[1]); word_2002014C = 0; dword_20020164 = 0; dword_20020160 = 0; if ( *(_DWORD *)(v1 + 4) <= (unsigned int)v4[1] ) { ((void (*)(void))sub_805A964)(); printf_send_c0E_sub_806E08A("[SDK/USER] sdk_set_key %s", v4 + 2); return 0; } return 7; } if ( *(_DWORD *)v1 != dword_20020160 ) { dword_20020160 = *(_DWORD *)v1; dword_20020168 = *(_DWORD *)(v1 + 4); word_2002014C = 0; } ++word_2002014C; packet_send_s03_c61(v1); if ( (unsigned __int16)word_2002014C < 0xAu ) return 3; if ( word_2002014C == 10 ) { dword_2002016C = aircraft_status_20001678; } else if ( (unsigned int)(aircraft_status_20001678 - dword_2002016C) > 0x1F4 ) { word_2002014C = 0; return 3; } if ( dword_20020164 == 1 ) { result = 5; } else if ( dword_20020164 ) { result = 6; } else { result = 4; } return result; }
from dji-firmware-tools.
@mefistotelis, did you add the lala-haha-MA key lol. Somthing to do with dji-demo? Maybe its for factory resetting the firmware? I notice alot of other dji drones have the same parameter.
if ( g_real__config.api_entry_cfg.cheat_backdoor == 1 && *(_DWORD *)a1 == 10086 ) { if ( *(_DWORD *)(a1 + 4) <= 2u ) { sub_805A964("DJI-DEMO AES256 KEY-lala-haha-MA", *(_DWORD *)a1 - 10086); return 0; } return 7; }
from dji-firmware-tools.
@mefistotelis, did you add the lala-haha-MA key lol.
No. Maybe it's some kind of Chinese joke, no idea.
from dji-firmware-tools.
I was comparing PMCAPPFw.bin files to see why some worked and others didnt. I found Another way to extract and compare existing PMCAPP Fw3.bin files to learn trial and error in testing changes....
dji_flyc_param_ed.py -vv -x -m PMCAPPFw3.bin
from dji-firmware-tools.
Related Issues (20)
- error 1112 HOT 2
- Phantom 4 I2C reading one chip only HOT 1
- Mavic2Pro, Occusync, 4/5g Modem
- DJI Mini 4 Pro gimbal calibration HOT 1
- Is anyone working on an acro mode mod for FPV mode? HOT 1
- After resetting the ph4 battery using the Dji battery killer again, there are errors in the bite register (XCHG,XDSG,SEC1,SEC2). Help!
- What happens if you only update the drone firmware
- DFT
- Phantom 4 batteries after years of not being used
- Getting Error Logs from Mavic Air 2 HOT 7
- Mini 2 flight controller firmware
- trying to clear error 10016 on Air2 S HOT 4
- dji mini 4 pro decode with dji_imah_fwsig
- Mavic 3 battery can not unseal by dji battery killer v0.5
- DJI Smart Controller RM500 battery - can't unseal
- Mavic Air 2 Issue HOT 1
- DJI Air 3 HOT 4
- mini 3 WM162 Main Processing Board motor driver looks like MP6543
- Gimbal calibration - DJI mini 2 SE HOT 1
- Mini 3 Battery BQ9003 Unseal Key
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dji-firmware-tools.