Standalone Betaflight Configurator, since Chrome Web Store apps are dead

Google finally did what they announced last year: Chrome Packaged Apps for Windows, Mac, and Linux are dead. OK, maybe not 100% dead, but they were removed from search and browse in Chrome Web Store. If you still have link, you can install (no idea for how long tho).

So, how to live with that? Our hobby is driven by Chrome Packaged Apps. Betaflight Configurator, INAV Configurator and Cleanflight Configurator are all Chrome Packaged Apps. Did we lose the ability to set up our drones? Luckily no. Thanks to fantastic project NW.js, chrome apps can be packed together with Chromium and distributed as a single file without dependencies. I've prepared a short video how to install Standalone Betaflight Configurator, for INAV it's the same procedure. And for Cleanflight… well… Cleanflight is dead. Or rather dying…

Read More

RaceFlight One source code has been published and what does that mean

In the beginning of time, there was MultiWii and it was good. But then times moved on and 8bit ATmegas were end-of-line for flight control. So, Baseflight was created. In the beginning, it was supposed to be only a MultiWii port to support STM32f1 flight controllers in a for of Afroflight Naze. And it was good for a while. But the guy that was running this show turned out to be a prick and one of Baseflight developers forked everything and called it Cleanflight. One might want to say "Hail Hydra" but let's try to be serious here.

Anyhow, everything was great again. No pricks anywhere and Cleanflight was growing. People started to fork Cleanflight. Betaflight, INAV and Raceflight were created. No problems anywhere, one big happy family.

It did not take long for things to change. Someone decided that he can make money by making code closed-source and run only selected, sold by them hardware. It was RaceFlight by the way and this is a reason I'm not writing much about them. There real problem is that you just can not make an Open Source code under GPL license Closed Source just like that. It is virtually impossible since all commiters would have to agree to that. All of a few hundred. Good luck with that. INAV tried to change license once (and still be Open Source) and it failed. Few devs just said no. End of story.

Back to Raceflight. When in late 2016/early 2017 Raceflight went Closed Source. Some devs decided to check this and that, decompiled RF firmware and compared that with CF/BF. Surprise, surprise, decompiled code for gyro initialization looked exactly like in CF/BF. Raceflight was violating GPL license! They had no rights to close the code of Raceflight. Period. RF team defended themselves as they could but IIRC finally published source code for Raceflight (not RF One) like GPL required. Joshua Bardwell did a video on that topic you might want to watch BTW.

You might think this is the end of a story, but not. Raceflight announced RaceFlight One and claimed that RaceFlight One is 100% their doing, rewritten and does not contain absolutely no code from Baseflight/Cleanflight/Betaflight. So it does not fall into GPL at all. They were more less believed and most of pilots forgot about the whole thing.

Until yesterday. Because yesterday, Kalyn Doerr aka rs2k (one of creators on RF) published the full source code of Raceflight One on GitHub and posted something interesting on Facebook too:

(…) I don't want to say much publicly right now. I have kept quiet as I have been in fear for my safety for some time now. Over the last several months I have documented Preston Garrison's business dealings as he has tried to keep me away from the business. I have had no success in reasoning with him. I created it originally to share with the community and I have poured my lifeblood into it. It will not die here. I am RaceFlight.

Pretty scary, isn't it? Drama and stuff. But what happened is that RF One source code is on GitHub. Take it while it's fresh since it might be removed due to DMCA soon.

Let's leave the drama and see what mentioned Prestion aka proggod posted:

Well apparently Kalyn decided to release our code to the public without consent from me. I have no idea what his intentions are, or why he would decided to do this, last time I communicated him he was working on his home life. I can say he doesn't own the code, and it certainly can't be licensed as GPL, especially since he was not the only contributor to the code base. (…)

In other worlds "_I have no idea what happened but this code is private and GPL does not apply". Well… Betaflight community decided to check again an they found out something very interesting:

//TODO REwrite this better
char *ftoa(float x, char *floatString)
{
    int32_t value;
    char intString1[12];
    char intString2[12] = { 0, };
    char *decimalPoint = ".";
    uint8_t dpLocation;

//TODO REwrite this better is nothing strange. But, exactly the same ftoa implementation can be found in Cleanflight, Betaflight and INAV source code. And by exact, I mean exact. not similar. Exactly the same. It was committed by hydra in April 2014 under GPL license. And that means one thing: whole RaceFlight One is GPL. This is how GPL works. They did not rewrite it from the scratch, they took some elements of GPL code and continued from there. GPL is very intrusive license: if you use anything licensed under GPL, your whole project is automatically GPL too. Period.

I have no idea who is lying. But someone on the RaceFlight side is lying. Why? If you do not know why it's because of money. An old universal truth. And I suspect this whole thing might have legal repercussions and someone will meet someone in a court. Is that good? No idea. Bottom line is: RaceFlight One is violating GPL license of a code it was based on.

Ah, there is one more small thing. According to some RF/BF devs and users, Preston Garrison always stated that RF One is not using Kalman filtering. More, users were apparently banned from Slack for suggesting RF One was using Kalman filtering. Guess what… The published code suggests RaceFlight One is using Kalman filtering… Funny….

I will try to keep my eye on it and if I will keep you posted in case of any major developments (if any)…

Update #1

No, there is no Kalman filtering in RaceFlight One after all. All occurrences of Kalman filtering are commented out

Update #2

After all, there is a Kalman filter in RaceFlight One. The commented out code refers to multi-state Kalman filter. Method PafUpdate that is used for gyro filtering is 1-state Kalman filter. Thanks DigitalEntity for discovery

Follow up for 2017.12.07

Read More

Betaflight 3.2 Dynamic Filtering Explained

With upcoming Betaflight 3.2, we will be given a new, outstanding, new feature: dynamic filtering. An belive me, it was worth waiting for Betaflight 3.2 only to get it. I do not care much about other changes that happened with version 3.2 but dynamic filtering it the thing! In this post I will explain, in simple words, what is dynamic filtering and how to enable it.

The problem of noise

Gyro has a nasty tendency to pick up a lot of noise. Vibrations. After all, there are a lot of things that can vibrate (motors, propellers) and resonate (frame). Without a good way to filter all that noise out, our racers would not fly as good as they fly now. And you would be replacing motors and ESCs even more often. I you want to know more about gyro noise sources and filtering, please watch my Gyroscope and filtering series on YouTube.

Continue reading “Betaflight 3.2 Dynamic Filtering Explained” »

Read More

Understanding Dterm: how Dterm really works

I will be very honest: until very recently I did not really understood how PID controller’s Dterm really works. Yes, something with dampening, something with “looking into future”, bla bla bla. But the reason for not understanding was because I was overthinking it. There is no “magic” only simple mathematics and few basic concepts which I will now explain.

Setpoint

Setpoint is the value which we request from our system. In case of multirotors, PID setpoint will be a rotation speed around axis given in degrees per second [dps]. Setpoint 0 means we do not want to rotate (keep current attitude) and setpoint 200 means we want to rotate at 200dps

Measurement

Measurement the value that represents actual state of the system measured by some kind of sensor. In our case, it will be the gyroscope and rotation-around-axis speed measured in degrees per second

Error

Error the difference between Setpoint and Measurement computed as Error = SetpointMeasurement. In our case, when Error is above 0, that means drone is rotating too slow and should speed up. If Error is below 0, drone is rotating too fast and should slow down

Understanding Dterm - setpoint measurement and error Continue reading “Understanding Dterm: how Dterm really works” »

Read More

DemonRC NOX5 racing quadcopter is done

It took my time with this build, that is sure… Somehow there were always more important things to build. Anyhow, DemonRC NOX5 FPV racing quadcopter is finally up and running. DemonRC NOX5 quadcopter

What is inside? Nothing special:

  • Frame: DemonRC NOX5
  • Flight controller: Airbot Omnibus F4 v4 running Betaflight 3.1.7
  • ESC: DYS XSD30A BLHeli_S
  • Motors: EMAX RS2205S 2300KV
  • Camera: RunCam Swift2 2.1mm lens
  • Video transmitter: TBS Unify Pro v2
  • RX: FrSky X4R-SB
  • Propellers: DAL T5045C Cyclone

DemonRC NOX5 quadcopter

DemonRC NOX5 quadcopter

As a bonus, 3D printed TPU GoPro Session mount. But the bottom line is, it flies!

Read More

Flight Controller Soft Mount – is it worth it?

Is it worth to soft mount flight controller? Are gyro pads I recommended here better than rubber stand offs? I feel that they are better, but I do not have any solid data to prove it. So I can only tell, that I find them better and that is all. But, I can answer the question is it worth to soft mount flight controller at all. The answer is YES and here is a proof…

The problem of twitching motors

After I updated my 5″ racer to stronger motors (EMAX RS2205S 2300KV over RS2205 2300KV) I noticed something very very irritating: twitching motors. When throttle was in more less middle position or after rapid throttle change, twitching from motors was very audible. Quad was flyable, but performance was very low. I had to reduce yaw P gain by more than 50% not to see those twitches in FPV footage!

Blackbox log revealed the truth: from time to time, strong vibration was getting into yaw gyro traces. I also localized the source of those twitches: stronger motors with more torque and higher radial acceleration were able to shake whole machine when frequency was close to the resonance frequency of the frame.

hard mount twitch example

Continue reading “Flight Controller Soft Mount – is it worth it?” »

Read More

And the most popular flight controller for INAV is…

Did you ever wondered what is the most popular flight controller? Hardware I mean. I can tell you 🙂 OK, maybe it will not be a full truth, since I have data only from INAV, but assuming that distribution for Betaflight and Cleanflight is similar, we might know what is happening…

Important, this is not the number of boards flashed with INAV, but rather number of times a board was connected to Configurator!

This counts TARGET software name, not retail name. For example, all clones of Naze32 will be counted as Naze32

Data was taken in June 2017, multiple connections during single user session are stored as single entry. Continue reading “And the most popular flight controller for INAV is…” »

Read More

FC Soft Mount With Adhesive Pads FTW!

I will not try to proof if you should soft mount a flight controller on a racing drone. I will only say, that few months ago I was against it, but lately I changed my mind. Stronger motors, stronger magnets, more torque, more speed and out of nowhere, incredible amount of noise can be fed into gyro signal. Sure, this is not required, but motors, ESCs and battery will thank you when you soft mount flight controller. Less, noise, less restrictive filtering required, lower signal delay, better flight performance.

In most places over internet you can find either a rubber standoff or double sided tape solution. Sure, that works, but there is something better. Dedicated, double sided adhesive, vibration dampening pads. There are many sources, and many names. I'm using Sekisui brand. Check ebay, Amazon, HobbyKing. Look for gyro pads, vibration pads, vibration dampening. I do not want to advertise any particular seller, so you are on your own here.

Sekisui adhesive gyro pads

Continue reading “FC Soft Mount With Adhesive Pads FTW!” »

Read More

Hands on: Omnibus F7 Flight Controller

Thanks to Airbot I got my hands on a new STM32 F7 flight controller: Omnibus F7.

Before we proceed, small note.

I am a huge fan of F7 flight controllers. In a year, they will be a main line of high performance FC on the market. STM32F7 with built-in UART inverters solves so many issues STM32 F4 boards are facing. But, F7 are not there yet. Currently available boards uses STM32F745 CPU in 100 pin packages. They are just too big to comfortably fit 36x36mm format. You place CPU and most of the PCB is taken. Than means there is no space left for either connectors or OSD for example. What we are waiting are FC with STM32F722 in 64pin package!

Omnibus F7 flight controller top view

Continue reading “Hands on: Omnibus F7 Flight Controller” »

Read More