When I run begin() before setup of any other i2c devices, if begin() returns true, all other devices fail to init, and if I init the other devices before the gps begin() and it returns true, they all give inaccurate values, either way the gps works correctly though. begin() seems to be doing something to the bus, but I can't figure out what it is.