Ideal baudrate


I've been reading up a bit on issues concerning constnt serial data transfer on this forum but I'm afraid it doesn't all make sense to me. I thought I saw somewhere that if you need constant, fast data transfer, a high baudrate (115200) is nice. But if fast is good, why bother with a lower baudrate at all? Does it mean that with a lower baudrate I can send larger data in slower intervals? I'm obviously missing some insight so I thought I'd simply explain what I'm doing and ask your advice. Say I want to send 360 bytes to Arduino 10 times a second (from Flash), is that doable? How long does it take Arduino to process 360 **s? What I'm using it for is setting channels using the TI TLC5940 LED driver. I have no idea how long it takes Arduino to set 1, or 360 for that matter, channels on this chip.

Has anyone played with this before? What baudrate might work well for me?

Say I want to send 360 bytes to Arduino 10 times a second (from Flash), is that doable?

360 bytes encodes as 3600 (1 start, eight data, one stop bit per byte)bits, so to transmit all that 10 times a second, you'd need a minimum bit rate of 36 000 bits per second. Next highest bit rate is 38 400 bps.

As a rough rule of thumb you can estimate character rate by dividing the baud rate by 10 (assuming 8 data bits and one start and stop bit). That is a continuous stream of 300 baud serial data will move 30 characters a second.

The reason for so many baud rate selection choices is because there are times when you want to communicate with an external device that only uses one fixed baud rate. If both devices are baud rate programmable then you are free to choice any baud rate the works well for your application.

Selecting for a ‘best’ baud rate to use can be a little tricky. A lot depends on how much hardware support your device has for handling serial communications. The standard Arduino has one hardware serial channel but there are software serial libraries that allow you to handle more then one serial data stream, but the software serial routines place a larger burden on your program (time and memory) then the hardware serial channel.


Another consideration involves distance, although that usually isn't a factor for short distances say less than 2 or 3 meters. The higher the baud rate the shorter the distance you can send a transmission over a given cable without the signal being deteriorated to the point where it is unreliable.

Also robustness, the higher the baud rate the easier it is for interference to mess it up.