From 10c470ef719412a3d208dc52ea62c32ae2b58ddf Mon Sep 17 00:00:00 2001 From: ecarlett Date: Wed, 29 May 2024 16:19:59 +0200 Subject: [PATCH] update doc of main branch --- README.md | 86 ++++------------------------------- doc/ui/infineat_settings.png | Bin 0 -> 7646 bytes doc/ui/meow_alarmset.png | Bin 0 -> 6100 bytes 3 files changed, 8 insertions(+), 78 deletions(-) create mode 100644 doc/ui/infineat_settings.png create mode 100644 doc/ui/meow_alarmset.png diff --git a/README.md b/README.md index e4f6707f..45b354a4 100644 --- a/README.md +++ b/README.md @@ -1,88 +1,18 @@ -# [InfiniTime](https://github.com/InfiniTimeOrg/InfiniTime) +# [InfiniTime](https://github.com/Eve1374/InfiniTime) ![InfiniTime logo](doc/logo/infinitime-logo-small.jpg "InfiniTime Logo") Fast open-source firmware for the [PineTime smartwatch](https://pine64.org/devices/pinetime/) with many features, written in modern C++. -## New to InfiniTime? +## Welcome to my InfiniTime fork ?! -- [Getting started with InfiniTime](doc/gettingStarted/gettingStarted-1.0.md) -- [Updating the software](doc/gettingStarted/updating-software.md) -- [About the firmware and bootloader](doc/gettingStarted/about-software.md) -- [PineTimeStyle Watch face](https://wiki.pine64.org/wiki/PineTimeStyle) - - [Weather integration](https://wiki.pine64.org/wiki/Infinitime-Weather) +Branches : -### Companion apps +- main : shows this doc +- alarm-status-on-infineat : shows the alarm status on infineat, can be enabled or disabled from the settigns menu that is updated accordingly : -- [Gadgetbridge](https://gadgetbridge.org/) (Android) -- [AmazFish](https://openrepos.net/content/piggz/amazfish/) (SailfishOS) -- [Siglo](https://github.com/alexr4535/siglo) (Linux) -- [InfiniLink](https://github.com/InfiniTimeOrg/InfiniLink) (iOS) -- [ITD](https://gitea.elara.ws/Elara6331/itd) (Linux) -- [WatchMate](https://github.com/azymohliad/watchmate) (Linux) +![Infineat settings](doc/ui/infineat_settings.png "Infineat settings") -***Note**: We removed mentions to NRFConnect as this app is closed source and recent versions do not work anymore with InfiniTime (the last version known to work is 4.24.3). If you used NRFConnect in the past, we recommend you switch to [Gadgetbridge](https://gadgetbridge.org/).* +- my-custom-infinitime : branch were I put things that I want for myself, like a watchface with paw instead of shoe icon for steps counter : -## Development - -- [InfiniTime Vision](doc/InfiniTimeVision.md) -- [Rough structure of the code](doc/code/Intro.md) -- [How to implement an application](doc/code/Apps.md) -- [Generate the fonts and symbols](src/displayapp/fonts/README.md) -- [Tips on designing an app UI](doc/ui_guidelines.md) -- [Bootloader, OTA and DFU](bootloader/README.md) -- [External resources](doc/ExternalResources.md) - -### Contributing - -- [How to contribute?](CONTRIBUTING.md) -- [Coding conventions](doc/coding-convention.md) - -### Build, flash and debug - -- [InfiniTime simulator](https://github.com/InfiniTimeOrg/InfiniSim) -- [Build the project](doc/buildAndProgram.md) -- [Build the project with Docker](doc/buildWithDocker.md) -- [Build the project with VSCode](doc/buildWithVScode.md) -- [Flash the firmware using OpenOCD and STLinkV2](doc/openOCD.md) -- [Flash the firmware using SWD interface](doc/SWD.md) -- [Flash the firmware using JLink](doc/jlink.md) -- [Flash the firmware using GDB](doc/gdb.md) -- [Stub using NRF52-DK](doc/PinetimeStubWithNrf52DK.md) - -### API - -- [BLE implementation and API](doc/ble.md) - -### Architecture and technical topics - -- [Memory analysis](doc/MemoryAnalysis.md) - -### Project management - -- [Maintainer's guide](doc/maintainer-guide.md) -- [Versioning](doc/versioning.md) -- [Project branches](doc/branches.md) -- [Files included in the release notes](doc/filesInReleaseNotes.md) -- [Files needed by the factory](doc/files-needed-by-factory.md) - -## Licenses - -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 - -## Credits - -I’m not working alone on this project. First, many people create pull requests for this project. 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. - -Here are some people I would like to highlight: - -- [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. -- [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! -- [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! +![Meow watchface](doc/ui/meow_alarmset.png "Meow watchface") diff --git a/doc/ui/infineat_settings.png b/doc/ui/infineat_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..0dffd5e781ae4b945d25c629d4f88d9c7435a770 GIT binary patch literal 7646 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 literal 0 HcmV?d00001 diff --git a/doc/ui/meow_alarmset.png b/doc/ui/meow_alarmset.png new file mode 100644 index 0000000000000000000000000000000000000000..e0b4b3f787e9c0f363ef0747f25c7ea53c079eff GIT binary patch literal 6100 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 literal 0 HcmV?d00001