Georgios Balaouras
 Back to projects

Project June 2019

Pi Messenger

A distributed Raspberry Pi Zero messenger designed around periodic communication and low power use.

Raspberry Pi Zero board used for the distributed messenger project.
Project image: Raspberry Pi Zero messaging hardware. Open full-size image ↗

Project details

A distributed messenger for Raspberry Pi Zero devices communicating over Wi-Fi. Each device can generate messages and forward pending ones to other nodes.

The implementation combines:

  • Concurrent TCP threads: Separate server, client, and message-creator threads.
  • Periodic delivery: The client checks for peers and sends pending messages at one-minute intervals to reduce continuous activity.
  • Shared-state protection: Mutexes guard data accessed by multiple threads.
  • Interrupt-driven creation: Interrupts trigger the generation of new messages.

The server waits for incoming connections while the client periodically discovers active devices. The project explores the tradeoff between timely delivery and energy use.