New to Pololu - 6 channel board - testing a simple sequence for 3 servos. Script runs servos fine when connected to PC via USB. When disconnected from PC and powered up looks to be running a very different sequence with the servos. Could previously created scripts be affecting the latest installed script?
Is there a way to clear the memory on the Pololu chip?
Hello.
When the Maestro is running separately from the computer, it will run the program in the “Script” tab of the Maestro Control Center. So, from your description, I suspect you are running the sequence from the “Sequence” tab, and have not updated the code in the “Script” tab. If that’s the case, I recommend going to the “Script” tab and deleting the code there, then going to the “Sequence” tab and clicking the “Copy Sequence to Script” button (with the correct script selecting in the drop-down menu). After that, you can click the “Apply Settings” button and see if that fixes the problem.
If the problem persists, could you post a copy of your Maestro settings file? You can save a copy of your settings file from the “File” drop-down menu of the Maestro Control Center software while the controller is connected.
Brandon
Hi Brandon
Thank you for your help
I have tried your suggestion and no luck. When connected th PC via USB the 3 servos are set to move in a simple back and forth rotation and are all performing roughly the same routine. When disconnected and running from the microprocessor the servos are still moving but in a much more random pattern. One has a few seconds delay before moving instead of constant motion as when USB connected. Settings file below - thanks again David.
<!--Pololu Maestro servo controller settings file, http://www.pololu.com/catalog/product/1350-->
<UscSettings version="1">
<NeverSuspend>false</NeverSuspend>
<SerialMode>UART_FIXED_BAUD_RATE</SerialMode>
<FixedBaudRate>9600</FixedBaudRate>
<SerialTimeout>0</SerialTimeout>
<EnableCrc>false</EnableCrc>
<SerialDeviceNumber>12</SerialDeviceNumber>
<SerialMiniSscOffset>0</SerialMiniSscOffset>
<Channels ServosAvailable="6" ServoPeriod="156">
<!--Period = 19.968 ms-->
<!--Channel 0-->
<Channel name="" mode="Servo" min="3968" max="8000" homemode="Off" home="3968" speed="0" acceleration="0" neutral="6000" range="1905" />
<!--Channel 1-->
<Channel name="Left Arm" mode="Servo" min="3968" max="8000" homemode="Off" home="3968" speed="0" acceleration="0" neutral="6000" range="1905" />
<!--Channel 2-->
<Channel name="Right Arm " mode="Servo" min="3968" max="8000" homemode="Off" home="3968" speed="0" acceleration="0" neutral="6000" range="1905" />
<!--Channel 3-->
<Channel name="Head" mode="Servo" min="3968" max="8000" homemode="Off" home="3968" speed="0" acceleration="0" neutral="6000" range="1905" />
<!--Channel 4-->
<Channel name="" mode="Servo" min="3968" max="8000" homemode="Off" home="3968" speed="0" acceleration="0" neutral="6000" range="1905" />
<!--Channel 5-->
<Channel name="" mode="Servo" min="3968" max="8000" homemode="Off" home="3968" speed="0" acceleration="0" neutral="6000" range="1905" />
</Channels>
<Sequences>
<Sequence name="test 1">
<Frame name="Frame 0" duration="500">0 4379 7549 3968 0 0</Frame>
<Frame name="Frame 1" duration="500">0 7001 4966 6395 0 0</Frame>
<Frame name="Frame 2" duration="500">0 4437 6903 4907 0 0</Frame>
<Frame name="Frame 3" duration="500">0 7177 4711 6903 0 0</Frame>
<Frame name="Frame 4" duration="500">0 4966 6982 5044 0 0</Frame>
</Sequence>
</Sequences>
<Script ScriptDone="false"># test 1
begin
500 0 4379 7549 3968 0 0 frame_0..5 # Frame 0
500 7001 4966 6395 frame_1..3 # Frame 1
500 4437 6903 4907 frame_1..3 # Frame 2
500 7177 4711 6903 frame_1..3 # Frame 3
500 4966 6982 5044 frame_1..3 # Frame 4
repeat
sub frame_0..5
5 servo
4 servo
3 servo
2 servo
1 servo
0 servo
delay
return
sub frame_1..3
3 servo
2 servo
1 servo
delay
return
</Script>
</UscSettings>
Thank you for the additional information. I verified that your sequence and script match, and it should give you the same result whether or not it is connected to your computer. If it isn’t, then I suspect there might be a power issue.
How are you powering the Maestro when using it as a standalone controller (i.e. from the same power supply as the servos or from a separate supply) and can you post details about your power supply specs?
Brandon
Hi Brandon - thanks for the replyy - I had been thinking along the same lines.
When disconnected from the USB supply the Pololu board is indeed running off the servo power supply. This is fed via an HW-613 mini step down buck converter 24/12V input set at 5V DC output.
The buck converter is being fed with a mains plug pack. 14.5V DC 500 milliamp.
Are you thinking I need a dedicated power supply for the Pololu board and if so what spec (voltage range and power ) do I need
Thanks again - David
The Maestro’s minimum operating voltage is 5V, so your setup is not leaving any buffer for noise or voltage dip at higher current draw. Using a separate supply for just the Maestro might be enough if the setup works while connected to the computer via USB, but I think it is worth double checking if your regulator and power supply are suitable for your servos.
It isn’t clear how much current your particular servos are drawing in your setup, but if you’re using standard size servos, a good rule of thumb is to budget around 1A per servo when choosing a power supply (so a total of 3A in your case). From a quick search, it sounds like that regulator is probably only suitable for around 1.5A (according to this listing), and your power supply that is feeding the regulator is underpowered compared to the 3A target as well (a 14.5V input to the regulator at 500mA can only handle around 1.5A on the 5V output). You might try monitoring the voltage of the power supply and the voltage at the output of the regulator while your system is running to get a better idea of what is happening.
Brandon
Thanks again Brandon
I have ordered a 5V 6A poewer supply - will let you know how it goes.
David
Yay!
Hi Brandon
Can confirm it was a power supply issue. 6A 5V power supply has fixed it
Thanks again
David