I’m using Micro Maestro 6 with USB-To-TTL convert.
I’ve got problem with serial protocol error, after some time serial protocol error pops-up, even when i’m not sending any commands to it. When i trying to send get errors command, it seems that controller is not responding, because time out error arises in my program ( get errors work perfectly fine when timeout error arises). Pololu control center connected via USB can clear errors flag with no problem, so i tried to send GetErrors command few times more, after 3 GetErrors commands, for my big surprise controller cleared the flags. Maybe i’have to send 2 or 3 commands to clear more than one error flag ? Any one have encountered such problem before, especially with serial protocol error poping-up with no reason ?
PS. I’ve got common GND for my rs-ttl and maestro
PROBLEM SOLVED : It was problem with USB-To-TTL converter with MAX232. Simply max232 supply voltage was a little to high.
Is there some reason you are using a USB-to-TTL converter to talk to the Maestro instead of using the Maestro’s virtual COM port? The virtual COM port would be less susceptible to noise because the data is transferred over USB so every packet is protected with a 16-bit CRC.
If there is noise on the Maestro’s RX line, that could explain everything you are seeing. Suppose the noise causes the RX line to go low briefly (less than one bit time) and then go back high again. The Maestro’s UART could interpret that as a 255 (0xFF) byte, which is the start byte of the Mini SSC command. The Maestro would expect the next two bytes to be the parameters of the Mini SSC command and expect them to be between 0 and 254. If the Maestro receives another 255, then that will be a Serial Protocol Error. If the Maestro receives two Get Errors commands (0xA1) then it will interpret those as parameters to the Mini SSC command and not actually clear the errors. Therefore, if you don’t have control over what bytes were sent previously, you would need to send the Get Errors command 3 times to guarantee that it has the desired effect.
One way to debug this would be to open the Maestro’s Command Port using the Pololu Serial Transmitter. When the Maestro’s serial mode is UART, the Command Port lets you see what bytes are being received by the Maestro on its RX line. You would probably see an occasional byte that was not transmitted by your software.
It would also be helpful to give us more information about your setup so we can see if there are any problems. What is the website of the USB-to-TTL serial adapter you are using? How long are your wires? What are all the electrical connections you made?
Ok, I see now that you have edited your post and your problem is solved. I’m glad you were able to solve this. --David
Thx, for your reply anyway, it gave me a brief view about problem. There is no way to connect my Maestro via usb, unless you can provide me with drivers for windows ce. If you could do so i would be grateful, it would save me a lot of wiring.
And one more question. Is there any way to get error flags from Maestro without clearing it automatically ?
Ok. Unfortunately we don’t have Maestro drivers for Windows CE.
There is no way to get the error flags without clearing them. The only effect of clearing the error flags is that the red LED will turn off. Why are you interested in getting the error flags without clearing them?
Just out of curiosity, i was wandering how maestro control center is able to get error flags without clearing them.
It uses a native USB command (control transfer) to get the errors. The native USB commands are different from the serial commands. You can learn more about them and write programs to use them with the Pololu USB SDK. --David