
Ugifer wrote this instructable detailing the build of hisĀ Arduino based high-altitude balloon tracker:
The tracker is based upon the Atmel ATMeag328 Microcontroller which forms the heart of many of the popular “Arduino” boards. We are going to make an “Arduino Compatible” board which we can program using the Arduino IDE.
Because the GPS module and SD card both require 3.3v and we have plenty of computing power, we may as well make the whole tracker run on 3v3. That means that we can’t clock the ‘328 up to its full 16MHz but it will run happily at 8MHz on 3v3, and that’s plenty for our purposes.
Check out the video after the break.

The RC oscillator @8Mhz is accurate enough to handle 115kbps serial communication without errors, so you could ditch the 8Mhz crystal and simplify your circuit.
As long as your supply really is 3.3V and not any lower, it is well established that you can still run the 328 chip reliably at 16 MHz. There might be an issue at very high temperatures, but at altitude I would expect it to be cold anyway.