In our earlier article, we have explained Basics of Serial Communication. Baud is the unit for the symbol rate in telecommunications. 1 baud is the speed when 1 symbol is transmitted per second. Each symbol corresponds to a defined, measurable signal change in the physical transmission medium. The baud rate of a data transmission must be the same on the sending and receiving sides.
If the transmitted symbol size is equal to one bit, the symbol rate is also equal to the value of the data transfer rate in bits per second. For larger symbols, the data transfer rate is the corresponding multiple of the symbol rate.
The baud rate is often confused with the data transfer rate, which is the amount of data transferred per time span in bits per second as the bit rate. However, the baud rate indicates the number of symbols per period of time. For example, if a symbol transmits 200 milliseconds, the baud rate is 5 baud.
---
Binary modulation methods know only two states of the carrier, which corresponds to the transmission of exactly one bit per state change or symbol, which means that bit and baud rates are the same in binary transmissions as a special case. Modulation methods with more than two states have a higher bit rate than baud. This is synonymous with higher spectral efficiency. For example, the 4B3T code transmits four bits per three symbols, and the 2B1Q code transmits two bits per symbol. The more bits are transmitted with a symbol (at the same baud rate, over the same physical channel), the more susceptible the transmission is.

Setting Baud Rate on Arduino
In Arduino programming, baud rate is specified when initializing the serial communication interface. The commonly used baud rates include 9600, 19200, 38400, 57600, and 115200 bps, among others. The choice of baud rate depends on factors such as data transfer speed requirements, noise immunity, and compatibility with other devices.
1 2 3 4 5 6 7 8 | void setup() { // Initialize serial communication at 9600 bps Serial.begin(9600); } void loop() { // Your code here } |
Let’s explore one scenarios where understanding and configuring baud rate is essential:
1 2 3 4 5 6 7 8 9 10 | void setup() { // Initialize serial communication at 115200 bps Serial.begin(115200); } void loop() { // Send a message to the computer Serial.println("Hello, world!"); delay(1000); // Wait for 1 second } |
In this example, the Arduino sends the message “Hello, world!” to the computer via the serial port at a baud rate of 115200 bps. You can view the incoming data using serial monitor tools like the Arduino IDE’s Serial Monitor or third-party serial terminal software.
Interfacing with External Devices
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #define SENSOR_PIN A0 void setup() { // Initialize serial communication at 9600 bps Serial.begin(9600); } void loop() { // Read sensor value int sensorValue = analogRead(SENSOR_PIN); // Send sensor value to external device Serial.print("Sensor Value: "); Serial.println(sensorValue); delay(1000); // Wait for 1 second } |
In this scenario, the Arduino reads analog sensor data and transmits it to an external device (e.g., another microcontroller or a display module) via the serial port. By configuring the appropriate baud rate, you ensure reliable communication between the Arduino and the external device.
Arduino official documentation says the below parameters/variables which we can adjust:
1 2 | Serial.begin(speed) Serial.begin(speed, config) |
config sets data, parity, and stop bits. Valid values are:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | SERIAL_5N1 SERIAL_6N1 SERIAL_7N1 SERIAL_8N1 (the default) SERIAL_5N2 SERIAL_6N2 SERIAL_7N2 SERIAL_8N2 SERIAL_5E1: even parity SERIAL_6E1 SERIAL_7E1 SERIAL_8E1 SERIAL_5E2 SERIAL_6E2 SERIAL_7E2 SERIAL_8E2 SERIAL_5O1: odd parity SERIAL_6O1 SERIAL_7O1 SERIAL_8O1 SERIAL_5O2 SERIAL_6O2 SERIAL_7O2 SERIAL_8O2 |
If the baud rate is 9600, sent data is 9600 bits in one second. 1 character is same as 1 byte. 1 byte is 8 bits.
This means that 9600 baud can transfer 1200 characters in one second.
The higher the baud rate, the more data can be transferred in 1 second. However, the error may increase and/or some external devices may not support at all. There is little difference of the value when we set it for communication with computer only.
9600 baud rate is widely compatible with many devices. FTDI-based interfaces are quite tolerant of baud-rate mismatch, up to several percent error. The maximum serial transfer rate is pretty much only limited by the quality of the board and its layout. This is probably one thing where the original boards are reliable.
Tagged With arduino change baud rate of serial