GCMS (Galileo Constellation Management System) is a real-time operations centre for monitoring and commanding satellite constellations. It provides a unified view of all satellites in orbit, their subsystem health, ground station contacts, and a command interface for satellite operations.
This interface displays live telemetry refreshed at 1 Hz. Orbital positions are computed with J2 perturbation modelling for accurate RAAN drift. Ground station contacts are determined by real-time elevation angle calculations.
The LIVE badge in the header pulses when telemetry is being received. If it turns red, the connection to the operations server has been lost. The timestamp next to the badge shows the age of the most recent update.
back to topThe fleet table lists every active satellite. Click any row to open its telemetry dashboard. Columns:
| Column | Description |
|---|---|
| Satellite | Name and designation (e.g., GSAT0218 / E31) |
| SVN | Space Vehicle Number — unique identifier for the spacecraft |
| Status | RUN = nominal operations |
| T+ | Mission elapsed time |
| SOC | Battery state of charge with trend sparkline |
| ADCS | Attitude mode: SUN, EARTH, TARGET, or SAFE |
| Eclipse | ECLIPSE when in Earth's shadow, sunlit otherwise |
| Safe | SAFE if satellite has entered safe mode |
| GND | Ground contact indicator — shows best elevation angle when in contact |
| ISL | Number of active inter-satellite links |
| Fuel | Remaining propellant. B = burn active, ! = thruster fault |
Below the satellite table, a divider row separates the ground segment. Each ground station row shows its name, type, geographic position, and the number of satellites currently in contact. Click a ground station to open its dashboard.
The health score (0–100) in the statistics bar summarises overall constellation fitness:
A healthy constellation maintains a score above 90. Scores below 70 warrant immediate operator attention.
The interactive globe shows satellite positions in real time. Satellites are colour-coded: blue when sunlit, orange when in eclipse. Ground stations appear as green diamonds with labels. Lines between satellites indicate active inter-satellite links.
Click a satellite on the globe to open its telemetry dashboard. Click a ground station to open its dashboard. Hover over either to see a tooltip with key status information. Drag to rotate, scroll to zoom.
The flat Mercator projection below the globe shows satellite ground tracks as dots and ground stations as green diamonds. If GPS position is available, your receiver location appears as a labelled marker.
When a GPS receiver is connected, the GPS panel shows the computed position fix, number of satellites in view, DOP (dilution of precision) values, and pseudorange data. Your position is marked on both the globe and the Mercator map.
back to topClick a satellite in the fleet table or on the globe to open its telemetry dashboard. The dashboard shows subsystem panels arranged in a grid. Use the breadcrumb navigation at the top to return to the constellation view.
Altitude, orbital period, inclination, RAAN (right ascension of ascending node), sub-satellite point (latitude/longitude), eclipse status, and sun beta angle. The RAAN drifts over time due to J2 perturbation from Earth's oblateness.
Battery state of charge, solar array power generation, bus voltage, and load
consumption. During eclipse, the satellite runs on battery power; in sunlight,
solar arrays charge the battery and power the bus. load_shed indicates
non-essential loads have been disconnected to conserve power.
Temperature readings (in Kelvin) for each thermal node: OBC, battery, payload, solar panel, and structure. Heaters maintain temperatures within safe bounds. If any node exceeds 340 K, FDIR triggers automatic load shedding.
Attitude modes and their operational use:
| Mode | Description |
|---|---|
SUN_TRACK | Default. Solar arrays track the sun for maximum power generation. |
EARTH_POINT | Nadir pointing. Enables communication antennas and observation payloads. |
TARGET_TRACK | Points at specific ground coordinates for a set duration. |
SAFE | Minimum-power safe orientation. Set automatically by FDIR during anomalies. |
Reaction wheels store angular momentum on three axes (normalised 0.0–1.0). When any wheel approaches saturation (above 0.95), FDIR commands automatic desaturation using magnetorquers.
Maximum and effective downlink rate, ground contact status, best elevation angle, contact station type, queued downlink files, and total data downloaded.
Onboard mass storage capacity and current usage. Files are created by onboard software and queued for downlink during ground passes. The satellite uses a dual-slot (A/B) partitioning scheme for safe software updates.
Fuel mass remaining, delta-V budget, active burn status, and individual thruster health. Supports prograde, retrograde, and radial burns. Each of four thrusters can independently fail (stuck open or stuck closed).
Number of active ISL peers, link details, and connectivity status. Inter-satellite links require line-of-sight between spacecraft, computed from orbital geometry. ISL enables cross-link communication between satellites in different orbital planes.
A table of all running onboard software processes showing PID, name, privilege role, state, CPU usage, and memory consumption. Click a service name to view its source code.
Chronological log of satellite events: mode changes, FDIR actions, ground contacts (AOS/LOS), burns, faults, and software lifecycle events. Events are severity-coded: INFO, WARN, ERROR.
back to topGround stations serve different roles in constellation operations. The station type determines its function in the ground segment:
| Type | Full Name | Role |
|---|---|---|
GCC |
Galileo Control Centre | Primary mission control facility. Manages constellation operations, orbit determination, navigation message generation, and platform monitoring. GCCs have full commanding authority over the constellation. |
TTC |
TT&C Station | Telemetry, Tracking & Command station. Receives satellite telemetry downlink, performs ranging measurements for orbit determination, and sends platform commands to satellites during contact passes. |
ULS |
Uplink Station | Transmits navigation messages and mission data to satellites. Handles telecommand uplink for configuration changes and onboard software updates. |
GMS |
Galileo Monitor Station | Passive monitoring facility. Receives and measures navigation signals for signal integrity verification and independent orbit determination. Does not command satellites. |
Click a ground station in the fleet list or on the globe to open its dashboard. The dashboard shows:
A contact begins when a satellite rises above the station's minimum elevation mask (typically 5°). This is called AOS (Acquisition of Signal). The contact ends at LOS (Loss of Signal) when elevation drops below the mask.
For satellites at MEO altitude (~23,222 km), contact passes are long — typically several hours — and multiple satellites are often in view simultaneously. The elevation angle determines link quality: higher elevation means shorter signal path and better throughput.
The satellite's effective downlink rate scales with the best ground station elevation:
If multiple ground stations are in contact with the same satellite, the station with the highest elevation determines the effective rate.
back to topSatellite commands are issued through the ground station terminal. Open a ground station dashboard and use the terminal panel at the bottom. The terminal includes a satellite selector dropdown that lists all satellites currently in contact with that station.
Select a target satellite from the dropdown, then type commands in the input field. Commands are routed to the selected satellite and the response is displayed in the terminal output area.
Check satellite health:
status # Overall status summary
events 10 # Recent system events
fuel # Propulsion and fuel status
ps # Running onboard processes
Manage attitude:
set_mode earth_point # Switch to nadir pointing
request_pointing target 48.1 11.3 300 # Point at coordinates for 300s
set_mode sun_track # Return to sun tracking
desat # Command wheel desaturation
Manage downlink:
queue_file obs_data 50 # Create a 50 MB observation file
queue_downlink obs_data # Queue it for downlink to ground
Manage onboard software:
ps # List running processes
service list # List all services and their states
service restart ttc # Restart the TTC service
logs 7 # View output from process PID 7
Orbit maintenance:
fuel # Check fuel and delta-V budget
burn prograde 0.5 60 # Prograde burn: 0.5 N for 60 s
burn_abort # Abort burn if needed
Set runlevel:
runlevel # Show current runlevel
runlevel maintenance # Enter maintenance mode
runlevel normal # Return to normal operations
back to top
Complete reference for all commands available in the ground station terminal. Commands are sent to the currently selected satellite.
| Command | Description |
|---|---|
help | List all available commands |
status | Satellite status summary (runlevel, sim time, safe mode, subsystems) |
ps | Process list with PID, name, role, state, CPU%, and memory |
events [n] | Last n system events (default: 20) |
fuel | Propulsion status: fuel mass, delta-V remaining, thruster health |
| Command | Description |
|---|---|
cd [path] | Change working directory |
pwd | Print working directory |
ls [path] | List directory contents |
cat <path> | Read file contents |
mkdir <path> | Create directory |
rm <path> | Remove file or directory |
write <path> <content> | Write content to file |
chown <root|user> <path> | Change file ownership |
| Command | Description |
|---|---|
verify <name> | Verify program manifest and syntax |
compile <name> | Compile program from /programs/ |
load <id|name> | Load compiled program into the runtime |
exec <id|name> | Start program execution |
kill <pid> | Terminate a running process |
logs <pid> | View process output (last 20 lines) |
service list | List all services and their states |
service start <name> | Start a service |
service stop <name> | Stop a service |
service restart <name> | Restart a service |
| Command | Description |
|---|---|
set_mode <mode> | Set attitude mode: sun_track, earth_point, target_track, safe |
request_pointing target <lat> <lon> <dur> | Point at ground coordinates for <dur> seconds |
desat | Command reaction wheel desaturation |
burn <axis> <thrust_n> <dur_s> | Command a propulsion burn |
burn_abort | Abort the current burn immediately |
Burn axes: prograde, retrograde, radial_in, radial_out
fuel before commanding burns. FDIR will automatically abort a burn
if a thruster fault is detected.
| Command | Description |
|---|---|
queue_file <name> <sizeMB> | Create a file in onboard storage |
queue_downlink <filename> | Queue file for downlink during next ground contact |
| Command | Description |
|---|---|
runlevel [level] | View or set runlevel: normal, safe, maintenance |
slot [a|b|sync] | View or set active software partition, or sync both |
pkg list | List installed packages |
pkg available | List packages available for install |
pkg install <name> | Install a package |
pkg remove <name> | Remove a package |
fault inject <type> | Inject a fault for testing (see Fault Management) |
seed <int> | Reset simulation RNG seed |
Each satellite runs the Quadrate (QD) runtime — a native-code compiler and execution environment for onboard programs. Programs handle satellite operations from power management to telemetry broadcast.
These services run automatically and manage satellite operations. They can be inspected, restarted, or stopped via the terminal:
| Service | Interval | Purpose |
|---|---|---|
fdir | 1 s | Fault detection, isolation, and recovery. Manages safe mode transitions, thermal limits, wheel desaturation, burn abort, and ground contact monitoring. |
epsd | 2 s | EPS daemon. Controls battery charging, load shedding decisions, and solar array tracking. |
thermald | 3 s | Thermal daemon. Manages heater activation based on temperature limits for each thermal node. |
adcsd | 3 s | ADCS daemon. Handles target tracking timer, desaturation completion, and wheel monitoring. |
scheduler | 2 s | Process scheduler. Enforces CPU and memory quotas, terminates processes that exceed limits. |
ttc | 5 s | TTC link management. Drains the downlink queue during ground contacts, logs AOS/LOS events. |
mcastd | 2 s | Multicast daemon. Broadcasts telemetry via UDP for ground station discovery and tracking. |
service restart <name>
to restart a misbehaving service. Stopping critical services like fdir
disables fault protection — only do this during planned maintenance windows.
Operators can upload and execute custom programs on a satellite via the terminal. Programs are written in QD and follow a manifest-based lifecycle:
# Upload a program to the satellite
write /programs/monitor.qd "//app=monitor\n//tick=5000\n\nfn tick( -- ) {\n \"heartbeat\" xsat::log\n}"
# Compile and run it
compile monitor
exec monitor
# Verify it's running
ps
| Role | Access Level |
|---|---|
core | Full system access. Can modify satellite state, fire events, control burns, manage services. |
root | Elevated access. Used for operator-deployed system services. |
user | Read-only telemetry access. Cannot modify satellite state directly. |
The onboard FDIR service continuously monitors satellite health and takes autonomous action when anomalies are detected:
FDIR events appear in the satellite event log. After safe mode entry, the satellite will recover automatically once conditions normalise (e.g., battery SOC rises above threshold as solar charging resumes).
For training and testing FDIR response, faults can be injected via the terminal.
Use fault inject <type> from the ground station terminal:
| Fault | Effect | Expected FDIR Response |
|---|---|---|
power_drain |
Instantly drains 30 Wh from the battery | If SOC drops below 20%, satellite enters safe mode (load shed, ADCS safe, user apps stopped) |
wheel_spike |
Saturates all 3 reaction wheels to 0.92 momentum | FDIR triggers automatic desaturation when any wheel exceeds 0.95 |
temp_spike |
Increases OBC temperature by 40 K | FDIR triggers load shedding if any thermal node exceeds 340 K |
stuck_thruster |
Thruster 0 stuck open — uncontrolled fuel leak and delta-V | FDIR aborts any active burn when thruster fault is detected |
thruster_closed |
Thruster 1 stuck closed — reduced available thrust | Burns still possible with remaining thrusters at reduced efficiency |
# Inject a power drain
fault inject power_drain
# Watch FDIR respond
events 5
# Monitor recovery as solar charging restores SOC
status