05/10Applications

EchoRoom

Digital bridge for a ham radio repeater allowing for audio and text exchange.

  • ham radio
  • Socket.IO
  • ESP32
  • APRS
EchoRoom — preview

Idea

It quickly became clear that a bridge was needed to connect walkie-talkie users with those who don't have any transmission-receiving devices. This led to the idea of the EchoRoom app, which enables conversations and the exchange of short text messages between walkie-talkies and, for example, mobile phones.

Plans

In my plans, I want to modify this application to make it more global. Currently, there aren't many alternatives for hobbyists to create repeater networks; most options are either commercial solutions or outdated and unsafe. Thanks to the lightweight nature of the protocol, we can finally forget about dedicated computers managing connections—just a small, energy-efficient microcontroller like the ESP32 is sufficient. Adding the ability to create rooms and manage user permissions is a goal for the near future.

UNITI EchoRoom 2.5 app screen with a voice room on a phone

Technology stack

13
  • React
  • React Router
  • React Query
  • Socket.IO
  • shadcn/ui
  • Sass
  • TypeScript
  • JavaScript
  • Arduino
  • C++
  • Eagle
  • GitLab
  • FreeBSD

The application is divided into three layers. A Socket.IO server serving as the real-time communication hub between users and devices. A web client built with React 19 using Shadcn, and an application on an ESP32 microcontroller written in C/C++. Audio transmission has been reduced to 8 kHz in mono. The original design was based on WebRTC, but I abandoned it as it was an overcomplication.

APRS

A very large number of professional receiving and transmitting devices designed for amateur radio operators have the capability to receive and send APRS messages. It would be a missed opportunity not to integrate the AX.25 protocol and enable the transmission of short text messages through the system. I have also added the identification of correspondents using this protocol. Before each transmission, the sender's call sign is sent. In the future, I plan to enable the system to receive APRS messages.