I’m having issues with server travel in my linux script.
In the Pololu Maestro Control I can go to Channel settings and change the Min and Max of the server travel. But when I use my Linux scripts I can only get the default travel. I’m doing most of my code in shell scripts for now. But what do I need to do to get more travel out of servers?
The Min and Max settings for each servo channel in the “Channel Settings” tab of the Maestro Control Center can be used to extend the allowable pulse width range. Once you click the “Apply Settings” button, these limits are saved to the Maestro and will persist through power cycles. Please note that some servos have physical limits and by extending the pulse width range sent by the Maestro, you could risk damaging your servo (see the second to last question in the “FAQ” tab of the Maestro product page for information on how to safely set the Min and Max values). Also, some servos have limits imposed by the built-in electronics, so you should test the Min and Max settings using the slider in the “Status” tab of the Maestro Control Center to make sure your servo reacts appropriately.
You should be able to get the same range of motion from your Linux scripts as you can from moving the slider in the “Status” tab of the Maestro Control Center. If this is not the case for you, can you post the exact commands you are using as well as a copy of your Maestro settings file? You can save your Maestro settings file by selecting the “Save settings file…” option from within the “File” drop-down menu in the Maestro Control Center software.
The question is, is there a way to change the limits from a Linix script or a C program?
In general, those settings typically only need to be configured once since they are stored in non-volatile memory and should not need to be changed while your system is running. Because of this I would recommend configuring the settings for your Maestro with the Maestro Control Center beforehand.
That being said, it is possible to change those settings from a Linux script by invoking UscCmd, our command-line utility for the Maestro which comes with the Maestro Control Center. The “–configure” option of UscCmd allows you to change all of the settings of the Maestro, and you could look at the C# source code of UscCmd in the Pololu USB Software Development Kit to see how this is implemented if you are curious. However, please note that these values are stored in the Maestro’s EEPROM, which is rated for 100,000 erase/write cycles, so you should be careful not to change them rapidly in your program or that limit could potentially reached quickly.
I’ll check out the Kit, FYI I’m working on a 17DOF bi-ped and some of the servers need more movement.
I’m running the bi-ped from a Raspberry Pi and power cycle the thing all the time.
Just to be clear, once the min and max settings are configured from the “Channel Settings” tab of the Maestro Configuration Utility, they will persist through power cycles, so you should only need to configure them once.
I have been doing some testing and I see what you mean.