English · Русский · Meet the project
An open operating system for wearable devices.
Atta-dipa is building a shared foundation for watches, personal mesh nodes and
the applications people want to carry with them. Independent by design.
Attadīpa means relying on oneself. About the name.
Architecture · Run the simulator · Development status · Contribute
A device should be able to grow beyond the functions its manufacturer shipped. Our ambition is an open common standard for wearable devices and personal mesh nodes: a platform where people can build applications, bring different hardware and share what they make.
Watches are the first embodiment, not the product's boundary. Time, messaging and navigation are the first applications. Maps, a recorder, optional phone pairing and personal tools are directions for the ecosystem we want to build.
- Independent operation. A capability that can run locally should not require a phone, a cloud account or a persistent Internet connection.
- Applications beyond the original set. New ideas should build on shared services, instead of starting another board-specific firmware.
- Different hardware, one platform. Applications use available capabilities; board providers handle how those capabilities are delivered.
- An experience worth wearing. Clear interaction, a coherent visual language and room for personality are part of the OS.
The current implementation uses C++17, ESP-IDF v5.5.5, FreeRTOS and LVGL v9.5.0. Atta-dipa supplies the wearable system services, application layer, device capabilities and interface above that foundation.
| Layer | Responsibility |
|---|---|
| Applications | Product behavior, using system services rather than board registers. |
| Core services and link | Shared capability, position, time, power and communication interfaces. |
| Platform and firmware | Hardware profiles, providers and board-specific composition. |
| UI, localisation and simulator | A shared visual language and a desktop environment for development. |
The separation is how the project can grow into an OS for multiple devices rather than a collection of unrelated firmwares. Hardware access and application behavior evolve on their own sides of the boundary. Architecture decisions explain the contracts.
Services also carry the quality and age of their data. Applications can distinguish missing, stale and usable information without reinventing those rules in every screen.
The first watch apps share painted landscapes, warm accents and a calm, glanceable interface. Lumar, our firefly, brings a little of that character into the project.
Interface design previews: Clock · Mesh · Direction. Image sources.
The first targets are Waveshare ESP32-S3 Touch AMOLED 2.06 and LilyGO T-Watch S3 Plus, with a desktop simulator for both display geometries.
The platform accommodates both an integrated device and a watch working with a separate radio node. MeshCore integration connects the watch to a carried node over BLE for mesh traffic; the wider OS direction also includes our own nodes. Which capabilities a particular device provides is recorded in the hardware matrix.
A node carrying the wearer's position and a remote contact's position are different data sources. The position-source contract holds the technical distinction; it is not a separate product identity.
Active development. Atta-dipa boots on real hardware; system services, the interface and radio integration are being developed together. The aim is a shared app/device platform, not a finished app marketplace. Navigation is experimental and must not be relied on for safety-critical use.
The table below records the scope of the linked bench results, not a claim that every design preview is already running on a watch.
Implementation and bench evidence · 9 September 2026
| Area | What the evidence supports |
|---|---|
| Waveshare on the bench | Boot from flash and the Clock are MEASURED in the August 25 bring-up and August 26 Clock report. These are dated prototype results, not acceptance of the new browser design. |
| MeshCore connection and messages | Pairing and received messages on the watch are MEASURED. A debug-command send was confirmed through a Heltec V4.3 OLED; T114 delivery confirmation was NOT OBSERVED. This does not prove a watch composer or a complete reply journey. Bench report. |
| Navigation and GNSS | Software readouts handle missing and stale information. The T-Watch receiver's NMEA and indoor NoFix were observed; an outdoor fix is NOT EXECUTED — HARDWARE REQUIRED. A complete remote-contact navigation journey and a working physical compass are not established. GNSS evidence, target contract. |
| T-Watch display and touch | Panel and touch bring-up are MEASURED on the bench unit. This is not Clock/Mesh/Nav application acceptance on that watch. September 3 report. |
| Desktop and design review | A desktop LVGL simulator and separate interactive browser studies exist for both geometries. Neither is hardware evidence. Simulator controls, browser study. |
See Issues and pull requests for current work, and the roadmap for development priorities.
For the actual native UI code, use the desktop simulator. You need Git, CMake 3.20+, a C++17 compiler and SDL2 development files. The first simulator configuration fetches the pinned LVGL source unless supplied locally.
# Debian / Ubuntu prerequisites
sudo apt install build-essential cmake git libsdl2-dev
cmake -S . -B build-sim -DATTADIPA_BUILD_SIMULATOR=ON
cmake --build build-sim -j
./build-sim/sim/attadipa_sim --clock --theme nightTry --clock --locale ru, --clock --board waveshare-amoled-206, or
--nav --nav-state node-unknown. Clock and Nav are alternative screen modes.
For scripted taps and screenshots, see Watch Control.
For physical boards, follow Firmware bring-up and bench handling, including backup and board identification before flashing. Firmware uses ESP-IDF v5.5.5; the native UI uses LVGL v9.5.0. A successful build is not a hardware test.
You do not need to own a watch to contribute.
| Start here | A useful first contribution |
|---|---|
| Design and accessibility | Try a small-screen journey and show where it becomes hard to read or use. Design system. |
| Software | Run the simulator, reproduce a scoped issue, improve a tested application path. Contributing. |
| Hardware and radio | Bring a traceable bench observation, protocol capture or measurement — with its limits. Research rules. |
| Words and localisation | Make a screen or document clearer in English and Russian. String catalogue. |
Start with an open issue or Discussion. Read CONTRIBUTING.md before a PR; coordinate claimed work so another contributor is not solving the same task.
Design workspace
No board or firmware toolchain needed. From a clone of this repository, serve the study using Python 3:
python3 -m http.server 8481 --bind 127.0.0.1 --directory docs/uiOpen http://127.0.0.1:8481/prototype/. Switch size, theme and language; try the controls inside the screens. Shell Study 03 at http://127.0.0.1:8481/prototype/shell.html explores the app launcher, Settings and separate watch/node status. These are review tools with sample data, not firmware. They do not access a watch, radio or device storage.
GPL-3.0-or-later — LICENSE. Copyright and contribution provenance: COPYRIGHT.md. Contributions use DCO 1.1, with no CLA or copyright assignment. Third-party licences are recorded in DEPENDENCIES.md.



