Flight Software

GNC Design for Small Satellites: A Practical Overview

A CubeSat-class GNC design is constrained less by control theory than by the bus it has to fit into. The algorithms are, for most missions, well understood. What decides whether the satellite points where it is supposed to is which sensors and actuators the mass, power and cost budget can actually afford, and how gracefully the system degrades when one of them is having a bad day.

Guidance, navigation and control are three different jobs

Guidance decides where the satellite should be pointing right now: at the sun during safe mode, along the orbit-normal for a mapping pass, or tracking a ground station during a downlink window. Navigation is the estimate of where the satellite actually is and how it is actually oriented, built from noisy, partial sensor data. Control is the feedback loop that drives actuators to close the gap between the two.

Attitude determination and control — ADCS — is the navigation and control half of that pair, specialised to orientation rather than orbital position. On a small satellite the ADCS is usually the single subsystem with the tightest coupling between sensors, software and mechanical layout, because every sensor's usefulness depends on where it is mounted and what it can see from there.

The sensing chain

No single sensor gives a full attitude solution on its own, which is why ADCS is built as a chain rather than a single instrument.

Sun sensors

Coarse sun sensors are cheap, low-power, and nearly impossible to fully occlude if several are mounted around the bus — which is exactly why they anchor safe mode. They give a good sun-vector estimate whenever the sun is in view and nothing else. Fine sun sensors trade that ruggedness for better angular accuracy, at higher part count and cost.

Magnetometers

A three-axis magnetometer measures the local geomagnetic field vector, which changes predictably with orbit position according to a well-characterised field model. Compared against sun sensors, magnetometers work with the sun occluded and provide a second, independent vector, which is what makes a two-vector attitude solution possible. They are also the sensor most easily corrupted by the satellite's own currents, so magnetic cleanliness in the electrical design matters more than it looks like it should.

Gyros and star trackers

A MEMS gyro gives angular rate directly, which vector sensors do not, but it drifts, and the drift has to be bounded by fusing it with an absolute reference. A star tracker gives the most accurate attitude available on a small bus, at the cost of power, processing, and a field of view that has to be kept clear of the sun, the Earth limb, and sunlit solar panels — a real mechanical constraint, not a paper one.

The actuation chain

Reaction wheels store angular momentum and slew the spacecraft by spinning up or down against it; they give fine, fast, propellant-free control but saturate, and something else has to manage that saturation. Magnetorquers push against the Earth's magnetic field to produce torque with no moving parts and no propellant, at the cost of authority that is weak, direction-limited to whatever the local field allows, and unusable near the magnetic equator, where the field runs nearly parallel to the orbit plane. On most CubeSat-class missions, magnetorquers exist specifically to desaturate the wheels rather than to point the vehicle on their own.

Modes, not a single control law

Working ADCS software is a mode machine, and the mode logic matters as much as the control law inside any one mode.

Detumble runs first, usually a B-dot law on the magnetorquers alone, bringing post-deployment rates down to something the rest of the chain can work with. Sun-pointing or safe mode uses only sun sensors and magnetometers — the sensors that are hardest to lose — to keep panels illuminated and the bus thermally stable while the ground figures out what happened. Fine pointing brings in the gyro and, where fitted, the star tracker, to hold the attitude a payload or antenna actually needs. Each mode has to have an honest entry and exit condition, because the failures that end missions are usually mode-transition failures, not control-law failures.

The pointing budget is where the trade-offs land

A pointing requirement is not one number; it is a stack of contributors that has to be carried and combined explicitly: sensor noise, gyro drift between updates, actuator resolution and any hysteresis, alignment and calibration error, structural flexure, and the timing jitter between when a sensor is read and when the actuator command actually executes. Quoting a single pointing accuracy without a budget behind it is a guess, not a requirement, and it is usually the fine print that determines whether a star tracker is worth its power and mass on that particular mission or whether a well-calibrated gyro and a good sun-and-magnetometer solution can meet the same number for far less.

That is the trade every small-satellite GNC design keeps returning to: performance, mass, power, and cost pull in different directions, redundancy is rarely affordable at the component level so it has to be designed into the modes instead, and the sensor suite that looks generous on paper still has to survive the field of view it is actually mounted with.

Working through an ADCS trade study?

We would rather have the technical conversation than the sales one.

Explore flight software