Skip to content

fpv: Pavo20 Pro II follow-up, the flight controller swap that fixed the GPS - #28

Open
foxis wants to merge 7 commits into
mainfrom
article/pavo20-taker-g4-gps-fix
Open

fpv: Pavo20 Pro II follow-up, the flight controller swap that fixed the GPS#28
foxis wants to merge 7 commits into
mainfrom
article/pavo20-taker-g4-gps-fix

Conversation

@foxis

@foxis foxis commented Aug 16, 2026

Copy link
Copy Markdown

Single post, EN + LT, 11 files. Stacked on #27; merge that first and I'll retarget.

Root cause: a leaky inductor and a missing layout

The C1/C4 finding is the strongest evidence in either article, because it is specific and checkable.

  • Both rails run the same chip: TPS63070 buck-boost, verified at 2-16 V input, 3.6 A switch current (your "3.5 A at 16 V" was close, but that figure is switch current, not output). Wildly oversized for this load, and it degrades GPS at essentially zero load.
  • The ~2.5 mm part beside it is the inductor, found with an in-circuit LCR meter. It has no properly enclosed ferromagnetic core, unlike the larger ones on your other boards.
  • The datasheet's recommended layout puts C1 and C4 immediately beside the inductor and the IC, in the tightest part of the switching loop. On this board they are absent altogether. Other caps may exist but sit further out.

So the components placed specifically to keep the hot loop small are exactly the ones that were dropped.

Two independent things now point the same way: the H-field probe beating the E-field probe (backwards, if trace E-field coupling dominated), and the missing loop caps. Together they support switching energy being inductively coupled into surrounding circuitry rather than conducted or radiated, which is why nothing you shielded helped, why shielded wire capped at 4-5 satellites, and why USB power changed nothing.

The diagram is mine, not TI's

Rather than reproduce TI's copyrighted Figure 51, I drew an original Graphviz comparison of the recommended hot loop versus the actual one, in your brand palette. Verified viz.js renders it in both languages. No copyright question, and it fits your diagram rules.

The caveat that cuts against you

I put your extrapolation point in, and then the counter-argument, because it belongs there:

Extrapolating the envelope upward, it plainly does not stop at 1 GHz, and there may well be further peaks up at L1, particularly if anything on the board is resonant there. But resonant peaks are precisely the thing you cannot extrapolate, so that remains a guess and not a finding. I still blame the inductor for leaking.

That keeps your conclusion while being honest that the app note data stops below your frequency.

Length: 10.8 min, kept whole

2374 prose words. Over the 10-minute guide, and deliberate: the root-cause section is 3.1 min and the build half is 4.0 min, so neither side of a split reaches the 5-minute floor you set. I trimmed ~350 words of flab getting here; further cuts would have removed substance.

Everything else

  • Motor: not attributed to 4S. Wires tore, glue was not holding at the base, that motor had been wiggling more than the others. Strain relief.
  • Satellite table argued both ways: 8-in-2-min vs 0-in-15 is a huge win, and proof the FC was dominant but not the only fault.
  • Antenna placement with the rotate-to-face-me reasoning, motors soldered to pads, 115.8 g, closing on your transplanted-brains question.
  • Previous article untouched - verified in the build: still says 5V BEC, no banner, same title and URL.
  • LT updated to match, 9.6 min. Reviewer-note block now lists ten terms plus a note that the Graphviz labels are intentionally diacritic-free for font reasons.

Verified

Zero em-dashes, one Mermaid + one Graphviz diagram, no ASCII art, draft: false, 9 images resolving in both languages, hreflang pairing EN-LT, valid BlogPosting in both, post in the sitemap, reviewer notes stripped from rendered HTML, all images EXIF-stripped, blog/public/CNAME untouched.

Per your call: the old-SHA photo and the publish timing are both closed. Dated 2026-08-18 and it stays invisible until you merge and rebuild, which is what you want.


Lithuanian terminology queries

Moved out of the file and into this PR deliberately. An ANDRIUI PERŽIŪRĖTI comment inside a committed article reads as "someone else wrote this and I did not check it", and the repo is public. It does not belong in the artifact.

Terms I could not confirm against real Lithuanian FPV usage. Correct any and I'll update both versions:

Used English
persodinti smegenis transplanted brains (figurative)
šuntavimas / šuntuoti decoupling / bypassing
artimasis laukas near field
įtampos atotampa strain relief
magnetiškai nesandarus magnetically leaky
jungtuvo srovė switch current
H zondas / E zondas H-field / E-field probe
perjungimo mazgas switch node
ankšti HF kilpa tight high-frequency loop

Also: Graphviz node labels in the LT version are intentionally written without Lithuanian diacritics, for font rendering in viz.js.

Verified the LT source and both minified and unminified output contain zero HTML comments.

Pre-existing, not fixed here

The same pattern is already merged and live in your Meteor75 post, in public source:

  • blog/content/fpv/meteor75-pro-ii-fighting-resonances/index.lt.mdANDRIUI PERŽIŪRĖTI, plus "nesprendžiau nė vieno, palikta tau"
  • blog/content/fpv/meteor75-pro-ii-fighting-resonances/index.mdDRAFT NOTES block

Not touched here, since that is published content and your call. Happy to strip both in a separate PR.

@cursor

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@foxis
foxis force-pushed the article/pavo20-taker-g4-gps-fix branch 4 times, most recently from c7083bf to 3265e1a Compare August 16, 2026 23:51
@foxis
foxis changed the base branch from seo/hubs-descriptions-gx12 to main August 16, 2026 23:52
Single post at content/fpv/pavo20-taker-g4-gps-fix/, EN and LT.

Six failed experiments, then replacing the BetaFPV board with a GEPRC Taker
G4 35A, plus everything that swap changed.

The root cause section is now about an inductor and a missing layout.

Both the 5V and 9V rails are built on a TPS63070 buck-boost, 2V to 16V in with
a 3.6A switch current limit. The large ~2.5mm part beside it that looked like a
capacitor is the inductor, found by probing with an in-circuit LCR meter. Other
boards use physically larger inductors with properly enclosed ferromagnetic
cores. This one appears not to.

Two pieces of evidence make it more than a guess. First, the TinySA magnetic
probe picks this up better than the near-field electric probe, which is
backwards if the dominant escape route were E-field coupling from traces.
Second, the TPS63070 datasheet's recommended EVM layout places C1 and C4
immediately beside the inductor and the IC, in the tightest part of the
switching loop, and on this board those two are absent altogether. Other caps
may be present but sit further out. So the components placed specifically to
keep the hot loop small are the ones that were dropped.

Together that points at switching energy being inductively coupled into
surrounding circuitry rather than conducted or radiated, which explains why no
shielding attempt helped, why shielded GPS wire capped at four or five
satellites, and why powering over USB instead of the pack changed nothing.

Added an original Graphviz diagram contrasting the recommended loop with the
actual one rather than reproducing TI's copyrighted figure. Uses the brand
palette. Verified viz.js renders it in both languages.

Links TI SLVAEP5 with two caveats, one of which cuts against the argument: its
measurements stop at 1 GHz while GPS L1 is at 1575 MHz, and while extrapolating
the envelope upward suggests it does not stop there, resonant peaks are
precisely what cannot be extrapolated. Stated as a guess, not a finding.

Satellite counts in a table: 4-inch foldable ~17 typical and 30 once, Pavo20 on
the old board 0 to 3 with zero after 15 minutes, Pavo20 on the Taker G4 eight in
two minutes and 15 at best. Argued both ways.

Motor failure is NOT attributed to 4S: the three wires physically tore because
the glue was not holding them at the motor base, and that motor had been
wiggling more than the others beforehand. Strain relief, not power level.

Also documents antenna placement, motors soldered directly to the FC pads, and
the small-antenna trade of worse reception against not destroying O4 U.FL
connectors.

Deliberately does not touch the previous article.

2374 prose words, 10.8 min at 220wpm. Kept whole deliberately: the root-cause
section is 3.1 min and the build half is 4.0 min, so neither side of a split
reaches the 5 minute floor that would justify one. Trimmed roughly 350 words of
flab to get here rather than cutting substance.

Images: 9 photos, 1400px wide, all EXIF stripped. One further photo was
excluded because it showed a pilot license ID.

Verified on a local Hugo 0.163.3 build: zero em-dashes, one Mermaid and one
Graphviz diagram, no ASCII art, draft false, all images resolve in both
languages, hreflang pairs EN and LT, BlogPosting valid in both, post in the
sitemap, LT reviewer-note block stripped from rendered HTML.

Dated 2026-08-18. Hugo excludes future-dated content unless --buildFuture is
passed and pages.yml does not pass it, so this stays invisible until a build
runs on or after that date, which is intentional.
@foxis
foxis force-pushed the article/pavo20-taker-g4-gps-fix branch from 3265e1a to dcd8e60 Compare August 17, 2026 07:46
foxis added 6 commits August 18, 2026 15:40
Re-read the Lithuanian version properly and fixed 53 lines. The substantive
problems, in order of how badly they read:

1. WRONG TERM FOR THE COMPONENT, throughout. I used "induktyvumas", which is
   inductance, the property, where the text means the inductor, the part. An
   electronics reader would trip on every instance. Now "ritė", with
   "induktyvumo ritė" on first mention. The three remaining uses of
   "induktyvumas" are correct because they genuinely mean the property:
   0805 package inductance and series inductance.

   That change cascaded into gender agreement, since ritė is feminine:
   "jis atrodo magnetiškai nesandarus" -> "ji atrodo magnetiškai nesandari".

2. "jungtuvo srovė" for switch current. Jungtuvas is a circuit breaker.
   Now "komutuojamos srovės riba".

3. "Įtampos atotampos gedimas" for strain relief failure, which reads as
   "voltage stay failure" because įtampa is also voltage. Now "laidų fiksavimo
   gedimas".

4. "kirbėjo" (itched) where I meant klibėjo (was loose). The motor was wobbling,
   not itching.

5. "kas mane pykina" means "which nauseates me". Now "kas mane labiausiai
   nervina".

6. "prie 1 GHz" / "prie 1575 MHz" for frequency points. His existing published
   Lithuanian uses "ties", so now "ties". Kept "smaigaliai" for spectrum peaks
   because that is his established term in the previous article.

7. Straight closing quotes throughout: „veikia" -> „veikia“, seven pairs, plus
   one set of ASCII quotes around "ne tas UART".

8. Typo "apvijų videje" -> "apvijų viduje".

9. Case and agreement: "dalinasi" -> "dalijasi", "kuo anksčiau nebuvo" -> "ko
   anksčiau nebuvo", "už tuo" -> "už to", "ankstyvai" -> "anksti", "atsarga po
   250 g" -> "atsarga iki 250 g", "ant šio rėmo" -> "su šiuo rėmu", "prie
   perjungimo mazgu" -> "mazgų", "ankšti HF kilpa" -> "ankšta", missing copula
   in "kuriuo esu labiausiai patenkintas", missing comma before "kurio".

10. "GPS sukasi ant UART1" -> "GPS prijungtas prie UART1".

11. Calques rewritten: "jokia ekranavimo kiekybė" -> "jokiu ekranavimu to
    neišspręsi", "folija nenuperka to, ką intuicija sako" -> "nesuteikia to, ko
    intuityviai lauktum", "kainuoja realų priėmimą" -> "pastebimai blogina
    priėmimą", "rodo į plokštę" -> "rodo, kad problema plokštėje", "giliai
    nepatenkinantis" -> "visiškai netenkina", "Ką jos daro, tai" -> "Užtat jos",
    "kas bent patvirtina" -> "o tai bent patvirtina".

12. Graphviz labels now carry proper Lithuanian diacritics. I had stripped them
    defensively; verified viz.js renders "Ši plokštė", "neįdėtos" and "be uždaros
    šerdies" correctly, so the deliberate misspelling was unnecessary.

Verified on a local Hugo 0.163.3 build: 2015 prose words, 9.2 min, two
em-dashes against a budget of six to eight, zero HTML comments, all ten images
resolve, Graphviz and Mermaid both render, seven matched quote pairs.
…anian

Andrius confirmed smailės is the correct term for spectrum peaks. I had kept
smaigaliai for consistency with the previous Lithuanian article, which was the
wrong instinct: that article is machine-translated output, not his own writing,
so it is not a style precedent to follow.

Also formalised what I had wrongly assumed was his voice:

  Buvau gazavęs iki galo    -> Buvau iki galo atidaręs trauką
  prie didelio gazo         -> esant didelei traukai
  upgrade'as                -> patobulinimas
  MOSFET'ai                 -> MOSFET tranzistoriai
  whoop'as / whoop'ui       -> whoop dronas / whoop dronui (indeclinable + noun)

smailė is feminine, so the participle agreement moved with it:
pasklidusius -> pasklidusias, rezonansiniai -> rezonansinės.
I over-corrected. Apostrophe declension of unadapted loanwords is correct
Lithuanian usage, so whoop'as, whoop'ui, whoop'o and MOSFET'ai are restored.
Only the slang was genuinely wrong, and those fixes stay: gazavęs iki galo ->
iki galo atidaręs trauką, prie didelio gazo -> esant didelei traukai.

The USB-C line was a bad translation rather than a loanword problem. "A drawback
and an upgrade at once" is the idiom pliusas ir minusas, so it now reads
"Vienu metu ir pliusas, ir minusas."

smailės stays.
One instance, aukštų frekvencijų -> aukštų dažnių. dažnis is the house term
across his Lithuanian files by roughly 95 to 20, and it is what a physicist
would write.
Two things were wrong with it.

sutvarkyti is transitive and had no object. "bandžiau sutvarkyti kaip reikia"
leaves the verb hanging: fix what? Lithuanian needs the pronoun. Same fault in
the echo, "Kaip reikia nesutvarkiau."

And "kaip reikia" means "in a fitting manner", which is not what the English
"properly" carries here. The point is that he never addressed the root cause,
which the article admits outright a few screens later: "niekada to neatskyriau".
So the phrase should mean "at root", not "tidily".

  was: viską surašiau, o paskui savaites bandžiau sutvarkyti kaip reikia.
       Kaip reikia nesutvarkiau. Pakeičiau skrydžio valdiklį.

  now: viską surašiau, o paskui kelias savaites bandžiau tai išspręsti iš esmės.
       Iš esmės ir neišsprendžiau. Pakeičiau skrydžio valdiklį.

The English repeats "properly" verbatim to land the reversal, so the Lithuanian
repeats "iš esmės" the same way. "ir" carries the resigned tone that "I did
not" has in English. Also "savaites" -> "kelias savaites", closer to "spent
weeks".
Applied verbatim:

  Iš esmės ir išsprendžiau. Tiesiog pakeičiau skrydžio valdiklį. Vat taip vat...

This inverts what I had. Mine was self-deprecating failure, "iš esmės ir
neišsprendžiau". His is the anticlimax: essentially he did solve it, he just
swapped the whole board, shrug. Funnier, and truer, because the problem really
is gone. The irony carries the point that replacing an entire flight controller
is a sledgehammer rather than a root-cause fix, which is what the rest of the
article argues.

The repetition of "iš esmės" across the two sentences is kept, since that is
what makes the reversal land.

NOTE: the English now makes the opposite rhetorical move, "I did not fix it
properly." Both statements are defensible and the Lithuanian is his own wording,
so it is left as is, but the divergence is deliberate rather than an oversight.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant