Bno055

BNO055 is used for heading. You can also use Brick v2 or DualGPS.
I have always had better results with BNO055 than without it, it is important that it is not near magnetic fields and that the wire length for the i2c bus does not exceed 30cm. There is an i2c extender (module) with which you can mount it for much longer than 30cm … I have never used Brick v2 though they say it turned out much better.