Having problems with your compass not working on your APM2.8 board? Then here is a possible reason and solution.
It could be all down to the I2C port. Now, the manufacturers of the APM2.8 were being clever and therefore they manufactured the I2C port to be a highly flexible port, and so this can be used for several uses. If, however, you just want the I2C port to be an I2C port (what you of course need it to be to plug in your external compass) then you may have to do some soldering to turn it into an actual I2C port.
If you open up the casing of the APM2.8 and look at the board you will see this:
I have highlighted the area of interest here and the arrows point to the 2 jumpers that may need to be soldered in order for the port to function as an I2C port.
If your compass is not working with your APM2.8, open up the casing and check that the 2 jumpers highlighted in the picture above are soldered. If they are not, they need to be in order for the I2C port to function as an I2C port. Then your compass should work fine.