Love your honesty. I fpv single rotor helicopters exclusively. And often quad pilots shows off all the smooth and precision video and hide all nasty problems. The only advantage of single rotor heli is that the acro mode runs a fixed constant RPM, and airfoil has very precise linear relation between angle and lift, so, there is no dynamic PIDs change based on throttle needed in the entire throttle range. Heli also has the I term overshooting problem.
this code is a must have for racing.. been using it for a while... this code really tightens up your spiral manoeuvres to the point where you don't need to drift into turns.. trying to do so tends to have you hitting the inside pole of the gate
Just had the same experience today. Wanted to try out 48k PWM because of what I read from Oscar Liang but got misc wobbling where it was stable before. So I just changed it back. It flew just fine before anyway :)
Is that anti-gravity made for nose-up when throttle? So when we have nose-down on throttle cut, we need to lower the anti-gravity. And as long as the drone never has nose-up issue when punch we dont need anti-gravity right?
Removing TPA and tuning the PIDs in conjunction with linear_throttle effectively eliminated the throttle-chop wobbles on my toothpick. I turned off dmin and TPA, linear throttle at 55, and I cranked the PD after dialing in the balance. The PID authority feels balanced throughout the throttle range now. Why can't dmin work as designed here!? Does the code need review?
D_min works fine. You just want high D-gains for stability and to combat gyro deviation (wash, wind, etc...). At 0% throttle, quad is slow so D-tem does not react much.
Potentially stupid question - would it be worth trying to have ultra-aggressive I-Term clamping anytime a motor is at saturation for more than (a small number of N) PID cycles? Trying to work through all the potentially negative ramifications, but that might be a way to limit a lot of the saturation-accumulation driven wobbles present on any super-aggressive move. To some extent, thrust linearization is the other part of that fix, but bounce-back accumulation is definitely a thing, and any instance where motor saturation is significant.
Ok, finally watched some more - AG-Boost in those situations is a more flexible answer - although saturation detection may still have some value. Can probably leverage the dMinGain logic or something similar.
Because you want the proper balance between the minimum D-gain and P-gain for the best prop was handling. P and D work together for prop was pushback. D_min boosting D-gain makes that too complex to determine. So turn it off.
Push PD gain up for max P&D push back to outside disturbances. They push together to fight any (wind, prop wash, etc.). Also for big crafts, you need higher gains to not get wobble. More gain = more PID authority and advanced timing on gyro changes.
Thanks for the video I have the same issue (no yaw problem), I recently switched from Betaflight 3.5.5 to 4.2.0 No bobbles to bobbles when chopping the throttle, I know it's not a balance issue and must be a setting. Adjusting antigravity gain makes no difference, this has given me few ideas to investigate, the tune seems fine to me and the quad now is flying way better with rpm filtering and tracks very precisely. What I think it could be is my rpm min is too low and that's why I did not have the issue on 3.5.5?
@@uavtech not a huge fan of that idea. I've seen it but it seems silly to me. I dont like on off logic. To me it makes more sense to just increase a rather than enable/disable the dynamic notch.
Thanks for the video, great content. Never understood why I can't just feed blackbox information to my FC (BF) after a flight and feed it the information so it can tune (make improvements). If do this after every session in the end it will be tuned, right? Even at the refinery I work PID controllers are auto tuning these days. With al the advanced (hidden) features we need more stuff to be automated. So, tune it with your guide to get it 90% there and then let it refine itself. At the refinery smart controllers are doing things we could never have thought or imagined, we just set the limits for (proces) safety, PID controllers are still the basis of it all though.
Yeah, noone has coded it yet for fun (in terms of BF and OpenSource). It is a hobby. For the private sector, it is not a billion dollar industry (yet?) I reckon to make it worth anyone's time to code it up. It is more than meets the eye to detect a Stepped Response and then move stuff to get a Critically Damped PID control response. It really needs do be done on the fly, and we lack processor power and GPS to auto-fly the thing. Safely.
@@uavtech It is sometimes hard to imagine people doing this just as a hobby, takes a special kind of person. I always imagined more influx from the commercial side of things, the fpv community is a huge test base. Drones are the future, everybody knows that so money should not be the issue. This is more out of the box thinking I gues. Thx again for your content, glad to be a patreon
so where can I hire you at to help me tune my quad? I appreciate this lesson, but honestly, this is all greek to me haha. I just know I get a weird wobble when I let off throttle...
UAV Tech Sure... but you could not increase D to get P higher to fight the wobble. D is noise limited from what I understand. So why not increase filtering a bit to increase PD while keeping the balance
@@jas-FPV , yep. You could. Maybe. But that increase signal delay so gets to be counter productive. Most of the time as well, D-term oscillations are not noise related. It is a harmonic of the quad inertia, gyro signal delay, to the motor delays in ramping, etc... to the D-term reacting. Too much shit at play with these thing. Damn flying things are complicated. :-/ D-term is limited too on on filter amount for smooth forward flight though.
Couldn’t you just decrease anti gravity or maybe even turn it off altogether? Maybe I’m missing something but if you’re centre of gravity is fairly good you can turn anti gravity way down usually.
Ok I tried my PIDs from Beta 3.5.5 and my boble/wobble was still there, improved but still noticeable. I flew my 1st quad which is the same build apart from BLheli S esc's Beta 3.5.5 and near enough flat when chopping the throttle. So I tried changing P and I on pitch and roll, no change, increased Anti gravity gain from 7 to 20 and this had the most dramatic effect, it increases the bobble! to the point of a twitch! does this give a clue as to what is causing in Beta 4.2? I like most of the improvements in 4.2, rpm filters prop wash handling and the very precise tracking, but I now have this issue that was not there when on 3.5.5? and I have a near identical quad that is running Beta 3.5.5, with the same PIDs on older BLheli S esc's with no rpm filtering and it flies better! 😢...
@@uavtech For sure It will be something I have missed and not 4.2 fault, I have the 2 profiles set up to experiment. Profile 2 has dynamic idle to zero but on profile 1 and I did the calculation and it's 19, Throttle boost is zero adjusting this made no differrence.I also originally followed the tuning guide and applied the cinematic defaults, so I may have left this in? Thanks so much for your time, so much appreciated! # diff all # version # Betaflight / STM32F405 (S405) 4.2.0 Jun 14 2020 / 03:04:22 (8f2d21460) MSP API: 1.43 # config: manufacturer_id: MTKS, board_name: MATEKF405CTR, version: f173f9bc, date: 2019-10-02T14:43:13Z # start the command batch batch start # reset configuration to default settings defaults nosave board_name MATEKF405CTR manufacturer_id MTKS mcu_id 002d003d574850192034344b signature # name: MARTIAN 4.0 # resources resource MOTOR 5 NONE resource MOTOR 6 NONE resource SERVO 1 A15 resource PWM 3 NONE resource LED_STRIP 1 NONE resource SERIAL_TX 5 NONE resource CAMERA_CONTROL 1 A08 resource PINIO 1 C12 # servo servo 0 1600 1900 1600 100 12 # feature feature SERVO_TILT feature GPS # beeper beeper -RX_LOST_LANDING beeper -BAT_CRIT_LOW beeper -BAT_LOW beeper -ACC_CALIBRATION beeper -ACC_CALIBRATION_FAIL beeper -DISARM_REPEAT beeper -ON_USB beeper -BLACKBOX_ERASE beeper -RC_SMOOTHING_INIT_FAIL # beacon beacon RX_SET # serial serial 0 2 115200 57600 0 115200 serial 1 0 115200 57600 0 115200 serial 2 8192 115200 57600 0 115200 serial 3 64 115200 57600 0 115200 # aux aux 0 0 1 1800 2100 0 0 aux 1 2 5 1350 1650 0 0 aux 2 46 6 1800 2100 0 0 aux 3 13 5 1800 2100 0 0 aux 4 35 2 1800 2100 0 0 aux 5 36 0 1800 2100 0 0 aux 6 37 3 1800 2100 0 0 aux 7 40 7 1800 2100 0 0 # vtxtable vtxtable bands 5 vtxtable channels 8 vtxtable band 1 BOSCAM_A A CUSTOM 5865 5845 5825 5805 5785 5765 5745 5725 vtxtable band 2 BOSCAM_B B CUSTOM 5733 5752 5771 5790 5809 5828 5847 5866 vtxtable band 3 BOSCAM_E E CUSTOM 5705 5685 5665 5645 5885 5905 5925 5945 vtxtable band 4 FATSHARK F CUSTOM 5740 5760 5780 5800 5820 5840 5860 5880 vtxtable band 5 RACEBAND R CUSTOM 5658 5695 5732 5769 5806 5843 5880 5917 vtxtable powerlevels 3 vtxtable powervalues 25 200 400 vtxtable powerlabels 25 200 500 # master set gyro_lowpass2_hz = 300 set dyn_notch_width_percent = 0 set dyn_notch_q = 250 set dyn_notch_min_hz = 90 set dyn_notch_max_hz = 350 set dyn_lpf_gyro_min_hz = 240 set dyn_lpf_gyro_max_hz = 600 set acc_calibration = -17,46,-193,1 set rssi_scale = 200 set rc_smoothing_input_type = PT1 set rc_smoothing_auto_smoothness = 40 set fpv_mix_degrees = 25 set serialrx_provider = FPORT set serialrx_halfduplex = ON set dshot_bidir = ON set use_unsynced_pwm = OFF set failsafe_delay = 20 set failsafe_procedure = GPS-RESCUE set bat_capacity = 1500 set beeper_dshot_beacon_tone = 5 set yaw_motors_reversed = ON set small_angle = 180 set gps_provider = UBLOX set gps_sbas_mode = EGNOS set gps_auto_baud = ON set gps_rescue_angle = 30 set gps_rescue_initial_alt = 20 set gps_rescue_descent_dist = 100 set gps_rescue_min_sats = 5 set gps_rescue_allow_arming_without_fix = ON set pid_process_denom = 2 set tlm_halfduplex = OFF set osd_warn_arming_disable = OFF set osd_warn_batt_not_full = OFF set osd_warn_batt_warning = OFF set osd_warn_batt_critical = OFF set osd_warn_visual_beeper = OFF set osd_warn_crash_flip = OFF set osd_warn_esc_fail = OFF set osd_warn_core_temp = OFF set osd_rssi_alarm = 30 set osd_cap_alarm = 1500 set osd_tim1 = 769 set osd_vbat_pos = 2124 set osd_rssi_pos = 2114 set osd_rssi_dbm_pos = 66 set osd_tim_1_pos = 2134 set osd_current_pos = 417 set osd_mah_drawn_pos = 2497 set osd_craft_name_pos = 2505 set osd_gps_speed_pos = 2544 set osd_gps_lon_pos = 2097 set osd_gps_lat_pos = 2081 set osd_gps_sats_pos = 2537 set osd_home_dir_pos = 2170 set osd_home_dist_pos = 2167 set osd_altitude_pos = 2517 set osd_debug_pos = 233 set osd_warnings_pos = 329 set osd_stat_rtc_date_time = ON set osd_stat_tim_1 = ON set osd_stat_tim_2 = OFF set osd_stat_max_dist = ON set osd_stat_max_alt = ON set debug_mode = GYRO_SCALED set vtx_band = 4 set vtx_channel = 4 set vtx_power = 3 set vtx_freq = 5800 set vcd_video_system = PAL set pinio_box = 40,255,255,255 set gyro_1_align_yaw = 2700 set gyro_rpm_notch_q = 900 set name = MARTIAN 4.0 profile 0 # profile 0 set dyn_lpf_dterm_min_hz = 84 set dyn_lpf_dterm_max_hz = 204 set dyn_lpf_dterm_curve_expo = 8 set dterm_lowpass2_hz = 180 set vbat_pid_gain = ON set anti_gravity_gain = 15000 set feedforward_transition = 70 set iterm_rotation = ON set iterm_relax_type = GYRO set iterm_relax_cutoff = 5 set iterm_windup = 75 set yaw_lowpass_hz = 50 set throttle_boost = 1 set throttle_boost_cutoff = 10 set p_pitch = 74 set d_pitch = 61 set p_roll = 67 set d_roll = 56 set p_yaw = 72 set d_min_roll = 37 set d_min_pitch = 40 set ff_interpolate_sp = AVERAGED_4 set ff_spike_limit = 50 set ff_smooth_factor = 50 set ff_boost = 0 set idle_min_rpm = 19 profile 1 # profile 1 set vbat_pid_gain = ON set anti_gravity_gain = 7000 set iterm_rotation = ON set iterm_relax_type = GYRO set throttle_boost = 0 set p_pitch = 54 set i_pitch = 50 set d_pitch = 27 set f_pitch = 60 set p_roll = 50 set i_roll = 45 set d_roll = 25 set f_roll = 60 set p_yaw = 66 set i_yaw = 45 set f_yaw = 0 set d_min_roll = 0 set d_min_pitch = 0 profile 2 # profile 2 set vbat_pid_gain = ON set anti_gravity_gain = 15000 set iterm_rotation = ON set iterm_relax_type = GYRO set p_pitch = 54 set i_pitch = 50 set d_pitch = 27 set f_pitch = 60 set p_roll = 50 set i_roll = 45 set d_roll = 25 set f_roll = 60 set p_yaw = 66 set i_yaw = 45 set f_yaw = 0 set d_min_roll = 0 set d_min_pitch = 0 # restore original profile selection profile 1 rateprofile 0 # rateprofile 0 set thr_expo = 1 set roll_rc_rate = 75 set pitch_rc_rate = 75 set yaw_rc_rate = 70 set roll_expo = 40 set pitch_expo = 40 set yaw_expo = 40 set roll_srate = 85 set pitch_srate = 85 set yaw_srate = 85 set tpa_rate = 10 set tpa_breakpoint = 1650 rateprofile 1 rateprofile 2 rateprofile 3 rateprofile 4 rateprofile 5 # restore original rateprofile selection rateprofile 0 # save configuration save Write your command here. Press Tab for AutoComplete.
Do you have a DIFF ALL from 3.5 settings? Also log of no throbbles in 3.5 and then of throbbles in 4.2; with same settings? At a glance, the PD Gain here is low. Is this a 5"? Also, some of the settings would not match 3.5; what was available in 3.5 at least.
@@uavtech Here are the 3.5 quad, yes they both are 5" running DAL 5045 props, but the frames are Realacc Martian IV 6 Inch 250mm as I find 5" props on a 6" quad just flies better, all up weight is 700 grams for both, flying on 4s, it maybe I have just adapted to my poorly tuned quad, but for me it works. # diff all # version # Betaflight / MATEKF405 (MKF4) 3.5.5 Jan 15 2019 / 10:05:36 (88921670b) MSP API: 1.40 board_name MATEKF405 manufacturer_id mcu_id 004500493436510a33323736 signature # reset configuration to default settings defaults nosave # name name MARTIAN 4.1 # resources resource MOTOR 5 NONE resource MOTOR 6 NONE resource PWM 3 NONE resource LED_STRIP 1 NONE resource SERIAL_TX 5 NONE resource CAMERA_CONTROL 1 A08 resource PINIO 1 C12 # mixer # servo # servo mix # feature feature -SOFTSERIAL feature GPS feature AIRMODE # beeper beeper -RX_LOST_LANDING beeper -BAT_LOW beeper -ACC_CALIBRATION beeper -ACC_CALIBRATION_FAIL beeper -DISARM_REPEAT beeper -ON_USB beeper -BLACKBOX_ERASE beeper -RC_SMOOTHING_INIT_FAIL # beacon beacon RX_SET # map # serial serial 0 2 115200 57600 0 115200 serial 1 0 115200 57600 0 115200 serial 2 8192 115200 57600 0 115200 serial 3 64 115200 57600 0 115200 # led led 0 8,12::AO:6 led 1 9,12::AO:6 led 2 10,12::AO:6 led 3 11,12::AO:6 led 4 8,13::AO:0 led 5 9,13::AO:0 led 6 10,13::AO:0 led 7 11,13::AO:0 # color # mode_color mode_color 6 1 2 # aux aux 0 0 1 1800 2100 0 0 aux 1 2 5 1350 1650 0 0 aux 2 46 6 1800 2100 0 0 aux 3 13 5 1800 2100 0 0 aux 4 35 2 1800 2100 0 0 aux 5 36 0 1800 2100 0 0 aux 6 37 3 1800 2100 0 0 aux 7 40 7 1800 2100 0 0 # adjrange # rxrange # vtx # rxfail # master set acc_calibration = -28,37,61 set mag_hardware = NONE set rssi_scale = 200 set rc_smoothing_type = FILTER set rc_smoothing_input_type = PT1 set rc_smoothing_derivative_type = OFF set fpv_mix_degrees = 25 set serialrx_provider = FPORT set serialrx_halfduplex = ON set dshot_idle_value = 800 set motor_pwm_protocol = DSHOT600 set failsafe_delay = 20 set failsafe_procedure = GPS-RESCUE set bat_capacity = 1500 set beeper_dshot_beacon_tone = 5 set yaw_motors_reversed = ON set small_angle = 180 set gps_provider = UBLOX set gps_sbas_mode = EGNOS set gps_auto_baud = ON set gps_rescue_angle = 30 set gps_rescue_initial_alt = 20 set gps_rescue_descent_dist = 100 set gps_rescue_ground_speed = 1000 set gps_rescue_min_sats = 0 set pid_process_denom = 1 set tlm_halfduplex = OFF set osd_rssi_alarm = 30 set osd_cap_alarm = 1500 set osd_tim1 = 769 set osd_vbat_pos = 2124 set osd_rssi_pos = 2114 set osd_tim_1_pos = 2134 set osd_current_pos = 417 set osd_mah_drawn_pos = 2497 set osd_craft_name_pos = 2505 set osd_gps_speed_pos = 2544 set osd_gps_lon_pos = 2097 set osd_gps_lat_pos = 2081 set osd_gps_sats_pos = 2537 set osd_home_dir_pos = 2170 set osd_home_dist_pos = 2167 set osd_altitude_pos = 2517 set osd_warnings_pos = 329 set osd_stat_rtc_date_time = ON set osd_stat_tim_1 = ON set osd_stat_tim_2 = OFF set osd_stat_max_dist = ON set osd_stat_max_alt = ON set debug_mode = GYRO_SCALED set vtx_channel = 4 set vtx_power = 5 set vtx_freq = 5800 set vcd_video_system = PAL set camera_control_ref_voltage = 320 set camera_control_key_delay = 100 set camera_control_internal_resistance = 195 set pinio_box = 40,255,255,255 # profile profile 0 set dterm_notch_cutoff = 0 set vbat_pid_gain = ON set anti_gravity_gain = 7000 set iterm_relax = RP set p_pitch = 54 set p_roll = 50 set p_yaw = 66 set f_yaw = 0 set i_level = 0 set d_level = 0 # profile profile 1 set dterm_notch_cutoff = 0 set vbat_pid_gain = ON set anti_gravity_gain = 7000 set iterm_relax = RP # profile profile 2 set dterm_notch_cutoff = 0 set vbat_pid_gain = ON set anti_gravity_gain = 7000 set iterm_relax = RP # restore original profile selection profile 0 # rateprofile rateprofile 0 set roll_rc_rate = 75 set pitch_rc_rate = 75 set yaw_rc_rate = 70 set roll_expo = 40 set pitch_expo = 40 set yaw_expo = 40 set roll_srate = 85 set pitch_srate = 85 set yaw_srate = 85 # rateprofile rateprofile 1 # rateprofile rateprofile 2 # rateprofile rateprofile 3 # rateprofile rateprofile 4 # rateprofile rateprofile 5 # restore original rateprofile selection rateprofile 0
@@uavtech I have attached a link to two logs, 1 is Beta 3.5.5, only flying around no throttle chops as first log was corrupted were I did throttle pumps to test, prior to flying my 4.2 quad.The other log Beta 4.2 has throttle pumps and throbble shows up in video, I landed a few times to change settings to see if this changed, the 4th flight AG gain is set to 20 and the quad does a throbble twitch very clear in the video. I have also added BB video and log00013 of test flight of the 4.2 with the issue, there is a read with details. "" www.dropbox.com/sh/eoqospex2wsjfq9/AACSc2MOYfaStNJuwJD6EPo5a?dl=0 ""
are you certain you are locked in to that pd balance? my gut feeling is to increase P, decrease I, maybe decrease D, and turn off anti gravity. But you cant do that because your PD balance is set in stone. you probably already explained how you find the pd balance. im going to go look for a video about pd balance. i must be missing something. i didnt know it was a hard ratio. EDIT: lol, the next video is about p and d. guess ill watch that :)
@@uavtech No. I retuned according to your video. Good info. I am happier overall with how it flies now, but there is a little bobble that I have not been able to get rid of.
@@uavtech Thanks for the reply. I can tell you that it is on 4.2, and had no problems until I upgraded to Bluejay at the advice of Josh! I turned on RPM filtering and upgraded the esc from BLHELI 32 to Blue Jay. That is when the wobble began. I did try to go back to the original settings and it would bind but was giving filter error flags and so I put Blue Jay back on and now it works again. I did upgrade a Crux 35 to Blue Jay and it works great, so who knows. I did increase P by 5 and set thrust linear to 20. I am going to fly it tonight and see if that helps!
@@uavtech I forgot to mention that I set the throttle minimum from 3 to 4.5. I am not sure how it was so low since I had read that Betaflight has it set to 5.5 by default!
I admire the work you put in and the knowledge you spread. But like many BF users, you are stuck thinking that having gyro accurately track setpoint is the most important part of having a good flight feel. And that is just completely inaccurate in my experience. For freestyle at least. Don’t know and don’t care about racing. I do like the cool features that BF devs work in, but it just seems so overkill.
If you think of firmwares like falcox, don't forget that people have also worked a lot of time on it to upload presets, so all in all there is a real search for optimal settings to understand and against squaring the ultra violent maneuvers that we ask of our quad bikes which are simply limited by physical laws
IDK, I like to quad to do what my fingers tell it to do. Not just randomly wobble around. We're all on the same page that the Setpoint is your sticks right? That when the quad is following the Setpoint that means the sticks, which means LOCKED (like real locked, not the fake hype marking locked of other stuff)? To each their own, but dismissing Setpoint tracking is kind of way off. There is nothing else to track than random motion you are used to with something else.
Yep. And whatever setting make it track the sticks best (the Setpoint) WINS! It is Objective. Whatever has the lowest PID Error (Gyro - Setpoint) is the best! Simple. All else is Flat Earth talk when it come to FW development.
UAV Tech I absolutely understand what you are getting at. I literally deal with PID control loops on a near daily basis for my day job. In fact, I’m the lead process control engineer when it comes to PID type controls. But all I am saying here is that for flight “feel” (which I understand is completely objective), gyro following setpoint does NOT necessarily equate to good “feel” in the air. Yes, I understand that is nye impossible to put any scientific stance on, but after flying EVERY flight control firmware and tinkering with ALL of them over the last year, I have to say, BF is my least favorite for how the quad actually flies. To me it’s simple to understand. But people that can’t seem to get past the BB logs, don’t seem to get it
With all respect: how can you say the quad not exactly following your stick commands is NOT the best feel? If folks think that, I suggest they don't like their rates once they get the quad to actually follow them because they are used to it not following them with something else or older versions of BF. IDK, just a thought. We get it, it could be you, ya know. Maybe try to adjust your rates once you are tracking well. No meaning of disrespect, but this is the Flat Earth arguments in FPV: "Those Ph.D. scientists are all wrong with their 500-years of proof 1000+ proofs the Earth is round (+ of course ... you know, seeing it from space). I know the Earth is flat because when I look at the ocean, it looks flat. They are such idiots, they don't get it." 😖 No buddy, we get it.
Love your honesty. I fpv single rotor helicopters exclusively. And often quad pilots shows off all the smooth and precision video and hide all nasty problems. The only advantage of single rotor heli is that the acro mode runs a fixed constant RPM, and airfoil has very precise linear relation between angle and lift, so, there is no dynamic PIDs change based on throttle needed in the entire throttle range. Heli also has the I term overshooting problem.
The mechanical limit of the engine/propeller torque is here highlighted and clearly reached! Thank you again for this enriching content ...
this code is a must have for racing.. been using it for a while... this code really tightens up your spiral manoeuvres to the point where you don't need to drift into turns.. trying to do so tends to have you hitting the inside pole of the gate
Throbble gone, turned out to be PWM frequency, I changed it to 24kHz (was 48KHz), this worked for me...
Just had the same experience today. Wanted to try out 48k PWM because of what I read from Oscar Liang but got misc wobbling where it was stable before. So I just changed it back. It flew just fine before anyway :)
Is that anti-gravity made for nose-up when throttle? So when we have nose-down on throttle cut, we need to lower the anti-gravity.
And as long as the drone never has nose-up issue when punch we dont need anti-gravity right?
@UAVTech a few years later... What changes were made to BetaFlight to address this? Is it called some specific setting now?
Yes, check out: ua-cam.com/video/Mb-Q52UINts/v-deo.html
Removing TPA and tuning the PIDs in conjunction with linear_throttle effectively eliminated the throttle-chop wobbles on my toothpick. I turned off dmin and TPA, linear throttle at 55, and I cranked the PD after dialing in the balance. The PID authority feels balanced throughout the throttle range now. Why can't dmin work as designed here!? Does the code need review?
D_min works fine. You just want high D-gains for stability and to combat gyro deviation (wash, wind, etc...). At 0% throttle, quad is slow so D-tem does not react much.
Great content
Potentially stupid question - would it be worth trying to have ultra-aggressive I-Term clamping anytime a motor is at saturation for more than (a small number of N) PID cycles? Trying to work through all the potentially negative ramifications, but that might be a way to limit a lot of the saturation-accumulation driven wobbles present on any super-aggressive move.
To some extent, thrust linearization is the other part of that fix, but bounce-back accumulation is definitely a thing, and any instance where motor saturation is significant.
Ok, finally watched some more - AG-Boost in those situations is a more flexible answer - although saturation detection may still have some value. Can probably leverage the dMinGain logic or something similar.
Why not raise d_min gain (within reason) instead of D term (for tuning bounce on flips and rolls)? This way we can push p-d gain up higher.
Because you want the proper balance between the minimum D-gain and P-gain for the best prop was handling. P and D work together for prop was pushback. D_min boosting D-gain makes that too complex to determine. So turn it off.
Push PD gain up for max P&D push back to outside disturbances. They push together to fight any (wind, prop wash, etc.). Also for big crafts, you need higher gains to not get wobble. More gain = more PID authority and advanced timing on gyro changes.
Thanks for the video I have the same issue (no yaw problem), I recently switched from Betaflight 3.5.5 to 4.2.0
No bobbles to bobbles when chopping the throttle, I know it's not a balance issue and must be a setting.
Adjusting antigravity gain makes no difference, this has given me few ideas to investigate, the tune seems fine
to me and the quad now is flying way better with rpm filtering and tracks very precisely.
What I think it could be is my rpm min is too low and that's why I did not have the issue on 3.5.5?
Bring.over your PIDs from 3.5.5.
@@uavtech Thanks for the reply I will try it and let you know...
Hi, could you please share HEX for ZEEZF7 target?
Unknown
I've already messed around with this code. It's far better than old anti-gravity
I have to test it yet. But first want to look at auto enble/disable DN.
Man, if i had more time. So much to test, so little time.
@@uavtech not a huge fan of that idea. I've seen it but it seems silly to me. I dont like on off logic. To me it makes more sense to just increase a rather than enable/disable the dynamic notch.
Btw you can test both at the same time. :)
We need to pipe around it. FFT would continue to run of course. Why move when you can pipe around.
Yeah, dual FC rig.
Thx for the video, but could you tell me BF 4.1.x has Thrust linearization or is it only in 4.2.x ? Thank you
I think only 4.2.
I really love your videos and they helped me so much in the past. Very good work!!!! Thank you very much!!!
Great work and advise can you send cli drop or hex file for kakuteF7 if possible
Don't have nor would it help.
Thry won't do this my friend. Get ready to sit in front of a computer for days on end till your freaking eyes bleed.
Thanks for the video, great content. Never understood why I can't just feed blackbox information to my FC (BF) after a flight and feed it the information so it can tune (make improvements). If do this after every session in the end it will be tuned, right? Even at the refinery I work PID controllers are auto tuning these days. With al the advanced (hidden) features we need more stuff to be automated. So, tune it with your guide to get it 90% there and then let it refine itself. At the refinery smart controllers are doing things we could never have thought or imagined, we just set the limits for (proces) safety, PID controllers are still the basis of it all though.
Yeah, noone has coded it yet for fun (in terms of BF and OpenSource). It is a hobby. For the private sector, it is not a billion dollar industry (yet?) I reckon to make it worth anyone's time to code it up. It is more than meets the eye to detect a Stepped Response and then move stuff to get a Critically Damped PID control response.
It really needs do be done on the fly, and we lack processor power and GPS to auto-fly the thing. Safely.
@@uavtech It is sometimes hard to imagine people doing this just as a hobby, takes a special kind of person. I always imagined more influx from the commercial side of things, the fpv community is a huge test base. Drones are the future, everybody knows that so money should not be the issue. This is more out of the box thinking I gues. Thx again for your content, glad to be a patreon
so where can I hire you at to help me tune my quad? I appreciate this lesson, but honestly, this is all greek to me haha. I just know I get a weird wobble when I let off throttle...
I'm slammed. Check out krunkedquads.com
Could you increase filtering to get D higher?
To fight movement? It is pretty slow, so P-Term is the best bet.
D-term fights against external force, but if slow external force, is weak pushback.
UAV Tech
Sure... but you could not increase D to get P higher to fight the wobble. D is noise limited from what I understand. So why not increase filtering a bit to increase PD while keeping the balance
@@jas-FPV , yep. You could. Maybe. But that increase signal delay so gets to be counter productive.
Most of the time as well, D-term oscillations are not noise related. It is a harmonic of the quad inertia, gyro signal delay, to the motor delays in ramping, etc... to the D-term reacting. Too much shit at play with these thing. Damn flying things are complicated. :-/
D-term is limited too on on filter amount for smooth forward flight though.
Couldn’t you just decrease anti gravity or maybe even turn it off altogether? Maybe I’m missing something but if you’re centre of gravity is fairly good you can turn anti gravity way down usually.
Correct.
Ok I tried my PIDs from Beta 3.5.5 and my boble/wobble was still there, improved but still noticeable.
I flew my 1st quad which is the same build apart from BLheli S esc's Beta 3.5.5 and near enough flat when chopping the throttle.
So I tried changing P and I on pitch and roll, no change, increased Anti gravity gain from 7 to 20 and this had the most dramatic
effect, it increases the bobble! to the point of a twitch! does this give a clue as to what is causing in Beta 4.2?
I like most of the improvements in 4.2, rpm filters prop wash handling and the very precise tracking, but I now have this
issue that was not there when on 3.5.5? and I have a near identical quad that is running Beta 3.5.5, with the same PIDs
on older BLheli S esc's with no rpm filtering and it flies better! 😢...
Upload me your diff all. There is not issues in 4.2, so there is something a miss.
@@uavtech For sure It will be something I have missed and not 4.2 fault, I have the 2 profiles set up to experiment.
Profile 2 has dynamic idle to zero but on profile 1 and I did the calculation and it's 19, Throttle boost is zero adjusting this made no differrence.I also originally followed the tuning guide and applied the cinematic defaults, so I may have left this in?
Thanks so much for your time, so much appreciated!
# diff all
# version
# Betaflight / STM32F405 (S405) 4.2.0 Jun 14 2020 / 03:04:22 (8f2d21460) MSP API: 1.43
# config: manufacturer_id: MTKS, board_name: MATEKF405CTR, version: f173f9bc, date: 2019-10-02T14:43:13Z
# start the command batch
batch start
# reset configuration to default settings
defaults nosave
board_name MATEKF405CTR
manufacturer_id MTKS
mcu_id 002d003d574850192034344b
signature
# name: MARTIAN 4.0
# resources
resource MOTOR 5 NONE
resource MOTOR 6 NONE
resource SERVO 1 A15
resource PWM 3 NONE
resource LED_STRIP 1 NONE
resource SERIAL_TX 5 NONE
resource CAMERA_CONTROL 1 A08
resource PINIO 1 C12
# servo
servo 0 1600 1900 1600 100 12
# feature
feature SERVO_TILT
feature GPS
# beeper
beeper -RX_LOST_LANDING
beeper -BAT_CRIT_LOW
beeper -BAT_LOW
beeper -ACC_CALIBRATION
beeper -ACC_CALIBRATION_FAIL
beeper -DISARM_REPEAT
beeper -ON_USB
beeper -BLACKBOX_ERASE
beeper -RC_SMOOTHING_INIT_FAIL
# beacon
beacon RX_SET
# serial
serial 0 2 115200 57600 0 115200
serial 1 0 115200 57600 0 115200
serial 2 8192 115200 57600 0 115200
serial 3 64 115200 57600 0 115200
# aux
aux 0 0 1 1800 2100 0 0
aux 1 2 5 1350 1650 0 0
aux 2 46 6 1800 2100 0 0
aux 3 13 5 1800 2100 0 0
aux 4 35 2 1800 2100 0 0
aux 5 36 0 1800 2100 0 0
aux 6 37 3 1800 2100 0 0
aux 7 40 7 1800 2100 0 0
# vtxtable
vtxtable bands 5
vtxtable channels 8
vtxtable band 1 BOSCAM_A A CUSTOM 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B CUSTOM 5733 5752 5771 5790 5809 5828 5847 5866
vtxtable band 3 BOSCAM_E E CUSTOM 5705 5685 5665 5645 5885 5905 5925 5945
vtxtable band 4 FATSHARK F CUSTOM 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACEBAND R CUSTOM 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable powerlevels 3
vtxtable powervalues 25 200 400
vtxtable powerlabels 25 200 500
# master
set gyro_lowpass2_hz = 300
set dyn_notch_width_percent = 0
set dyn_notch_q = 250
set dyn_notch_min_hz = 90
set dyn_notch_max_hz = 350
set dyn_lpf_gyro_min_hz = 240
set dyn_lpf_gyro_max_hz = 600
set acc_calibration = -17,46,-193,1
set rssi_scale = 200
set rc_smoothing_input_type = PT1
set rc_smoothing_auto_smoothness = 40
set fpv_mix_degrees = 25
set serialrx_provider = FPORT
set serialrx_halfduplex = ON
set dshot_bidir = ON
set use_unsynced_pwm = OFF
set failsafe_delay = 20
set failsafe_procedure = GPS-RESCUE
set bat_capacity = 1500
set beeper_dshot_beacon_tone = 5
set yaw_motors_reversed = ON
set small_angle = 180
set gps_provider = UBLOX
set gps_sbas_mode = EGNOS
set gps_auto_baud = ON
set gps_rescue_angle = 30
set gps_rescue_initial_alt = 20
set gps_rescue_descent_dist = 100
set gps_rescue_min_sats = 5
set gps_rescue_allow_arming_without_fix = ON
set pid_process_denom = 2
set tlm_halfduplex = OFF
set osd_warn_arming_disable = OFF
set osd_warn_batt_not_full = OFF
set osd_warn_batt_warning = OFF
set osd_warn_batt_critical = OFF
set osd_warn_visual_beeper = OFF
set osd_warn_crash_flip = OFF
set osd_warn_esc_fail = OFF
set osd_warn_core_temp = OFF
set osd_rssi_alarm = 30
set osd_cap_alarm = 1500
set osd_tim1 = 769
set osd_vbat_pos = 2124
set osd_rssi_pos = 2114
set osd_rssi_dbm_pos = 66
set osd_tim_1_pos = 2134
set osd_current_pos = 417
set osd_mah_drawn_pos = 2497
set osd_craft_name_pos = 2505
set osd_gps_speed_pos = 2544
set osd_gps_lon_pos = 2097
set osd_gps_lat_pos = 2081
set osd_gps_sats_pos = 2537
set osd_home_dir_pos = 2170
set osd_home_dist_pos = 2167
set osd_altitude_pos = 2517
set osd_debug_pos = 233
set osd_warnings_pos = 329
set osd_stat_rtc_date_time = ON
set osd_stat_tim_1 = ON
set osd_stat_tim_2 = OFF
set osd_stat_max_dist = ON
set osd_stat_max_alt = ON
set debug_mode = GYRO_SCALED
set vtx_band = 4
set vtx_channel = 4
set vtx_power = 3
set vtx_freq = 5800
set vcd_video_system = PAL
set pinio_box = 40,255,255,255
set gyro_1_align_yaw = 2700
set gyro_rpm_notch_q = 900
set name = MARTIAN 4.0
profile 0
# profile 0
set dyn_lpf_dterm_min_hz = 84
set dyn_lpf_dterm_max_hz = 204
set dyn_lpf_dterm_curve_expo = 8
set dterm_lowpass2_hz = 180
set vbat_pid_gain = ON
set anti_gravity_gain = 15000
set feedforward_transition = 70
set iterm_rotation = ON
set iterm_relax_type = GYRO
set iterm_relax_cutoff = 5
set iterm_windup = 75
set yaw_lowpass_hz = 50
set throttle_boost = 1
set throttle_boost_cutoff = 10
set p_pitch = 74
set d_pitch = 61
set p_roll = 67
set d_roll = 56
set p_yaw = 72
set d_min_roll = 37
set d_min_pitch = 40
set ff_interpolate_sp = AVERAGED_4
set ff_spike_limit = 50
set ff_smooth_factor = 50
set ff_boost = 0
set idle_min_rpm = 19
profile 1
# profile 1
set vbat_pid_gain = ON
set anti_gravity_gain = 7000
set iterm_rotation = ON
set iterm_relax_type = GYRO
set throttle_boost = 0
set p_pitch = 54
set i_pitch = 50
set d_pitch = 27
set f_pitch = 60
set p_roll = 50
set i_roll = 45
set d_roll = 25
set f_roll = 60
set p_yaw = 66
set i_yaw = 45
set f_yaw = 0
set d_min_roll = 0
set d_min_pitch = 0
profile 2
# profile 2
set vbat_pid_gain = ON
set anti_gravity_gain = 15000
set iterm_rotation = ON
set iterm_relax_type = GYRO
set p_pitch = 54
set i_pitch = 50
set d_pitch = 27
set f_pitch = 60
set p_roll = 50
set i_roll = 45
set d_roll = 25
set f_roll = 60
set p_yaw = 66
set i_yaw = 45
set f_yaw = 0
set d_min_roll = 0
set d_min_pitch = 0
# restore original profile selection
profile 1
rateprofile 0
# rateprofile 0
set thr_expo = 1
set roll_rc_rate = 75
set pitch_rc_rate = 75
set yaw_rc_rate = 70
set roll_expo = 40
set pitch_expo = 40
set yaw_expo = 40
set roll_srate = 85
set pitch_srate = 85
set yaw_srate = 85
set tpa_rate = 10
set tpa_breakpoint = 1650
rateprofile 1
rateprofile 2
rateprofile 3
rateprofile 4
rateprofile 5
# restore original rateprofile selection
rateprofile 0
# save configuration
save
Write your command here. Press Tab for AutoComplete.
Do you have a DIFF ALL from 3.5 settings? Also log of no throbbles in 3.5 and then of throbbles in 4.2; with same settings?
At a glance, the PD Gain here is low. Is this a 5"? Also, some of the settings would not match 3.5; what was available in 3.5 at least.
@@uavtech Here are the 3.5 quad, yes they both are 5" running DAL 5045 props, but the frames are Realacc Martian IV 6 Inch 250mm as I find 5" props on a 6" quad just flies better, all up weight is 700 grams for both,
flying on 4s, it maybe I have just adapted to my poorly tuned quad, but for me it works.
# diff all
# version
# Betaflight / MATEKF405 (MKF4) 3.5.5 Jan 15 2019 / 10:05:36 (88921670b) MSP API: 1.40
board_name MATEKF405
manufacturer_id
mcu_id 004500493436510a33323736
signature
# reset configuration to default settings
defaults nosave
# name
name MARTIAN 4.1
# resources
resource MOTOR 5 NONE
resource MOTOR 6 NONE
resource PWM 3 NONE
resource LED_STRIP 1 NONE
resource SERIAL_TX 5 NONE
resource CAMERA_CONTROL 1 A08
resource PINIO 1 C12
# mixer
# servo
# servo mix
# feature
feature -SOFTSERIAL
feature GPS
feature AIRMODE
# beeper
beeper -RX_LOST_LANDING
beeper -BAT_LOW
beeper -ACC_CALIBRATION
beeper -ACC_CALIBRATION_FAIL
beeper -DISARM_REPEAT
beeper -ON_USB
beeper -BLACKBOX_ERASE
beeper -RC_SMOOTHING_INIT_FAIL
# beacon
beacon RX_SET
# map
# serial
serial 0 2 115200 57600 0 115200
serial 1 0 115200 57600 0 115200
serial 2 8192 115200 57600 0 115200
serial 3 64 115200 57600 0 115200
# led
led 0 8,12::AO:6
led 1 9,12::AO:6
led 2 10,12::AO:6
led 3 11,12::AO:6
led 4 8,13::AO:0
led 5 9,13::AO:0
led 6 10,13::AO:0
led 7 11,13::AO:0
# color
# mode_color
mode_color 6 1 2
# aux
aux 0 0 1 1800 2100 0 0
aux 1 2 5 1350 1650 0 0
aux 2 46 6 1800 2100 0 0
aux 3 13 5 1800 2100 0 0
aux 4 35 2 1800 2100 0 0
aux 5 36 0 1800 2100 0 0
aux 6 37 3 1800 2100 0 0
aux 7 40 7 1800 2100 0 0
# adjrange
# rxrange
# vtx
# rxfail
# master
set acc_calibration = -28,37,61
set mag_hardware = NONE
set rssi_scale = 200
set rc_smoothing_type = FILTER
set rc_smoothing_input_type = PT1
set rc_smoothing_derivative_type = OFF
set fpv_mix_degrees = 25
set serialrx_provider = FPORT
set serialrx_halfduplex = ON
set dshot_idle_value = 800
set motor_pwm_protocol = DSHOT600
set failsafe_delay = 20
set failsafe_procedure = GPS-RESCUE
set bat_capacity = 1500
set beeper_dshot_beacon_tone = 5
set yaw_motors_reversed = ON
set small_angle = 180
set gps_provider = UBLOX
set gps_sbas_mode = EGNOS
set gps_auto_baud = ON
set gps_rescue_angle = 30
set gps_rescue_initial_alt = 20
set gps_rescue_descent_dist = 100
set gps_rescue_ground_speed = 1000
set gps_rescue_min_sats = 0
set pid_process_denom = 1
set tlm_halfduplex = OFF
set osd_rssi_alarm = 30
set osd_cap_alarm = 1500
set osd_tim1 = 769
set osd_vbat_pos = 2124
set osd_rssi_pos = 2114
set osd_tim_1_pos = 2134
set osd_current_pos = 417
set osd_mah_drawn_pos = 2497
set osd_craft_name_pos = 2505
set osd_gps_speed_pos = 2544
set osd_gps_lon_pos = 2097
set osd_gps_lat_pos = 2081
set osd_gps_sats_pos = 2537
set osd_home_dir_pos = 2170
set osd_home_dist_pos = 2167
set osd_altitude_pos = 2517
set osd_warnings_pos = 329
set osd_stat_rtc_date_time = ON
set osd_stat_tim_1 = ON
set osd_stat_tim_2 = OFF
set osd_stat_max_dist = ON
set osd_stat_max_alt = ON
set debug_mode = GYRO_SCALED
set vtx_channel = 4
set vtx_power = 5
set vtx_freq = 5800
set vcd_video_system = PAL
set camera_control_ref_voltage = 320
set camera_control_key_delay = 100
set camera_control_internal_resistance = 195
set pinio_box = 40,255,255,255
# profile
profile 0
set dterm_notch_cutoff = 0
set vbat_pid_gain = ON
set anti_gravity_gain = 7000
set iterm_relax = RP
set p_pitch = 54
set p_roll = 50
set p_yaw = 66
set f_yaw = 0
set i_level = 0
set d_level = 0
# profile
profile 1
set dterm_notch_cutoff = 0
set vbat_pid_gain = ON
set anti_gravity_gain = 7000
set iterm_relax = RP
# profile
profile 2
set dterm_notch_cutoff = 0
set vbat_pid_gain = ON
set anti_gravity_gain = 7000
set iterm_relax = RP
# restore original profile selection
profile 0
# rateprofile
rateprofile 0
set roll_rc_rate = 75
set pitch_rc_rate = 75
set yaw_rc_rate = 70
set roll_expo = 40
set pitch_expo = 40
set yaw_expo = 40
set roll_srate = 85
set pitch_srate = 85
set yaw_srate = 85
# rateprofile
rateprofile 1
# rateprofile
rateprofile 2
# rateprofile
rateprofile 3
# rateprofile
rateprofile 4
# rateprofile
rateprofile 5
# restore original rateprofile selection
rateprofile 0
@@uavtech I have attached a link to two logs, 1 is Beta 3.5.5, only flying around no throttle chops as first log was corrupted were I did throttle pumps to test, prior to flying my 4.2 quad.The other log Beta 4.2 has throttle pumps and
throbble shows up in video, I landed a few times to change settings to see if this changed, the 4th flight AG gain is set to 20
and the quad does a throbble twitch very clear in the video.
I have also added BB video and log00013 of test flight of the 4.2 with the issue, there is a read with details.
"" www.dropbox.com/sh/eoqospex2wsjfq9/AACSc2MOYfaStNJuwJD6EPo5a?dl=0 ""
are you certain you are locked in to that pd balance? my gut feeling is to increase P, decrease I, maybe decrease D, and turn off anti gravity. But you cant do that because your PD balance is set in stone. you probably already explained how you find the pd balance. im going to go look for a video about pd balance. i must be missing something. i didnt know it was a hard ratio.
EDIT: lol, the next video is about p and d. guess ill watch that :)
Also see tiny.cc/pidtuning
Is there any way to support ctzsnooz and or any of these developers?
you would have to reach out to each individual.
I never had throbbles until 4.2
Same PIDs? I think not.
@@uavtech No. I retuned according to your video. Good info. I am happier overall with how it flies now, but there is a little bobble that I have not been able to get rid of.
The controller is the same, so try to think about what settings are different.
@@aowi7280 me as well on a six inch quad. Been trying to work this out for months. Seems ever since 3.5.x BF hates anything over 5 inch
👍👍
Dude, please make a video that is simple and straight to the point. What point in this video do you tell what to do for roll bobble?
Upgrade to BF 4.3 and increase Anti-gravity.
@@uavtech Thanks for the reply. I can tell you that it is on 4.2, and had no problems until I upgraded to Bluejay at the advice of Josh! I turned on RPM filtering and upgraded the esc from BLHELI 32 to Blue Jay. That is when the wobble began. I did try to go back to the original settings and it would bind but was giving filter error flags and so I put Blue Jay back on and now it works again. I did upgrade a Crux 35 to Blue Jay and it works great, so who knows. I did increase P by 5 and set thrust linear to 20. I am going to fly it tonight and see if that helps!
@@uavtech I forgot to mention that I set the throttle minimum from 3 to 4.5. I am not sure how it was so low since I had read that Betaflight has it set to 5.5 by default!
I admire the work you put in and the knowledge you spread. But like many BF users, you are stuck thinking that having gyro accurately track setpoint is the most important part of having a good flight feel. And that is just completely inaccurate in my experience. For freestyle at least. Don’t know and don’t care about racing. I do like the cool features that BF devs work in, but it just seems so overkill.
If you think of firmwares like falcox, don't forget that people have also worked a lot of time on it to upload presets, so all in all there is a real search for optimal settings to understand and against squaring the ultra violent maneuvers that we ask of our quad bikes which are simply limited by physical laws
IDK, I like to quad to do what my fingers tell it to do. Not just randomly wobble around.
We're all on the same page that the Setpoint is your sticks right? That when the quad is following the Setpoint that means the sticks, which means LOCKED (like real locked, not the fake hype marking locked of other stuff)?
To each their own, but dismissing Setpoint tracking is kind of way off. There is nothing else to track than random motion you are used to with something else.
Yep. And whatever setting make it track the sticks best (the Setpoint) WINS! It is Objective. Whatever has the lowest PID Error (Gyro - Setpoint) is the best! Simple. All else is Flat Earth talk when it come to FW development.
UAV Tech I absolutely understand what you are getting at. I literally deal with PID control loops on a near daily basis for my day job. In fact, I’m the lead process control engineer when it comes to PID type controls. But all I am saying here is that for flight “feel” (which I understand is completely objective), gyro following setpoint does NOT necessarily equate to good “feel” in the air. Yes, I understand that is nye impossible to put any scientific stance on, but after flying EVERY flight control firmware and tinkering with ALL of them over the last year, I have to say, BF is my least favorite for how the quad actually flies. To me it’s simple to understand. But people that can’t seem to get past the BB logs, don’t seem to get it
With all respect: how can you say the quad not exactly following your stick commands is NOT the best feel? If folks think that, I suggest they don't like their rates once they get the quad to actually follow them because they are used to it not following them with something else or older versions of BF. IDK, just a thought.
We get it, it could be you, ya know. Maybe try to adjust your rates once you are tracking well.
No meaning of disrespect, but this is the Flat Earth arguments in FPV:
"Those Ph.D. scientists are all wrong with their 500-years of proof 1000+ proofs the Earth is round (+ of course ... you know, seeing it from space). I know the Earth is flat because when I look at the ocean, it looks flat. They are such idiots, they don't get it." 😖
No buddy, we get it.
Awesome content Mark! You should change your startline from "Alright!" to "Alright! You will learn something today!" Cheers! Bryan
LOL. maybe i should, but JB would be pissed. Bastard does have a damn good tag line. Jealous.
@@uavtech Haha yes! Ow well! Alright is fine for me ;)
@@uavtech Agree. Would sound too much like JB.
I only watch your stream when my brain is ready and then I think: "Alright, let's dive into it!"
👍👀🇭🇷 😂😂😂 kiss funs😂😂😂 organic stick 🤣🤣🤣 😍BF😎
Way to complicated. Csbt stand this.