ODIN: Orbital Debris Identification Network

A nine-satellite constellation for detecting orbital debris smaller than 3 cm in situ from a 625 km dawn-dusk orbit, using an event-based optical payload. Two semesters, a 23-person team, ending in an integrated flatsat demonstration.

In progress · advisors Prof. Marcus Holzinger and Prof. Tomoko Matsuo

The gap

Debris smaller than about three centimetres is effectively invisible. It is too small for ground-based radar and optical assets to track, and there is far too much of it for that to be comfortable: at orbital velocity a fragment of that size is a mission-ending impact. The population between 600 and 1,000 km, the most heavily used band in low Earth orbit, is characterised largely by inference rather than by measurement.

NASA’s Office of Inspector General has identified filling that measurement gap as an agency priority, and national orbital debris research and implementation plans carry the same direction. There is a second motivation from an unexpected direction: NASA’s Heliophysics Division treats the small debris population as a sensitive statistical tracer of space weather, because thermospheric drag acts hardest on the smallest objects. Measure the small debris population well enough and you are also measuring the upper atmosphere.

The only way to see these objects is to go and sit among them. That is the mission: a spacecraft-hosted sensor making direct, in-situ optical measurements of debris that no ground asset can resolve, returning size, signature and relative motion to feed the debris environment models everyone else’s risk assessment depends on.

Why an event camera

The payload is an event-based, or neuromorphic, sensor. Rather than reading out full frames at a fixed rate, each pixel reports independently and asynchronously when its brightness changes. For this problem that is close to ideal. A debris fragment crossing the field of view at kilometres per second is a moving brightness change against a static star field, which is exactly what the sensor is built to report, and the data volume scales with what is actually happening rather than with the frame rate. A conventional imager would spend nearly all of its downlink budget on empty sky.

The two semesters

FallRequirements flowdown from the mission objective, trade studies on sensor field of view against range and search volume, constellation design and observation scheduling, subsystem design, and two formal design reviews.
SpringPrototype build, subsystem and system testing, culminating in an integrated flatsat.
Final deliverableA flatsat carrying the event-camera payload, demonstrating autonomous detection, tracking and characterisation of debris surrogates across a multi-day ground test, transmitting science and telemetry data over an RF link to a ground station.
Modelled, not testedOrbit geometry, encounter velocities, lighting and thermal environment. Testing happens at room temperature on wall power, so the space environment is carried entirely in analysis.

The split between what gets tested and what gets modelled is the interesting engineering constraint here. Encounter velocities cannot be reproduced on a lawn in Boulder, so the ballistic surrogate tests have to be designed such that the simulation scaling to representative orbital encounters is defensible. The test does not prove the system works in orbit; it anchors the model that does.

My part: power

I am the Power Subsystem Lead, which means owning the electrical power system: the power budget, power routing and PCB design, harnessing and cabling shared with Structures, and wall-power distribution for the prototype. As subsystem lead I also own the design and its requirement verification, the subsystem’s budget, and the job of tracking how it integrates with everything else.

So far the work has produced two trade studies. I contributed architecture D, a double-deployable panel layout, to the EPS architecture trade, which selected double-deployable rigid solar arrays with no body-mounted cells, now fixed at 0.1977 m² of panel area per satellite. The battery trade compared 18650 lithium-ion, LiFePO4 and lithium-polymer cells and recommended a COTS 18650 lithium-ion module against an 80 per cent margin. The team has since replaced that margin with a requirement to stay at or above 40 per cent state of charge through the worst orbit at the end of a five-year mission, with downlink capped at two hours a day, so the pack choice is being rerun with five years of capacity fade, resistance growth, radiation dose and array degradation included.

For Design Review 1 I also built the orbital propagation, eclipse, irradiance, ground track and ground station contact models that feed the constellation’s data pipeline, and put together the slides for the review.

Power is easy to mistake for a support function that simply sizes itself to whatever the other subsystems ask for. On this mission it is not, because of one requirement: the system schedules its observations subject to power and data budget constraints. That makes the power budget an input to the autonomy rather than a consequence of it. What the spacecraft is allowed to look at, and for how long, falls out of what the power system can sustain, so the budget has to be credible early enough for Payload and CDH to design the scheduler against it.

The event camera complicates the estimate in an interesting way. Because its pixels report asynchronously when brightness changes, its data rate, and the downstream processing load that follows it, depends on how much is happening in the scene rather than on a fixed frame rate. The load is driven by the debris flux, which is the very quantity the mission exists to measure and therefore the quantity we know least well. Budgeting against a demand that is itself uncertain is the part of the job I expect to be hardest to do honestly.

There is also a split running through the whole subsystem. The flight power architecture, solar generation, storage and margin across the orbit, is analysis only. The prototype runs on wall power through a multi-day autonomous test. So one half of the work is a design nobody will plug in, and the other is distribution hardware that has to survive several days of unattended operation without a person nearby to reset it.

Structurally, Power is also the most distributed subsystem on the team. Its three engineers are split one each across the sensor, comms and flatsat test teams rather than sitting together on a test team of their own, which means the subsystem sees three different test campaigns first-hand and has to carry what it learns between them.

The orbit and power model

Because the flight power architecture lives entirely in analysis, the power budget is only as good as its account of the sunlight the spacecraft will actually receive. I wrote a MATLAB orbit and power model to provide it: it propagates the orbit, works out when Earth blocks the Sun, returns the solar irradiance at the spacecraft, finds when a ground station can see it, and tracks how drag lowers the orbit. It is built for runs of months up to the full mission duration rather than a handful of orbits, because the questions Power has to answer are seasonal.

DynamicsTwo-body gravity plus the J2 oblateness term, and atmospheric drag when it is switched on, integrated with ode45 at tolerances of 10-11.
SunLow-precision solar ephemeris in the mean equator and equinox of date, checked against the J2000 reference position and against solstice and equinox declinations to 0.05°.
ShadowConical umbra and penumbra from the apparent disks of the Sun and Earth, with a cylindrical option. Shadow entry and exit times are solved by root finding rather than read off the output grid.
OutputIrradiance on a Sun-facing surface in W/m², independent of any panel, ranging from 1407.6 at perihelion to 1316.6 at aphelion.
ContactsGround-station access above a 10° elevation mask, computed after rotating the orbit from the mean equator and equinox of date into GCRF, with every pass tagged by the minutes it spends in shadow.
DragJacchia 1977 static atmosphere rotating with the Earth, with the exospheric temperature set by the 10.7 cm solar flux and height measured above the WGS84 ellipsoid. It is off unless switched on, so the lighting results do not change.
InputsOne spreadsheet holds every input, from the orbit to the solver tolerances, next to the list of drag assumptions, so other subteams can run their own cases without editing code.
ConstellationNine satellites in three planes stepped 5° apart in RAAN. The satellites in a plane are spaced a third of a nodal period apart along one trajectory, so J2 cannot pull them out of their slots: propagated for a day, they hold their 120° spacing to within 0.0002°.
Not yetAttitude, Earth albedo, solar radiation pressure and third-body perturbations. The array area is now fixed, but attitude is still open, so array power is worked out for panels facing the Sun.

Checking it

The eclipse fraction matches the analytic beta-angle expression to 0.001 across four orbit orientations, and falls to zero past the 62.7° beta cutoff at 800 km, as it should. Integration error scales with tolerance to the power 0.975, which at the chosen setting is about 1.3 km after six months, or 0.2 s of along-track timing. Accuracy is checked against the quantities J2 actually conserves, total energy including the J2 potential and the polar component of angular momentum, rather than two-body energy or the magnitude of angular momentum, neither of which is conserved once J2 is on.

One check changed how the model gets used. On a 60 s output grid the mean fraction of time in sunlight is accurate to 0.01 per cent, but the same grid overstates every individual eclipse by close to one sample, 59 s or 3.2 per cent. That error disappears in an average and does not disappear in battery sizing, which is set by the single longest shadow, so every duration figure comes from the solved entry and exit times.

Two further checks run against MATLAB’s Aerospace Toolbox. On the same trajectory, the toolbox’s own eclipse analysis agrees with the model’s root-solved entry and exit times to within 0.92 and 0.74 seconds across 29 shadows. Over a full year, across six orbits between 650 and 950 km, replacing the J2 model with the toolbox’s high-fidelity propagator, with full EGM2008 gravity and with or without drag, moves the time in full Sun by at most 0.062 percentage points and the longest shadow by at most 0.27 minutes. J2 is enough for lighting; drag matters for orbit lifetime, not for power.

The drag model carries its own checks. Its exospheric temperatures match Jacchia’s published table to within 0.05 K, the atmosphere code reproduces its reference profile at all 126 tabulated heights, and its density sits 1 to 6 per cent below NRLMSISE-00 between 400 and 1,000 km. Over a year at 650 km, with a ballistic coefficient of 30 kg/m² and the solar flux held at 150, drag lowers the orbit by 4.67 km. An independent orbit-averaged decay rate gives 4.65 km, and the toolbox’s high-fidelity propagator, with NRLMSISE-00 and full EGM2008 gravity, gives 4.86 km.

The orbit trade

Before Design Review 1, the mission orbit trade study screened six candidate orbits using one representative orbit per day. I ran the same six through a continuous year of propagation from 15 September 2026. Every case agreed with the screen to within about 0.1 percentage points of time in full Sun and 0.15 minutes of longest shadow, and the shadow seasons fell on the same dates.

40200longest 20.2OctJanAprJulA · 650 km · SSO 18:0040200longest 35.1OctJanAprJulB · 650 km · SSO 10:3040200longest 17.4OctJanAprJulC · 800 km · SSO 18:0040200longest 14.7OctJanAprJulD · 950 km · SSO 18:0040200longest 35.3OctJanAprJulE · 800 km · polar40200longest 19.9OctJanAprJulF · 650 × 950 km · SSO 18:00minutes of shadow per eclipse, 15 Sep 2026 to 15 Sep 2027
Minutes of shadow in every eclipse across one year for the six candidate orbits screened before Design Review 1, from a continuous propagation rather than daily samples. SSO is Sun-synchronous; times are the local solar time of the ascending node.

The figure is most of the power story of the trade in one view. A Sun-synchronous orbit holds its local time, not its angle to the Sun, so the dawn-dusk cases still pick up a shadow season around the June solstice, shorter and shallower the higher the orbit. The 10:30 case is in shadow for about 35 minutes on every orbit of the year. The polar case, whose plane does not turn with the Sun, passes through two long seasons. The elliptical case adds something a single sample hides: its longest shadow depends on where perigee sits when the season arrives, anywhere from 14.0 to 19.9 minutes, because J2 carries perigee around the orbit by nearly three degrees a day.

Design Review 1 then narrowed the orbit to sun-synchronous at 550 to 650 km, with RAAN still open, and the model swept RAAN across a full year at each altitude. Depending on RAAN, the longest shadow of the year runs from 20 to 22 minutes for a plane near the day-night line to about 36 minutes for one that crosses noon and midnight, and the ground passes that fall inside those shadows are what the battery has to carry. The team has since fixed the orbit near the day-night line: 625 km, 97.5° inclination and an ascending node at 06:00 local time, with nine satellites in three planes stepped 5° apart in RAAN.

Where it stands

The model now lives in the team repository, set up for other subteams to pick up. The code is split into the model itself, the checks that back it and the studies that used it; every input, including the final orbit, the constellation layout and the array area, lives in one spreadsheet; and a one-minute drag check confirms nothing has broken after a change. The spacecraft mass, drag area and drag coefficient are still placeholders until Structures has numbers. Next is an attitude model, which turns irradiance into power from the double-deployable arrays at their real pointing, and then the battery’s state of charge through the longest eclipse at end of life.

Team

The section runs as two teams of 23, drawn from Payload, Structures, Comms, Power, GNC and CDH, with every engineer also serving on one of four test teams. Subsystem membership and test-team membership are two views of the same people rather than two separate jobs, which is a deliberate structure: the person who designs a subsystem is in the room when it is tested.

  • EPS
  • Power systems
  • PCB design
  • Space debris
  • Event cameras
  • Constellation design
  • Systems engineering
  • MATLAB
  • Orbital mechanics