Galileo is the European Union's global navigation satellite system (GNSS), operated by the European Union Agency for the Space Programme (EUSPA) and developed by the European Space Agency. Unlike GPS, which was built by and remains under the control of the US military, Galileo is a civilian system — the first GNSS designed from the ground up for civilian use, with no selective availability and guaranteed service commitments backed by the EU.
Galileo is the most accurate GNSS system available, delivering sub-metre positioning for free via dual-frequency receivers. Its unique capabilities include search and rescue return link, High Accuracy Service (20 cm via E6), encrypted Public Regulated Service, and navigation message authentication to protect against spoofing. See the comparison table below for how it stacks up against GPS, GLONASS, and BeiDou.
GCMS simulates the full Galileo constellation with realistic orbital mechanics and subsystem telemetry. By exploring the interface, you can learn about the following topics in satellite engineering and navigation:
How 24 satellites in 3 orbital planes maintain continuous global coverage. The Walker 24/3/1 pattern spaces satellites evenly within each plane and offsets the planes to maximise geometric diversity, ensuring strong dilution-of-precision (DOP) values everywhere on Earth.
Each satellite in GCMS runs a live model of its electrical power system (solar arrays, batteries, power bus), attitude determination and control (reaction wheels, magnetorquers, star trackers), thermal regulation (heaters, radiators, MLI blankets), and propulsion (orbit maintenance thrusters). Watch how these subsystems respond to eclipse entry, attitude manoeuvres, and changing Sun geometry.
Ground stations distributed worldwide track satellites during overhead passes, upload commands, and downlink telemetry. GCMS models the full ground network with realistic pass geometry, elevation masks, and link budgets. You can see which ground station is tracking which satellite at any moment and observe handover between stations.
Satellite electronics and orbits are affected by the space environment. Solar radiation pressure perturbs the orbit. Charged particles from solar flares and the radiation belts cause single-event upsets in electronics. Atmospheric drag (at MEO altitudes, primarily from the exosphere) produces small but cumulative orbit decay.
A GNSS receiver computes its position by measuring the pseudorange to at least 4 satellites. Each pseudorange is the speed of light multiplied by the signal travel time, but clock bias, ionospheric delay, tropospheric delay, and multipath all introduce errors. Dual-frequency receivers eliminate the ionospheric term by combining measurements on E1 and E5a.
GCMS propagates orbits using Keplerian mechanics with J2 perturbation — the dominant effect of Earth's equatorial bulge. J2 causes the right ascension of the ascending node (RAAN) to precess and the argument of perigee to rotate. The simulation also models eclipse geometry (umbra and penumbra), Sun-synchronous effects, and station-keeping manoeuvres to maintain the Walker pattern.
Galileo transmits on 5 frequency bands spanning from L-band to upper L-band. Each band carries specific services and uses distinct modulation schemes designed for interoperability with GPS L1/L5.
| Band | Frequency | Services | Notes |
|---|---|---|---|
| E1 | 1575.42 MHz | Open Service, OSNMA, PRS, SAR return link | Primary civil signal; shared with GPS L1; CBOC modulation |
| E5a | 1176.45 MHz | Open Service | Used with E1 for dual-frequency ionospheric correction; AltBOC(15,10) |
| E5b | 1207.14 MHz | Open Service, Commercial Service | Integrity channel; used for Safety of Life applications |
| E5 AltBOC | 1191.795 MHz | Open Service (wideband) | Combined E5a+E5b; highest accuracy ranging signal (~51 MHz bandwidth) |
| E6 | 1278.75 MHz | High Accuracy Service, PRS | HAS corrections via data channel; encrypted PRS signal |
Four global navigation satellite systems are currently operational. Each has different orbital parameters, constellation designs, and accuracy characteristics.
| System | Operator | Satellites | Altitude | Planes | Inclination | Accuracy | First Service |
|---|---|---|---|---|---|---|---|
| Galileo | EU / EUSPA | 30 | 23,222 km | 3 | 56° | <1 m (dual-freq) | 2016 |
| GPS | US Space Force | 31 | 20,180 km | 6 | 55° | ~3 m | 1995 |
| GLONASS | Roscosmos | 24 | 19,130 km | 3 | 64.8° | ~3 m | 1993 |
| BeiDou | CNSA | 44 | 21,528 / 35,786 km | 3 + GEO | 55° | ~3 m | 2020 |
Galileo contributes to the international Cospas-Sarsat search and rescue programme through a medium Earth orbit search and rescue (MEOSAR) transponder carried on every satellite. This system represents a major improvement over the older low Earth orbit (LEOSAR) and geostationary (GEOSAR) components of Cospas-Sarsat.
When a 406 MHz distress beacon is activated — on a ship, aircraft, or by an individual — the signal is received by every Galileo satellite in view. Each satellite's MEOSAR transponder relays the distress signal to the ground. Because MEO satellites move relative to the Earth's surface (unlike GEO), the Doppler shift of the relayed signal can be used by MEOLUT ground stations to compute the beacon's position independently of any data in the beacon message itself.
Galileo is the only GNSS system with a return-link capability. Once the distress signal has been received and validated, a short acknowledgement message is broadcast back to the beacon via the E1 signal band. The beacon's indicator confirms to the person in distress that their alert has been received and that rescue is being coordinated. This eliminates the uncertainty that has historically accompanied beacon activation.
The MEOSAR constellation achieves a global detection time of under 10 minutes — significantly faster than the older LEOSAR system, which could take over an hour for a single satellite pass. Position accuracy from Doppler localisation is within 5 km, which is refined further if the beacon embeds a GNSS-derived position in its message. With 24 satellites in MEO, there is near-instantaneous global coverage with multiple satellites in view at all times.
I built GCMS to simulate what it would be like to operate a satellite constellation from the ground. It models orbits, power systems, thermal control, attitude, propulsion, and inter-satellite links, all running in real time.
The project started as a way to explore the engineering behind space systems. Each satellite runs onboard software written in Quadrate, a stack-based programming language I also develop. Quadrate is a general-purpose language, not specific to GCMS, but it fits well as a lightweight runtime for satellite applications.
The web interface lets you monitor the whole constellation, open a ground view for individual satellites, send commands through a terminal, and follow ground tracks on a map. Everything is written in Go and plain JavaScript.