Maestro servo high pulse rate and servos to match?

Hello
I would like to use a Maestro for a project where I need to drive 8 or ideally 11 digital servos at atleast 100Hz frequency with atleast 1024 step accuracy. Ideally 200 or 300Hz would be better but 100 is doable.

Reading Jans blog pololu.com/blog/17/servo-co … -in-detail he shows that a Goteck Mini High-Speed Digital Servo GS-D9257 can run at 100Hz.

Does anyone know if they can run even faster? Or if another similarly priced servo can?

I can’t justify spending over £100 for 333Hz futaba servos. For that money I could have proper industrial servos that would far out preform an RC servo.

Lastly would a Maestro be capable of driving so many servos at the higher rate? In addition I would need 10 inputs, atleast 1 of which would need to accurately measure the speed of a pulsed signal.

Looking at the Maestro specs it looks perfect for this project and I like the look of the user interface and programming so I’d like to use it if possible.

Thanks Rufe0

Hello
Since my first post I have read all the documentation on Maestro controller and have found the controller is indeed capable of 333Hz operation vstabi.info/en/tailservos .

Unfortunately I won’t be able to use the controller as I originally intended because of the 8kb program limit. I may still be able to use it in a limited capacity so I will investigate further.

Thanks Rufe0

Hello

I’m looking to use a Maestro controller for a project I am working on, I need to monitor the RPM of a shaft and adjust some servos based on it. I will have either a hall effect sensor or optical sensor on the shaft.

Based on the command reference pololu.com/docs/0J40/6.b one way to do this would be to use the GET_MS command to count the number of milliseconds between sensor inputs. This would work well at low speed however at high speed it would be very inaccurate. The difference in RPM between 3ms and 4ms is 5000RPM for example.

One possible solution would be to average several sensor inputs, averaging 3 would bring this down to 1600RPM. I feel this error is still too large and averaging it over a larger set wouldn’t be reactive enough to changes in speed.

So I was wondering if anyone had developed a program to measure RPM before or if there was another way to do it?

I have one theory how it could be done but I’m making a few assumptions that could easily be wrong. A program could run a simple loop that would increment a variable. If you knew exactly how long this loop took to run and it took the same amount of time to run every time then you could use the number it generated as a timer.

Thanks Rufe0

Hello, Rufe0.

I merged your two threads together since they were closely related and my advice for both of them is similar.

It is probably not very practical to use a Maestro script for something that requires strict timing intervals like measuring a hall effect encoder, especially if you are using it for doing other things like moving servos concurrently. Since the Maestro does not support interrupts, it can be very difficult to measure changes like that accurately. You might consider using a separate microcontroller (like an Arduino or one of our Arduino-compatible A-Star controllers) to measure the hall effector sensor and send commands to the Maestro over the TTL Serial interface. This should also help with the 8KB script size limitation, since the serial interface can be used to control the Maestro channels directly, as well as trigger subroutines saved in the Maestro script.

-Brandon