and removed usage of hal.util->new_semaphore()
this learns compass offsets using magnetic tables and compass observations