pebble
  • Tutorials
  • Get the SDK
  • Guides
  • Documentation
  • PebbleOS
  • Mobile App
  • Examples
  • Index 01
  • Community
  • Blog
  • More
Privacy
Cookies
Publish

PebbleOS

  • Overview
  • Contributing
  • Start here
  • Development
    • The pbl CLI
    • Build system
    • Emulator and simulator
    • Testing
    • Debugging
    • Conventions
  • System
  • Hardware
  • Community
  • Reference
  • Firmware API Reference

Emulator and simulator

PebbleOS runs on a desktop in two ways, without a watch:

Emulator

Native simulator

Runs

The ARM firmware, in QEMU

The firmware compiled for the host

Boards

qemu_flint, qemu_emery, qemu_gabbro

native_flint, native_emery, native_gabbro

Platforms

Flint, Emery, Gabbro

Flint, Emery, Gabbro

Third-party apps

Yes: .pbw files install and run

Yes, with CONFIG_SAMSA, which interprets their ARM code

Speed

Boots as on a watch

Builds and boots much faster

Debugging

GDB, through QEMU

The host’s debugger, sanitizers and profilers

Integration tests

Yes

Yes

Both reproduce a platform’s display, buttons and touch, and neither exercises the real hardware: use a watch for drivers, power and radio behaviour.

Use the emulator to check the firmware and apps as they run on a watch for each platform, and for anything ARM-specific. Use the native simulator for fast iterations on the firmware’s logic and UI, and to debug them with host tools.

Generated from PebbleOS 3a7b71785. This page is maintained in the pebbleos repository: docs/development/emulation/index.md.