Micro Motor Community

NotFastEnuf E011 / Bwhoop Silverware Fork


I’ve run NFE’s fork on quite a few brushless quads without issues, they are all similar in construction and firmware setup though. I’m using dshot600 (select dshot600 in drv_dshot.c) and with #define USE_DSHOT_DRIVER_BETA set in hardware.h. Chaotix do you have the esc signal’s fed from the FET gates? That is the only way dshot will work, as opposed to signal taken from after the FET’s. Other than motor pin assignment, I can’t think of anything else. Even if the motor pin assignment was wrong, the motors should still behave properly, just the quad would flip on takeoff. Super important (IMO) - uncheck the “Programming by tx” box in BLHeli for your esc’s. If it was previously checked by default, make sure all the settings aren’t messed up.

There is a brushless guide in the wiki but really all you need to do to run brushless is this (in a nutshell):

  1. Untick the “programming by tx” box in your esc’s using BLHeliSuite.
  2. Take the signal for the esc’s from the gates of the FET’s.
  3. Set #define USE_DSHOT_DRIVER_BETA in hardware.h.
  4. Set #define DSHOT600 in drv_dshot.c.
  5. Configure the motor pin assignments.
  6. Set the gyro offset.

If I think of anything else I’ll update this post. The wiki articles mentioned are here:


@Ian444 I’m using the Dedicated brushless fc so signals come from motor pads 1 to 4, this quad flys great already just altering the vanilla b03 code as per your advice.
Motor assignments are all correct, verified individually, gyro alignment is correct, my board is mounted at 45°.
The only thing I’ve not checked is the drv_dshot.c define, that’s probably it but why do I not have to change anything in the vanilla version of it?
@NotFastEnuf I am adding a brushless section to the config.h containing all the necessary bit, once I get it working properly I’ll share it.
I need to go to work now but will check more later today.


Is this fork compatible with SilverVISE? http://sirdomsen.diskstation.me/dokuwiki/doku.php?id=silvervise

I have a JJRC h67 with the stock controller, so I should just use RX_BAYANG_PROTOCOL_BLE_BEACON ? correct?


actually the ble app one is correct


@NotFastEnuf silver got autobinding implemented! :grin: Any chance that will make it over into your fork?


Of course! That’s awesome. I haven’t had much time to hobby or follow hobby lately so I’m glad you brought me in the loop. I’ll sit down some time this week and look at all the changes since I forked and get NFE up to date. I do plan to maintain the fork with any/all new updates as time permits. I need to get silverAG’s stuff ported in too.

Lol, sometimes I wish I had a clone that could just hobby for me around the clock. Lol. I could keep him busy for sure.

If anyone else is comfortable/experiemced with maintaining a fork… I’d be happy to include others in my project. As with all my designs/hobby contributions… whatever I’m doing belongs to all of us!


@Chaotix OK in that case, I have no idea what’s up. If you can attach a copy of your hardware.h from the B03 firmware that works, and the config.h from your NFE firmware, I might be able to spot something. I looked through the NFE firmware to compare changes from B03 firmware and there was nothing I could see to cause issues. It might be related to the NRF rx. What I could do also, is try the NFE firmware on the one quad I have that has the dedicated Silver NRF FC same as yours. Will try to do that soon.


All it took to get a flyable result was me to define dshot600 in drv_dshot.c
Now however I have a constantly flashing led, no pattern just regular. Nothing seems to change it and it makes pid tuning with gestures tricky. Don’t think it’s a flash code as there’s no break in the pattern.


@Chaotix LVC? Have you changed the ADC values because you were running 2s-3s on that quad while the NFE config is set for 1s? I’ve done it many times


I haven’t made a lot of changes recently, useful one is only that the d filter takes frequency as a number.

but there are some other ones, the leds flash correctly even if turned off by a switch, and I added radio settings extracted from the factory firmware.


Yes that would likely be it. The factor in #define ADC_SCALEFACTOR 0.001364 in hardware.h woud need to be set to the value it was before.


Sounds very interesting! Did it change anything that you can notice?


@yets and @Ian444 lvc would make sense but I have already set ADC scalefactor to the value I use on vanilla b03 and commented out lvc warning. Using @sier flashtools latest version I can read the pids and gestures aren’t changing them, acc calibration gesture seems to work, has an effect on the constant flashing led and the esc restarts.
What I have not tried yet is flashing a vanilla b03 with the needed changes to hardware.h, config.h, dvr_dshot.c and pids.c that I know work, via the flashtools. If that works then it would point to something in @NotFastEnuf fork that I’m missing.
Further investigation tomorrow, thanks for all the input :+1:


Just a minor point for anyone else trying to install Keil and build this or silverware. The silverware project requires Keil.STM32F0xx_DFP.1.5.0 but the package installer wants to install the latest which is 2.0.0.

Make sure you only have 1.5.0 installed


Could be something related to building in a mac too. Maybe I could try compiling a hex for you.


Yes I need to check in case it is mac app related. I’ll post more later tonight once I’ve tried a few more things. Fortunately I enjoy the troubleshooting as much as any other part of the hobby.


I created a diff of the changes required to get autobinding to work :+1:

Apply with:
git apply --ignore-space-change --ignore-whitespace autobind.diff


Ahem… You know when you accidentally have the decimal point shifted to the right by one zero so your ADC scalefactor is way off? Guess what you get, lvc warning. Doh!
I flashed a vanilla b03 firmware with all the necessary changes for the brushless Nrf24 board and compiled and flashed it fine with @sier’s flashtool. Led behaved as it should confirming that I must have missed something in the NFE setup. Went over it all very carefully and realised the scalefactor value was off by a decimal place, corrected, compiled and flashed and all works perfectly.
Case closed, my error, thanks for the help guys @Ian444 @NotFastEnuf @silver13


in the app thread, they said there was better transmission form the quad to phone. There was also a report it made a quad bind which did not before. But it’s subjective and might not be true


does this matter, I thought keil can have multiple packs installed