Every compass I have tried adding seems to create a timing problem when added to my code. In order to run under Teensy I need to change usage from the "Wire" library to the "i2c_t3" library. I wanted to use the HMC6343 and library. The HMC6343 needs a millisecond to respond to commands. That was done in the HMC6343 library with a delay(1). That was changed to a loop with micros() to wait. The i2c_t3 library has many microdelay() statements that were also changed. No joy!
Any suggestions appreciated.