2021-11-06 12:38:11 +00:00
# [InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime)
2020-07-28 20:51:14 +00:00
2021-10-15 16:03:10 +00:00
[![Build PineTime Firmware ](https://github.com/InfiniTimeOrg/InfiniTime/workflows/Build%20PineTime%20Firmware/badge.svg?branch=master )](https://github.com/InfiniTimeOrg/InfiniTime/actions)
2020-07-28 20:51:14 +00:00
2021-11-06 12:38:11 +00:00
![InfiniTime logo ](images/infinitime-logo-small.jpg "InfiniTime Logo" )
2020-08-02 16:09:38 +00:00
2021-11-14 13:23:12 +00:00
Fast open-source firmware for the [PineTime smartwatch ](https://www.pine64.org/pinetime/ ) with many features, written in modern C++.
2020-07-18 20:15:14 +00:00
2021-08-03 16:51:58 +00:00
## New to InfiniTime?
2021-11-06 12:38:11 +00:00
- [Getting started with InfiniTime ](doc/gettingStarted/gettingStarted-1.0.md )
2021-11-14 13:23:12 +00:00
- [Updating the software ](doc/gettingStarted/updating-software.md )
- [About the firmware and bootloader ](doc/gettingStarted/about-software.md )
2021-11-08 15:42:42 +00:00
### Companion apps
- [Gadgetbridge ](https://gadgetbridge.org/ ) (Android)
- [AmazFish ](https://openrepos.net/content/piggz/amazfish/ ) (SailfishOS)
- [Siglo ](https://github.com/alexr4535/siglo ) (Linux)
2022-04-30 20:14:27 +00:00
- [InfiniLink ](https://github.com/InfiniTimeOrg/InfiniLink ) ** [Experimental]** ** [Unmaintained, looking for developers/maintainers]** (iOS)
2022-03-03 17:01:34 +00:00
- [ITD ](https://gitea.arsenm.dev/Arsen6331/itd ) (Linux)
2021-07-25 15:50:55 +00:00
2021-11-14 13:23:12 +00:00
## Development
2020-07-27 19:23:51 +00:00
2021-10-05 13:19:44 +00:00
- [Rough structure of the code ](doc/code/Intro.md )
- [How to implement an application ](doc/code/Apps.md )
2021-04-18 17:28:14 +00:00
- [Generate the fonts and symbols ](src/displayapp/fonts/README.md )
2021-04-13 17:15:29 +00:00
- [Creating a stopwatch in Pinetime(article) ](https://pankajraghav.com/2021/04/03/PINETIME-STOPCLOCK.html )
2021-11-06 13:04:37 +00:00
- [Tips on designing an app UI ](doc/ui_guidelines.md )
2020-08-08 18:28:55 +00:00
2022-02-01 20:48:56 +00:00
### InfiniSim Simulator
Use the [InfiniSim Simulator ](https://github.com/InfiniTimeOrg/InfiniSim ) to experience the `InfiniTime` user interface directly on your PC, to shorten the time until you get your hands on a real [PineTime smartwatch ](https://www.pine64.org/pinetime/ ).
Or use it to develop new Watchfaces, new Screens, or quickly iterate on the user interface.
2021-11-14 13:23:12 +00:00
### Contributing
- [How to contribute? ](/doc/contribute.md )
- [Coding conventions ](/doc/coding-convention.md )
2020-07-18 20:15:14 +00:00
### Build, flash and debug
2021-07-25 15:50:55 +00:00
2020-07-26 14:15:12 +00:00
- [Project branches ](doc/branches.md )
- [Versioning ](doc/versioning.md )
2020-07-27 19:23:51 +00:00
- [Files included in the release notes ](doc/filesInReleaseNotes.md )
2020-07-18 20:15:14 +00:00
- [Build the project ](doc/buildAndProgram.md )
2020-09-28 20:07:54 +00:00
- [Flash the firmware using OpenOCD and STLinkV2 ](doc/openOCD.md )
2021-11-06 12:38:11 +00:00
- [Flash the firmware using SWD interface ](doc/SWD.md )
2020-08-19 20:04:48 +00:00
- [Build the project with Docker ](doc/buildWithDocker.md )
2021-07-26 01:14:23 +00:00
- [Build the project with VSCode ](doc/buildWithVScode.md )
2020-07-18 20:15:14 +00:00
- [Bootloader, OTA and DFU ](./bootloader/README.md )
- [Stub using NRF52-DK ](./doc/PinetimeStubWithNrf52DK.md )
2020-07-26 14:15:12 +00:00
2020-07-18 20:15:14 +00:00
### API
2021-07-25 15:50:55 +00:00
2020-07-18 20:15:14 +00:00
- [BLE implementation and API ](./doc/ble.md )
2021-07-25 15:50:55 +00:00
2020-07-18 20:15:14 +00:00
### Architecture and technical topics
2021-07-25 15:50:55 +00:00
2020-07-20 19:30:00 +00:00
- [Memory analysis ](./doc/MemoryAnalysis.md )
2021-07-25 15:50:55 +00:00
2020-08-02 15:38:51 +00:00
## Licenses
2021-07-25 15:50:55 +00:00
2020-08-02 15:38:51 +00:00
This project is released under the GNU General Public License version 3 or, at your option, any later version.
It integrates the following projects:
- RTOS : ** [FreeRTOS ](https://freertos.org )** under the MIT license
- UI : ** [LittleVGL/LVGL ](https://lvgl.io/ )** under the MIT license
- BLE stack : ** [NimBLE ](https://github.com/apache/mynewt-nimble )** under the Apache 2.0 license
- Font : ** [Jetbrains Mono ](https://www.jetbrains.com/fr-fr/lp/mono/ )** under the Apache 2.0 license
2021-07-25 15:50:55 +00:00
## Credits
2020-07-18 20:15:14 +00:00
I’ m not working alone on this project. First, many people create PR for this projects. Then, there is the whole #pinetime community : a lot of people all around the world who are hacking, searching, experimenting and programming the Pinetime. We exchange our ideas, experiments and code in the chat rooms and forums.
2020-03-29 13:19:39 +00:00
2020-07-18 20:15:14 +00:00
Here are some people I would like to highlight:
2020-03-29 13:19:39 +00:00
2020-07-18 20:15:14 +00:00
- [Atc1441 ](https://github.com/atc1441/ ) : He works on an Arduino based firmware for the Pinetime and many other smartwatches based on similar hardware. He was of great help when I was implementing support for the BMA421 motion sensor and I²C driver.
2020-07-25 16:16:38 +00:00
- [Koen ](https://github.com/bosmoment ) : He’ s working on a firmware based on RiotOS. He integrated similar libs as me : NimBLE, LittleVGL,… His help was invaluable too!
2020-07-22 22:33:57 +00:00
- [Lup Yuen Lee ](https://github.com/lupyuen ) : He is everywhere: he works on a Rust firmware, builds a MCUBoot based bootloader for the Pinetime, designs a Flutter based companion app for smartphones and writes a lot of articles about the Pinetime!
2020-03-29 13:19:39 +00:00
2020-07-18 20:15:14 +00:00
*If you feel like you should appear on this list, just get in touch with me or submit a PR :)*