DIY Communication Protocols: The Quick Survival Guide

DIY Communication Protocols: The Quick Survival Guide

Sooner or later every DIY project reaches the same moment:

“It powers on... but why are the devices ignoring each other?”

That’s where communication protocols come in. Fortunately, you don’t need a degree in electrical engineering to understand the basics. Here’s a short and practical overview of the protocols you’ll meet most often in hobby electronics, robotics, embedded systems, and random late-night experiments.


UART - the classic “just connect TX to RX” protocol

UART is probably the first protocol most makers encounter. It’s simple, reliable, and great for debugging.

Common uses:

  • ESP32 <-> PC
  • GPS modules
  • Bluetooth modules
  • Firmware flashing
  • Serial debugging

Main lines:

  • TX - transmit
  • RX - receive
  • GND - don’t forget this one unless you enjoy suffering

Pros:

  • Very easy to use
  • Great for debugging
  • Supported almost everywhere

Cons:

  • Usually device-to-device only
  • No addressing
  • Wrong baud rate = unreadable alien symbols

Typical baud rates: 9600, 115200, and occasionally “let’s see how unstable we can make this.”

Useful references:


I2C - one bus, many devices

I2C is extremely common in DIY electronics because it allows multiple devices to share the same communication lines.

If you’ve used an OLED display or a sensor module, there’s a good chance it was using I2C.

Main lines:

  • SDA - data
  • SCL - clock

Popular I2C devices:

  • SSD1306 OLED displays
  • BMP280/BME280 sensors
  • MPU6050 IMU
  • QMC5883 compass

Pros:

  • Only two signal wires
  • Supports multiple devices
  • Excellent for sensors and peripherals

Cons:

  • Not ideal for long wires
  • Sensitive to bad pull-up resistors
  • Sometimes turns debugging into archaeology

One of the first tools every maker eventually writes:

An I2C scanner.

Usually right before discovering the SDA and SCL wires were swapped.

Useful references:


SPI - when I2C is not fast enough

SPI is widely used when speed matters.

Common uses:

  • TFT displays
  • SD cards
  • NRF24L01 modules
  • Fast ADC/DAC chips
  • Flash memory

Main lines:

  • MOSI
  • MISO
  • SCK
  • CS / SS

Pros:

  • Very fast
  • Reliable
  • Great for displays and storage

Cons:

  • More wires
  • Separate CS pin for each device

Useful references:


OneWire - surprisingly effective for one signal wire

OneWire does exactly what the name suggests: communication over a single data line.

The most famous example is the DS18B20 temperature sensor.

Pros:

  • Minimal wiring
  • Multiple devices on one line
  • Cheap and simple

Cons:

  • Not very fast
  • Can become unstable with long wires
  • Needs proper pull-up resistors

Useful reference:


CAN Bus - built for noisy environments and bad decisions

CAN Bus is heavily used in automotive and industrial systems because it’s extremely reliable.

Common uses:

  • Cars
  • Industrial automation
  • Robotics
  • Drones
  • Motor controllers

Pros:

  • Excellent noise resistance
  • Works over long distances
  • Very robust

Cons:

  • More difficult for beginners
  • Requires CAN transceivers

Useful reference:


USB - officially standardized chaos

USB allows devices to pretend to be almost anything:

  • Keyboards
  • Mice
  • Game controllers
  • Serial ports
  • Storage devices

Modern ESP32-S3 boards make USB experimentation surprisingly accessible.

Pros:

  • High speed
  • Power + data over one cable
  • Huge flexibility

Cons:

  • More complex than the others
  • Documentation can feel endless
  • Debugging USB sometimes feels personal

Useful references:


Where should beginners start?

A good learning path usually looks like this:

  1. UART
  2. I2C
  3. SPI
  4. OneWire
  5. CAN Bus
  6. USB

Once you understand these basics, a huge portion of DIY electronics suddenly becomes much less mysterious.


Final thoughts

Most communication problems in DIY electronics eventually turn out to be one of these:

  • missing ground connection
  • wrong voltage levels
  • swapped wires
  • incorrect baud rate
  • a cable that “worked yesterday”

And honestly, that’s part of the fun.

1 Like