Micro Motor Community

NotFastEnuf E011 / Bwhoop Silverware Fork


#1550

Do you have the ability to flash a hex of I make you one to test? Are you willing to to run your whoop into the wall a few more times??? Lolz


#1551

IDK but I’ll try.

What about a hundred times more lol


#1552

Hmmm it won’t allow me to share my config file here because I’m too new. Here’s the main details I’ve reviewed and attempted to change to work with the Toy_TX

// *************DEFINE FLIGHT CONTROLLER HARDWARE
// *************SELECT ONLY ONE
// *************uncomment BWHOOP define for bwhoop, bwhoop pro, E011C Santa Edition, and Beta FPV Lite Flight Controllers
// *************uncomment E011 define for E011 flight Controller
// *************uncomment H8mini_blue_board for the H8 mini flight controller with blue circuit board
#define BWHOOP
//#define E011
//#define H8mini_blue_board
//#define Alienwhoop_ZERO

//**********************************************************************************************************************
//RATES & EXPO SETTINGS***

// *************Select your preffered rate calculation format (define only one)
#define SILVERWARE_RATES
//#define BETAFLIGHT_RATES

#ifdef SILVERWARE_RATES
// *************rate in deg/sec
// *************for acro mode
#define MAX_RATE 667.0 //Roll & Pitch axis
#define MAX_RATEYAW 667.0 //Yaw axis (used in acro and leveling modes)

// *************EXPO from 0.00 to 1.00 , 0 = no exp
// *************positive = less sensitive near center
#define ACRO_EXPO_ROLL 0.40
#define ACRO_EXPO_PITCH 0.40
#define ACRO_EXPO_YAW 0.10

#define ANGLE_EXPO_ROLL 0.55
#define ANGLE_EXPO_PITCH 0.0
#define ANGLE_EXPO_YAW 0.55
#endif

#ifdef BETAFLIGHT_RATES
#define BF_RC_RATE_ROLL 1.00
#define BF_RC_RATE_PITCH 1.00
#define BF_RC_RATE_YAW 1.00
#define BF_SUPER_RATE_ROLL 0.70
#define BF_SUPER_RATE_PITCH 0.70
#define BF_SUPER_RATE_YAW 0.70
#define BF_EXPO_ROLL 0.00
#define BF_EXPO_PITCH 0.00
#define BF_EXPO_YAW 0.00
#endif

// *************rate in deg/sec
// *************for angle mode
#define LEVEL_MAX_RATE 230.0 //Roll & Pitch axis

// *************max angle for level mode
#define LEVEL_MAX_ANGLE 52.0f

// ************* low rates multiplier if rates are assigned to a channel
#define LOW_RATES_MULTI 0.5f

// *************transmitter stick adjustable deadband for roll/pitch/yaw
// *************.01f = 1% of stick range - comment out to disable
#define STICKS_DEADBAND .01f

//**********************************************************************************************************************
//RECEIVER SETTINGS*******

// *************Radio protocol selection
// *************select only one
//#define RX_SBUS
//#define RX_CRSF //Requires tbs firmware v2.88 or newer for failsafe to operate properly
//#define RX_DSMX_2048
//#define RX_DSM2_1024
//#define RX_NRF24_BAYANG_TELEMETRY
//#define RX_BAYANG_PROTOCOL_BLE_BEACON
//#define RX_BAYANG_PROTOCOL_TELEMETRY_AUTOBIND
#define RX_BAYANG_PROTOCOL

// *************Transmitter Type Selection
#define USE_STOCK_TX
//#define USE_DEVO
//#define USE_MULTI


#1553

So that all looks good. Let’s go to the next step. What is the led doing when try to link up? It should start with a pulsing light indicating gyro calibration… Then what happens?


#1554

I compiled this one for stock controllers, roll trim left activates acro mode.
SilverVise works for only one drone.


#1555

Yeah I’m suspecting it’s actually linking up based on his radio selection but that the aux channels he is setting are not matching what he needs on the toy tx to arm. Either that or one of the safeties is blocking due to throttle position or binding while armed.


#1556

https://youtu.be/OB35F_Gthzc here is what happens on plug in.


#1557

Looks like you might just need to arm by activating whichever channel is mapped to “#define ARMING” in config.h. Once you have it bound and not flashing fast anymore (throttle must be all the way down - otherwise arming is disabled and the LEDs flash quickly), press some of the buttons on your controller. One of them is probably the arm channel - probably the button that originally turned “expert” mode (high rates) on and off - mine is under the throttle stick. After you press the right button, the motors should start spinning up (if you haven’t disabled IDLE_UP).

Also, for the stock TX, you’ll want to comment out the STICK_TRAVEL_CHECK feature, as this conflicts with the angle/acro mode switch gesture.


#1558

Question: did you happen to enable the AUX1_START_ON feature (to start in angle mode instead of acro mode)?

Because that would start up the quad with the stick travel check feature enabled.

The way to get out of that is the gesture Left-Left-Down on the right stick. That will disable the stick travel check feature and put you in acro mode (at the same time). That kinda looks like wha you have…

Though commenting out the #define STICK_TRAVEL_CHECK is the best way to fix that for the stock tx. Then you can leave the AUX1_START_ON feature enabled.


#1559

Yep I think we’re on to something with this. Very much looks like stick travel check mode. Follow the above advice to comment out stick travel check mode. It will double up on the toy transmitter acro/angle switch via stick gestures and produce that flashing at stick ends. Also it’s not uncommon for toy transmitters to not reach 100 percent stick throws which is why we don’t see it flash on all stick ends. Disabling stick travel check will stop the blinking.

Then the next step is to find your arm switch… Which would be indicated in your user manual by the expert mode or high/low rates button.

If you can not find your arm switch you can disable both idle up and arming auxiliary features by commenting them out. But half the fun is making those toy buttons do pro features… So let’s sort them out.

You are closer than you think @Fissionbomb.PMR


#1560


#1561

You can see from this key what CHAN_5 through CHAN_9 are mapped to. 5 which is set to arm by default is your expert button. 6 which is set to switch acro and angle is the right right down/left left down stick gesture. 7 which enables racemode is your head free button. These can all be moved around.

@brianquad - the only aux feature I reversed in code from stock silverware is led on/off. That way if it’s unassigned and low… It’s still keeping the led on… If memory serves


#1562

I don’t assign LEDs to a channel, but I do like them on. I used to have it as “CHAN_ON”, but now that (non-intuitvely) disables the LEDs. With your fork, I have to set LEDS_ON to “CHAN_OFF” to turn them on :- )
(of course, all of the blinking LED features work either way)


#1563

As a beginner I think I’m having a misconseption about the DSMX/DSM2 support of silverware…
My idea was I could bind my E011C with the correct settings with DSMX/DSM2 without adding a Spektrum RX.

Am I right about my misconseption or are you guys truly wizards and DSMX/DSM2 works by only flashing my E011C?
(I think Bayang BLE support is wizzardry but it works. So my believe iin wizardry isn’t that strange, is it?)


#1564

Yes, misconception :wink: Spektrum rx required.


#1565

@NotFastEnuf great success! So I did the following to get the stock controller to work. The leftmost switch on the jelly bean below the throttle stick is ARM and it starts in angle.

// *************start in level mode for toy tx.
#define AUX1_START_ON


// *************invert yaw pid for “PROPS OUT” configuration - This feature is switchable to “PROPS IN” when active with stick gesture DOWN-UP-DOWN, Save selection with DOWN-DOWN-DOWN
//#define INVERT_YAW_PID


// *************SPECIAL TEST MODE TO CHECK TRANSMITTER STICK THROWS
// *************This define will allow you to check if your radio is reaching 100% throws entering gesture
// ************* will disable throttle and will rapid blink the led when sticks are moved to 100% throws
// *************entering will return the quad to normal operation.
//#define STICK_TRAVEL_CHECK

A stick command of Left-Left-Down puts me in full acro mode. Thus far I have only used LOS. The stock TX is truly crap but I can use it for my purpose of seeing acro in a silverware whoop. I think my next step will be a multi-module unless some magical Ibus code rolls out. (I have a surplus of RX2A receivers if anyone needs one to further research.)


#1566

Looks good @Fissionbomb.PMR.

Seems you were stuck in stick travel check mode after all then. You did not need to disable the invert yaw pid feature but it’s fine that you did. When on you can switch it back and forth between props in/props out via stick gesture and save it’s “condition”. Out of curiosity … Did you always have aux1_start_on defined? Or did you just add that. This was the reason we were thinking that you were booting up in stick travel check mode. Anyway - remember that you can move all of the channels assignments around at will to make each channel switch with whatever button you choose or turn anything permanently on or off with chan_on and chan_off.


#1567

Yes it is non intuitive I agree, but when we included it as a feature in the Alienwhoop Zer0 - we found many people either weren’t setting up the channel or didn’t have enough spare channels (and this feature got pushed to the highest channel since it isn’t that important). And as a result ended up with a led that was off all the time by ignoring the feature … Which is also non intuitive. So a non intuitive state exists either way. Maybe the solution is a contidional define which only reverses the feature when it’s assigned to an aux number.

In other news regarding cpu load… I overclocked my development board to 96mhz. Seems stable. No temp issues. The tssop20 is built like a massive radiator or heatsink. Hahahaha. I also ticked the box to optimize the project for speed. Each change was worth 100ms on average. I have not flown these changes to assess long term viability as defaults but it shows promise. I did some other test setting flags at each step of the main loop with current defaults set. I will dig up the screenshot of that and post it here. I was hoping we could find 2 major time sucks that do not need to be called every loop and alternate them. Led behavior is certainly one of them, and stuff like gesture detect could be a second. Maybe more exists. I still need to add those kalman filter optimizations but I doubt that’s worth much. Kalman costs about 15ms for each pass over pt1. Not huge so I don’t think it’s time to kick it to the curb yet but I do wonder if pt1 is all we need. I have yet to scrutinize the control function for time sucks but it is our biggest chunk other than filtering the gyro. Led stuff is about 100ms so maybe there is a better way to do that too. Thoughts? I admit I have been distracted for a few days trying to get a xn297 transciever to work over spi in betaflight. But I hit a wall there so it’s time to focus back on the fork. I’d like to get your changes added in as soon as we can/as soon as squish the loop down… Then I can focus development time back on the port to f4 again. :slight_smile:

Anyone in our community testing right now could participate in this decision by enabling pt1 instead of kalman and giving whatever you fly a rip. Let us know if it feels/performs any different.


#1568

aux1_start_on was defined previously. I had also attempted commenting it out. This did not make a difference one way or the other as far as I can tell.

Looking forward to adding an FPV cam and putting this through some flight testing. (I’m just happy to see it take off.)


#1569

When I did my testing with the stock controller last week, AUX1_START_ON was commented out in the NFE master branch. If it was commented out, the quad started up in acro mode. If it was NOT commented out, the quad would start out in angle mode (and stick travel check mode, until I commented out that line). Either way, I could switch back and forth between acro and angle with the LLD and RRD stick gestures.