G1000 PFD — Primary Flight Display
Build log for the Garmin G1000 PFD replica: bezel fabrication, touchscreen mounting, and X-Plane integration.
Overview
The Primary Flight Display (PFD) is the left-hand screen of the G1000 suite. It shows attitude, airspeed, altitude, vertical speed, HSI, and COM/NAV tuning. In the real aircraft it is a Garmin GDU 1040 running Garmin's proprietary avionics software.
In this build the PFD is replicated using a 10.1" touchscreen monitor running X-Plane 12's native G1000 implementation, mounted behind a 3D-printed bezel that matches the real panel proportions.
Bezel Design
The PFD bezel is printed in PLA. Every knob and key on it sends one of X-Plane's sim/GPS/g1000n1_* commands, the ones the default G1000 Skyhawk's own bezel uses. In the app it's part of the Cessna 172 G1000 Blueprint, on an ESP32-S3.
Softkey Row
The 12 softkeys along the bottom edge have no fixed function: the G1000 labels each one on the screen above it, and the label changes with the page (PFD, CDI, DME, XPDR, …). So each key simply presses its softkey, sim/GPS/g1000n1_softkey1 to softkey12, and the screen decides what it does. Each is a 6×6 mm tactile switch.
Knobs and Keys
| Control | Part | X-Plane 12 (sim/GPS/g1000n1_…) |
|---|---|---|
| NAV volume, push ID | Encoder with push | nvol_up / nvol_dn, push nvol |
| NAV knob outer / inner, push | Concentric encoder with push | nav_outer_up / _down, nav_inner_up / _down, push nav12 |
| NAV flip-flop | Push button | nav_ff |
| COM volume, push squelch | Encoder with push | cvol_up / cvol_dn, push cvol |
| COM knob outer / inner, push | Concentric encoder with push | com_outer_up / _down, com_inner_up / _down, push com12 |
| COM flip-flop | Push button | com_ff |
| BARO / CRS, push CRS sync | Concentric encoder with push | baro_up / _down, crs_up / _down, push crs_sync |
| RANGE | Encoder | range_up / _down |
| Pan joystick | 5-way switch | pan_up, pan_down, pan_left, pan_right, push pan_push |
| FMS knob outer / inner, push | Concentric encoder with push | fms_outer_up / _down, fms_inner_up / _down, push cursor |
| D→, MENU, FPL, PROC, CLR, ENT | Push buttons | direct, menu, fpl, proc, clr, ent |
The HDG and ALT knobs and the autopilot keys are on the GFC 700 glareshield panel in this build.
Wiring
The eleven encoders use the ESP32-S3's own pins (GPIO 1–18, 21 and 38–41). The 31 keys, knob pushes included, sit on three MCP23017 I²C expanders on GPIO 42 (SDA) and 47 (SCL), skipping each expander's output-only channels 7 and 15.
Status
Bezel design in progress. Monitor selected (Elecrow 10.1" IPS capacitive touch). Wiring and X-Plane mapping defined.