HiTechnic sells one that uses I2C. I've used it a bit, but within LEGO projects only. It needs pretty careful mounting away from iron and high current circuits or it will give erratic values. Otherwise works pretty well.
http://www.hitechnic.com/cgi-bin/com...on&key=NMC1034
As for gyro drift, 120 seconds is a long time to integrate the signal, and you will find that your gyroCompass will probably have a pretty measurable error term at the end of the match. Another issue which occurs much more quickly is when the rate gyro exceeds its max rate. In other words, the gyro will only report X degrees of turn in a time period, and you have a powered turn or a bump that exceeds X. The reported value will be X, and the excess will become an error in your compass reading.
Greg McKaskle