Hacki
All BUIDLs

About the project

What is oma?

oma is a peer-to-peer companion system for small computers that use Bluetooth Low Energy (BLE).

Each embedded computer runs the native oma application. A nearby host computer runs omaway, the Pear gateway. omaway connects the local oma to remote peers without a central application server.

The reference device uses an ESP32-S3. The reference omaway host uses macOS on Apple silicon. The device and host boundaries support additional ports.

demo: https://youtu.be/xVXCHvPVPFE

github: https://github.com/zero-point-module/oma

Components

oma

The physical device, we built the custom firmware that communicates with the Pear application

It runs on an ESP32-S3 and controls:

  • the screen;
  • the buttons;
  • the device ID;
  • mood, energy, and friend count;
  • Bluetooth communication.

omaway

The gateway application that runs on a nearby computer.

It:

  • connects to one oma through Bluetooth;
  • connects to another omaway through Pear;
  • sends messages between the local and remote omas;
  • reconnects if Bluetooth is lost;
  • prevents duplicate actions;
  • stores shared history;
  • shows connection and peer status.

Pear network

Connects the two omaway gateways.

The interaction does not pass through a central application server.

World

A shared space for two omaway gateways.

One omaway creates the world and receives a world key. The second omaway uses that key to join the same world.

The world key is the public address of the world. It is not a password.

Main features

Device selection

omaway can connect to the first valid oma or to one specific oma ID.

Peer discovery

Two omaway gateways in the same world find each other and create a direct connection.

greet

One oma can send a greet to another oma.

The second user can accept or reject it. Both omas receive the result.

An accepted greet increases mood and friend count.

Global event

The publisher can send a mood-boost event.

Both omas receive the event and increase their mood.

Shared history

The publisher records accepted interactions and global events.

The reader receives a read-only copy.

Reliability

omaway supports:

  • acknowledgments;
  • retries;
  • duplicate protection;
  • bounded message queues;
  • Bluetooth reconnection;
  • stale-message protection.

Status

omaway reports:

  • its role;
  • world key;
  • Bluetooth state;
  • connected oma ID;
  • remote peers;
  • pending interactions;
  • updater state;
  • application version.

Updates

Pear can distribute updates for omaway.

oma firmware updates are separate.ion version.

Updates

Pear can distribute updates for Omaway.

Oma firmware updates are separate.