DEV Community

Cover image for Set up a wired serial communication between Arduino boards
Yongchang He
Yongchang He

Posted on

6 3

Set up a wired serial communication between Arduino boards

This blog explains how to set up wired serial communication between two Arduino boards.

This tutorial is meant for those with some knowledge of Arduino and IoT.
The purpose of building this blog is to write down the detailed operation history and my memo for learning the Arduino.
If you are also interested and want to get hands dirty, just follow these steps below and have fun!~

Tools will be used:

  • Two Arduino boards (e.g., mines are yún and 101)
  • Jump wires (Two are enough)

Prerequisites

  • Boards are firmly connected via USB to computers
  • Boards drivers are properly installed
  • Ports are identified by the computers
  • Jump wires connect one's TX with another's RX, and one's RX with another's TX

Getting Started

Code for the master board (Arduino 101):

Send integer data to slave board

void setup() {
  // Begin the Serial at 9600 Baud
  Serial.begin(9600);
  Serial1.begin(9600);
}

int thisByte = 33;

void loop() {
  Serial1.write(thisByte); //Write the serial data
  if (thisByte == 126) {    // you could also use if (thisByte == '~') {
     //This loop loops forever and does nothing
     // holds
    while (true) {
      continue;
    }
    //thisByte = 32;
  }
  // go on to the next character
  thisByte ++;
  //delay(1000);
}
Enter fullscreen mode Exit fullscreen mode

Code for slave board (Arduino yún)

Receive data from the master board, and print the data to console

int incomingByte = 0;  

void setup() {
  // Begin the Serial at 9600 Baud
  Serial1.begin(9600);
  Serial.begin(9600);
}
void loop() {
  // send data only when you receive data:
  if (Serial1.available() > 0) {
  // read the incoming byte:
     incomingByte = Serial1.read();
     // say what you got:
     Serial.print("Received:  ");
     Serial.write(incomingByte);
     Serial.print("    DEC:  ");
     Serial.print(incomingByte, DEC);
     Serial.print("    HEX:  ");
     Serial.print(incomingByte, HEX);
     Serial.print("    OCT:  ");
     Serial.print(incomingByte, OCT);
     Serial.print("    BIN:  ");
     Serial.print(incomingByte, BIN);
     Serial.println(" ");
   }
}
Enter fullscreen mode Exit fullscreen mode

Part of the Results

Image description

Trouble Shooting

  1. Install Arduino IDE to Linux and enable serial ports
  2. Official docs for serial communication

References

https://docs.arduino.cc/software/ide-v1/tutorials/Linux
https://www.circuitbasics.com/how-to-set-up-uart-communication-for-arduino/

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Retry later