Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Software for autonomous Martian ice extraction, developed for the NASA Mars Ice Challenge.

Tartan Ice Drilling System

The Tartan Ice Drilling System (TIDS), developed by students at Carnegie Mellon University for NASA's Mars Ice Challenge, was a bold and innovative design for a Martian water extraction system and for the future of spaceflight. The overall design iteration was driven by advancements in key subsystems. The adaptation of ice core drilling processes for the Martian environment allowed for the application of effective and reliable Earth-based solutions. The implementation of an induction distillation process presented an opportunity to generate highly-pure water samples at low time and energy cost. The design of the control system was intended to mimic production spacecraft operations from the start, leading to more practical outcomes for future development. Altogether, TIDS combined many novel and innovative components into a single system, all of which yielded interesting takeaways for NASA research.


As the brains of the drilling system, the control and communication system was designed to maximize autonomous operation and seamless function of all hardware components. Although it would be infeasible within the budget and timeframe to develop a system that worked without adaptation for a spacecraft, significant effort was put into designing a control and communication system that resembled true hardware and software for a NASA Mars mission. The best comparison for an active mission on the Martian surface was the Curiosity rover system architecture (the planned Mars 2020 rover is also based on Curiosity). Curiosity used two 200MHz BAE RAD750 computers with 256 kB of EEPROM, 256 MB of DRAM, and 2 GB of flash memory. The software was embedded C code running on top of Wind River Systems' VxWorks real-time operating system (RTOS). Our computing selection mimicked this design using a BeagleBone Black Wireless development board with a 1GHz ARM Cortex-A8 processor, 512 MB of DRAM, and 4 GB of flash memory. Our software was embedded C++ code running on top of an IoT distribution of the Debian 9.3 Linux kernel with RTOS support. Thus, our computing hardware and software was built as a proof-of-concept for a true Mars mission.


The control system was divided into five subgroups: power, positioning, drilling, heating, and chilling. In the power subgroup, a relay controlled power to all other components and a hall effect current sensor provided power consumption logging for the entire system. In the positioning subgroup, motors controlled movement on the X and Z axis, aided by inductive proximity sensors at the ends of each axis for homing. In the drilling subgroup, a 400W DC motor ran the drill, and an encoder, current sensor, and weight on bit sensor allowed for dynamic speed adjustment to remain below stall torque. In the heating subgroup, an induction controller ran the heating process, monitored by an infrared temperature sensor, and the melting chamber cover was sealed by servo motors. In the chilling subgroup, an air blower was controlled through the relay. The full set of components in the control system is detailed in the table below:

Function Component and Datasheet Power Control
Main current sensor Phidgets i-Snail-VC-10 120V AC ADC
Power control relay 8 Channel Relay 5V DC GPIO (8)
Axis proximity sensors (3) LJ12A3-4-Z/BY 12V DC GPIO
X-Axis stepper motor Oriental PKP569FMN24A + CVD524-K driver 24V DC GPIO (6)
Z-Axis motor MMP TM36-268F-24V GP32-169 + L298N driver 24V DC PWM + GPIO
Drill motor MMP D33-655J-90V GP81-035 90V DC PWM
Drill encoder MMP EU series optical encoder 5V DC GPIO (3)
Drill current sensor LEM LTS 6-NP 5V DC ADC
Drill weight on bit sensor CZL204E 50kg load cell + HX711 amplifier 5V DC GPIO (2)
Heater induction controller 1000W ZVS Induction Heating Board 36V DC GPIO
Heater temperature sensor Melexis MLX90614 5V DC I2C
Heater cover servo motors (2) DS3218 5V DC PWM
Chilling system Zoom 450W Air Blower 120V AC GPIO


As the different components had varying power requirements, we constructed a robust electrical system that took a single 120V AC input and outputted 120V AC, 90V DC, 36V DC, 24V DC, and 5V DC. This was achieved with a switching power supply, three buck converters, and one boost converter. The dynamic component of the electrical system was an eight channel relay, which allowed the computer to selectively supply power to each component, thereby reducing the overall power consumption at any time. Additionally, current sensors monitored the power draw for the entire system and the drill motor. The electrical system was encapsulated within a strong plastic container to centralize the voltage converters, cooling fans, and to isolate potentially-hazardous internal wiring.


All software was custom designed for the BeagleBone with drivers for the various hardware components. The software was divided into two repositories: BBBKit and tids-control. BBBKit is a custom library developed by controls lead Devin Gund to abstract the I/O functions of the BeagleBone. Due to the rapid growth and continued development of the BeagleBone kernel, no existing library supported all I/O operations on the newest kernel. The development of BBBKit even led to some novel research into the relatively-undocumented kernel for PWM configuration and the PWM chip mappings. The tids-control software, built on top of BBBKit, controlled the autonomous operation and communication with hardware component drivers. Commands and telemetry were transmitted wirelessly, just like a traditional spacecraft. Additionally, backup tids-control-arduino software was developed for testing and fly-by-wire control. Thus, our controls hardware and software were built as a proof-of-concept for a true Mars mission.


This project is available open-source as a guide for future development of spacecraft and Martian technologies. As the software was developed to control the TIDS hardware components, running it standalone would not be very useful. Pin configurations and hardware-specific drivers will change based on the construction and hardware components used.

Configure BeagleBone pins

config-pin P9.14 pwm
config-pin P9.16 pwm
config-pin P9.19 i2c
config-pin P9.20 i2c

Modify BeagleBone /boot/uEnv.txt


Compile and Run

The project may be compiled using the included Makefile and run (as root) from the executable at ./bin/CAPCOM.

Project Details

The project was developed by students at Carnegie Mellon University for NASA's 2018 RASC-AL Mars Ice Challenge. The controls group was composed of three dedicated members:

  • Devin Gund, controls lead, (Electrical & Computer Engineering '18)
  • Christina Ou (Electrical & Computer Engineering '19)
  • Ismael Mercier (Electrical & Computer Engineering '20)

For more information about the project, see Devin's description of his NASA Mars Ice Challenge experience.


Software for autonomous Martian ice extraction, developed for the NASA Mars Ice Challenge.







No releases published


No packages published