Skip to content

Commit 5345650

Browse files
author
panky-codes
committed
Merged upstream
2 parents 754ac23 + a3ff2e4 commit 5345650

76 files changed

Lines changed: 4994 additions & 529 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# GitHub Actions Workflow to build FreeRTOS Firmware for PineTime Smart Watch
22
# See https://lupyuen.github.io/pinetime-rust-mynewt/articles/cloud
3-
# Based on https://github.com/JF002/Pinetime/blob/master/doc/buildAndProgram.md
4-
# and https://github.com/JF002/Pinetime/blob/master/bootloader/README.md
3+
# Based on https://github.com/JF002/InfiniTime/blob/master/doc/buildAndProgram.md
4+
# and https://github.com/JF002/InfiniTime/blob/master/bootloader/README.md
55

66
# Name of this Workflow
77
name: Build PineTime Firmware

.idea/codeStyles/Project.xml

Lines changed: 1 addition & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.vscode/settings.json

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,5 @@
11
{
2-
"cmake.configureArgs": [
3-
"-DARM_NONE_EABI_TOOLCHAIN_PATH=/home/panky92/embedded/gcc-arm-none-eabi-9-2020-q2-update",
4-
"-DNRF5_SDK_PATH=/home/panky92/embedded/nRF5_sdk",
5-
"-DUSE_OPENOCD=1"
6-
],
7-
"cmake.buildTask": true,
82
"files.associations": {
9-
"streambuf": "cpp",
10-
"chrono": "cpp",
11-
"tuple": "cpp",
12-
"functional": "cpp",
13-
"*.tcc": "cpp",
14-
"string": "cpp",
15-
"fstream": "cpp",
16-
"iosfwd": "cpp",
17-
"nrf_rtc.h": "c"
3+
"chrono": "cpp"
184
}
195
}

CMakeLists.txt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
cmake_minimum_required(VERSION 3.10)
2-
project(pinetime VERSION 0.14.0 LANGUAGES C CXX ASM)
2+
project(pinetime VERSION 0.14.1 LANGUAGES C CXX ASM)
33

44
set(NRF_TARGET "nrf52")
55

@@ -41,6 +41,10 @@ if(DEFINED USE_DEBUG_PINS AND USE_DEBUG_PINS)
4141
add_definitions(-DUSE_DEBUG_PINS)
4242
endif()
4343

44+
if(BUILD_DFU)
45+
set(BUILD_DFU true)
46+
endif()
47+
4448
message("BUILD CONFIGURATION")
4549
message("-------------------")
4650
message(" * Version : " ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
@@ -62,6 +66,11 @@ if(USE_DEBUG_PINS)
6266
else()
6367
message(" * Debug pins : Disabled")
6468
endif()
69+
if(BUILD_DFU)
70+
message(" * Build DFU (using adafruit-nrfutil) : Enabled")
71+
else()
72+
message(" * Build DFU (using adafruit-nrfutil) : Disabled")
73+
endif()
6574

6675
set(VERSION_EDIT_WARNING "// Do not edit this file, it is automatically generated by CMAKE!")
6776
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/Version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/Version.h)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# PineTime
33

4-
![Build PineTime Firmware](https://github.com/JF002/Pinetime/workflows/Build%20PineTime%20Firmware/badge.svg?branch=master)
4+
![Build PineTime Firmware](https://github.com/JF002/InfiniTime/workflows/Build%20PineTime%20Firmware/badge.svg?branch=master)
55

66
> The PineTime is a free and open source smartwatch capable of running custom-built open operating systems. Some of the notable features include a heart rate monitor, a week-long battery as well as a capacitive touch IPS display that is legible in direct sunlight. It is a fully community driven side-project, which means that it will ultimately be up to the developers and end-users to determine when they deem the PineTime ready to ship.
77

doc/buildAndProgram.md

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ To build this project, you'll need:
88
## Build steps
99
### Clone the repo
1010
```
11-
git clone https://github.com/JF002/Pinetime.git
12-
cd Pinetime
11+
git clone https://github.com/JF002/InfiniTime.git
12+
cd InfiniTime
1313
git submodule update --init
1414
mkdir build
1515
cd build
@@ -26,7 +26,10 @@ CMake configures the project according to variables you specify the command line
2626
**NRFJPROG**|Path to the NRFJProg executable. Used only if `USE_JLINK` is 1.|`-DNRFJPROG=/opt/nrfjprog/nrfjprog`
2727
**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`
2828
**GDB_CLIENT_TARGET_REMOTE**|Target remote connection string. Used only if `USE_GDB_CLIENT` is 1.|`-DGDB_CLIENT_TARGET_REMOTE=/dev/ttyACM0`
29+
**BUILD_DFU (\*)**|Build DFU files while building (needs [adafruit-nrfutil](https://github.com/adafruit/Adafruit_nRF52_nrfutil)).|`-BUILD_DFU=1`
2930

31+
####(*) Note about **BUILD_DFU**:
32+
DFU files are the files you'll need to install your build of InfiniTime using OTA (over-the-air) mecanism. To generate the DFU file, the Python tool [adafruit-nrfutil](https://github.com/adafruit/Adafruit_nRF52_nrfutil) is needed on your system. Check that this tool is properly installed before enabling this option.
3033

3134
#### CMake command line for JLink
3235
```
@@ -45,11 +48,14 @@ cmake -DARM_NONE_EABI_TOOLCHAIN_PATH=... -DNRF5_SDK_PATH=... -DUSE_OPENOCD=1 -DG
4548

4649
### Build the project
4750
During the project generation, CMake created the following targets:
48-
- FLASH_ERASE : mass erase the flash memory of the NRF52.
49-
- FLASH_pinetime-app : flash the firmware into the NRF52.
50-
- pinetime-app : build the standalone (without bootloader support) version of the firmware.
51-
- pinetime-mcuboot-app : build the firmware with the support of the bootloader (based on MCUBoot).
52-
- pinetime-graphics : small firmware that writes the boot graphics into the SPI flash.
51+
- **FLASH_ERASE** : mass erase the flash memory of the NRF52.
52+
- **FLASH_pinetime-app** : flash the firmware into the NRF52.
53+
- **pinetime-app** : build the standalone (without bootloader support) version of the firmware.
54+
- **pinetime-recovery** : build the standalone recovery version of infinitime (light firmware that only supports OTA and basic UI)
55+
- **pinetime-recovery-loader** : build the standalone tool that flashes the recovery firmware into the external SPI flash
56+
- **pinetime-mcuboot-app** : build the firmware with the support of the bootloader (based on MCUBoot).
57+
- **pinetime-mcuboot-recovery** : build pinetime-recovery with bootloader support
58+
- **pinetime-mcuboot-recovery-loader** : build pinetime-recovery-loader with bootloader support
5359

5460
If you just want to build the project and run it on the Pinetime, using *pinetime-app* is recommanded. See [this page](../bootloader/README.md) for more info about bootloader support.
5561

@@ -64,8 +70,11 @@ Binary files are generated into the folder `src`:
6470
- **pinetime-app.map** : map file
6571
- **pinetime-mcuboot-app.bin, .hex and .out** : firmware with bootloader support in bin, hex and out formats.
6672
- **pinetime-mcuboot-app.map** : map file
67-
- **pinetime-graphics.bin, .hex and .out** : firmware for the boot graphic in bin, hex and out formats.
68-
- **pinetime-graphics.map** : map file
73+
- **pinetime-mcuboot-app-image** : MCUBoot image of the firmware
74+
- **pinetime-mcuboot-ap-dfu** : DFU file of the firmware
75+
76+
The same files are generated for **pinetime-recovery** and **pinetime-recoveryloader**
77+
6978

7079
### Program and run
7180
#### Using CMake targets

doc/contribute.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# How to contribute?
22
## Report bugs
3-
You use your Pinetime and find a bug in the firmware? [Create an issue on Github](https://github.com/JF002/Pinetime/issues) explaining the bug, how to reproduce it, the version of the firmware you use...
3+
You use your Pinetime and find a bug in the firmware? [Create an issue on Github](https://github.com/JF002/InfiniTime/issues) explaining the bug, how to reproduce it, the version of the firmware you use...
44
## Write and improve documentation
55
Documentation might be incomplete, or not clear enough, and it is always possible to improve it with better wording, pictures, photo, video,...
66

@@ -41,4 +41,4 @@ The most important rule to follow is to try to keep the code as easy to read and
4141
- **Include guard** : `#pragma once` (no `#ifdef __MODULE__ / #define __MODULE__ / #endif`)
4242
- **Includes** :
4343
- files from the project : `#include "relative/path/to/the/file.h"`
44-
- external files and std : `#include <file.h>`
44+
- external files and std : `#include <file.h>`

doc/filesInReleaseNotes.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Using the releases
2-
For each new *stable* version of Pinetime, a [release note](https://github.com/JF002/Pinetime/releases) is created. It contains a description of the main changes in the release and some files you can use to flash the firmware in your Pinetime.
2+
For each new *stable* version of Pinetime, a [release note](https://github.com/JF002/InfiniTime/releases) is created. It contains a description of the main changes in the release and some files you can use to flash the firmware in your Pinetime.
33

44
This page describes the files from the release notes and how to use them.
55

6-
**NOTE :** the files included in different could be different. This page describes the release note of [version 0.7.1](https://github.com/JF002/Pinetime/releases/tag/0.7.1), which is the version that'll probably be pre-programmed at the factory for the next batch of Pinetime devkits.
6+
**NOTE :** the files included in different could be different. This page describes the release note of [version 0.7.1](https://github.com/JF002/InfiniTime/releases/tag/0.7.1), which is the version that'll probably be pre-programmed at the factory for the next batch of Pinetime devkits.
77

88
## Files included in the release note
99

doc/gettingStarted/gettingStarted.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ If you just want to flash or upgrade InfiniTime on your PineTime, this page is f
88
- [How to flash InfiniTime using the SWD interface](#how-to-flash-infinitime-using-the-swd-interface)
99

1010
## InfiniTime releases and versions
11-
All releases of InfiniTime are available on the [release page of the GitHub repo](https://github.com/JF002/Pinetime/releases).
11+
All releases of InfiniTime are available on the [release page of the GitHub repo](https://github.com/JF002/InfiniTime/releases).
1212

1313
Versions that are tagged as **RELEASE CANDIDATE** are pre-release versions, that are available for testing before actually releasing a new stable version. If you want to help us debug the project and provide stable versions to other user, you can use them. If you want stable and tested version, you should not flash these release candidate version.
1414

@@ -98,4 +98,4 @@ Launch NRFConnect, tap the sandwish button on the top left and select *Configure
9898

9999
Tap *Add service* and select the server configuration *Current Time service*. Tap OK and connect to your PineTime, it should automcatically sync the time once the connection is established!
100100

101-
![NRFConnect CTS 1](nrfconnectcts1.jpg)
101+
![NRFConnect CTS 1](nrfconnectcts1.jpg)

docker/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ RUN apt-get update -qq \
1717
# aarch64 packages
1818
libffi-dev \
1919
libssl-dev \
20-
python3-dev \
20+
python3-dev \
21+
python \
2122
&& rm -rf /var/cache/apt/* /var/lib/apt/lists/*;
2223

2324
RUN pip3 install adafruit-nrfutil

0 commit comments

Comments
 (0)