mirror of
https://github.com/InfiniTimeOrg/InfiniTime.git
synced 2024-11-24 05:33:35 +03:00
Fix typo in buildAndProgram.md.
Add documentation about companion apps + link to videos.
This commit is contained in:
parent
142f25f06f
commit
8254622af5
10
README.md
10
README.md
@ -44,6 +44,9 @@ As of now, here is the list of achievements of this project:
|
|||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
|
### Develop
|
||||||
|
- [Generate the fonts and symbols](src/DisplayApp/Fonts/Readme.md)
|
||||||
|
|
||||||
### Build, flash and debug
|
### Build, flash and debug
|
||||||
- [Project branches](doc/branches.md)
|
- [Project branches](doc/branches.md)
|
||||||
- [Versioning](doc/versioning.md)
|
- [Versioning](doc/versioning.md)
|
||||||
@ -64,10 +67,9 @@ As of now, here is the list of achievements of this project:
|
|||||||
- [Memory analysis](./doc/MemoryAnalysis.md)
|
- [Memory analysis](./doc/MemoryAnalysis.md)
|
||||||
|
|
||||||
### Using the firmware
|
### Using the firmware
|
||||||
- Integration with Gadgetbridge
|
- [Integration with Gadgetbridge](doc/CompanionApps/Gadgetbridge.md)
|
||||||
- Integration with AmazFish
|
- [Integration with AmazFish](doc/CompanionApps/Amazfish.md)
|
||||||
- Integration with NRFConnect
|
- [Firmware update, OTA](doc/CompanionApps/NrfconnectOTA.md)
|
||||||
- Firmware update, OTA
|
|
||||||
|
|
||||||
|
|
||||||
## TODO - contribute
|
## TODO - contribute
|
||||||
|
15
doc/CompanionApps/Amazfish.md
Normal file
15
doc/CompanionApps/Amazfish.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#Amazfish
|
||||||
|
[Amazfish](https://openrepos.net/content/piggz/amazfish) is a companion app that supports many smartwatches and activity trackers running on [SailfishOS](https://sailfishos.org/).
|
||||||
|
|
||||||
|
## Features
|
||||||
|
The following features are implemented:
|
||||||
|
- Scanning & detection of Pinetime-JF / InfiniTime
|
||||||
|
- Connection / disconnection
|
||||||
|
- Time synchronization
|
||||||
|
- Notifications
|
||||||
|
- Music control
|
||||||
|
|
||||||
|
## Demo
|
||||||
|
[This video](https://seafile.codingfield.com/f/21c5d023452740279e36/) shows how to connect to the Pinetime and control the playback of the music on the phone.
|
||||||
|
Amazfish and Sailfish OS are running on the [Pinephone](https://www.pine64.org/pinephone/), another awesome device from Pine64.
|
||||||
|
|
13
doc/CompanionApps/Gadgetbridge.md
Normal file
13
doc/CompanionApps/Gadgetbridge.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Integration with Gadgetbridge
|
||||||
|
[Gadgetbridge](https://gadgetbridge.org/) is an Android application that supports many smartwatches and fitness trackers.
|
||||||
|
|
||||||
|
The integration of InfiniTime (previously Pinetime-JF) is ongoing in a [feature branch](https://codeberg.org/Freeyourgadget/Gadgetbridge/src/branch/pinetime-jf).
|
||||||
|
|
||||||
|
## Features
|
||||||
|
The following features are implemented:
|
||||||
|
- Scanning & detection of Pinetime-JF / InfiniTime
|
||||||
|
- Connection / disconnection
|
||||||
|
- Notifications
|
||||||
|
|
||||||
|
## Demo
|
||||||
|
[This video](https://seafile.codingfield.com/f/0a2920b9d765462385e4/) shows how to scan, connect, send notification (using the debug screen) and disconnect from the Pinetime.
|
12
doc/CompanionApps/NrfconnectOTA.md
Normal file
12
doc/CompanionApps/NrfconnectOTA.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# OTA using NRFConnect
|
||||||
|
[NRFConnect](https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-mobile) is a powerful application (running on Android and iOS) which allows to scan and connect to BLE devices.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
- Scanning, connect, disconnect
|
||||||
|
- Time synchronization
|
||||||
|
- OTA
|
||||||
|
|
||||||
|
InfiniTime implements the Nordic DFU protocol for the OTA functionality. NRFConnect also supports this protocol.
|
||||||
|
|
||||||
|
# Demo
|
||||||
|
[This video](https://seafile.codingfield.com/f/a52b69683a05472a90c7/) shows how to use NRFConnect to update the firmware running on the Pinetime.
|
@ -1,19 +1,19 @@
|
|||||||
# Build
|
# Build
|
||||||
##Dependencies
|
## Dependencies
|
||||||
To build this project, you'll need:
|
To build this project, you'll need:
|
||||||
- A cross-compiler : [gcc-arm-none-eabi-8-2019-q3-update](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads/8-2019q3-update)
|
- A cross-compiler : [gcc-arm-none-eabi-8-2019-q3-update](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads/8-2019q3-update)
|
||||||
- The NRF52 SDK 15.3.0 : [nRF5_SDK_15.3.0_59ac345](https://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v15.x.x/nRF5_SDK_15.3.0_59ac345.zip)
|
- The NRF52 SDK 15.3.0 : [nRF5_SDK_15.3.0_59ac345](https://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v15.x.x/nRF5_SDK_15.3.0_59ac345.zip)
|
||||||
- A reasonably recent version of CMake (I use 3.16.5)
|
- A reasonably recent version of CMake (I use 3.16.5)
|
||||||
|
|
||||||
##Build steps
|
## Build steps
|
||||||
###Clone the repo
|
### Clone the repo
|
||||||
```
|
```
|
||||||
git clone https://github.com/JF002/Pinetime.git
|
git clone https://github.com/JF002/Pinetime.git
|
||||||
cd Pinetime
|
cd Pinetime
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
```
|
```
|
||||||
###Project generation using CMake
|
### Project generation using CMake
|
||||||
CMake configures the project according to variables you specify the command line. The variables are:
|
CMake configures the project according to variables you specify the command line. The variables are:
|
||||||
|
|
||||||
Variable | Description | Example|
|
Variable | Description | Example|
|
||||||
@ -27,22 +27,22 @@ CMake configures the project according to variables you specify the command line
|
|||||||
**GDB_CLIENT_TARGET_REMOTE**|Target remote connection string. Used only if `USE_GDB_CLIENT` is 1.|`-DGDB_CLIENT_TARGET_REMOTE=/dev/ttyACM0`
|
**GDB_CLIENT_TARGET_REMOTE**|Target remote connection string. Used only if `USE_GDB_CLIENT` is 1.|`-DGDB_CLIENT_TARGET_REMOTE=/dev/ttyACM0`
|
||||||
|
|
||||||
|
|
||||||
####CMake command line for JLink
|
#### CMake command line for JLink
|
||||||
```
|
```
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug -DARM_NONE_EABI_TOOLCHAIN_PATH=... -DNRF5_SDK_PATH=... -DUSE_JLINK=1 -DNRFJPROG=... ../
|
cmake -DCMAKE_BUILD_TYPE=Debug -DARM_NONE_EABI_TOOLCHAIN_PATH=... -DNRF5_SDK_PATH=... -DUSE_JLINK=1 -DNRFJPROG=... ../
|
||||||
```
|
```
|
||||||
|
|
||||||
####CMake command line for GDB Client (Black Magic Probe)
|
#### CMake command line for GDB Client (Black Magic Probe)
|
||||||
```
|
```
|
||||||
cmake -DARM_NONE_EABI_TOOLCHAIN_PATH=... -DNRF5_SDK_PATH=... -DUSE_GDB_CLIENT=1 -DGDB_CLIENT_BIN_PATH=... -DGDB_CLIENT_TARGET_REMOTE=... ../
|
cmake -DARM_NONE_EABI_TOOLCHAIN_PATH=... -DNRF5_SDK_PATH=... -DUSE_GDB_CLIENT=1 -DGDB_CLIENT_BIN_PATH=... -DGDB_CLIENT_TARGET_REMOTE=... ../
|
||||||
```
|
```
|
||||||
|
|
||||||
####CMake command line for OpenOCD
|
#### CMake command line for OpenOCD
|
||||||
```
|
```
|
||||||
cmake -DARM_NONE_EABI_TOOLCHAIN_PATH=... -DNRF5_SDK_PATH=... -DUSE_OPENOCD=1 -DGDB_CLIENT_BIN_PATH=[optional] ../
|
cmake -DARM_NONE_EABI_TOOLCHAIN_PATH=... -DNRF5_SDK_PATH=... -DUSE_OPENOCD=1 -DGDB_CLIENT_BIN_PATH=[optional] ../
|
||||||
```
|
```
|
||||||
|
|
||||||
###Build the project
|
### Build the project
|
||||||
During the project generation, CMake created the following targets:
|
During the project generation, CMake created the following targets:
|
||||||
- FLASH_ERASE : mass erase the flash memory of the NRF52.
|
- FLASH_ERASE : mass erase the flash memory of the NRF52.
|
||||||
- FLASH_pinetime-app : flash the firmware into the NRF52.
|
- FLASH_pinetime-app : flash the firmware into the NRF52.
|
||||||
@ -66,8 +66,8 @@ Binary files are generated into the folder `src`:
|
|||||||
- **pinetime-graphics.bin, .hex and .out** : firmware for the boot graphic in bin, hex and out formats.
|
- **pinetime-graphics.bin, .hex and .out** : firmware for the boot graphic in bin, hex and out formats.
|
||||||
- **pinetime-graphics.map** : map file
|
- **pinetime-graphics.map** : map file
|
||||||
|
|
||||||
###Program and run
|
### Program and run
|
||||||
####Using CMake targets
|
#### Using CMake targets
|
||||||
These target have been configured during the project generation by CMake according to the parameters you provided to the command line.
|
These target have been configured during the project generation by CMake according to the parameters you provided to the command line.
|
||||||
|
|
||||||
Mass erase:
|
Mass erase:
|
||||||
@ -80,7 +80,7 @@ Flash the application:
|
|||||||
make FLASH_pinetime-app
|
make FLASH_pinetime-app
|
||||||
```
|
```
|
||||||
|
|
||||||
###Using JLink
|
### Using JLink
|
||||||
Start JLinkExe:
|
Start JLinkExe:
|
||||||
```
|
```
|
||||||
$ /opt/SEGGER/JLink/JLinkExe -device nrf52 -if swd -speed 4000 -autoconnect 1
|
$ /opt/SEGGER/JLink/JLinkExe -device nrf52 -if swd -speed 4000 -autoconnect 1
|
||||||
@ -146,7 +146,7 @@ Reset: Reset device via AIRCR.SYSRESETREQ.
|
|||||||
J-Link>g
|
J-Link>g
|
||||||
```
|
```
|
||||||
|
|
||||||
####JLink RTT
|
#### JLink RTT
|
||||||
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.
|
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.
|
||||||
|
|
||||||
- Program the MCU with the code (see above)
|
- Program the MCU with the code (see above)
|
||||||
@ -161,7 +161,7 @@ Start JLinkRTTClient
|
|||||||
$ JLinkRTTClient
|
$ JLinkRTTClient
|
||||||
```
|
```
|
||||||
|
|
||||||
###Using GDB and Black Magic Probe (BMP)
|
### Using GDB and Black Magic Probe (BMP)
|
||||||
Enter the following command into GDB:
|
Enter the following command into GDB:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user