NETWORKING AND COMMUNICATIONS

This week's focus was on establishing communication between multiple microcontrollers. Networking is a fundamental skill in embedded systems that allows for distributed processing, for example, using one specialized board for sensing and another for acting.

Learn more about Communication Protocols

I2C Communication

For the individual assignment, I implemented I2C (Inter-Integrated Circuit) communication. I used a Seeed Studio XIAO RP2040 from the output week as the Main node and another RP2040 board from the Input Devices week as the Secondary node.

Then Saheen told me that I would need atleast two secondary modules coonectd to the main module so I could see the main board controlling each module seperately.

So I decided to design a simple board with an OLED display this week.

Main-Secondary I2C Hardware Setup
Schematic Design
I2C wiring details
PCB Design
Soldered Board

Connecting the boards

I noticed a problem only after I finished the plans to connect which to which. So the JST connector in my secondary board was meant to be for the servo motor. So obviously I couldn't use it.

It's the board on the left hand side. You can see the JST connector.

But luckily I had initially designed an I2C interface for the OLED display. But I made a mistake while assigning the connections. I swapped the ground and vcc and thus couldn't add the pins that week. So I decided to use it this week.

I used wires to connect the board to the chain.

Power connection ok

Then I realized there was a mistake in the main board. I had swapped the SCL and SDA pins in the I2C.

So I had to rewire the connections.