I have been trying unsuccessfully to communicate using ssh from my pc to my 18ch maestro connected to the chumby via usb. The maestro is recognized by the chumby on /dev/ttyACM0 and /dev/ACM1. It has solid green led and slowly blinking yellow led. When I try “echo 0x**,0x**,0x** > /dev/ttyACM1” or any other of the examples in the user manual, all I get is a quick blink of the green led. What am I doing wrong?
When you ran “echo 0x**,0x**,0x** > /dev/ttyACM1”, you sent a sequence of 14 ASCII bytes to the Maestro (not counting the newline appended by the echo command). The first byte you sent was the ASCII encoding of the character ‘0’; the value of that byte was 0x30. The second byte was the ASCII encoding of the character ‘x’, i.e. 0x78. These 14 bytes you sent, since they are all lower than 0x80, did not form a valid command to the Maestro so the Maestro did not respond to them. The Maestro expects sequence of bytes such as 0x84 followed by 0x02 followed by 0x70 followed by 0x2E.
If your shell supports ANSI-C quoting, you can use that to send the correct bytes instead of sending ASCII strings. Please try running this command in your shell:
If that command prints the name of a robotics company on your screen then your shell supports ANSI-C quoting and you can use that for sending arbitrary bytes to the Maestro. I would also use the “-n” option of the echo command to avoid sending unneeded newlines:
echo -n $'\x84\x02\x70\x2E' > /dev/ttyACM0
Also, make sure the Maestro’s Serial Mode is set to USB Dual Port so it can receive serial commands from USB.
Sounds good! I will try this when I get home. Btw, how do I put the maestro into dual port mode? I have rtfm’d the manual dozens of times and it still reads like gibberish to me, sorry!
The Maestro Control Center has a tab called “Serial Settings.” On that tab is a set of four options with the heading “Serial mode.” One of the options is “USB Dual Port.” Choosing that option and clicking “Apply Settings,” will put your Maestro into dual port mode.
We would love to hear about the specific parts of the manual that are not clear to you so that we can improve them.
If I were to set the maestro in dual port mode from my Windows box, will it retain the setting after powering down and reconnecting to the Chumby? I have no access to any of the Pololu visual tools nor the linux utilities, as I cannot obtain libusb1 for this ARM device.
Yes, the settings are stored on the Maestro.
Ok, so I connected the MIni Maestro to my windows machine, moved some servos around to verify it works and everything is plugged in correctly. I then set to ‘dual port’, hit ‘apply’ to save the setting. I am using Putty on my windows XP netbook to ssh to the chumby. The first string i echoed to the chumby printed ‘pololu’ correctly. The second string you gave as example on ttyACM0 produced a quick blink of the green led and back to solid, yellow still blinking constantly about once a second, after a brief constant pulse. Still no movement. Servo at pins 0 and 10 are powered by fully charged 6V pack, verified with multimeter and proper polarity observed. According to the manual this is normal behavior’ for the leds. However when I tried other examples from the manual such as this one using Pololu protocol
echo -n $'\xAA\x0C\x04\x00\x70\x2E' > /dev/ttyACM0 I get a constant red led. From the manual “Yellow blinking, red steady: A firmware error resulted in a soft reset. This should never occur during normal
I get the same error when trying the Mini SSC protocol example.
echo -n $’\xFF\x00\x7F’ > /dev/ttyACM0
I thought the name of the device was “/dev/ttyACM0”. Do you also have a device named “/dev/ACM0”?
You accidentally left a comma in your Mini-SSC command, so that would explain why that command did not work.
Please note that the command I posted does not actually make the servo move if the servo is already at the commanded position (1500 us). Are you sure that the servo was in a different position before you sent the command I posted? Are you able to move the servo shaft with your hand after sending the command I posted?
The section of the manual you are quoting is about the startup LED patterns, which only applies for the first few seconds after the Maestro is powered on. It doesn’t apply here. The red LED turned on when you sent a serial command to the Maestro, so an error must have occurred. It was probably a Serial Protocol error resulting from invalid bytes being received. You can clear the error by power cycling the Maestro. If the error occurs again, it would be useful if you told us what exact sequence of commands you ran between powerup and when the error happened, and tried to see if you can make that sequence as short as possible.
Sorry about the typos in my reply. I verified I typed them correctly in my terminal program.
I rotated the servos off-center then resent this command(copied and pasted here exactly:
echo -n $’\x84\x02\x70\x2E’ > /dev/ttyACM0
No movement, servos not receiving pulses. I can rotate them by hand.
I can resend this command over and over without error. Same result. Quick dim of green led, rapid pulse of yellow led. Then solid green, slowly blinking yellow.
Board works perfectly under windows Maestro Control Center.
The command you sent sets the position of servo 2. Do you have anything plugged into that channel?
It might be easier for you to start using our Serial Transmitter application under Windows so that you can debug your commands while watching what is happening in the Control Center.