I'm using c++, linux, usb and a Micro Maestro to control two servos.
The servo on channel 0 moves as expected with the position read back from the controller varying from 4000-8000 (corresponding to 1 and 2ms). If I command the servo all the way to one side and then to the other I can see the intermediate position values.
The servo on channel 1 reports 40975 at one extreme and 16415 at the other. The intermediate positions are given.
If the servo from channel 1 is switched to channel 2 the values are correct (4000-8000) but the intermediate values are not given. The current position read back from the controller is immediately the commanded value.
Moved to channel 3 the extremes become 2575 and 2591, and intermediate values are not shown.
I tried swapping the servos themselves, and using a different micro Maestro. I tried the windows based servo control application without issue. I am using the same code to perform all the functions so I'm not doing anything differently with each channel.
Is this a controller firmware issue?