OK, got it - the main thread will be like:
```   while (TRUE) {
      main_time += US2ST(1000000/PERIODIC_FREQUENCY);
      imu_periodic();
      ImuEvent(a,b,c);
      autopilot_periodic();
      SetActuatorsFromCommands(commands, autopilot_mode);
      chThdSleepUntil(main_time);
  }```

For Aspirin for example ImuEvent will be the same, for UART Imus (like GX3) I will have to modify the uart driver a little.