hal::write(*m_i2c, ak09916_address, std::array<hal::byte, 2>{ ak09916_cntl_3, 0x01 }, hal::never_timeout()); // Soft The line above has an issue do to what I think talking to the mag directly and can only be done in bypass mode.