orbital odyssey and spiral struggles
Since CubSats became a thing, I have wondered if one can sling a 2 kg CubeSat from a low Earth orbit (LEO) at 300 km altitude (6700 km radius) to a geostationary orbit (GEO) at 35,786 km (42,164 km radius).
CubeSats are compact small satellites with dimensions around 10x10x10 cm, and a weight of around 2 kg. The aim is to start at LEO (6700 km radius) and climb to GEO (42,164 km radius), where it can park over one spot on Earth for comms or science. Earth’s gravitational parameter is . GEO’s the sweet spot for satellites, such as those that do TV broadcasts and weather monitoring. I planned to check whether Hohmann transfer with reaction wheels for attitude control would work, but reality hit hard, so I pivoted to low-thrust spirals, refined navigation with a Kalman filter, and tackled perturbations, power, and thermal constraints. Well, let us see what happened!
Checking the Basics
Let’s start with the CubeSat’s specs. It’s a 10 cm cube, , . Moment of inertia for a uniform cube along principal axes:
The moment of inertia comes out as 0.00667 kg·m² for a uniform cube. Real CubeSats have uneven mass distribution and propellant burn shifts ( I ).
Hohmann Transfer
The Hohmann transfer is the textbook move for changing orbits, two impulses, one at LEO perigee, one at GEO apogee. LEO radius , GEO . Circular orbit velocities:
Transfer orbit semi-major axis: . Perigee velocity:
First impulse: . Apogee velocity:
Second impulse: . Total . Time of flight:
Check the Hohmann illustration below, LEO, ellipse, GEO. But CubeSats can’t do impulsive burns. A realistic thruster like the BIT-3 (1 mN) delivers a tiny . Hohmann’s great for big satellites, but for a CubeSat with current tech? It’s a non-starter.

Low Thrust Spiral Transfer with BIT-3
I tried a low-thrust spiral with the BIT-3 ion thruster (1 mN, ). After correcting the dynamics, the results were grim:
- Radius: 6700 km to 10,000 km in 20 million seconds (231 days)

- Velocity: Climbed to ~40,000 km/s—way off from GEO’s 3.074 km/s

- Path: A tight spiral, but far from GEO

Propellant used: 0.5 kg, . It will take ~1000 days to reach GEO, impractical! The BIT-3’s 1 mN is too weak for a CubeSat to reach GEO in a reasonable timeframe.
Hypothetical Sci-Fi Ion Thruster, THE FuvahmulahDrive-212
Since current thrusters couldn’t cut it, I introduced the "FuvahmulahDrive-212", a hypothetical sci-fi ion thruster with , and a power-efficient design (20 W). Let’s go through the iterations to find the right thrust level.
iteration 1 with 1 N thrust
Thrust: 1 N, .
Propellant for 0.5 kg: 25,000 s (7 hours).
.
Result: Overshot GEO massively, 1.6 × 10^9 km in 1.16 days, velocity ~20,000 km/s.


iteration 2 with 0.05 N thrust
Thrust: .
Propellant for 0.5 kg: 500,000 s (5.8 days).
Result: Still overshot, 3 × 10^6 km in 1.16 days, velocity spiked to 25 km/s, then dropped to 2 km/s.


iteration 3 with 0.05 N with thrust cut-off
- Added a cutoff at GEO, but the dynamics were off..velocity didn’t settle at 3.074 km/s, and the radius kept climbing.


next iteration - theoretical calculation to find the right thrust
The numerical issues (overshooting, velocity spikes) suggest that my dynamics or solver settings need more tuning, but let’s theoretically calculate a thrust that gets the CubeSat to GEO with the right velocity. I will need a total (Hohmann equivalent). Propellant budget: 0.5 kg.
Time to burn 0.15 kg: , . I want to reach GEO in a reasonable time..say, 1 day (86,400 s):
Acceleration: . Approximate time to gain 35,464 km (6700 to 42,164 km), assuming constant acceleration (simplified):
Velocity at GEO: The spiral transfer gradually adjusts velocity, so with proper thrust vectoring (tangential thrust), I can ensure at GEO. This thrust level, 87 µN is much lower than my previous attempts, but it’s more realistic for a controlled spiral transfer to balance time and propellant use.
theoretical results
Thrust: 87 µN, .
Time to GEO: ~11.2 hours.
Velocity at GEO: ~3.074 km/s (with proper thrust vectoring).
Propellant: 0.15 kg, well within budget.
This shows the FuvahmulahDrive-212 can work with the right thrust level and make GEO feasible in a practical timeframe.
Adapting to Mass Loss
Three reaction wheels torque via . Using Maxon EC45: , , , . Dynamics:
PID (, , ) gives a 1.5 s rise, 6 s settle. Torque peaks at 0.034 N·m. With mass loss (0.15 kg burned), final mass 1.85 kg, , angular acceleration:

A slight decrease, but still sufficient for attitude control.
Navigation and Kalman Filter Insights
The Kalman filter tracks position despite noise. Radius error: ±0.25 km, theta error: ±0.05 rad. That’s ~0.0037% error in radius, ~4.3% in theta decent, but real CubeSats need star trackers for sub-km accuracy over days.


Perturbations J2, Drag, Radiation, and Stability
J2 acceleration at 6700 km:
Drag: . Radiation pressure:
At GEO, J2 drops to ~10^-7 km/s². Station-keeping at GEO requires ~0.05 m/s per year , FuvahmulahDrive-212 at 1 mN can handle this.
Remarks
It seems BIT-3’s 1 mN was too weak and 3 years to GEO isn’t practical. The FuvahmulahDrive-212 iterations (1 N, 0.05 N, 87 µN) showed the challenges of balancing thrust, time, and velocity. Numerical issues plagued the simulations, but the theoretical calculation proves that with the right thrust, GEO is achievable. Reaction wheels, Kalman filter, and perturbation models were wins, but power and comms are real challenges.
CubeSat to GEO? Low-thrust spirals with current tech take years, BIT-3 can’t cut it. Hohmann’s ideal for big satellites, but for CubeSats, we will need next-gen thrusters. The FuvahmulahDrive-212, after iterations, shows that with advanced ion tech, maybe in a few decades (or years) we could make fast spirals to GEO feasible, or even revisit Hohmann like transfers with further advancements.
"Space is Hard!" - e.m.