STM32 F1, F3, F4, G4, F7 and H7 flight controllers

STM32 F1, F3, F4, G4, F7 and H7 flight controllers

Currently, almost all flight controllers we use on our multirotor FPV drones and airplanes are powered by microcontrollers from an STM32 family. When we say about flight controller families or generations, we refer to them by the family of the MCU. For example:

F1 flight controllers are no longer supported

or

You should get F7 to do it

STM32F1

Historically speaking, F1 were the first flight controller boards for MultiWii derivatives based on STM32 MCU. All the F1 boards like Naze32 or CC3D (ok, this one is from OpenPilot family) were equipped with STM32F103 chips. Currently, F1 boards are not supported by any major flight controller firmware. Reasons are simple: low speed, lack of hardware floating-point acceleration, very little RAM and Flash memory, only a couple of UARTs. They were not powerful enough and as a result, had to die.

Do not buy and if you have one, just keep it somewhere in a drawer as a souvenir of good old times. Read More

Betaflight 4.2

Betaflight 4.2 Gyro, Looptime and Gyro Stage 2 Lowpass Filter

Betaflight 4.2 brings some very important changes to how various tasks are processed. Especially how gyro,m filtering and PID loop are working together.

First of all, the gyro is sampled always at the gyro native speed. This means, MPU6000 will be sampled at 8kHz. Always. At the same time, PID and filtering are working as a separate task at 8kHz, 4kHz, 2kHz and so on. Depending on user configuration and MCU processing speed.

5-inch mini quad with Betaflight 4.2

Read More

Betaflight 4.2

Betaflight 4.2 – new features and most important changes

It’s been a while since we had the last release of Betalight. After all, Betaflight 4.1 was released in October 2019. Half a year ago. Luckily, developers were not hibernating over the winter, and brand new, 4.2, release is scheduled for May 2020. Slightly more than 2 weeks from now.

Below is the list of the most important (from my perspective) functional changes.

The most important changes:

  • By default, Betaflight 4.2 sets DISABLED ESC protocol and it is up to the user to set correct protocol supported by ESCs
  • Virtual Current Meter uses now throttle setpoint, not RC command. Now it will work correctly with throttle limiting, throttle boost and so on. It should give more reliable current estimation now
  • Support for FrSky Graphical OSD aka Pixel OSD
  • By default, stick arming is disabled in Betaflight 4.2. It can be changed with enable_stick_arming CLI command
  • Improved STM32H7 support
  • Added the STM32G4 support. We can expect boards based on STAM32G4 to appear in the future
  • Dynamic Notch Filter improvements – it is now faster and more reliable
  • NFE Race Mode implementation known from Silverware
  • Yaw Spin Recovery auto mode
  • Scheduler improvements – gyro processing works always with full gyro sampling rate while filtering is run together with the main PID loop. It results is a more reliable scheduling and less jitter
  • Quick Rates System – max rotation rate is set in degrees per second and curve is set with the expo. This is very similar to rates used by INAV
  • For Crossfire CRSF it is now possible to display SNR in dB instead of RSSI dBm in OSD

Other change:

  • D_min and FF improvements
  • disarm reason is now logged in the Blackbox log
  • ICM42605 gyro and accelerometer sensor support
  • Dynamic LPF curves are now configurable
  • RC channels preview was added to the OSD
  • CLI name command removed
  • OSD distance from home alarm
  • CMS VTX management improvements
  • More GPS options are now settable from Betaflight Configurator
  • SOFTSPI feature removed
  • support for Redpine protocol for CC2500 RF chipsets
  • serial passthrough via MSP

Betaflight vs EmuFlight vs INAV

Which flight controller software flies better out of the box? You know, the stock, default settings, no tuning. Just flash and fly. Betaflight, INAV or maybe EmuFlight? I decided to test it on one of my 5-inch FPV drones and compare: Betaflight vs INAV, Betaflight vs EmuFlight and EmuFlight vs INAV.

The results are divided into 2 separate videos. In the first one, I explain all the rules and present all 3 flight controller software flying the same kwad.

Read More

matrix filter

EmuFlight and INAV Matrix Filter

Matrix Filter will have its premiere together with EmuFlight 0.3.0 and INAV 2.5. Which of those two will happen first is still unknown. After originally developing Matrix Filter for INAV, I also ported it to EmuFlight code and already some time ago they accepted my code proposal and merged it.

You have to admit, that the name is quite catchy. Matrix Filter for sure sounds very sci-fi. It’s not that sci-fi tho. It’s just an evolution of dynamic gyro notch filters known from Betaflight for quite some time. Instead of having a one-dimensional filter structure, it is a 3×3 filter matrix that works like this: Read More

A brief history of a flight controller – From MultiWii to Betaflight and beyond

I will tell you the history of probably the most successful family of Open Source flight controllers: MultiWii that continues its life today as Betaflight, EmuFlight, and INAV. Other families like OpenPilot were not that successful and practically died. On the other hand, the history of ArduPilot is not that interesting and we can leave it for the other time.

Wii and Arduino make MultiWii

Believe it or not, but it all began with a Nintendo Wii controller: Nunchuck. Why? It was the most obvious source of gyros in the early days. You pry open one Nintendo Nunchuck, get gyro out, connect it to Arduino, flash it with MultiWii and you have made you your very own DIY flight controller. Yeap, the “Wii” in MultiWii was taken from the Nintendo Wii itself. If DIY was not your thing, you always had the option of buying ready boards like KK for example. Read More

Was I disqualified from Betaflight?

The best way to fight with haters and different types of fanboys with whom you do not agree with is to ignore then. Just like that: do not feed the trolls, it makes no sense. Sometimes, tho, it’s so hilartious… Like today I learned that I was disqualified from… Yes, from what? Betaflight? Some other privilege I’m not aware of?

And this is called a disqualification... from Betaflight?

Oh, one day I will find the best screenshots from late Butterflight Slack… oh boy, that was interesting read 🙂

Betaflight VTX tables: SmartAudio and Tramp VTX configuration for Betaflight

Smart Audio and Tramp VTX control are no longer working out of the box in Betaflight 4.1 right after flashing. The reason is that in Betaflight 4.1 you have to configure something that is called VTX Tables. Why you have to do it? Long story, the bottom line is that you have to do it.

How to fix SmartAudio and Tramp VTX in Betaflight?

Just copy-paste one of those snippets in the CLI, and save. There is really no reason to think about it for too long…

IRC Tramp compatible VTXes

vtxtable bands 5
vtxtable channels 8
vtxtable band 1 BOSCAM_A A CUSTOM 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B CUSTOM 5733 5752 5771 5790 5809 5828 5847 5866
vtxtable band 3 BOSCAM_E E CUSTOM 5705 5685 5665 5645 5885 5905 5925 5945
vtxtable band 4 FATSHARK F CUSTOM 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACEBAND R CUSTOM 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable powerlevels 5
vtxtable powervalues 25 100 200 400 600
vtxtable powerlabels 25 100 200 400 600

SmartAudio 1.0 compatible devices

vtxtable bands 5
vtxtable channels 8
vtxtable band 1 BOSCAM_A A FACTORY 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B FACTORY 5733 5752 5771 5790 5809 5828 5847 5866
vtxtable band 3 BOSCAM_E E FACTORY 5705 5685 5665 5645 5885 5905 5925 5945
vtxtable band 4 FATSHARK F FACTORY 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACEBAND R FACTORY 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable powerlevels 4
vtxtable powervalues 7 16 25 40
vtxtable powerlabels 25 200 500 800

SmartAudio 2.0 compatible devices

vtxtable bands 5
vtxtable channels 8
vtxtable band 1 BOSCAM_A A FACTORY 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B FACTORY 5733 5752 5771 5790 5809 5828 5847 5866
vtxtable band 3 BOSCAM_E E FACTORY 5705 5685 5665 5645 5885 5905 5925 5945
vtxtable band 4 FATSHARK F FACTORY 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACEBAND R FACTORY 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable powerlevels 4
vtxtable powervalues 0 1 2 3
vtxtable powerlabels 25 200 500 800

SmartAudio 2.1 compatible devices

vtxtable bands 5
vtxtable channels 8
vtxtable band 1 BOSCAM_A A FACTORY 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B FACTORY 5733 5752 5771 5790 5809 5828 5847 5866
vtxtable band 3 BOSCAM_E E FACTORY 5705 5685 5665 5645 5885 5905 5925 5945
vtxtable band 4 FATSHARK F FACTORY 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACEBAND R FACTORY 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable powerlevels 4
vtxtable powervalues 14 20 26 30
vtxtable powerlabels 25 100 400 1W

The snippets were taken from ttps://github.com/betaflight/betaflight/blob/master/docs/VTX.md#complete-examples