New User Projects
Unless otherwise stated, the code for these projects must use C. Talk to us if you really want to use something else.
Simulator projects
In order to prove out our control algorithm research, we need models of the rocket which are as accurate as possible.
Given x, y, z, roll, pitch, yaw, and the first and second derivatives of those, give us:
- An accurate model of a pressure sensor. Ideally, it should handle temperature variations. Bonus if it supports altitudes up to and including space.
- DONE See pressure_sensor.c
- An accurate model of an inertial measurement unit (accelerometers and gyros). Ideally, it should handle temperature variations.
- Accelerometers simulated, need to model gyros and temperature dependencies. See sensors.c.
- An accurate model of a GPS device.
- In progress. Sensors.c (experimental work in gps.c)
All of these should ideally provide a model for introducing noise. Contact Josh Triplett or Jamey Sharp if you want to work on one of these projects, to get a more detailed specification of the interface.
GIS projects
Give us working code to load geographic data (elevation and photography) from geodata.gov, and map it to coordinates in some reasonable coordinate system. Demonstrate that it works with some simple checks, like finding the highest and lowest points in Oregon. You can use an existing library for this; however, it must provide a C-language interface, and use a GPL-compatible license.
Flight computer
Due to a grant from IBM, we are using a PowerPC flight computer, on which we plan to run Linux and the main control software. This software will communicate with various sensor nodes, gather telemetry, transmit it to the ground over a radio link, and integrate the telemetry to determine the current position of the rocket.
- Build Linux kernels suitable for our needs, possibly with real-time extensions.
- Design protocols for communicating with the nodes (connected via USB).
- Refine the Linux USB driver to support the high bandwidth of telemetry data (isochronous mode).
Firmware projects
Software for FreeRTOS and the LPC2368 chip's peripherals. There are dozens of little tiny projects, one for each peripheral (such as serial port, ADCs, watchdog timers, etc). Basically, pick an peripheral and write an interface. This includes the the main chip infrastructure, including the vector interrupt controller, memory configuration, etc.
Write software to interface to the smart battery controller, the inertial measurement unit, and the recovery node, etc.
There's also the GPL-GPS project: an open source FPGA GPS receiver. That's a big project, and there aren't a lot of little projects for it, but it's a fun project if you want to jump into something big.
Sensor projects
We're building a billion little sensors in to the rocket: a 3D magnetometer, an inertial measurement unit, pressure sensors, and temperature sensors.
- Write requirements for the sensor (dynamic range, power supply, dynamics, etc)
- Pick a sensor that fits the requirements as much as possible
- Design an ADC interface for that sensor
- Prototype it and interface with a laptop using an Olimex board or a labjack
Avionics projects
Get started with lpc2368 project: Bob-4 Video Overlay Board
Compile/port the latest version FreeRTOS(V5.x.x?) to the LPC2368.
We have an earlier version(V3.2.3) in the PSAS git repository for reference.
Create a small example or tutorial for using FreeRTOS on LPC2368.
Smart battery system. Avionics cage. USB hub. Power supply.
Communication projects
- Build a compact modem to work over a credit card sized 2m radio.
- Help build the cylindrical patch antennas.
- Help build the next generation amateur TV transmitter
What do I need to get these projects done?
- A computer (laptops are best for this project, so you can bring it to a meeting)
- An account on our wiki
- Membership to the appropriate email list