pebble-dev / RebbleOS

open source operating system for low-power smartwatches
Other
366 stars 38 forks source link

RebbleOS

RebbleOS is an open-source reimplementation of the firmware for the devices formerly manufactured by Pebble Technologies, Inc. The firmware is based on FreeRTOS, and aims to be binary-compatible with applications that were written for the original Pebble OS, as well as radio-compatible with smartphone applications that are designed to work with Pebble.

Links

Supported Feature Matrix

Feature TinTin (Pebble 1) Snowy (Time, Time Steel) Chalk (Round) Silk (Pebble 2) Asterix Vla-52840
Display: N Y N N Y Y
Flash: Y Y Y N Y Y
Buttons: Y Y Y N Y Y
Accel: N N N N N N
Gyro: N N N N N n/a
Magnetometer: N N N n/a N n/a
HRM: n/a n/a n/a N n/a N
Vibrate: N Y Y N N N
Backlight: Y Y Y N N N
Power Management: N N N N N N
Bluetooth: N Y (Alpha) N N WIP WIP
Overall (%): 5% 20% 10% 0% 15% 15%

FAQ

Q: Do you have a list of work to do?

A. Sadly not yet. Get the code up and running, and see what is obviously missing that you would like to do. Check with the channel first on what we have We also have a list of issues https://github.com/pebble-dev/RebbleOS/issues

Q: Can anyone do this?

A. Sure. Make a change to the code, docs etc and submit a pull request

Q: How much works?

A. Basic hardware and some apps will work ok. Bluetooth is coming along slowly. We are writing the core functions at the moment.

Q: Can I run it on hardware?

A. Snowy, yes. But it's experimental and whatnot. Be careful. We are not liable for eaten dogs.

Q: Where is the FPGA. It complains when I build.

A. It's pinned in the Discord channel for download. Click the pin icon on the top right and you should see a post with two links to .bin files.

Hacking

RebbleOS needs your help! This section discusses what you need to know to get started working on the project.

Building

RebbleOS currently can be built for snowy (Pebble Time and Pebble Time Steel) and tintin (Pebble and Pebble Steel). To build RebbleOS, follow these steps:

Building on Debian Stretch

Building on Arch Linux/Parabola

Building on macOS

Building on Windows

If you wish to build firmware to run on your device, you may also wish to consider a script like Utilities/flash_device_adb.sh. Running RebbleOS on hardware is currently out of scope for this document.

You need the snowy_fpga.bin and chalk_fpga.bin files to compile on their respective firmwares. They can be found on the #firmware channel in the Rebble Discord.

Code structure

(This section is, admittedly, somewhat aspirational. Do not be surprised if code within RebbleOS does not necessarily conform to this structure yet!)

RebbleOS is composed of four major components: the hardware abstraction layer, the core operating system, the PebbleOS compatibility layer, and system applications. We break down these components as follows:

Code style guide

logging:

No style wars.

Do what's best.

Reuse and contact

RebbleOS is an open-source project licensed (primarily) under a BSD-style license. For more information, please see the LICENSE and AUTHORS files. Additionally, contributors and members of the RebbleOS community are expected to abide by our code of conduct; for more information on that, please see the CODE-OF-CONDUCT.md file. Reuse of this project is not only permitted, but encouraged! If you do something cool with RebbleOS, please get in touch with us. The easiest way to do so is through the Rebble Discord server, channel #firmware. We look forward to meeting you!