All Drone Lab posts

Episodes

Gorilla Whoop Whoop, Episode 1: I Flashed It, I Crashed It, I Rebuild It

August 30, 20266 min read

Welcome to the jungle

I bought a BetaFPV Air75. It is a tiny whoop: a 21-gram drone with ducted props, a camera, and the survival instincts of a moth. The plan was simple. Charge battery, put on goggles, fly.

The plan did not survive contact with the plan.

What followed was several days of compiling firmware, flashing the wrong firmware, flashing different wrong firmware, and then flying directly into things. This is that story. It is long. So was the process.

The firmware saga, or: three boards walk into a bar

Betaflight is the software that runs on the drone's flight controller. You can download it ready-made. I chose to compile it from source on Arch Linux, because apparently I enjoy suffering with extra steps.

The official Arch guide got me most of the way. The first error was No rule to make target 'arm_sdk_install', which is Linux for "you are standing in the wrong folder." Then I built from the master branch, which is the developers' work in progress. The Configurator looked at it and said, politely, that it did not support firmware from the future.

The real fun was picking the board. BetaFPV makes three revisions of this flight controller with the same name. I found out the hard way, one at a time:

Firmware targetWhat happened
BETAFPVG473 (V1)Board came up "UNCONFIGURED" with no gyro. A drone that doesn't know which way is up.
BETAFPVG473_V3Gyro worked. Motors 1 and 2 worked. Motors 3 and 4 did nothing, which is half a drone.
BETAFPVG473_V2Everything worked.

The fix came from comparing pin maps. Every version wires the gyro and motors to slightly different chip pins. On V3, motors 3 and 4 were being sent to pins that, on my board, run an LED and the battery voltage reader. So the firmware was politely asking the battery meter to spin. V2 matched my hardware, the BMI270 gyro showed up, and all four motors woke up.

Lesson one: the board name is not the board. Check the revision before you flash, and always run diff all first so you have a backup.

The setup gauntlet

With the right firmware on board, the drone worked. It just worked backwards.

  • Throttle was inverted. Stick all the way down meant full power. I noticed this with the props off, which is the only reason this blog has an author. The fix was on the radio, a RadioMaster Pocket: one channel's direction flipped from "INV" to normal.
  • The arm switch was inverted too. "Armed" was off and "off" was armed. At one point the arm range covered the entire switch, so the drone was armed no matter what. Very committed. Not ideal.
  • All four motors spun the wrong way. This turned out to be correct. The Air75 flies "props out," and the reflash had erased the setting that tells Betaflight so. One CLI line, set yaw_motors_reversed = ON, and the software agreed with the hardware.
  • VTX settings kept undoing themselves. I'd change the video channel in Betaflight, unplug, fly, and it would be back on the old one. The culprit was the radio's ExpressLRS menu, which has its own VTX settings and pushes them to the drone every time it connects. Two things in charge of one thing. Pick one boss.

Lesson two: always test with the props off. The drone does not care about your feelings, only about which number is bigger.

Seeing through concrete (you can't)

I live in an apartment complex. It is made of concrete, steel, and roughly four hundred Wi-Fi routers. All of these are bad for analog video.

My goggles are an Eachine EV800D. The box says 1000 meters of range. The box has never been to my apartment complex.

Here's the technical bit, kept short. Analog FPV video runs at 5.8 GHz. So does a lot of home Wi-Fi, mostly between about 5745 and 5825 MHz. My first channel sat right in the middle of everyone's Netflix. The picture looked like a 1990s cable channel I wasn't paying for.

The fix was trying other channels until I found one that works for me, at 100 mW of power. The picture cleaned up a lot. Walls still win, but now the walls are the only enemy.

Lesson three: the channel matters more than the power. Shouting louder doesn't help when you're standing in a crowd that's also shouting. A note for fellow beginners: in the US, analog FPV at these power levels generally needs a ham radio license, and some channels sit outside the license-free band.

Actually flying

The Air75 has a lot of power for 21 grams. Out of the box, a tiny nudge of the throttle sent it to the ceiling, which it then visited at speed. So I softened things up:

  • Throttle curve: a flatter curve around the hover point, so small stick movements make small altitude changes instead of large regrets.
  • Rates: gentler roll and pitch, so the drone turns when I ask, not when I think about asking.
  • Flight modes on one switch: Angle (self-leveling, training wheels), Horizon (training wheels that let you flip), and Acro (no training wheels, no wheels, no mercy).

The new rates worked really well. Seemingly. I say "seemingly" because a lot of what I've learned about flying, I learned on the ground, upside down.

Which brings me to the hero of this story: Turtle mode. When the drone lands upside down, you flip a switch, arm, and push the stick. The motors spin backwards and roll it back over. No walking, no fetching, no admitting defeat. It was one of the first things I truly mastered. Partly because it is genuinely useful. Mostly because I got a lot of practice.

I crashed a lot. A lot a lot. Into walls, into furniture, into the floor from heights that should not be possible in a room. Turtle mode did not judge me. It just flipped me back over and let me try again.

Damage report

The drone flew through almost all of this. Then it lost a motor, and a quadcopter with three motors is just a very expensive way to spin in place. Here's the full damage report:

PartConditionVerdict
FrameCracked in multiple placesHeld together by stubbornness
PropsChipped, bent, tornLike they lost a fight with a ceiling fan, which may be accurate
MotorOne deadThe first casualty that actually grounded it
BatteryOne might be failingUnder observation
Flight controller, camera, VTXWorkingSomehow

Exhibits A through E

The Air75 after many crashes: dirty ducts, glued joints, a patched camera mount
Exhibit A: the whole patient. Grimy ducts, glue at the joints, and a camera mount held on by optimism.
A duct ring snapped open next to a motor, with a blob of glue on the break
Exhibit B: a duct that is no longer a circle. The glue blob was a repair. The repair did not hold.
A whole duct section broken away from the frame, hanging by the motor mount
Exhibit C: an entire duct, detached and held on mostly by the motor. Still flew. I don't know why either.
Close-up of a glue repair on the frame beside the flight controller, with BMI270 printed on the board
Exhibit D: field surgery next to the flight controller. Bonus: you can read "BMI270" on the board, the gyro chip from the firmware saga.
The battery lead and connector on the underside of the frame, wires bent and the mount taped
Exhibit E: the battery lead, bent from being yanked out after every crash, on a taped-up mount.

The frame is the part that surprised me. It's a few grams of plastic, and it took hit after hit before giving up. Even broken, it kept the motors roughly where motors go. Whoops are way more sturdy than I expected.

A quick word on the battery, because this part isn't funny. A small LiPo that's going bad usually shows it: shorter flights, voltage dropping fast under throttle, or the pack looking puffy. A puffy battery gets retired, not tested. LiPos with problems can catch fire, and an apartment complex is a bad place to find that out.

Rebuild season

I bought a replacement frame, and the shopping list now includes a motor. The plan is to move the guts over, swap in the new motor, fit fresh props, and start again with everything I now know. Which, compared to a week ago, is a lot:

  • How to compile Betaflight, and when not to bother
  • That a board's name and its revision are different things
  • How to read a pin map, and why motors 3 and 4 were on strike
  • That Wi-Fi and FPV video share a neighborhood and don't get along
  • That turtle mode is the most important switch on the radio
  • That I will crash, and the drone will mostly be fine

The rebuild has its own checklist: motors in the same positions, flight controller facing the same way (arrow forward), props matched to spin direction, a fresh accelerometer calibration, and one more props-off motor test before anything leaves the ground.

So here we are. A new frame. A slightly less new pilot. A settings file I actually understand.

Can I still get better? Am I trash? Will the new frame survive the week?

Find out next time, on Gorilla Whoop Whoop.