This is post #1 in a series covering the hardware and software design for my work-in-progress GPS-guided rocket recovery project. The main index to the series of posts is here, and an introduction to the project (a PowerPoint presentation) is here.
In this post I’ll cover the hardware design, including the schematic, board layout, and Eagle PCB files from my “Rev3” hardware of March 2007. (That’s the most recent version I have working as of this writing.) This post is also a good starting point even if you’re mainly interested in the software – as a tightly integrated system, an understanding of the hardware is key to the software as well.
About rights: I hereby grant everyone and everything in the universe permission to use and modify this hardware design for any purpose whatsoever. In exchange, you agree not to sue me about it. I make no promises. By using the design you agree that if you’re unhappy the most I owe you is what you paid me (zip). That seems fair.
If you find this useful, I’ll be pleased if you drop me a note or leave a comment here (just so I know it’s been helpful to someone) and if you give credit to Nerdfever.com for the design in any publications. But you don’t have to.
The board was designed in Eagle PCB, which is available in a free “light” edition, limited to non-profit use and 2-layer boards of not more than 4.0 x 3.2 inches. (Sufficient for this board.) Eagle takes some getting used to, but works well.
If you want to modify my design, here are the Eagle PCB files for the schematic and board: Autopilot_r3.zip
This hardware has made many successful flights, and supports the following features:
- PIC18F2620 MCU (programmable in C)
- GPS interface
- Drives a hobby servo (to steer the parachute)
- Pressure altimeter (good to about 2 feet precision)
- Triggers parachute deployment at apogee
- Able to log flight data in flash memory
- Drives an in-flight digital camera
- Piezo speaker output
- 3 push-buttons, 3 LEDs
Figure 1 shows the schematic:
A few comments about the circuit are in order.
MCU
The MCU is a PIC18LF2620. It has 3968 bytes of RAM and 64 kbytes of Flash memory, which is available for both program space and logging of flight data. It will run at up to 8 MHz off the PIC’s internal oscillator – I don’t use an external crystal.
Interestingly, these specs are very similar to those of the Apollo Guidance Computer. Except that the PIC is a single 28-pin chip, costs about $4, and draws only a couple of milliamps.
You can program the PIC using Microchip’s free C18 compiler and free MPLAB IDE environment – those are what I recommend.
GPS
The board was designed to interface with a GlobalSat EM-406 GPS using a serial UART interface. I’ve used others (see tweaks.h for a list); it will probably work fine with any serial-interface GPS.
The PIC transmits to the GPS on pin 17 of the PIC (TX).
Note that pins 4 and 5 of the PIC are tied together, and pin 6 (C1OUT) is tied to pin 18 (RX). This is part of a no-hardware level-shifting scheme that allows the 5v PIC to read data from the EM-406 GPS, which outputs at 0v/2.85v. Continue reading