Work in progress This site is under construction — content, figures and specifications are provisional.
Overview — ch.flysys.pfs

FlySys Swiss PFS

Primary Flight System

A masterpiece of precision engineering — made in Geneva.

It keeps you level when you can't see the horizon. For experimental and light aircraft, FlySys distils attitude, speed, altitude and heading onto a single screen — fused live, on-device, from one external sensor and drawn in OpenGL to stay true through the steepest turn.

Fig.01 — Attitude Displayin flight
The instrument running — the OpenGL artificial horizon, fused live on-device from a single external Inertial Measurement Unit (IMU) over Bluetooth Low Energy (BLE).
1Heading band (magnetic or true)°M or °T
2Roll scale & pitch ladder±60°
3Ground-speed (GPS) tapekm/h, kt or mph
4Barometric altitudeft or m
5Vertical Speed Indicator (VSI)m/s or fpm
6Slip & turn-rate°/s
OrientationWhat the display shows.

When you can't see the horizon — in cloud, haze or at night — a primary flight display tells you how the aircraft is oriented in the air: how far its wings are banked and how far its nose is pitched, drawn against an artificial horizon. That is the heart of FlySys PFS.

An aircraft moves about three axes, all passing through its centre of gravity. The display shows two of them directly on the horizon — roll and pitch — while the third, yaw, reads on the heading scale below.

Roll (bank)longitudinal axis
Tilting the wings about the nose-to-tail axis. The angle the wings make with the horizon is the bank — what starts and holds a turn.
Pitchlateral axis
Raising or lowering the nose about the wingtip-to-wingtip axis — the difference between climbing, level and descending.
Yawvertical axis
Swinging the nose left or right about the vertical axis, like a weathervane. On the display this turns the heading scale.
60
Render rate — Hz
4
Attitude filters
6
Data sources
7.0
Android — minimum
In flightLive captures, real sensor data.
Fig.02 — Wings levelHDG 230
FlySys PFS with wings level, horizon centred, heading 230°
Fig.03 — Turn-rate & slipHDG 110
FlySys PFS in a right turn, slip ball deflected — turn-rate and slip indicators active
Signal pathLive = replay.

The same processing runs live and in offline replay — so the display you fly is exactly the display you can reproduce afterwards from a recorded log.

Fig.04 — Data flowlive = replay
GPS & BARO CONTEXT DATA SOURCE BLE, internal, sim IMU PROCESSOR ESKF, CF, Madgwick RENDERER per-frame state OPENGL DISPLAY 60 Hz, on-dirty ≤250 Hz
SpecificationRequirements.

A self-contained Android application. The display you fly is validated offline against recorded flight logs — identical processing, reproducible result.

Android version7.0 or newer
External IMUBluetooth LE (primary path)
Without hardwareinternal sensors, sim, replay
GraphicsOpenGL ES 3.0
Flight logsCSV → Documents/PFS/
The projectA father, a son, consumer MEMS.

FlySys PFS is a personal project — two engineers, a father and son, who share a passion for aviation and avionics.

It all began with a search. We looked online for a primary flight system on Android that we liked, and found nothing that fit — so we built our own. The deeper we went, the more the problem drew us in; this site is our attempt to explain what we made and how it works.

From the start we set one hard constraint: make it work on consumer-grade MEMS (Micro-Electro-Mechanical Systems) — the same inexpensive sensors found in phones and hobby boards, not the stabilised, temperature-controlled units of certified avionics. That makes the problem harder — more noise, more bias drift, more sensitivity to vibration — and more interesting: every degree of accuracy has to be earned in software, not bought in hardware.

We held it to professional standards anyway: adaptive sensor fusion, offline replay that reproduces every recorded flight exactly, and validation against real flight data — with an honest accounting of where the limits lie.