SpeedyBee Bee35 Copter Tuning

I am relatively new to ArduPilot community and currently working on tuning of SpeedyBee Bee35 cinewhoop using Copter 4.7 (stable version) as it has Fast Rate feature. Whoop was assembled almost a year back and was running INAV but moving on to ArduCopter for better autonomous as well as acro capabilities. Here’s the hardware setup of whoop -

FC - T-Motor H743 Mini (16 MB onboard flash)
IMU - BMI270
ESC - T-Motor 45A Mini 4-in-1 (BlHeli32)
Motor - SpeedyBee 2006 1950KV
Battery - 4S 2800 mah Lion
Receiver - Radiomaster RP4TD ExpressLRS 2.4GHz
VTX - Digital (Walksnail Nano HD V3 kit)
GPS - GEPRC GEP-M1025-MI GPS Module (with compass & baro)

Whoop -

CoG is good as Battery pack has a 3D printed plate with notch at bottom to latch on to battery plate to restrict movement -

I went through lots of content on Discuss, WiKi & YouTube (Andy’s, Methodic Configurator & others) before starting work on configuration & tuning. I also followed Methodic Configurator to whatever extent possible but couldn’t complete many steps.

Went though Initial configuration etc, did hover test. Since I had gone through Andy’s youtube plays lists, hence configured Dynamic notch filter using ESC Telemetry/BDShot. Did good amount of tuning of filter configuration to minimize phase delay.

As I am restricted by unavailability of open space near my residence hence couldn’t go for AutoTune and started carrying out manual tuning. Enabled Fast-Rate also and did some further tuning. Current state of tuning is ok and Whoop flies good in Stabilized mode however Acro doesn’t have locked-in feeling (haven’t increased MIX_MAN yet).

Log file - https://drive.google.com/file/d/1Klp8eav3eyaiylV0oUSet4FEuPnBUqg3/view?usp=sharing

With current configuration, motors barely get warm. Post-filter IMU spectrum looks fine in Filter Review Tools.

Here’s the VIBE Graph -

However, if you zoom-in on Pitch/Roll P/Err term, it appears to be oscillating. I am not sure whether they are induced by micro/high-frequency frame resonance due to high gyro-filter at 140hz & fast-rate or something else.

Should I be concerned by this though motors barely getting warm? Please guide me to next steps so that I can achieve a locked-in tune for the Copter.

Amit

[A note for myself in the past and for maybe future readers: the IMU is apparently clocked at 1.6kHz as FilterReview tells. The RTDT.dt entries show that the dt is just below of 0.7ms, which is more like 1.4kHz, but based on how sharp the upper envelope is, and because the CPU load is small, I guess this is kind of normal]

I would say that you slightly under-suppress the motor noise, INS_HNTCH_ATT = 13 seems to be a bit small, I would suggest adding some 15 more to get to 28. It also seems as if your machine would benefit from higher harmonics (2nd and 3rd) on motor filters.

There seem to be some signs of frame resonances indeed:

  • There is an uncompensated peak in X axis (roll) at around 293 Hz.
  • There also seems to be a peak around 195 Hz, which seems to be coming from the X axis again (there, it gets past filters, although motor notches mask it) but here it affects all axes to some degree. It may get the performance down (symptoms: high-freq intermittent shaking) when you start flying at speeds, because motor notches would stop covering it.

You may try this at some point:

  • FILT1_TYPE = 1 (then reload params)
  • FILT1_NOTCH_FREQ = 195 (try this first) or 293 (if first does not work well)
  • FILT1_NOTCH_Q: leave at 2
  • FILT1_NOTCH_ATT: maybe about 15
  • ATC_RAT_RLL_NEF = 1 to use this notch for the roll.

Motors that are a bit warm are OK, but I’m not sure how much warm they are in your case. I would conjecture that D-term in pitch and especially in yaw might be a bit too high, but not criminally high.

For not feeling locked in, the current angular deviations look like this:

and two my reasonably well-tuned quads (5" and 2") show maybe 1/5 of these deviations, so there is definitely some room for improvement.

Based on my own experience, autotuning this machine indoors should be very much possible. I tuned (and re-tuned multiple times as the redesign was going) a 5" quad with open propellers in a 4m x 4m x 3m room without a single incident. Your current tuning is a good enough baseline (e.g. angle P not too low, so the final autotune phase would not result in overly large displacements).

Last but not least, I would say that your filter frequencies seem to be maybe too low for your machine. The above-mentioned 5" on a carbon tube+epoxy custom frame has INS_GYRO_FILTER and all rate *_FLTD entries at least 2x higher than your current config, and I firmly believe your machine can do better. But my recommended way is to tune for the current frequencies first, then try increasing them and retuning to see what happens.

@MaxBuzz thanks for taking time to review this topic! I have noted down your observations and will try them in my next tuning cycle.

You have given me the confidence that I can run Autotune indoors which is great! I will definitely try it.

I had started my tune with 3 harmonics initially. As I read & discovered more about ArduCopter, I came to know that any spike which is below -50db can be ignored safely. The 2nd & 3rd harmonics were constantly below -60db in multiple tuning runs hence I ended up excluding them to avoid any further filter delay. Same for the spikes that you noted on X axis, they have post-filter spike below -60db.

Thanks for giving the idea to use notch filter on PIDs. I will try them as well. I will keep this topic updated as I make progress.

Amit

@MaxBuzz I ran mavfft_pid.py on the log shared earlier in this topic but couldn’t find any visible peak (something similar to one seen in @andyp1per PID notch filter video https://youtu.be/-Qua1HXFTLg?si=XkYFdzoxYQoy-cDj).

However, I went ahead and added PID notch filter on Roll axis for both peaks one by one as suggested but nothing changed in post flight IMU Spectrum. Then I went for ‘fixed’ notch filters and it took out peak on mentioned frequencies. I also made some changes in notch filter settings as you had suggested. Here’s the latest log for review -

I also noticed lots of dropped messages in logging after adding these fixed notch filters.

There weren’t many dropped message in the log shared earlier. Also, I haven’t tried Autotune yet.

Mentioning @andyp1per & @rmackay9 here for their insight & guidance.

Thanks,
Amit

“Others” looks like a Rosser Guide from the RPM Parameter misconfiguration.

@dkemxr I guess anyone new to ArduPilot who searches youtube with keyword ‘ArduPilot Tuning’ would end up watching his video. He was the starting point but Andy’s YouTube Playlists are the major source of my understanding as well as content on Discuss and Wki.

I would appreciate your help in finding out misconfigurations related to RPM parameters and any other as well.

Disable it, the other parameters settings you have for ESC RPM are good. That’s the only mistake I looked at. But yes, his stuff is plastered all over.

Tuning looks pretty good though.

You are referring to the RPM1_* parameters if I am correct. I noticed it once I read Wiki and other topics on Discuss. I will disable them!