cd /news/developer-tools/pebbleos-linux-port-for-android-smar… · home › topics › developer-tools › article
[ARTICLE · art-160680] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

PebbleOS Linux Port (for Android smartwatches)

A developer has published an experimental Linux port of PebbleOS that runs the watch operating system as a Linux process on the Samsung Galaxy Watch3 SM-R850, rendering a 260 × 260 round UI on the device's 360 × 360 display through Wayland or the framebuffer and reading buttons, bezel and touch through evdev. The port runs alongside Samsung's Linux kernel and Tizen userspace, with a separate ARM32 Galaxy Watch3 connector handling Tizen sensor, haptic and display-power APIs over Unix datagram sockets; the author says the protocol-v2 OS and connector "have not yet been tested together on hardware," though earlier builds reached the launcher and handled controls and phone notifications. Host tests and AArch64/ARM32 cross-builds pass using Zig 0.17.0, while battery endurance, sensor accuracy, suspend and display timing still need on-watch validation, and the source candidate ships no boot service or flashable firmware image.

read3 min views2 publishedOct 30, 2026
PebbleOS Linux Port (for Android smartwatches)
Image: Michielbdejong (auto-discovered)

This fork runs PebbleOS as a Linux process. It keeps the PebbleOS scheduler, services, apps and UI, and adds Linux display, input, battery and device adapter drivers. The Samsung Galaxy Watch3 SM-R850 is the reference hardware.

AI-generated concept mockup using a captured PebbleOS screen.

On the Galaxy Watch3, the port runs alongside Samsung's Linux kernel and Tizen userspace. It renders a 260 × 260 round UI on the 360 × 360 display through Wayland or the framebuffer and reads buttons, bezel and touch through evdev. The separate Galaxy Watch3 connector handles Tizen sensor, haptic and display-power APIs over Unix datagram sockets.

This is an experimental source candidate for developers. I’m currently daily-driving this port on my Galaxy Watch3, with occasional crashes. That describes my running development build; the protocol-v2 OS and connector in this repository have not yet been tested together on hardware. Earlier builds reached the launcher and handled controls and phone notifications on the watch. Host tests and AArch64/ARM32 cross-builds pass; battery endurance, sensor accuracy, suspend and display timing still need on-watch validation. GitHub Actions tracks the Linux OS/mock boot and host-test results.

Target Output
native_gabbro/galaxy_watch3 Static AArch64 Linux executable
native_gabbro/galaxy_watch3_arm32 ARM32 Linux executable using the device's glibc

The connector is ARM32 to match Tizen's libraries and can communicate with either OS build. Use matching protocol-v2 sources; the v1 connector is incompatible. Other watch models and existing Pebble applications need separate compatibility testing.

Use this checkout for the steps below. Install the host packages and PebbleOS SDK described in the getting-started guide, plus CMake, Ninja and Zig. Zig 0.17.0 was used for the candidate cross-builds. The native bootstrap fetches only the required submodules and applies the included NimBLE patch.

sh tools/linux/bootstrap-native.sh
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txt

cmake -S . -B build-galaxy -GNinja \
  -DBOARD=native_gabbro/galaxy_watch3 \
  -DPEBBLEOS_SDK_ROOT=/path/to/pebbleos-sdk
cmake --build build-galaxy --parallel 4

Replace /path/to/pebbleos-sdk with the installed SDK directory. Put Zig on PATH. The outputs are build-galaxy/pebbleos and build-galaxy/system_resources.pbpack; use the ARM32 board name and a separate build directory for the other architecture.

Follow the Linux port guide for runtime directories, device profiles, display selection and Left Hand Mode. Starting on a watch also requires the matching connector and permission to use the device interfaces. This source candidate does not install a boot service or provide a flashable Galaxy Watch3 firmware image.

sh tests/linux_adapter/run.sh
sh tests/linux_adapter/run_display_regressions.sh

The first command needs a C11 compiler and pthreads. It tests the protocol client with a mock adapter. The display tests need a C23 compiler and Linux framebuffer headers; on macOS, set LINUX_HEADERS to Zig's lib/libc/include/any-linux-any directory. Neither command needs the watch or the PebbleOS SDK.

The Linux port guide covers firmware unit tests and the OS/mock boot workflow. The protocol specification lists the hardware checks required before a device release.

Area Source
Adapter client and protocol header drivers/linux_adapter/ ,include/pbl/drivers/linux_adapter.h
Linux display and controls drivers/display/linux/ ,drivers/button/linux/ ,drivers/touch/linux/
Watch configurations boards/native_gabbro/
Mock adapter and protocol tests tests/linux_adapter/
Linux build bootstrap tools/linux/bootstrap-native.sh

Device-specific vendor APIs belong in a separate adapter. The OS owns UI and display policy and remains interactive when no adapter is available. Read the adapter protocol and device-profile format before adding another watch.

See CONTRIBUTING.md for contribution, sign-off and AI attribution rules. General PebbleOS architecture and development documentation remains in docs/.

This work is based on Core Devices' PebbleOS. Packaged snapshots include SOURCE_ORIGIN.json, which records the workspace base commit and dependency pins. PebbleOS retains Apache-2.0; dependencies retain their own licenses. Samsung's runtime libraries are supplied by the device and are not included here.

── more in #developer-tools 4 stories · sorted by recency
── more on @pebbleos 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/pebbleos-linux-port-…] indexed:0 read:3min 2026-10-30 · —