Hacking STEM Heat Shield Simulation

Hacking STEM Heat Shield Simulation

Put on your aerospace engineering hat! Explore how different materials absorb and transmit heat to simulate space capsule re-entry to earth!

  • 7 respects

Components and supplies

Ph a000066 iso (1) ztbmubhmho
Arduino UNO
Adafruit industries ada62 image 75px
USB-A to B Cable
Mfr 25frf52 10k sml
Resistor 10k ohm
thermistor 10k
11026 02
Jumper wires (generic)
266 04
Female/Female Jumper Wires
Adafruit industries ada64 image 75px
Solderless Breadboard Half Size
rubber band
wooden stir stick
8oz paper cup
testing materials: 1 sheet of glass, nylon, aluminum, brass, and acrylic (10cm x 10cm)

Necessary tools and machines

hair dryer
ring stands with clamp (2)
Hy gluegun
Hot glue gun (generic)
metric ruler

Apps and online services

About this project

Crew and cargo returning from the International Space Station need to be protected from the immense heat that is generated during capsule descent back to Earth.

This materials science and engineering project begins by exploring the properties of different materials with a thermistor and a hair dryer (if you're feeling adventurous you can use a different heat source). Run heating trials to gather heat resistance data for different materials, then input your data into an Excel model to simulate how well your capsule is protected during its descent. Use your findings to determine what material(s) work best at mitigating heat and will keep your lil' astronauts* alive! http://aka.ms/heatshield

Lesson and project materials developed in partnership with the NASA STEM on Station team.

Excel workbook with capsule simulation:https://aka.ms/heatshield-workbook

*We support placing paper and/or mini-figurine astronauts inside your capsule cup, although we cannot guarantee that they will come out intact!

Build a Heat Shield and Explore Materials!

In the Excel worksheet, the Compare Materials sections allows you to see material properties, including heat capacity, density, and melting point. Use this data to make an informed decision about what materials to test for your simulated space capsule.

The thermistor inside the capsule represents the temperature inside the capsule, while the thermistor next to the hair dryer tracks the external temperature.

That's it! You're ready to test the material! Follow the instructions in the Excel workbook to run heating trials and input the data to compare different materials.

Full build instructions: https://aka.ms/heatshield-instructions/en-us

For educators, you can also get a (free) complete middle-school NGSS and ISTE standards-based curriculum: https://preview.education.microsoft.com/hackingStem/lesson/48fbrbb5

Questions? Comments? Project ideas or just want to share your findings and creations?? Awesome! Please reach out to us on your favorite social media channel (Microsoft HackingSTEM team) or submit questions/feedback at: https://aka.ms/hackingSTEM

Happy making!


This project reads the resistance of two thermistors and converts that value to temperature using the stienhart-hart formula. Each of the thermistors is set up with a voltage divider, so that we can use the voltage divider equation to accurately measure the resistance.
// ----------------------------------------------------------------------------
// Thermistor.ino is for use with the Hacking STEM NASA Heat Shield lesson plan
// available from Microsoft Education Workshop at http://aka.ms/hackingSTEM 
// This project uses an Arduino UNO microcontroller board. More information can
// be found by visiting the Arduino website: 
// https://www.arduino.cc/en/main/arduinoBoardUno 
// This project reads the resistance of two thermistors and converts that value 
// to temperature using the stienhart-hart formula. Each of the thermistors is
// setup with a voltage divider, so that we can use the voltage divider 
// equation to accurately measure the resistance.
// Pins:
// A0 Material Thermistor
// A1 Hair Dryer Thermistor
// Comments, contributions, suggestions, bug reports, and feature requests 
// are welcome! For source code and bug reports see: 
// http://github.com/[TODO: github path to Hacking STEM] 
// Derived from https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/master/Themistor/Example3/thermistor3.ino
// Copyright (c) 2018, Limor Fried, Adafruit Industries
// Copyright (c) 2019, Adi Azulay Microsoft EDU Workshop - HackingSTEM, 
// MIT License terms detailed in LICENSE.txt 
// ----------------------------------------------------------------------------

const int kMaterialThermPin = A0;
const int kHairDryerThermPin = A1;

const char kDelimiter = ',';    // Data Streamer expects a comma delimeter
const int kSerialInterval = 1000;   // Interval between serial writes
unsigned long serialPreviousTime; // Timestamp to track serial interval

void setup(void)
void loop(void)

float getResistance(int pin)
    const int kSeriesResistor = 10000;
    //Read an analog pin and convert the value to a resistance value in ohms
    float reading = analogRead(pin);
    float voltage = 1023 / reading - 1;
    float resistance = kSeriesResistor / voltage;
    return resistance;

float getTemperature(float resistanceReading)
    // Resistance at 25 C
    const int kThermistorNominal = 10000;
    // Tempatrature for nominal resistance
    const int kTemperatureNominal = 25;
    // Beta coefficient of the thermistor
    const int kBetaCoefficient = 3950;

    // The stienhart-hart formula below is fairly complex for more info see:
    // https://en.wikipedia.org/wiki/Thermistor
    float value;
    value = resistanceReading / kThermistorNominal;
    value = log(value);
    value /= kBetaCoefficient;
    value += 1.0 / (kTemperatureNominal + 273.15);
    value = 1.0 / value;
    value -= 273.15;
    float temperature = value;
    return temperature;

// OUTGOING SERIAL DATA PROCESSING CODE----------------------------------------
void sendDataToSerial()
  // Enter into this only when serial interval has elapsed
  if((millis() - serialPreviousTime) > kSerialInterval) 
    serialPreviousTime = millis(); // Reset serial interval timestamp
    float materialTempReading = getTemperature(getResistance(kMaterialThermPin));
    float hairDryerTempReading = getTemperature(getResistance(kHairDryerThermPin));
    Serial.println(); // Add final line ending character only once


Arduino Heat Shield Electrical Diagram
A Fritzing-generated wiring diagram for connecting two thermistors to an Arduino Uno microcontroller.
Uploads2ftmp2f53f44e19 70a4 450f adc8 66560e6c4d802ffritzing1 plogbwusaz


Similar projects you might like

Hacking STEM Electroconductivity Meter

by Jen Fox and Hacking STEM

  • 39 respects

Hacking STEM Electromagnetic Sensor

by Jen Fox and Hacking STEM

  • 1 comment
  • 11 respects

Hacking STEM Flex/Pressure Sensor

Project tutorial by Jen Fox and Hacking STEM

  • 16 respects

Stream Data from Arduino into Excel

by Jen Fox and Hacking STEM

  • 65 respects

HackingSTEM Joystick

by Jen Fox and Hacking STEM

  • 6 respects

GPS Datalogger, Spatial Analysis, and Azure IoT Hub.

Project tutorial by Shawn Cruise

  • 98 respects
Add projectSign up / Login