Hephaestus is a rocketry payload made by Oregon State University for the RockSat-X program. The faculty advisor for this project is Nancy Squires. The involvement of twelve of the project contributors is part of the Senior Design classes. The Senior Design groups include two Mechanical Engineering groups, an Electrical Engineering group, and the Computer Science group. This repository is for project deliverables for the CS Senior Design class as well as any design documents, code, testing, data, and documentation generated by the Computer Science team throughout the 2016/2017 Senior Design year.
Participation and flight in the RockSat-X program is subject to revue and approval from the Colorado Space Grant Consortium. Pending this approval, the Hephaestus payload will fly in August of 2017.
The Oregon State University RockSat-X team will demonstrate that an autonomous robotic arm can locate predetermined targets around the payload under microgravity conditions by using precise movements. The technical actions performed by this demonstration will illustrate a proof of concept for creating assemblies, autonomous repairs, and performing experiments in space.
This section will describe the contents and structure of this repository.
The deliverables directory shall contain all deliverables for the CS Senior Design course. These deliverables are broken up into the term and assignment subdirectories. Assignments will be added through June 2017, at which point the course will conclude.
The Design Documents directory contains all design documents that we create. These shall be further organized by term and subject, pending need for organization. For the moment this shall be a place for any in progress, partial, or draft items.
The Photos directory shall include all photo documentation for the project, including any graphics for promotional use (such as logos or flyers).
The Presentations directory shall include all presentations given by the CS team. This will include all presentations for RockSat-X program design reviews, presentations for promotional purposes, or for fundraising purposes.
βββ CSpace
βΒ Β βββ 0plot.png - a 3D plot of the configuration space for the poster
βΒ Β βββ CSpace_Mapping
βΒ Β βΒ Β βββ CSpace_Mapping.ino - Code for the Arduino UNO set up for CSpace mapping
βΒ Β βββ a.out
βΒ Β βββ cspace - Binary representation of the configuration space generated by parser.cpp. One line of bin 37x37x37x37 array.
βΒ Β βββ cspacePlotData - Data used to generate the CSpace visualization for the poster.
βΒ Β βββ data.py - Python script to generate the CSpace viz
βΒ Β βββ parser.cpp - C++ program that parses the data from CSpace_Mapping.ino stored in ./test1/data1 - compile as g++ ./parser.cpp
βΒ Β βββ pathing.cpp - C++ program that creates the path through the cspace in ./cspace from each of the target points - compile as g++ ./pathing.cpp
βΒ Β βββ test1
βΒ Β βββ data1 - The data from ../CSpace_Mapping.ino
βΒ Β βββ data2 - The data from ../CSpace_Mapping.ino
βββ Drivers
βΒ Β βββ Makefile
βΒ Β βββ RSXAVRD.c
βΒ Β βββ RSXAVRD.h
βΒ Β βββ test.c
βββ Hephaestus
βΒ Β βββ Hephaestus
βΒ Β βΒ Β βββ 00history.txt
βΒ Β βΒ Β βββ 00readme.txt
βΒ Β βΒ Β βββ Hephaestus.componentinfo.xml
βΒ Β βΒ Β βββ Hephaestus.cproj
βΒ Β βΒ Β βββ Makefile
βΒ Β βΒ Β βββ RSXAVRD.c
βΒ Β βΒ Β βββ RSXAVRD.d
βΒ Β βΒ Β βββ RSXAVRD.h
βΒ Β βΒ Β βββ RSXAVRD.o
βΒ Β βΒ Β βββ diskio.c
βΒ Β βΒ Β βββ diskio.d
βΒ Β βΒ Β βββ diskio.h
βΒ Β βΒ Β βββ diskio.o
βΒ Β βΒ Β βββ ff.c
βΒ Β βΒ Β βββ ff.d
βΒ Β βΒ Β βββ ff.h
βΒ Β βΒ Β βββ ff.o
βΒ Β βΒ Β βββ ffconf.h
βΒ Β βΒ Β βββ idle.c
βΒ Β βΒ Β βββ integer.h
βΒ Β βΒ Β βββ main-FAT.c
βΒ Β βΒ Β βββ main.c
βΒ Β βΒ Β βββ mmc_avr.h
βΒ Β βΒ Β βββ mmc_avr_spi.c
βΒ Β βΒ Β βββ mmc_avr_spi.d
βΒ Β βΒ Β βββ mmc_avr_spi.o
βΒ Β βΒ Β βββ observation.c
βΒ Β βΒ Β βββ phases.h
βΒ Β βΒ Β βββ retract.c
βΒ Β βΒ Β βββ retract.h
βΒ Β βΒ Β βββ rtc.c
βΒ Β βΒ Β βββ rtc.h
βΒ Β βΒ Β βββ safety.c
βΒ Β βΒ Β βββ science.c - Science Mode - runs the motors along the path generated by pathing.cpp - compile using make science
βΒ Β βΒ Β βββ sd_card_test\ 2.bin.cpgz
βΒ Β βΒ Β βββ sd_card_test.bin
βΒ Β βΒ Β βββ sd_card_test.bin.cpgz
βΒ Β βΒ Β βββ sd_card_test.c
βΒ Β βΒ Β βββ sd_card_test.d
βΒ Β βΒ Β βββ sd_card_test.elf
βΒ Β βΒ Β βββ sd_card_test.hex
βΒ Β βΒ Β βββ sd_card_test.lst
βΒ Β βΒ Β βββ sd_card_test.map
βΒ Β βΒ Β βββ sd_card_test.o
βΒ Β βΒ Β βββ sd_card_test.srec
βΒ Β βΒ Β βββ sd_card_test_eeprom.bin
βΒ Β βΒ Β βββ sd_card_test_eeprom.hex
βΒ Β βΒ Β βββ sd_card_test_eeprom.srec
βΒ Β βΒ Β βββ src
βΒ Β βΒ Β βΒ Β βββ option
βΒ Β βΒ Β βΒ Β βββ cc932.c
βΒ Β βΒ Β βΒ Β βββ cc936.c
βΒ Β βΒ Β βΒ Β βββ cc949.c
βΒ Β βΒ Β βΒ Β βββ cc950.c
βΒ Β βΒ Β βΒ Β βββ ccsbcs.c
βΒ Β βΒ Β βΒ Β βββ syscall.c
βΒ Β βΒ Β βΒ Β βββ unicode.c
βΒ Β βΒ Β βββ telemetry.c
βΒ Β βΒ Β βββ telemetry.h
βΒ Β βΒ Β βββ test.c
βΒ Β βΒ Β βββ test.d
βΒ Β βΒ Β βββ test.map
βΒ Β βΒ Β βββ test.o
βΒ Β βΒ Β βββ uart.h
βΒ Β βΒ Β βββ xitoa.h
βΒ Β βββ Hephaestus.atsln
βΒ Β βββ MotorTest
βΒ Β βββ Makefile
βΒ Β βββ MotorTest.componentinfo.xml
βΒ Β βββ MotorTest.cproj
βΒ Β βββ RSXAVRD.c
βΒ Β βββ RSXAVRD.d
βΒ Β βββ RSXAVRD.h
βΒ Β βββ RSXAVRD.o
βΒ Β βββ main.c
βββ SDRead
βββ CreateFakeFile.py
βββ SDRead.py
Before you can build the code for this project, make sure you have the avr-gcc compiler as well as an ATmega128 microchip and programmer. You can obtain a copy of the avr-gcc compiler from the WinAVR suite for Windows, or by installing the avr-libc, binutils-avr, gcc-avr, and avrdude packages from your Linux OS's package repository. In the case of OS X/macOS, ensure that you have version 5.11.1 of avrdude installed as the most recent version does not work with our implementation. The ATmega128 chip can be purchased from Microchip's website here. Also, be sure to have a programming board for your ATmega128 chip, which can be obtained from the OSU TekBot store.
- Navigate to the code/Hephaestus/Hephaestus directory.
- Run
make allto compile the code. - Run
make programto program the microcontroller.