New Flight Computer

From AD7ZJ Wiki
Revision as of 22:20, 14 April 2012 by Elijah (talk | contribs)
Jump to navigation Jump to search

This is the new flight computer we are in the process of developing. This page serves to document the current progress.

High Level System Requirements

  • Documentation
    • Complete documentation including development tool requirements and installation process.
    • User’s manual showing how to utilize all hardware and software features of the system.
  • Single board for flight computer and beacon use
  • AX.25 packet capability for data transmission
  • On-board landing prediction based on wind data gathered during ascent
    • Auto flight start detection to begin logging for prediction
  • Logging
    • Mass storage support for easy access to flight data
    • Internal and external temp sensors
    • Ability to add additional sensors externally would be nice
    • Log battery voltage
  • At least one servo driver
  • Ability to receive DTMF/packet commands in flight
    • (clear logging, begin logging, beacon reset, GPS reset, frequency change)
  • Ability to configure volatile parameters via menu or file
    • Call Sign
    • Beacon time slotting
    • Customization of the status string

Hardware

The hardware is based around the NXP (formerly Phillips) LPC2148 - a microcontroller built on the ARMv7 architecture. Benefits are low cost, generous amounts of flash memory and RAM, and plenty of I/O. The chip is driven off a 12 MHz crystal which is multiplied up to 24 MHz by the onboard PLL. This particular processor can run at up to 60 MHz.

Software

The software is written primarily in C++, with the exception of the basic startup routines to initialize the hardware and setup the C++ runtime. I use a port of GCC for arm, put together by CodeSourcery (now MentorGraphics). The 'lite' version is fine, all you get by paying for the other versions is an IDE and the startup routines - we're going to do everything with a makefile anyways, which is really superior to a project file for an IDE anyways (at least in my opinion :).

Useful References

http://www.gnu.org/savannah-checkouts/gnu/libc/manual/html_node/Rounding-Functions.html

http://openocd.sourceforge.net/doc/html/General-Commands.html

http://openocd.sourceforge.net/doc/html/CPU-Configuration.html

http://openocd.sourceforge.net/doc/html/Flash-Commands.html

http://gitref.org/basic/