Radio Controlled Starship Program

Trying to catch up to SpaceX's Starship program with my own radio controlled, electric version.

Similar projects worth following
I am making a fully functioning, radio controlled Starship that can take off vertically, skydive down, and land vertically. I'm using conventional RC servos, motors, and other equipment to make it happen on a small-scale model. To my knowledge, nobody else has done this before. It is a difficult engineering challenge, but that's what makes it fun.

I started my Starship program the same way SpaceX did--with a Starhopper test platform. I learned many useful things from this exercise before I invested in real hardware for the Starship build:

With control via thrust vectoring (roughly) figured out, the next step was to translate what was learned on the Starshopper to a Starship. The Starship hovers with two slightly more powerful brushless motors, with the addition of fore and aft lifting surfaces that enable control in the descending skydive or belly flop mode:

A little more tuning on the starship is needed before we consider building a superheavy booster to launch it with...

For flight control and stabilization on this project, I'm using my open-source flight controller that is Arduino-based and runs on the Teensy 4.0 with MPU6050 IMU: Project Page

Standard Tesselated Geometry - 1.64 kB - 12/12/2020 at 21:10


Standard Tesselated Geometry - 684.00 bytes - 12/12/2020 at 21:10


Standard Tesselated Geometry - 692.86 kB - 12/12/2020 at 20:54


Standard Tesselated Geometry - 167.95 kB - 12/12/2020 at 20:54


Standard Tesselated Geometry - 249.59 kB - 12/12/2020 at 20:50


View all 12 files

  • 2 × 2450kv Brushless Miniquad Motor
  • 2 × 35a Brushless ESC
  • 1 × 5043x3 Counter Rotating Propeller Set
  • 1 × 1500mah 4s Lipo Battery
  • 1 × 15a Turnigy BEC Flight controller and servo power

View all 13 components

  • More Flight Testing

    Nick Rehm01/18/2021 at 15:32 0 comments

    Recently got back out to the field with my repaired Starship from the last video. I wanted to get a better 'feel' for the aircraft while in freefall so I could make more informed design changes for the next iteration. Unfortunately, the last flight ended in another crash (my fault), this time much more spectacular.

  • Starship Video

    Nick Rehm12/08/2020 at 20:25 0 comments

    Found some free time today to get the video put together, so here it is now instead of tomorrow:

  • New Aero Surfaces and Paint

    Nick Rehm12/08/2020 at 17:22 0 comments

    After some flying, I decided it was time to change out the Mk1-ish aero surfaces to something closer to SN8 and finally give it some paint. Flight video tomorrow!

  • Foam Body Panels & Landing Pad

    Nick Rehm12/02/2020 at 01:04 0 comments

    Hover testing is coming along nicely; in my free time I turned the back of my cutting board into a landing pad for the big flight (with skydive maneuver).

    I had to add foam around the body to give the 3mm carbon body spars some more torsional stiffness (tail was wagging due to differential throttle for yaw control). Video soon!

  • Starship Build Complete

    Nick Rehm11/24/2020 at 15:34 0 comments

    Just finished up the hardware build on the Starship prototype. I had the CAD model pulled up to help cross-reference as the parts came together. Most everything went together nicely, I just need to make some minor changes to some of the printed parts for better tolerances/additional features. I still haven't figured out a plan for landing gear--it will most likely be passive, but for now I think I'll just grab it out of the air. Stay tuned for a build video and parts files!

    Now on to hover testing, then the maneuver never attempted before: the skydive.

    Avionics bulkhead:

  • 3D Printed Parts

    Nick Rehm11/15/2020 at 01:02 0 comments

    All the parts are off the printer and cleaned up. Just waiting on some carbon rods to arrive in the mail to complete the structure's assembly.

  • Starship Design Underway

    Nick Rehm11/09/2020 at 15:48 0 comments

    CAD design is finished--printing test parts now to verify tolerances, and parts are on order for the complete build.

View all 7 project logs

  • 1
    Building the Starhopper

    Cutting out and gluing together the internal structure from foamboard:

    Motors attached to 3D printed motor mount and hot glued to the structure. ESCs attached with double sided tape:

    Connecting the servo linkage for the control surfaces:

    Installing receiver and Teensy 4.0-based flight controller:

    Internals wrapped in cylindrical foam and landing legs glued on:

  • 2
    Building the StarShip

    Parts all designed in Solidworks 2020 and masses used to estimate vehicle center of gravity:

    Print all the parts in PLA or ABS (quantities of each part listed in part name):

    Install motor mounts to motor bulkhead with m3 hardware:

    Install 4 SG-90 servos to servo bulkhead with hot glue and servo hardware:

    Install electronics on electronics bulkhead with double sided tape:

    Install servos in the nosecose and assemble canard hinge:

    Slide all subassemblies over carbon spars of ~400mm length. Servo bulkhead placement is dictated by rear flap hinge. Pin all parts in place with hot glue. Cut out aerodynamic surfaces from foamboard and slide into hinge pieces:

    Cut out foamboard to snugly wrap around outside and pin in place with tape so that it can be taken off later to access electronics:

    Give it some paint:

View all instructions

Enjoy this project?



Kushal Neupane wrote 01/16/2023 at 16:41 point

Is there any alternative microcontroller for teensy 4.0?

  Are you sure? yes | no

joshbruce wrote 03/09/2021 at 09:03 point

Just wondering, is there anyway you could create a servo-rod bending guide? Great project by the way!

  Are you sure? yes | no

Andrew Green wrote 12/17/2020 at 04:28 point

It's an amazing project. I bet it takes a lot of time and effort but it worth it. Good luck! I will follow you for updates.

  Are you sure? yes | no

thatrandomcatboi wrote 12/16/2020 at 13:31 point

Hello! I recently watched your starship video through Reddit and was astounded and am incredibly interested in building one myself, but i have no experience in coding and was wondering if you could share the code used? particularly for the free fall control surface part, as i am planning on using a different method for ascent from propellors, if you could share that would be greatly appreciated, thanks!

  Are you sure? yes | no

Nick Rehm wrote 12/16/2020 at 22:25 point

Stock code is available here:

Here is the only modification to the default code made within the control mixer function:

  m1_command_scaled = thro_des - yaw_PID;
  m2_command_scaled = thro_des + yaw_PID;
  m3_command_scaled = 0;
  m4_command_scaled = 0;
  m5_command_scaled = 0;
  m6_command_scaled = 0;

  //trim values for takeoff
  float LC_trim = 0.11;
  float RC_trim = 0.89;
  float LF_trim = 0.1;
  float RF_trim = 0.93;

  //trim values for skydive
  float LC_trim_dive = 0.46;
  float RC_trim_dive = 0.54;
  float LF_trim_dive = 0.55;
  float RF_trim_dive = 0.5;

  //trim values for landing
  float LF_trim_land = 1.0;
  float RF_trim_land = 0.0;
  float RTV_trim = 0.52;
  float PTV_trim = 0.55;

  float K_yaw = 0.4; //aero surface stabilization gain on yaw (roll in skydive)
  float K_pitch = 1.5; //aero surface stabilization gain on pitch
  float K_roll = 1.0;

  if (channel_6_pwm > 1800) { //takeoff with no control surface controls
    s1_command_scaled = LC_trim; //left canard
    s2_command_scaled = RC_trim; //right canard
    s3_command_scaled = LF_trim; //left flap
    s4_command_scaled = RF_trim; //right flap
    s5_command_scaled = RTV_trim - roll_PID; //roll thrust vectoring
    s6_command_scaled = PTV_trim - pitch_PID; //pitch thrust vectoring
    s7_command_scaled = 0;

  if (channel_6_pwm < 1800 && channel_6_pwm > 1300) { //sky dive with full control surface controls
    s1_command_scaled = LC_trim_dive + K_pitch*pitch_PID - K_yaw*yaw_PID + K_roll*roll_PID; //left canard
    s2_command_scaled = RC_trim_dive - K_pitch*pitch_PID - K_yaw*yaw_PID + K_roll*roll_PID; //right canard
    s3_command_scaled = LF_trim_dive - K_pitch*pitch_PID - K_yaw*yaw_PID; //left flap
    s4_command_scaled = RF_trim_dive + K_pitch*pitch_PID - K_yaw*yaw_PID; //right flap
    s5_command_scaled = RTV_trim - roll_PID; //roll thrust vectoring
    s6_command_scaled = PTV_trim - pitch_PID; //pitch thrust vectoring
    s7_command_scaled = 0;
  if (channel_6_pwm < 1300) { //rear flaps retracted and stationary for hover slam
    s1_command_scaled = LC_trim; //left canard
    s2_command_scaled = RC_trim; //right canard
    s3_command_scaled = LF_trim_land; //left flap
    s4_command_scaled = RF_trim_land; //right flap
    s5_command_scaled = RTV_trim - roll_PID; //roll thrust vectoring
    s6_command_scaled = PTV_trim - pitch_PID; //pitch thrust vectoring
    s7_command_scaled = 0;

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates