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.
Hacki