Maestro serial not working

hello

this is a photo of my setup:

i have a micro maestro that i use only as a usb to serial converter (it is set to USBchained) and i use a mini maestro 24 (set to UART) for a hexapod robot. i can get all the commands to the 24maestro but i cannot recieve them.
for example:
in the Pololu Serial Transmitter utility for Windows i type 0xA1 and click send. it sends it. but no response is recieved.

the serial link does work because i can set the servos with Mini-SSC or the compact protocol.
also when i send something over serial. the ERROR led lights up on the micro…sometimes on the mini as well.

hope you can spot what i am doing wrong an help me :smiley:

Hello,

Thanks for posting the detailed picture. I can’t quite see your connections, but you did GND-GND, RX-TX, and TX-RX, right? What is the power supply for the Maestro 24? Can you try it with no servos connected first?

Please run the configuration utility to check what the error message is, since that will give us some critical information. Also, you should be using the Pololu protocol version of the commands instead of the compact protocol when you are doing chaining. Otherwise, both controllers could be responding simultaneously, causing problems.

Finally, if it is possible for you, I would advise making the 24-channel controller be the main device, configured in Dual-Port mode, and using the 6-channel as a slave. This way, you can continue to use compact protocol, you do not have to worry about commands interfering with each other, and most of your servos can be controlled directly over USB without any risk of noisy serial lines causing trouble.

-Paul

yes i connected it correctly because i can move the servos. the 24maestro and the servos are powered by a floppy drive connector from an old PSU. (you can see it in the picture) and yes…i do have the Vsrv=Vin jumper in place.

the maestros have different device IDs and the micro has a offset of 24 so that commands dont interfere. it is the same if i put micro maestro in dual mode.
i need it to be over serial so that it can later be upgraded with xbee modules. and i need the 24maestro on the robot so i can not switch them.

control center says: serial protocol error. but that is probbably because of me manualy entering the commands.
i just need to get error codes,positions,moving state from the 24maestro. but when i send for example the error check (0xA1) nothing comes back! that is my only problem.

Hello,

Command 0xA1 is a compact protocol command. In chained mode, you need to use the Pololu protocol version instead. Please try that, and if it does not work, tell me exactly what you sent and what happened.

-Paul

hmm now i tried once again with the micro maestro in dualport mode.

10:20:49 sent FF 06 F0 //sent servo command
10:20:58 sent FF 06 14 //another servo command
10:21:01 sent A1 // checked for errors
received: 00 ’ 00 ’ // recieved that there is no errors
10:21:21 sent FF FF //sent something to cause an error (red LED lights up)
10:21:26 sent A1 // asked for error 3 times before anything came back (always work after 3 times)
10:21:40 sent A1
10:21:42 sent A1
received: 10 ‘’ 00 ’ // wierd looking ‘+’ sign in the middle (clears the red LED)
10:21:45 sent A1 //checked again…all ok
received: 00 ’ 00 ’

well for some reason it seems to be working now :smiley: i havent changed anything except dual port mode.
only one question…why did i have to send 0xA1 3x before i got an answer?

Hello, Dante.

The Maestro ignores the timing of the serial bytes, so this is how it interprets the bytes that you sent:

FF 06 F0  // Mini-SSC command
FF 06 14  // Mini-SSC command
A1        // Get Errors command: generates a response of 00 00 because there are no errors
FF        // Beginning of a Mini-SSC command.  The next FF interrupts this command, causing a Serial Protocol error (and the red LED turns on).
FF A1 A1  // Mini-SSC command for a servo that doesn't exist on this controller.  Command is ignored.
A1        // Get Errors command: generates a response of 10 00.
A1        // Get Errors command: generates a response of 00 00.

That’s why it takes three tries for you to get the errors.

If you really want to cause an error on the Maestro but not have this problem, you could send “FE” instead of “FF FF”.

–David

Thank you very much. that was a real eyeopener :smiley: