Embedded Networking and communication

Description of group assignment

    Goup assignment

  • Document your work to the group work page and reflect on your individual page what you learned

  • Individual assignments

  • design, build and connect wired or wireless node(s) with network or bus addresses and a local input and/or output devices

Group assignment

For this week’s Embedded Networking and Communication Group Assignment, we collaborated to send messages between different microcontroller boards. I worked with my peers to set up UART communication between two projects — one using my Xiao board and other were using also Xiao boards

Through this hands-on collaboration, I better understood how embedded systems communicate and the importance of timing, pin mapping, and protocol configuration. You can find the full group documentation on our shared group assignment page.

Individual assignment

This week, I explored the fascinating world of embedded networking and communication. The main goal was to make two microcontrollers communicate with each other. I used my custom board based on the Seeed Xiao microcontroller and paired it with an Arduino Uno. I used Arduino IDE for coding, uploading, and serial monitoring.

Tools and Components

  • Seeed Studio Xiao Board
  • Arduino Uno
  • USB Cables and Jumper Wires
  • Arduino IDE

Setting Up the Hardware

I started by connecting my Xiao board that I have built in week8-electronic-production and Arduino Uno using serial communication (UART) through their TX and RX pins. I made sure both boards shared a common ground.

Xiao and Uno wiring

Image: Wiring between Xiao and Arduino Uno

Wiring Details:

  • Xiao TX → Uno RX
  • Xiao RX ← Uno TX
  • GND ↔ GND

Programming the Boards

I used Arduino IDE to program both boards. My Xiao board was programmed to continuously send data, and the Arduino Uno was set to receive and display that data via the serial monitor.

Xiao Code (Transmitter)

void setup() {
Serial1.begin(9600); //help in tx and rx
Serial.begin(9600); //communication pcb via usb
}
void loop() {
if(Serial1.available()) {
char c = Serial1.read();
Serial.print("received from board2");
Serial.println(c);
}
}

Arduino Uno Code (Receiver)


void setup() {
Serial.begin(9600);
Serial.println("hello other board");
}
void loop() {

}
Serial Monitor Output

Image: Serial Monitor showing received data

Testing the Communication

Once both codes were uploaded, I opened the Serial Monitor for the Arduino Uno. The messages from the Xiao board began showing up every second, just like expected. It was a simple “Hello from Xiao!”, but seeing it arrive correctly was a satisfying moment.

Serial Monitor Output

Image: Diagram showing how data flows between the boards

What I Learned

  • How to use UART communication between two microcontrollers
  • The importance of baud rate matching and proper wiring
  • How to monitor serial communication using Arduino IDE

This week gave me a strong foundation in microcontroller communication. It was exciting to see how two boards could talk to each other using simple serial messages. I’m now looking forward to experimenting with more advanced protocols and wireless modules!