running, but threads are behaving badly
more explicit synchronization, should cause whatever's scheduling the
component to sync up with the device thread

notes:
- running faster than 0.0005 s period starves the whole system
- all the barret calls need to happen from the same thread?