* This version should not be used. It has a serious regression that is fixed in v0.5.2.
* Determine a callback type (coroutine or function) only when adding the callback. The reduces overhead in callbacks.
* Callbacks are stopped when the device is waiting for the first update and can only occur when a parameter has changed. Callback frequency has been significantly reduced.
* Thanks go to [bdraco](https://github.com/bdraco) for help in making these changes.