NotFastEnuf E011 / Bwhoop Silverware Fork


#21


They are actually 66mm

And yes you found the tunes. Make sure you set the gyro and d term filters to what is noted in pid.c for each tune. Try out the torque boost boss 7 tune. It’s sick awesome! I love it!
Edit: that torque boost tune flies fine in acro but it does not like level mode - so that means no racemode + torque boost yet on the boss 7 @Jakerock


#22

@Ian444 - OK cross your fingers and flash away!

H8mini_blue_board added
2ST Gyro filter changed name to 2ND
Description of D term lpf clarified

I only have E011 boards so you’ll have to let me know if I pulled it off for the other 2 if you don’t mind :wink:


#23

This is a cross post to rcgroups too but I felt it worth documenting here as well…

Ok I’m finding torque boost (motor output d filter) intoxicating. I think I had said I wasn’t trying to increase the sharpness of my controls before but that I was more interested in it increasing motor responsiveness to environmental factors. Well I couldn’t have been more wrong. I can’t go back to not having this feeling on controls. I’m keeping values low - around 1 - and it’s not requiring much re-tuning on my 816 Boss with 65mm props. I just dropped my motor filter down 20 hz for good measure.
What I feel: consider a tumble move in acro where you are passing over an object. You slowly pitch down as you start to pass over and then enter the tumble with roll and yaw to the same side slowly at first then stabbing the sticks to come around fast. With torque boost off its a very fluid tumble even though the stick motions have that stab in there … with torque boost on there is an abrupt speed change when you stab the sticks and it really snaps around abruptly.

Values I’ve tested: .5 - almost no different - can use without retuning 1.0 - becomes evident in manuvers where there is a transition from moving sticks slow to quick stabs. Dropped motor filter 20 hz but did not change D values. 1.5 to 2 - becomes evident even in a basic roll or flip looking more crisp at begining and end but noise starts to come through here of you don’t retune and by the time you get to 2.0 - D term needs to be cut about in half.

What I don’t like: prop wash actually seems worse … even at the low values like 0.5 - I’m not sure why this is - cause with torque boost off prop wash pretty hard to find in the current tune of my Boss 8.

What I’m still not sure about: I had theorized this feature would increase the resistance to environmental factors like wind or turbulent air by increasing the responsiveness of the motors. I need a really windy day to come along so i can flash and fly with and without boost on. I know my current base tune will audibly oscillate on a really windy day but still fly pretry well. I need that day to come along before i consider this feature fully explored.


#24

Tested fine on H8 mini blue! First flight (with the same old PID’s) is very smooth. It seems to be able to do the same things with greater ease. Easy setup, love the different PID tunes you put in pid.c, the whole layout makes it as easy as possible to get started with silverware, really well done!

Would it be worth standardizing the CH_ON and CH_OFF defines to CHAN_ON and CHAN_OFF, just so idiots like me can’t mess that one thing up? Yes I did, I set CHAN_ON and got an error in building…I know, there is no hope for me.

Nearly forgot - I tested CHAN_9 with a Devo (set CHAN_9 in the firmware for level mode) and that is working correctly as expected. I don’t have a flying B03 board but could flash one if you like to test the gyro and radio? Any other tests you want done, just ask.


#25

Yes I believe so. Good suggestion.

Interesting and good to hear. So far I have put this setup on a half a dozen crafts or so. The recipe is 1 - same gyro hardware setting as betaflight (hardware 0), 2 - adjustable 1st order gyro software filter, 3 - adjustable second order D term filter, 4 - adjustable motor output filtering.

The structure of filtering now is quite similar to betaflight but still very different in ways. Both use a 1st order gyro filter and a second order d term filter as defaults. Betaflight adds notch filters on top of defaults to both gyro and d term as well as a dynamic filter. I thing the motor output filtering in silverware takes the place of that additional notch filtering functionally speaking.

I have not settled in on good default values however but filters are pretty easy to tune. I tend to keep a 10hz spread with gyro 10hz lower than D filter and move them together. Then as pids are increased, if there is too much noise - the first sign of that is idle speed is high after switching on idle up, and throttle does not transition all the way down to idle or transition quickly to idle after a punch out and throttle chop. In that case I move gyro and d filters down together and usually stop going any lower at about 70 gyro / 80 d. If it’s still not clean/quick to idle on throttle chop I then drop the motor filter from 90 hz to 70hz. That has been enough for even the worst of my models. Some of the smoother ones fly nicely on 100gyro/120d. Right now I’m keeping 90gyro/100d/90motor as my defaults. My 7mm whoop and boss 8 love those values. My boss 6, boss 7, and boss 8.5 seem to prefer 70 gyro/80d/ 70motor. The 6 and 7 differ probably because of our poor selections in .8mm shaft props, the 8.5 probably because of a few bent shafts. Lol


#26

@FelineFlyer … you just posted a ripping video on the e011 … did you use this new version linked here off github? If so what was your experience with it?


#27

That is excellent tuning instructions, thanks. I am familiar with the wonky throttle symptoms with too much noise, it’s like the throttle wants to run away by itself at low to mid throttle settings. I’ve run your default settings on 2 brushless quads and initial results are very good. I’ve been flying variants of the same basic configuration quad for 10 months solid now so I’m familiar with what to expect. Due to wind and rain I’ve only done one flight on each quad so far, no tuning yet.

The only tuning change I’ve made to your default settings (besides PID’s of course) is I changed these in pid.c:
/// output limit
const float outlimit[PIDNUMBER] = { 0.8 , 0.8 , 0.4 };

// limit of integral term (abs)
const float integrallimit[PIDNUMBER] = { 0.8 , 0.8 , 0.4 };

I am not sure if that is a bad or good thing, I but did it because (1) that’s how I’ve run in the past and (2) silverxxx has recommended that for brushless in the past. I hope changing those doesn’t destroy the basic intention here? I could easily revert the changes to see what happens when flying conditions improve.

But as it stands, I really like the feel of your settings with your filter choices, and I’m looking forward to some tuning in due course.

The forum is telling me I’m replying to you too much, and to send you pm instead of clogging up the thread…OK OK!


#28

Ahh good idea on the pidsum and integral limits on brushless! Yes I am a brushed flyer at the moment for silverware and I found it necessary to bump these up… I would imagine that they need to go back down for brushless. Hopefully I will be down that rabbit hole soon enough with even more to contribute there!


#29

No, I’m still running off the firmware from the old thread. However, when I try racemode that’ll be the new firmware.


#30

I’m tempted to run this on all my brushless quads . @NotFastEnuf How close do you think silver is to making the new filters part of the main repository? Same goes for your suggestions of the super tidy layout? @Ian444 I’m looking forward to your testing of the torque boost feature.


#31

For sure it’s worth a try yets, it seems to be a small but noticeable improvement without doing anything at all except loading it and keeping the old PID’s. So there’s plenty of room for further improvement through tuning after that. I would recommend using it for sure. Silverxxx and NFE have done some really nice work here! Actually I went to start tuning this afternoon but I couldn’t get tx gestures to register, it appears there is a typo in line 38 of gesture_detect.c “#define GESTURETIME_IDLE 700e33” instead of “#define GESTURETIME_IDLE 700e3”. No prob, all fixed at my end.

Even the most nervous one of the 3 test quads flies great on default filters, so there is nothing to be afraid of. I am putting little NFE stickers on them so I know at a glance which ones have the new firmware.96%20lobster%201105


#32

I think I’m going to put all capable boards on the firmware.

How does torque boost interact with mix_increase_throttle?


#33

@yets - the second order d filter I pushed for is already part of silver’s main repository which is the most important part of this. I’m not sure what he is using for defaults yet though. I think his combination of settings are alot different than mine. In time may be we can push him to change his defaults if it’s appropriate. Torque boost plays fine with mix throttle increase also as long as you’re set at a flyable value or tuned d properly for a large value.

Speaking of torque boost … I’ve changed my default value to 0.5 - this value should be safe to run without retuning so motors don’t get smoked. Test with caution and then start turning it up and turning d down to get more effect. I still believe an upper limit to be about 2.0

@Ian444 - thanks for pointing out the typo. My bad. I’ve fixed it now. I’m also considering making brushed or brushless a selection in the hardware section of config so that pidsum limits and integral limits are automatically selected when I go in and fix the ch_on/off naming thing.

Currently the only difference in features between my fork and silver’s main repository is the kalman filters on gyro and motor outputs. A kalman filter is very close to the response of a standard first order filter - seems to be a bit weaker and a bit faster to me. My defaults are kalman on for gyro filtering and running it about 10 hz lower than a standard 1st adjustable… but I have not spent much time testing it on motor filters so it’s not a default yet. These filters may be completely unnecessary and redundant to first order filters - it’s up to is to decide if they have value.


#34

That would be good, and (suggestion only) possibly set your drv_dshot.c file defaults as dshot600, #define IDLE_OFFSET 32 (and set #define LESS_DELAY just in case someone wants dshot300) just to start with until something more desirable is requested. I guess you’re thinking then to make the esc driver selection to be made with that brushless define too, that would work I think.

I found the channel differences between Devo and the multipro module here:
Link to Devo vs multipro channel mapping
CHAN 7,8 and 9 correspond, CHAN 5,6 and 10 all different. Not sure how one would sort that out.


#35

Excellent information. I know nothing as of now about setting up brushless so I’ll be learning that with guidance like yours.

I think I have the multimodule vs devo channels mapped correctly. Both the old devo and multi labels just pointed hack to the toy channel names in the defines file. My tx define does the same thing but puts the mapping behind an if condition so chan_5 and point to ch_inv for devo or ch_flip for multi… for example. I just got my hands on a toy tx today so I want to see if I can sort out some mapping there that allows arming and such. It seems alot of the toy tx aux channels are momentary instead of toggles do I may need to make some more concessions in code. Maybe set up some conditional gestures for the toy tx to translate what happens when a momentary button is pushed.


#36

OK this has been updated.

On toy tx mapping:
It also seems the toy tx I got is not functioning correctly so I’m disappointed I won’t be able to test fly my channel mapping on an e011 tx. It has a pitch stick stuck at full forward. Maybe I have some parts in the bin to fix it. But… the buttons all work so I did make some progress. In the defines file, I’ve decided to point CHAN_5 to the rates button which is currently set for arming/idle up feature, CHAN_6 to the stick gestures for acro/level switching feature, and CHAN_7 to the headfree button for changing which is currently set on the racemode feature. Headfree button kinda sucks cause it constantly beeps but I suppose that blaster beeper could just be ripped out of the tx if someone wants the features but is stuck with a toy tx. It can always be set to CHAN_ON and will just take the place of levelmode on gestures. For some reason I can not get the flip button to switch anything. I’m really not sure if that is just this broken tx or if the flip button does not toggle the way other channels do. Either way, if someone is flashing and enabling the use_stock_tx functionality - everything is already set and just falls into place for arming, acro/level, and racemode.

I probably need to build something brushless to force myself to learn the changes that need to be made there so I may hold off a bit on the brushless vs brushed hardware define while I ponder that.


#37

If you need someone to test the toy TX I may have one or two (or six) lying around. :joy: I’d be happy to help you out.


#38

Yeah, give it a shot if you dont mind! All you need to do once you open the project in keil is go to the config.h file and under transmitter type selection -> use_stock_tx. It should arm on the rates button, have stick gestures for acro/level switching… and if in level mode - racemode will be active when you hit the headfree button. Thanks man!

When you flash back and change the transmitter selection to your to use your regular radio again … just mind that my aux channels may have changed since the version you have been using. Arming is channel 5, level/acro on 6, and racemode on 7.


#39

I can test this later on with H8 blue and H8 mini toy tx. Will have to find out what buttons do what first :slight_smile: CHAN selection looks great, I’ll flash that later too and test.


#40

Arm works, stick gestures are fine and racemode works despite the constant beeping. Is it possible to use the right stick button as a channel?
This is with the E011 stock tx.