The best GPS module for INAV

This is my personal best GPS module for INAV: Beitian BN-880 based on Ublox Neo-M8N. Currently I have 3 pieces of BN-880, all works just great, and if I will have a need to have another one, I would also choose it.

Why? It really works well. On the outside it gets a solid 3D fix in less than a minute. It even can get a fix with 9-10 sats in a center of a city when only a small piece of sky is visible simply by lying on a windowsill. It take time, but works.

Beitian BN-880 - best GPS module for INAV?

Continue reading “The best GPS module for INAV” »

Read More

How to print with elastic filament

Elastic filaments opened brand new areas for 3D printing. We are finally able to print something that bends, compresses and stretches. While TPE (ThermoPlastic Elastomer) filaments like NinjaFlex or FlexiSmart are still about 4 times more expensive than plain old PLA, they are not so expensive not to give them a try.

Unfortunately, due to the fact that they are elastic even before melted and extruded, they require special printing conditions. During my experiments with FlexiSmart I've came down to following conclusions:

  1. Because TPE is elastic, flow through the nozzle has to be as smooth as possible. If not, it will coil inside extruder
  2. Bowden extruder system greatly increases chance of failure. Friction of bowden, while small enough for ABS or PLA, is too big for TPE. Filament will coil. Direct extruder gives less chance of failure
  3. One has to pay big attention to the distance between extruder nozzle and bed. Usually it has to be a litter bigger that for PLA or ABS. In all the cases when I was switching from PLA to TPE, I had to raise nozzle a little. If not, TPE coiled. TPE has better initial adhesion than PLA, so rising a nozzle does not have side effects
  4. Filament retraction is a huge NO NO. Disable retraction since it will increase the chance of coiling significantly
  5. With no retraction it is a good idea to enable Combing. Nozzle, instead of taking the shortest route to travel, dripping TPE everywhere, will move above already printed layer. This greatly improves print quality
  6. Top printing speed is 30mm/s, but I recommend slower speeds. I have best results when printing at 15mm/s. On 25mm/s quality is still acceptable, but degradation starts to be visible
  7. I had best results of TPE printing on glass with 220deg nozzle temperature and 60deg bed temperature
  8. Not everything can be printed with elastic filament. Any thin vertical structure will come deformed. After all, it will move during printing due to a friction with extruder nozzle

While I was printing with FlexiSmart, almost all points from the above list will be true for other TPE (NinjaFlex). Temperatures might be slightly different, but general rules applies.

Read More

Simplest hardware inverter for flight controller

Together with increasing popularity of STM32F4 flight controllers, telemetry became hard topic again. Why? Most popular telemetry protocols, SmartPort and FrSky telemetry , requires inverted signal. Zero becomes one, one becomes zero.

In case on STM32F3 that was not a big problem. Those CPUs have built in inverters. STM32F1 and STM32F4 does not. So, if flight controller designer did not put external inverters on UART ports, FrSky telemetry, SmartPort and even S.Bus would not work.

Luckily, simple inverter for FrSky telemetry and S.Bus can be build using only few electronic parts:

  • Small logic level N-channel MOSFET transistor. One of the best choices is 2N7000
  • 10kOhm resistor
  • few cables

Continue reading “Simplest hardware inverter for flight controller” »

Read More

Flip32 F4 and Airbot F4 Software Serial

When STM32F4 based flight controllers made its way to the world of MultiWii derivatives (Cleanflight and whole family), all I think all developers assumed that SoftwareSerial feature will not be needed on those boards. Why it should be? STM32F4 has enough hardware UARTs to satisfy everyones needs.

Unfortunately, live had it’s own point of view on that topic:

  1. Most F4 flight controllers have only 2 to 3 hardware UARTs available and usually one of them is shared with I2C (Revolution, Airbot F4)
  2. STM32F4 does not have internal hardware inverters. Hardware manufacturers usually put only one external inverter for S.Bus and that’s all

Because of that, Software Serial feature is coming back to F4 boards. Together with INAV 1.5, SoftSerial will be available on Airbot F4 / Flip32 F4 target on two small pads located near UART3 connector. RX line on pad CH5, TX line on CH6 line. Pads are quite small, but with basic soldering skills and decent soldering iron there should be no problems to solder thin cables to them.

Since F4 CPU is much more powerful than F1, limitation of 19200bps on Software Serial UARTs is no longer actual. I have tested 57600bps and 115200bps should be archivable.

Read More

Yaw unstable at full throttle

Last weekend I’ve experienced quite serious problem with Reptile X4R 220 racing quadcopter: on full throttle quad was loosing stability. At first, it was starting to drift yaw to the right. Then, if throttle was not lowered, roll and pitch was also becoming unstable and quad was doing crazy things in the air.

I do not have a video footage of those issues, but Blackbox footage looks like this:

yaw unstable at full throttle 1

Roll, Pitch and Yaw sticks are at zero, throttle is raised from aroung 45% up to 90%. When throttle reaches around 80%, gyro starts to record movement on all axises. At one point, yaw gets a kick and reaches more that 200dps. Finally, I lowered throttle and quadcopter stabilized (moment of stabilization is not visible, but trust me, it is there).

The reason for such a behavior became pretty visible as soon as I displayed motor output:

yaw unstable at full throttle motor output

Flight controller requests much more power from Motor #1 than from other motors. Not only in this short scenario. Look at this graph:

yaw unstable at full throttle motors

FC requests more thrust from Motor #1 almost all the time. Why? Motor #1 provides less thrust than other motors. There are few possible reasons:

  1. Damaged propeller
  2. Damaged motor
  3. Damaged ESC
  4. ESC not calibrated

In my case, it was ESC calibration issue. While this might sound strange, ESCs loses calibration from time to time. Usually after a crash that resulted in detached battery.

Proper ESC calibration solved all the problems I was experiencing.

Read More

Hobbyking Mini DLG Pro 990mm durability fix

Entry level DLG (Discus Launch Glider) from HobbyKing has a quite important flaw for a “entry” level model: it is not durable. As a matter of fact, it is quite fragile, specially where plastic nose section is attached to composite fuselage tube. It is attached only with 3 small screws, and I can guarantee: every harder landing will result with something broken. During 3 first weekends with my Mini DLG Pro, I had to glue it back together every second flying session.

Those 3 screws are just not stron enough to keep everything together, so I’ve decided to fix it with epoxy glue and I suggest all new owners of this DLG do it at the beginning. Thin layer of epoxy put everywhere where plastic meets fuselage tube is enough. It make glider strong like it should be from the beginning.

hobbyking dlg pro 990mm epoxy reinforcement 2

hobbyking dlg pro 990mm epoxy reinforcement

There is a penalty of course: nose section no longer can be detached. Since HobbyKing does not sell replacement parts for this model, this is not a big problem after all…

Read More

UART1 and PPM on Airbot F4 / Flip32 F4 Flight Controllers

Today I've discovered another small but irritation limitation of Airbot F4 / Flip32 F4 also known as CC3D REVO for unknown reason. Looks like, by default, this board is unable to share UART1 RX line and PPM input. So, if you would like to connect, for example, OSD or GPS to UART1, you would have a problem. I've discovered that PPM input does not blocks UART1 totally, but makes UART1 transmission erratic and unreliable.

This is because PPM input pin is connected to both UART1 RX (pin PA10 of STM32F405) via inverter and PPM input pin (PB14) without inverter. Any electrical signal applied to PPM input would also be sent to UART1 RX.

Airbot F4 and Flip32 F4 PMM and UART1

Luckily, there is pretty simple, hardware, solution to allow UART1 and PPM input function simultaneously. Jumper called SBUS located near SBUS/PPM input has to be removed with soldering iron. This operation breaks the connection between PPM/SBUS input and UART1 RX.

There is a drawback of this solution too. If jumper is removed, SBUS will not work. To make SBUS works again, jumper would has to be closed again. With a blob of solder for example…

Read More

Tip: how to secure XT60 plugs

I had a problem with my SkyZone goggles: I was constantly breaking battery cable near XT-60 plug. One not careful enough grip and cable was ripped away. I've decided to fix it and permanently secure the cable with epoxy glue.

Sure, I could use hot glue (that looks ugly) or Sugru (that is expensive), but since few weeks ago I've bought HobbyKing Mid-Cure Epoxy glue, I've decided to use it instead. It worked fantastically!

HobbyKing Mid-Cure Epoxy glue

Solder cables to XT-60 plug pretty close to external coating as possible.

XT60 plug

Now, prepare a "mold" using electrical tape. Just wrap it around plug and cable leaving empty space inside. Prepare epoxy glue and pour it into "the mold".

puring epoxy into mold

After and hour or so, epoxy glue will be hard enough, that electrical tape can be removed. There is no chance I could ever rip this cable from the plug by accident!

protected XT60 plug

Read More

Micro MinimOSD stops overlaying in flight: solution

Both MinimOSD and Micro MinimOSD suffers from irritating technical problem. In some setups, they stops overlaying data during hard maneuvers or even right after arming. Problem is very simple: chip MAX7456 is extremely sensitive in terms of supply voltage quality. Working motors and/or servos, can introduce enough power supply noise to occasionally force MAX7456 to reset.

Luckily, solution is simple: separate LC power filter or big enough capacitor connected in parallel to 5V pads of MinimOSD.

Almost any big enough electrolytic capacitor will do (> 100uF, the bigger the better) but best results can be archived with low ESR > 500uF capacitor.

In my case symptoms were not very strong, usually only very fast flips caused MAX7456 to reset, but I’ve decided to go big: 1000uF low ESR capacitor.

Low ESR 1000uF Capacitor

Micro MinimOSD has 5V pads on a side and they are the best place to attach capacitor.

Micro MinimOSD

As you can see below, capacitor is bigger than MinimOSD itself and I had to think a little how to place it inside my Reptile X4R 220 frame.

Micro MinimOSD with capacitor attached

Results are great: no more MinimOSD problems. OSD stays on all the time, no matter how hard I use the stics.

Read More

How to measure gyro noise frequency with Blackbox

Cleanflight / Betaflight / INAV lowpass filter tuning can be a hard thing to do if you have not idea what is noise frequency you want to cancel. Sure, you can blind test or read tutorials. But what if I tell you, you can measure it quite precisely using only Blackbox logs? Or measure rotation speed of motors? That would be nice, isn’t it? The only requirement are few seconds of Blackbox log with visible gyro (it can be also motor output or Pterm or even ACC reading) noise.

blackbox measure frequency 1

Continue reading “How to measure gyro noise frequency with Blackbox” »

Read More