What happened to INAV horizon drift?

INAV suffers from horizon drift since day one. It's not that Betaflight does not suffer from it (both Betaflight and INAV originate from the same parent: Cleanflight). In Betaflight it just does not matter at all. In INAV it's a real-life problem tho.

So far, we somehow managed to mitigate horizon drift on airplanes but it's not really fixing the problem. It's there and it's irritating as hell.

Last month I published a post that describes my intent to use the external board as a secondary IMU for INAV. It is "of the shelf" Bosch BNO055. Today I finally put it into a test and to be honest, the results are very optimistic!

More about INAV horizon drift:

Matek VTX-1G3, VRX-1G3 and ANT-Y1200 ready for testing

The upcoming 1.2GHz FPV system from Matek called 1G3, where VTX-1G3 is the transmitter and VRX-1G3 is the transmitter and ANT-Y1200 is the antenna, are ready for some flights!

Matek VRX-1G3 connected to Fat Shark HDO FPV goggles

So far I have a couple of remarks:

  1. VRX-1G3 fits nicely inside a standard Far Shark receiver bay and you can use the standard bay cover too. SMA connector is in the correct place! The standard cover blocks access to the button that is used to change channels. You can not change channels from the goggles menu.
  2. ANT-Y1200 has a nice stiff coax cable and you can position it however you want
  3. ANT-Y1200 is much bigger than antennas used for 5.8GHz FPV and it's much harder to find a good place to position it on a model.
  4. VTX-1G3 is luckily small enough to fit in many places and does not overheat. Even when powered from 4S it stays relative cold (50C) at 28dBm of output power. I got the word it's because of much more efficient energy conversion that is possible with 1.2GHz band

Matek VTX-1G3 and ANT-Y1200 on a Flybot Flux

The best flight controllers for INAV – 2019 Q4 edition

Believe it or not, but choosing the right flight controller for your next airplane or a drone build is quite important. Yes, I know that some of you might say that hardware does not matter and your kwad will fly as good with the latest F7 flight controller as it would fly with Naze32. It is, not true. It would fly with Naze32, but do not even try to compare modern flight controllers with more advanced filtering, inputs, outputs, and peripherals.

Best flight controllers for airplanes

Matek F722-WING

Matek F722-WING

Matek F722-WING is the second generation of a big WING flight controllers started by a famous F405-WING. Comparing to the original, F722-WING offers more input/output options, including dedicated airspeed port, switchable camera inputs and switchable power supply for FPV installation.

FuriousFPV F35

FuriousFPV F35 is a well know and proven airplane flight controller brought to by by the FuriousFPV. Based on STM32F4 MCU provides plenty input/output options in a relatively small form-factor. Can be bought with matching GPS, Bluetooth and Airspeed modules. F35 utilizes plug & play idea, since most ports are broken out as JST-GH connectors.

Matek F411-WING SE

Matek F411-WING SE

When small size is required, F411-WING SE comes into play. Super small and lightweight but offers enought serial ports and outputs to satisfy most lighweight builds. Vertcal USB port makes it easily accessibke when installed inside alsmost any foam airplane.

Best flight controllers for drones

Kakute F7

Holybro Kakute F7

Holybro Kakute F7 managed to do what others failed. It fits powerful STM32F745, OSD, SD Card and enough serial ports for everyone in a form factor only slightly bigger than standard 36x36mm. The unique feature of the whole Kakute series is a gyroscope installed on a separate board connected with the main board with a thin ribbon cable and sponge. It helps to keep gyro noise under control. Made to use together with 4-in-1 ESCs.

Matek F722-SE

Matek F722-SE

Matek F722-SE is probably the best STM32F7 flight controller for drones on the market. Integrated OSD, power distribution board, output for 6 motors or 4 motors and 2 servos, integrated camera switcher and "power on a switch" function. INAV, Cleanflight, and Betaflight supported. Enough Serial ports of everything you need, including ESC telemetry.

Matek VTX 1G3 Long Range Video Transmitter Power Test

New long-range 1.2GHz video transmitter and receiver from Matek are hot topics of the last few weeks. They seem to be a very interesting proposition for all long-range flyers that are not happy with more popular 5.8GHz FPV systems.

Matek 1G3 VTX and VRX with antennas

Last week I've connected Matek VTX-1G3 to an RF power meter and this is what came out of this.

Bottom line: this looks like a very decent 1.2GHz FPV system and Matek VTX-1G3 and VRX-1G3 might be what long-range community really needed!

Ohm’s Law for beginners

Yes, Ohm's Law for beginners, not for dummies. I do not want to offend anyone and if you are interested in things like Ohm's Law, you are clearly not a dummy.

In this video, we will talk briefly about what Ohm's Law is and how it influences everything connected with electricity. That it describes the relationship between voltage and current. That when you increase the voltage, you increase the current as well. And that voltage and current combined together give you power! And that doubling the volatge, you increase the power 4 times!

Matek F765-WING specification and images

Matek makes probably the most advanced hobby level flight controllers that run Open Source like Ardupilot or INAV. The Matek F765-WING is currently best-of-the-best. Here are some images and full specification:

Matek F765-WING Flight Controller

  • Dimensions: 54 x 36 x 13 mm
  • Weight: 26g
  • Input voltage:
    • 3S-6S LiPo
    • Integrated TVS diode
  • ESC outputs: 2
  • Servo outputs: 10 PWM outputs with DSHOT support
  • 6 ADC inputs
  • 7 hardware serial ports. UART1, UART2, UART3, UART4, UART6, UART7, UART8
  • 1 Software Serial option
  • Processor: STM32F765 at 216MHz
  • Dual Gyro: MPU6000 and ICM20602
  • Barometer: BMP280
  • Built-in OSD based on AT7456E
  • SD Card slot with Blackbox capability
  • External buses: 2xI2C, SPI4
  • Dual camera input
  • Switchable output (PINIO)
  • 123A current sensor
  • Airspeed sensor support: Analog on Air pad and Digital
  • BECs:
    • 5V, 2A constant, 3A burst
    • 9/12V, 2A constant, 3A burst, voltage user selectable
    • 5/6/7.2V, 8A constant, 10A burst, voltage user selectable
    • 3.3V, 200mA

Matek F765-WING Flight Controller

Matek F765-WING Flight Controller

Matek F765-WING Flight Controller

Matek F765-WING Flight Controller

INAV Airspeed Sensor – which one to choose

INAV flight controllers gives you the option to install airspeed sensor on your airplane, just like in Pixhawk and Ardupilot. And just like in case of Pixhawk and Ardupilot, you have several options in terms of the hardware. Airspeed sensors, also known as Pitot tubes, come in two variants: digital and analog.

Matek Airspeed Sensor ASPD-7002

Digital Airspeed Sensors

Devices based on MS4525 digital differential pressure sensor. They are connected via I2C bus using SDA and SCL pins. They are more expensive than analog sensors, but also give slightly better accuracy. Example Digital Airspeed Sensor

Analog Airspeed Sensors

Just like digital, are also based on differential pressure sensors, but they output measured pressure difference as analog value. Based on MPXV7002 chip. They have to be connected to a free Analog input on a flight controller. On top of that, all 7002 sensors output value between 0 and 5V, while flight controllers can read only between 0 and 3.3V.
This is why, if airspeed sensor, or a flight controller, does not have to built-in voltage divider, you have to build your own one.

There are exemptions from this rule tho. Matek Airspeed Sensor has a divider ready on 1/2 pin. Latest Matek WING flight controllers like F722-WING or F-765 WING have special pins called Air that can accept 5V voltages. Always check hardware specification! Analog Airspeed Sensor for INAV, APM, Pixhawk

More about airspeed sensors and INAV:

Radio modules FS1000A and XY-MK-5V – pros and cons

When looking for radio modules for your next Arduino project, you might have come across the couple named: FS1000A and XY-MK-5V. At first glance, they might look like the next best thing, but it's not that simple.

FS1000A and XY-MK-5V

Before you start hacking anything with FS1000A and XY-MK-5V, read the following pros and cons:

Pros:

  • simple – to send a signal you do not need much. Only to power them up and set LOW or HIGH on the data pin
  • cheap – true, they are not expensive

Cons:

  • pretty much everything else, including the same things that are their pros…
  • too simple – they are just too simple and offer no other functions than transmitting a wave through the void. No CRC, no packets, so SPI or serial, no bidirectional communication
    everything has to be done in the software, including encoding and CRC.
  • transmitting and receiving devices have to use the same libraries and support on some platforms like Raspberry Pi might be problematic at best
  • the frequency can not be changed!
  • no frequency hopping or spread spectrum
  • you have to get your own antennas
  • range is poor at best and depends on things like voltage of the transmitter
  • build quality varies a lot and you can not be sure that TX and RX are really tuned to the same frequency

Verdict? At leat be very careful when choosing hardware for your next Arduino RF project…

How to connect GPS to ESP32

Thanks to a very versatile Input/Output matrix, it is quite simple to connect NMEA GPS modules to ESP32 MCUs. Not only ESP32 boards have 3 serial ports you can choose from, they can be assigned to almost any pin you want.

In this example we will connect a popular Ublox NEO-M8N like Beitian BN-880 or BN-220 to a ESP32 development board and output current position on a USB serial port using Arduino IDE and TinyGPS++ library. Let's begin

Sketch header and setup routine

Let's include all of our libraries: TinyGPS++ and HardwareSerial

#include "types.h"
#include <TinyGPS++.h>
#include <HardwareSerial.h>

Then, let's assign variables and create TinyGPSPlus and HardwareSerial object called SerialGPS on serial port 1.

TinyGPSPlus gps;
HardwareSerial SerialGPS(1);

No, set's set up everything in a setup function. GPS will be connected with 9600bps and to pins:

  • Serial 1 RX – pin 16 – connect GPS TX pin to it
  • Serial 1 TX – pin 17 – connect GPS RX pin to it
void setup() {

    Serial.begin(115200); //Serial port of USB
    SerialGPS.begin(9600, SERIAL_8N1, 16, 17);
}

When everything is configured, we can listen to data on SerialGPS and send it to TinyGPS++ and decoded data to USB serial port

void loop() {
    while (SerialGPS.available() > 0) {
        gps.encode(SerialGPS.read());
    }

    Serial.print("LAT=");  Serial.println(gps.location.lat(), 6);
    Serial.print("LONG="); Serial.println(gps.location.lng(), 6);
    Serial.print("ALT=");  Serial.println(gps.altitude.meters());
}

Full example is available here. It does other functions too!