Blog

Thoughts, notes, and documentation
← All posts

A Garmin GNS 430 you can fly in a browser tab

ProjectsAviationIFRSimulatorTeaching

The Garmin GNS 430 is a small grey box that sits in the panel of a great many light aircraft: GPS, navigation radio and comm radio in one unit, with a 240×128 pixel screen and a stack of buttons and concentric knobs. Learning to fly with it is not really about aviation theory. It is muscle memory — which knob, which page, how many clicks — and the traditional way to build that is to rent something expensive by the hour.

So I built one in a browser tab: a working GNS 430 you can fly, with a simulated aircraft following real flight paths while you work the box.

The GNS 430 simulator faceplate: pixel screen on the left, concentric knobs and buttons on the right

Making a physical instrument feel physical

The screen is a single canvas, 240×128 logical pixels, integer-scaled so the pixels stay crisp, with a hand-authored bitmap font. The whole thing redraws every frame from state — no DOM, no widgets, just a tiny framebuffer API that the page renderers draw into.

The bezel is a photograph of the real unit with invisible hit targets positioned on top of it, measured in percentages against the source image. The knobs are the part that matters most: scroll over the outer ring and you turn the large knob, scroll over the inner cap and you turn the small one, click the cap and you push it. That is exactly the grammar of the real device, where the large knob picks the page group and the small one picks the page within it, and it is the thing that transfers to the cockpit.

What it will actually do

Enough to be worth the hour: COM and VLOC tuning with standby-and-swap, Direct-To, multi-leg flight plans edited on the device itself, the moving map, SIDs and STARs, OBS mode and holds, and GPS approaches that behave the way the Pilot's Guide says they should.

Some of that fidelity is invisible until it isn't. CDI scaling, for instance: the course needle's full-scale deflection is 5.0 NM en route, tightens to 1.0 NM within 30 NM of the destination, and ramps to 0.3 NM starting two miles outside the final approach fix — but only with an approach actually active. A pilot who has only used the box in en route mode gets a nasty surprise on final, when the same needle deflection means sixteen times less error. The simulator arms and ramps it the same way, holds 0.3 NM from the final approach fix to the missed approach point, drops into SUSP there instead of blindly sequencing onward, and will fly you the missed approach and the published hold.

There is an ILS too, with localizer and glideslope needles, the automatic GPS→VLOC switch as you intercept, and an autopilot that will couple to the localizer. Wind is configurable, time can be scaled, and every tricky behaviour is a named pure function with a test behind it, because "I think it does the right thing" is not a specification.

Fourteen lessons and two scenarios

A simulator you have to invent exercises for is a simulator you stop opening. The Academy is a scored curriculum: fourteen lessons that watch what you do, give hints when you stall, and save your progress, plus two longer scenario flights — an ILS arrival and an RNAV approach flown via vectors to final — with per-phase scoring, live error detection and an end-of-run debrief.

Both lessons and free-flight setups are shareable as links, so an instructor can hand a student a URL that opens the box at a specific aircraft position, wind, flight plan and time scale.

Real navigation data, honestly handled

The waypoints and procedures come from the FAA's public-domain CIFP (the ARINC 424 dataset) with airport comm frequencies enriched from the NASR extract. A build script parses a cycle, shards it into 5°×5° tiles plus per-airport procedure files, and publishes them to cloud storage behind an atomic pointer file, so a new AIRAC cycle means re-running a script — no commit, no redeploy. The client fetches the tiles around the aircraft as it flies and refreshes them en route; if anything fails it silently falls back to a small Pacific Northwest dataset baked into the page.

Two decisions there I would repeat on any data project. First: procedures using leg types the simulator does not support — radius-to-fix arcs, mostly — are counted and reported as unsupported rather than approximated. Nearly four thousand of them on the current cycle. A trainer that quietly draws a wrong approach is worse than one that admits it cannot draw that approach.

Second: the training-only waypoints invented for the seed lessons are named in a pattern the FAA never issues, after an audit found that friendly-sounding invented names had collided with real published fixes — one of them a genuine intersection eighty miles away, sitting on a real arrival. Fake data that can be mistaken for real data is a bug.

Try it

Scroll the knobs, punch in a Direct-To, and fly an approach: lucaslongo.com/pages/gns430. The on-page How to fly it section covers the controls if you have never touched one.

Training use only — this is a teaching model of the box, not a navigation instrument, and it is deliberately missing VNAV, terrain, fuel planning and the 530 variant.