IBM gave us a $21,000 grant to develop software utilizing Linux on their Power architecture systems.
We have interpreted this to write a new core avionics package running upon a PowerPC 603e FlightComputer.
Summary
We have selected a PowerPC based FlightComputer for further avionics work (MENS Micro MPC-5200).
We have researched the GNU cross-compiling toolchain and investigated porting our simulation environment using qemu.
We completed our previous generation avionics system and had a completely successful launch, in which we maintained 802.11b communication past Mach 1 and downlinked 98% of the telemetry from the rocket from launch through termination of flight. We confirmed that the avionics software successfully detected apogee and ordered chute deployment at the correct time. Both the timer backup system and ground uplink override were confirmed to work.
The end result of the launch cleared away our legacy avionics system, making way for focused PowerPC development.
We have spent most of the grant money on the purchase of the PowerPC board and peripherals (PCMCIA daughterboard, power supply) and student funding. We intend to spend the remainder of the grant to reconstruct the rest of the avionics hardware.
Objectives
The project objectives are several-fold.
First, a realtime Linux development toolchain for Power based on the GNU compiler tools will be put in place, enhanced, and evaluated. GDB stubs suitable for real-time interaction with the flight computer will be developed.
Second, a realtime software infrastructure for Linux on Power will be put in place. The CAN driver will be ported or replaced as needed for sensory node communication. Low-latency and other Linux scheduling options will be further explored. RT-Linux, an option considered earlier but not chosen, will be reconsidered.
Finally, a report will be written comparing the functional and performance characteristics of the "old" x86-based and "new" Power-based infrastructure, and discussing development issues. This work involves the deployment of open-hardware, open-software systems based on the next generation of high-performance processors suitable for a broad range of applications. This sort of deployment is key to meeting the requirements of a computing infrastructure that is increasingly distributed, mobile, autonomous, and agile.
Timeline
Here is what we have done since we obtained the grant.
- 2005-01-05: BartMassey obtains the $21,000 grant from IBM
- February: Launch attempt in the Oregon desert, unsuccessful due to communication issues
- We evaluate several options for a PowerPC based FlightComputer which meet our stringent requirements
- PC104 form factor
- rated for 12G acceleration
- CAN bus support
- June: We select the MPC-5200 and order a pre-production model
- Spring 2005: tune the legacy flight computer system and simulation environment to improve reliability
- Summer 2005: Many many test sessions during the summer, to avoid the non-launch of February
- August: Successful launch of the legacy avionics system
- September: Launch post-mortem.
- Autumn 2005: Next generation system design
- October: work on bringing up the PPC prototype and using qemu to test big-endian software on our little-endian laptops; this includes enhancements to qemu itself to better support PowerPC.
Budget
$4000 Research Asst. for one quarter term
$1400 PC-104 MensMicro PPC flight computer + dev system
$ 300 PC-104 power supply
$ 200 PC-104 PCMCIA carrier board (wireless + flash)
$ 100 Flash drive
$ 50 Orinoco 802.11b wireless card
-----
$6050 TOTAL
Achievements
We made several milestones this year in the development of the rocket avionics.
Simulation environment
In order to do parallel distributed development without access to the avionics hardware, we have developed a sophisticated simulation environment, in which the actual avionics software is hosted on the development PC for testing. The simulator provides a physics model for a typical flight profile and simulated devices (CAN bus and sensor nodes). The simulator is implemented in C++.
We plan to enhance the simulator to provide a simulation environment for the embedded software written for the individual CAN sensory nodes.
Rigorous testing regimen
We developed a rigorous testing regimen to ensure a successful launch attempt in the field. The logistic procedures we developed will ensure successful future PowerPC launches.
CAN bus debugger hardware and software
We developed a small CAN node which links the bus to a serial port, used for debugging the network.
GPL-GPS
Our project leader AndrewGreenberg completed his Master's thesis on an open source GPS system. We intend to use enhanced versions of this system in the rocket to maintain GPS lock at high speeds by using the input from accelerometers.
Future directions
Over the next year, we will reconstruct the rocket airframe and design the next generation avionics network and PPC Flight Computer software. Once the main infrastructure is in place, we can work on the processor intensive algorithms required for active guidance, such as Kalman filters and other adaptive algorithms.
[!] insert milestones for spending remainder of grant money and meeting the Objectives
$2300 2 backup flight computers & peripherals
$1200 buy JTAG interface debugger
-----
$3500 TOTAL
$11,000 remainder buying components for new avionics
- dozens of ARM chips
- board fab
- misc. components and connectors