You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The **Pinetime** smartwatch is built around the NRF52832 MCU (512KB Flash, 64KB RAM), a 240*240 LCD display driven by the ST7789 controller, an accelerometer, a heart rate sensor, and a vibration motor.
* Music (control the playback of the music on your phone)
49
-
* Heart rate (controls the heart rate sensor and display current heartbeat)
49
+
* Music (control the playback of music on your phone)
50
+
* Heart rate (measure your heart rate)
50
51
* Navigation (displays navigation instructions coming from the companion app)
51
52
* Notification (displays the last notification received)
52
53
* Paddle (single player pong-like game)
53
-
* Two (2048 clone game)
54
-
* Stopwatch (with all the necessary functions such as play, pause, lap, stop)
55
-
* Motion sensor and step counter (displays the number of steps and the state of the motion sensor in real-time)
54
+
* Twos (2048 clone game)
55
+
* Stopwatch
56
+
* Steps (displays the number of steps taken)
57
+
* Timer (set a countdown timer that will notify you when it expires)
58
+
* Metronome (vibrates to a given bpm with a customizable beats per bar)
56
59
- User settings:
57
60
* Display timeout
58
61
* Wake-up condition
59
62
* Time format (12/24h)
60
63
* Default watch face
64
+
* Daily step goal
61
65
* Battery status
62
66
* Firmware validation
63
67
* System information
@@ -68,18 +72,21 @@ As of now, here is the list of achievements of this project:
68
72
***[Experimental]**[WebBLEWatch](https://hubmartin.github.io/WebBLEWatch/) Synchronize time directly from your web browser. [video](https://youtu.be/IakiuhVDdrY)
69
73
- OTA (Over-the-air) update via BLE
70
74
-[Bootloader](https://github.com/JF002/pinetime-mcuboot-bootloader) based on [MCUBoot](https://juullabs-oss.github.io/mcuboot/)
71
-
75
+
72
76
## Documentation
73
77
74
78
### Getting started
79
+
75
80
-[Getting started with InfiniTime 1.0 (quick user guide, update bootloader and InfiniTime,...)](doc/gettingStarted/gettingStarted-1.0.md)
76
81
-[Flash, upgrade (OTA), time synchronization,...](doc/gettingStarted/ota-gadgetbridge-nrfconnect.md)
77
82
78
83
### Develop
84
+
79
85
-[Generate the fonts and symbols](src/displayapp/fonts/README.md)
80
86
-[Creating a stopwatch in Pinetime(article)](https://pankajraghav.com/2021/04/03/PINETIME-STOPCLOCK.html)
81
87
82
88
### Build, flash and debug
89
+
83
90
-[Project branches](doc/branches.md)
84
91
-[Versioning](doc/versioning.md)
85
92
-[Files included in the release notes](doc/filesInReleaseNotes.md)
@@ -92,20 +99,23 @@ As of now, here is the list of achievements of this project:
92
99
- Using files from the releases
93
100
94
101
### Contribute
102
+
95
103
-[How to contribute ?](doc/contribute.md)
96
104
97
105
### API
106
+
98
107
-[BLE implementation and API](./doc/ble.md)
99
-
108
+
100
109
### Architecture and technical topics
110
+
101
111
-[Memory analysis](./doc/MemoryAnalysis.md)
102
-
112
+
103
113
### Using the firmware
114
+
104
115
-[Integration with Gadgetbridge](doc/companionapps/Gadgetbridge.md)
105
116
-[Integration with AmazFish](doc/companionapps/Amazfish.md)
This project is far from being finished, and there are still a lot of things to do for this project to become a firmware usable by the general public.
@@ -119,21 +129,23 @@ Here a quick list out of my head of things to do for this project:
119
129
- Measure power consumption and improve battery life
120
130
- Improve documentation, take better pictures and video than mine
121
131
- Improve the UI
122
-
- Create companion app for multiple OSes (Linux, Android, iOS) and platforms (desktop, ARM, mobile). Do not forget the other devices from Pine64 like [the Pinephone](https://www.pine64.org/pinephone/) and the [Pinebook Pro](https://www.pine64.org/pinebook-pro/).
132
+
- Create companion app for multiple OSes (Linux, Android, iOS) and platforms (desktop, ARM, mobile). Do not forget the other devices from Pine64 like [the Pinephone](https://www.pine64.org/pinephone/) and the [Pinebook Pro](https://www.pine64.org/pinebook-pro/).
123
133
- Design a simple CI (preferably self-hosted and easy to reproduce).
124
-
134
+
125
135
Do not hesitate to clone/fork the code, hack it and create pull-requests. I'll do my best to review and merge them :)
126
136
127
137
## Licenses
138
+
128
139
This project is released under the GNU General Public License version 3 or, at your option, any later version.
129
140
130
141
It integrates the following projects:
131
142
- RTOS : **[FreeRTOS](https://freertos.org)** under the MIT license
132
143
- UI : **[LittleVGL/LVGL](https://lvgl.io/)** under the MIT license
133
144
- BLE stack : **[NimBLE](https://github.com/apache/mynewt-nimble)** under the Apache 2.0 license
134
145
- Font : **[Jetbrains Mono](https://www.jetbrains.com/fr-fr/lp/mono/)** under the Apache 2.0 license
135
-
136
-
## Credits
146
+
147
+
## Credits
148
+
137
149
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.
Copy file name to clipboardExpand all lines: doc/PinetimeStubWithNrf52DK.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# Build a stub for PineTime using NRF52-DK
2
2
[NRF52-DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52-DK) is the official developpment kit for NRF52832 SoC from Nordic Semiconductor.
3
3
4
-
It can be very useful for PineTime developpment:
4
+
It can be very useful for PineTime development:
5
5
* You can use it embedded JLink SWD programmer/debugger to program and debug you code on the PineTime
6
6
* As it's based on the same SoC than the PineTime, you can program it to actually run the same code than the PineTime.
7
7
@@ -47,4 +47,4 @@ You also need to enable the I/O expander to disconnect pins from buttons and led
47
47
| --------- | --------- |
48
48
| DETECT | GND |
49
49
50
-
Now, you should be able to program the SoC on the NRF52-DK board, and use it as if it was running on the pintime.
50
+
Now, you should be able to program the SoC on the NRF52-DK board, and use it as if it was running on the PineTime.
Copy file name to clipboardExpand all lines: doc/ble.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,9 +5,9 @@ This page describes the BLE implementation and API built in this firmware.
5
5
**Note** : I'm a beginner in BLE related technologies and the information of this document reflect my current knowledge and understanding of the BLE stack. These informations might be erroneous or incomplete. Feel free to submit a PR if you think you can improve these.
6
6
7
7
## BLE Connection
8
-
When starting the firmware start a BLE advertising : it send small messages that can be received by any *central* device in range. This allows the device to announce its presence to other devices.
8
+
When starting the firmware start a BLE advertising : it sends small messages that can be received by any *central* device in range. This allows the device to announce its presence to other devices.
9
9
10
-
A companion application (running on a PC, RasberryPi, smartphone) which received this avertising packet can request a connection to the device. This connection procedure allows the 2 devices to negociate communication parameters, security keys,...
10
+
A companion application (running on a PC, RaspberryPi, smartphone) which received this avertising packet can request a connection to the device. This connection procedure allows the 2 devices to negotiate communication parameters, security keys,...
11
11
12
12
When the connection is established, the pinetime will try to discover services running on the companion application. For now **CTS** (**C**urrent **T**ime **S**ervice) and **ANS** (**A**lert **N**otification **S**ervice) are supported.
Copy file name to clipboardExpand all lines: doc/branches.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
The branching model of this project is based on the workflow named [Git flow](https://nvie.com/posts/a-successful-git-branching-model/).
3
3
4
4
It is based on 2 main branches:
5
-
-**master** : this branch is always ready to be reployed. It means that at any time, we should be able to build the branch and release a new version of the application.
5
+
-**master** : this branch is always ready to be deployed. It means that at any time, we should be able to build the branch and release a new version of the application.
6
6
-**develop** : this branch contains the latest development that will be integrated in the next release once it's considered as stable.
7
7
8
8
New features should be implemented in **feature branches** created from **develop**. When the feature is ready, a pull-request is created and it'll be merge into **develop** when it is succesfully reviewed and accepted.
Copy file name to clipboardExpand all lines: doc/buildAndProgram.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ CMake configures the project according to variables you specify the command line
27
27
**NRFJPROG**|Path to the NRFJProg executable. Used only if `USE_JLINK` is 1.|`-DNRFJPROG=/opt/nrfjprog/nrfjprog`
28
28
**GDB_CLIENT_BIN_PATH**|Path to arm-none-eabi-gdb executable. Used only if `USE_GDB_CLIENT` is 1.|`-DGDB_CLIENT_BIN_PATH=/home/jf/nrf52/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gdb`
29
29
**GDB_CLIENT_TARGET_REMOTE**|Target remote connection string. Used only if `USE_GDB_CLIENT` is 1.|`-DGDB_CLIENT_TARGET_REMOTE=/dev/ttyACM0`
30
-
**BUILD_DFU (\*\*)**|Build DFU files while building (needs [adafruit-nrfutil](https://github.com/adafruit/Adafruit_nRF52_nrfutil)).|`-BUILD_DFU=1`
30
+
**BUILD_DFU (\*\*)**|Build DFU files while building (needs [adafruit-nrfutil](https://github.com/adafruit/Adafruit_nRF52_nrfutil)).|`-DBUILD_DFU=1`
31
31
32
32
####(**) Note about **CMAKE_BUILD_TYPE**:
33
33
By default, this variable is set to *Release*. It compiles the code with size and speed optimizations. We use this value for all the binaries we publish when we [release](https://github.com/JF002/InfiniTime/releases) new versions of InfiniTime.
@@ -163,7 +163,7 @@ J-Link>g
163
163
```
164
164
165
165
#### JLink RTT
166
-
RTT is a feature from Segger's JLink devices that allows bidirectionnal communication between the debugger and the target. This feature can be used to get the logs from the embedded software on the development computer.
166
+
RTT is a feature from Segger's JLink devices that allows bidirectional communication between the debugger and the target. This feature can be used to get the logs from the embedded software on the development computer.
Copy file name to clipboardExpand all lines: doc/buildWithDocker.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ Based on Ubuntu 18.04 with the following build dependencies:
13
13
14
14
The `infinitime-build` image contains all the dependencies you need. The default `CMD` will compile sources found in `/sources`, so you need only mount your code.
15
15
16
-
This example will build the firmware, generate the MCUBoot image and generate the DFU file. For cloning the repo, see [these instructions](../doc/buildAndProgram.md#clone-the-repo). Outputs will be written to **<project_root>/build/output**:
16
+
This example will build the firmware, generate the MCUBoot image and generate the DFU file. For cloning the repo, see [these instructions](../doc/buildAndProgram.md#clone-the-repo). Outputs will be written to **<project_root>/build/output**:
Copy file name to clipboardExpand all lines: doc/contribute.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ When reviewing PR, the author and contributors will first look at the **descript
48
48
49
49
Then, reviewing **a few files that were modified for a single purpose** is a lot more easier than to review 30 files modified for many reasons (bug fix, UI improvements, typos in doc,...), even if all these changes make sense. Also, it's possible that we agree on some modification but not on some other, and we won't be able to merge the PR because of the changes that are not accepted.
50
50
51
-
We do our best to keep the code as consistent as possible, and that mean we pay attention to the **formatting** of the code. If the code formatting is not consistent with our code base, we'll ask you to review it, which will take more time.
51
+
We do our best to keep the code as consistent as possible, and that means we pay attention to the **formatting** of the code. If the code formatting is not consistent with our code base, we'll ask you to review it, which will take more time.
52
52
53
53
The last step of the review consists in **testing** the modification. If it doesn't work out of the box, we'll ask your to review your code and to ensure that it works as expected.
Copy file name to clipboardExpand all lines: doc/filesInReleaseNotes.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ This firmware is standalone, meaning that it does not need a bootloader to actua
18
18
**This firmware must be flashed at address 0x00 in the main flash memory**
19
19
20
20
### Bootloader
21
-
The bootloader is maintained by [lupyuen](https://github.com/lupyuen) and is a binary version of [this release](https://github.com/lupyuen/pinetime-rust-mynewt/releases/tag/v5.0.4).
21
+
The bootloader is maintained by [lupyuen](https://github.com/lupyuen) and is a binary version of [this release](https://github.com/lupyuen/pinetime-rust-mynewt/releases/tag/v5.0.4).
22
22
23
23
-**bootloader.hex** : Firmware in Intel HEX file format.
0 commit comments