Pololu micro + arduino nano

Hello,

I’m using the micro maestro 6 channel with an arduino nano.

It’s all working great, however the servos aren’t moving all the way to the left or right.

Here is some example code:

  NewSoftSerial controller =  NewSoftSerial(6, 7); //rx tx
  controller.begin(9600);
  controller.print(0xff, BYTE);
  controller.print(0x01, BYTE);
  controller.print(0xfe, BYTE);
  delay(500);
  controller.print(0xff, BYTE);
  controller.print(0x01, BYTE);
  controller.print(0x7f, BYTE);
  delay(500);
  controller.print(0xff, BYTE);
  controller.print(0x01, BYTE);
  controller.print(0x01, BYTE);

The 0x7f (127 in decimal) is the center position and that’s correct. However the 0xfe and 0x01 only move the servo about half way to either left or right.

Can someone let me know what I’m doing wrong here?

Thanks!

Hello,

When you say your servos are only moving “about half way”, what is this relative to? If you have seen the servos move through a wider range before, how were you controlling them at the time?

- Kevin

Hello Kevin,

I figured out the issue.

I have this micro and the maestro 18 channel (had no issues with that one). In the Maestro control center I changed the min/max values to get a bigger range. Since it had no effect on the 0-254 hex values in my code, I switched to the pololu protocol so I could get a bigger range using the “us” I think it’s called?

Right now I’m using 600/2400 (*4 when the bytes are sent to the maestro).

What are the standard values? It looks like the default values (in the control center) are 992/2000 which don’t turn the servos all the way to the left / right, so I’m just curious to know if you know the correct values for a standard servo.

Hello,

The normal range for standard servos is 1000-2000 microseconds (the default Min is 992 on the Maestro since it must be a multiple of 16 for technical reasons). It sounds like you’ve already figured out how to increase the range, but in case you want to make sure, we describe how to do that in the FAQs for the Maestros. Keep in mind that the exact limits could vary between individual servos, even of the same type; be careful not to damage your servos by trying to force them to move past their limits.

By the way, you can increase the range while still using the compact protocol by changing the “8-bit range” field in the Channel Settings tab in the control center (this is explained in section 4.e of the manual).

- Kevin

Hello Kevin,

Thanks!