Someone got experience with baud rate and chinese servo controller?

I bought this http://aliexpress.com/item/Official-Smarian-Mini-USB-16-road-servo-controller-servo-control-board-USC-16-servo-drive/32796976115.html

I've connected it with arduino and it work at baud rate 9600. But it won't work at higher baud rate. I am using UART tx from arduino to rx servo board. In the description of servo controller it said that baud rate will detect automatically, but it seems I bought another bullshit? I need to send tons of bytes

the code of arduino simply look like this:

void setup() {
  Serial.begin(115200);
  delay(1000);
}

void loop() {
  Serial.print("#2P500T2000\r\n");
  delay(1000);
  Serial.print("#3P1500T2000\r\n");  
  delay(1000);
  Serial.print("#3P2500T2000D1555\r\n");  
  delay(1000);
  Serial.print("#3P1500T2000\r\n");
  delay(1000);
}

Did you try the next step up, 19,200?

Paul

In the description of servo controller it said that baud rate will detect automatically

Where does it say that?

Pete

Are You sure You really need such high baudrate? 9600 transmits some 1200 bytes per second. 1 byte takes less then a millisecond to transmit.

forgoden:
I am using UART tx from arduino to rx servo board. In the description of servo controller it said that baud rate will detect automatically, but it seems I bought another bullshit? I need to send tons of bytes

If you got any documentation with it please post it here.

...R

el_supremo:
Where does it say that?

Pete

One line of the document text gives six or so possible bps rates. The numbers are all jammed together so it looks like a long string on digits.

Paul

But it doesn't say "that baud rate will detect automatically".

Pete

Yes, I need higher baud rate, because it sends a lot of datas each servo. 16 servos will be controlled all over the time and the moving is not only from a to b. It's more like you moving your fingers.

The mcu is Stm32f103c8t6 48-pin

I could not find documentation, but this is a similar one https://drive.google.com/file/d/0B-Vn6E73-uHxb1JRbVlHWWxRUGs/view

I also tried SoftwareSerial, but only 9600 works.

Only via USB from PC it works higher baud rate. But I want to control it with arduino.

I thought someone of you got these chinese servo controller module.

In this link USB Servo Controller - 24 Channels | Hobbyist.co.nz
it says: Baud Rate: 9600- 19200- 28400- 57600- 115200- 128000 (recognized automatically)

I see nothing in the GoogleDrive document about how to change the baud rate and it looks like the NZ document is for a USB only device. Baud rates are a bit meaningless with USB.

If it can detect the baud rate I wonder if you need to repeatedly send some specific character or group of characters so it can try the different baud rates and see which one works.

I would not do my tests with SoftwareSerial - get it working with HardwareSerial first. An Arduino such as a Mega or Leonardo with a spare HardwareSerial port would be a good idea for testing.

Moral of Story ... cheap without documentation is too cheap :slight_smile:

...R

Don't know what the overhead of I2C is,
but a commonly used 16-channel PCA9685 servo board can do 400kHz (FastMode), or even 1Mhz (FastMode+).
I think FastMode+ is not supported by common Arduinos, but Fastmode is.
Leo..

Isn't the purpose of that sort of servo board to take load off the Arduino so it can do its stuff at a more leisurely pace?

How could you possibly need to update the position of one of 16 servos 400,000 / 16 = 25,000 times per second?

Or even 25 times per second?

...R

Robin2:
Isn't the purpose of that sort of servo board to take load off the Arduino so it can do its stuff at a more leisurely pace?

How could you possibly need to update the position of one of 16 servos 400,000 / 16 = 25,000 times per second?
Or even 25 times per second?

I think both boards do this, only the communication protocol is different.

400kHz is the bit (not byte) rate, and several bytes are needed to position one servo.
As said, not sure what the overhead is, but I estimate that you could send about 10,000 positions/sec.
I think the main advantage of high speed comms is that the Arduino has more time left to do other things.
Leo..