sonique
November 26, 2013, 7:47pm
1
Hi guys,
why if I write the simple code
# Sequence 2
begin
500 8935 2721 9013 2799 5168 6527
5595 7304 0 0 0 0 frame_0..11 # Frame 0
repeat
sub frame_0..11
11 servo
10 servo
9 servo
8 servo
7 servo
6 servo
5 servo
4 servo
3 servo
2 servo
1 servo
0 servo
delay
return
I receive this error message
What mean?
Many Thanks
Hello.
When I copy and paste the script you provided to my 24-channel Maestro (running firmware version 1.02), it does not give me any errors. Could you post your Maestro settings file? Also, what firmware version do you have on your Maestro? The firmware version should be displayed next to the drop-down box in the upper left corner of the Maestro Control Center.
-Brandon
sonique
November 28, 2013, 5:30pm
3
Hi Brandon,
my config file
<!--Pololu Maestro servo controller settings file, https://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 MiniMaestroServoPeriod="80000" ServoMultiplier="1">
<!--Period = 20 ms-->
<!--Channel 0-->
<Channel name="AnterioreSx" mode="Servo" min="7488" max="9984" homemode="Goto" home="9024" speed="0" acceleration="0" neutral="9024" range="1905" />
<!--Channel 1-->
<Channel name="AnterioreDx" mode="Servo" min="2240" max="5312" homemode="Goto" home="3200" speed="0" acceleration="0" neutral="3200" range="1905" />
<!--Channel 2-->
<Channel name="PosterioreDx" mode="Servo" min="8448" max="9984" homemode="Goto" home="9024" speed="0" acceleration="0" neutral="8448" range="1905" />
<!--Channel 3-->
<Channel name="PosterioreSx" mode="Servo" min="2432" max="4416" homemode="Goto" home="3200" speed="0" acceleration="0" neutral="3200" range="1905" />
<!--Channel 4-->
<Channel name="AnterioreSupSx" mode="Servo" min="6592" max="7488" homemode="Goto" home="6592" speed="0" acceleration="0" neutral="6592" range="1905" />
<!--Channel 5-->
<Channel name="AnterioreSupDx" mode="Servo" min="4416" max="5440" homemode="Goto" home="5440" speed="0" acceleration="0" neutral="5376" range="1905" />
<!--Channel 6-->
<Channel name="PosterioreSupDx" mode="Servo" min="5504" max="6272" homemode="Goto" home="5517" speed="0" acceleration="0" neutral="5504" range="1905" />
<!--Channel 7-->
<Channel name="PosterioreSupSx" mode="Servo" min="4864" max="5888" homemode="Goto" home="5867" speed="0" acceleration="0" neutral="5888" range="1905" />
<!--Channel 8-->
<Channel name="" mode="Servo" min="3968" max="8000" homemode="Off" home="3968" speed="0" acceleration="0" neutral="6000" range="1905" />
<!--Channel 9-->
<Channel name="" mode="Servo" min="3968" max="8000" homemode="Off" home="3968" speed="0" acceleration="0" neutral="6000" range="1905" />
<!--Channel 10-->
<Channel name="" mode="Servo" min="3968" max="8000" homemode="Off" home="3968" speed="0" acceleration="0" neutral="6000" range="1905" />
<!--Channel 11-->
<Channel name="" mode="Servo" min="3968" max="8000" homemode="Off" home="3968" speed="0" acceleration="0" neutral="6000" range="1905" />
</Channels>
<Sequences>
<Sequence name="Sequence 0">
<Frame name="Frame 0" duration="500">9000 3000 9000 3000 5888 5952 5568 6592 0 0 0 0</Frame>
<Frame name="Frame 1" duration="500">9000 3000 7616 3000 5888 5952 5568 6592 0 0 0 0</Frame>
<Frame name="Frame 2" duration="500">9000 3000 7616 3000 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 3" duration="500">9000 3000 7616 3000 5888 5312 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 4" duration="500">9000 2304 7616 3000 5888 5312 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 5" duration="500">9000 2304 7616 3000 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 15" duration="500">9000 3000 9000 3000 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 10" duration="500">9000 2304 9000 4800 6720 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 11" duration="500">9984 2304 9000 4800 6720 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 12" duration="500">9984 2304 9000 4800 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 6" duration="500">9000 2304 9000 3000 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 7" duration="500">9000 2304 9000 3000 5888 5952 4672 6080 0 0 0 0</Frame>
<Frame name="Frame 8" duration="500">9000 2304 9000 4800 5888 5952 4672 6080 0 0 0 0</Frame>
<Frame name="Frame 9" duration="500">9000 2304 9000 4800 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 14" duration="500">9000 2304 9000 3000 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 13" duration="500">9984 2304 9000 3000 5888 5952 4672 6592 0 0 0 0</Frame>
</Sequence>
<Sequence name="Sequence 1">
<Frame name="Frame 0" duration="500">9000 3000 9000 3000 5888 5952 5568 6592 0 0 0 0</Frame>
<Frame name="Frame 1" duration="500">9000 3000 7616 3000 5888 5952 5568 6592 0 0 0 0</Frame>
<Frame name="Frame 2" duration="500">9000 3000 7616 3000 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 3" duration="500">9000 3000 7616 3000 5888 5312 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 4" duration="500">9000 2304 7616 3000 5888 5312 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 5" duration="500">9000 2304 7616 3000 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 6" duration="500">9000 2304 7616 3000 6720 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 7" duration="500">9984 2304 7616 3000 6720 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 8" duration="500">9984 2304 7616 3000 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 9" duration="500">9984 4429 7616 3000 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 10" duration="500">9984 4429 9000 3000 5888 5952 4672 6592 0 0 0 0</Frame>
<Frame name="Frame 11" duration="500">9984 4429 9000 3000 5888 5952 4672 4800 0 0 0 0</Frame>
<Frame name="Frame 12" duration="500">9984 4429 9000 4800 5888 5952 4672 4800 0 0 0 0</Frame>
<Frame name="Frame 13" duration="500">9984 4429 9000 4800 5888 5952 4672 6557 0 0 0 0</Frame>
<Frame name="Frame 14" duration="500">9984 4429 9000 3000 5888 5952 4672 6557 0 0 0 0</Frame>
<Frame name="Frame 15" duration="500">9000 4429 9000 3000 5888 5952 4672 6557 0 0 0 0</Frame>
</Sequence>
<Sequence name="Sequence 2">
<Frame name="Frame 1" duration="200">9984 5312 9984 4416 6592 5440 5504 4864 0 0 0 0</Frame>
<Frame name="Frame 2" duration="200">7488 2240 9984 4416 6592 4416 5504 5888 0 0 0 0</Frame>
<Frame name="Frame 3" duration="200">7488 2240 8448 2432 6592 5440 6272 5888 0 0 0 0</Frame>
<Frame name="Frame 4" duration="200">9984 5312 8448 2432 7488 5440 5504 5888 0 0 0 0</Frame>
</Sequence>
</Sequences>
<Script ScriptDone="true"># Sequence 2
begin
200 9984 5312 9984 4416 6592 5440
5504 4864 0 0 0 0 frame_0..11 # Frame 1
200 7488 2240 4416 5888 frame_0_1_5_7 # Frame 2
200 8448 2432 5440 6272 frame_2_3_5_6 # Frame 3
200 9984 5312 7488 5504 frame_0_1_4_6 # Frame 4
repeat
sub frame_0..11
11 servo
10 servo
9 servo
8 servo
7 servo
6 servo
5 servo
4 servo
3 servo
2 servo
1 servo
0 servo
delay
return
sub frame_0_1_5_7
7 servo
5 servo
1 servo
0 servo
delay
return
sub frame_2_3_5_6
6 servo
5 servo
3 servo
2 servo
delay
return
sub frame_0_1_4_6
6 servo
4 servo
1 servo
0 servo
delay
return
</Script>
</UscSettings>
Firmware version is 1.
Many Thanks,
Your script looks like it has changed since your first post. I tried loading your Maestro settings on my Maestro and running your new script, but it still does not result in any error messages. The firmware versions are 1.00, 1.01, and 1.02; when you said that your firmware version is 1, did you mean 1.00?
Could you try hitting the “Clear Errors” button in the “Errors” tab and restarting the device by clicking on “Device” then “Restart Device” and try running your script again?
-Brandon
Hi Brandon,
sorry for my slowly response…
I’m talking about 1.5.2.0 version.
I try always CLEAR ERROR + RESTART button
ThANKS
It sounds like you are referring to the version of the Maestro Control Center Software. I am asking what firmware version is on your Maestro servo controller. You can find this by connecting your Maestro to your computer using your USB cable, selecting your Maestro in the control center, and looking to the right of the drop down device selection box at the top of the control center, above the tabs.
-Brandon
sonique
December 7, 2013, 10:28am
7
I Brandon,
I hope understand the problem…
When I try to execute my simple script:
### Sequence subroutines: ###
# Sequence 2
sub Sequence_2
150 8000 7424 6848 7296 6592 5440
5517 4864 0 0 0 0 frame_0..11 # Frame 1
150 4480 4544 4416 5888 frame_0_1_5_7 # Frame 2
150 4352 5248 5440 6272 frame_2_3_5_6 # Frame 3
150 8000 7424 7488 5504 frame_0_1_4_6 # Frame 4
return
sub frame_0..11
11 servo
10 servo
9 servo
8 servo
7 servo
6 servo
5 servo
4 servo
3 servo
2 servo
1 servo
0 servo
delay
return
sub frame_0_1_5_7
7 servo
5 servo
1 servo
0 servo
delay
return
sub frame_2_3_5_6
6 servo
5 servo
3 servo
2 servo
delay
return
sub frame_0_1_4_6
6 servo
4 servo
1 servo
0 servo
delay
return
In the upper-right corner of the Maestro Control Center I can read:
In fact I receive the follow error:
Why this happens?
Hi brandon now is OK!!
The problem was the use of all 126 level of subroutines call.
In fact, now I use one only level (only one subroutines call) and does work very fine!!!
Thanks a lot
I am glad you were able to figure out what your problem was and correct it. Thank you for letting us know.
-Brandon
sonique
December 11, 2013, 8:43pm
10
Yes,
because It’s important to note that when copy the frame sequence to script tab,
Micro Maestro runtime calling nested subroutines until overflow memory
You must prefer write correct code like
begin
sub 'calling subfunction'
repeat
where sub 'calling subfunction'
is code copied from frame sequence
I hope it’s a clear explanation
It sounds like you understand what the problem was. When you copy your sequences to the script using the “Copy all sequences to Script” button, the Maestro Control Center enters them into the script as subroutines that should be called from the main body of the script. If you only copy one sequence to your script using the “Copy Sequence to Script” button, the Maestro Control Center will set the script to be a looped version of the sequence and no additional code would be needed. More information about this can be found in the “Sequencer” section of the Maestro user’s guide.
-Brandon